/*!
 * Mars3D平台插件, 支持对 天地图三维地名服务和地形服务加载使用
 * 版本信息：v3.1.17, hash值: 0b1e14242815ecaa3be2
 * 编译日期：2021-12-19 12:08:56
 * 版权所有：Copyright by 火星科技 http://mars3d.cn
 * 
 */
(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory(require("mars3d-cesium"), require("mars3d"));
	else if(typeof define === 'function' && define.amd)
		define("mars3dTdt", ["mars3d-cesium", "mars3d"], factory);
	else if(typeof exports === 'object')
		exports["mars3dTdt"] = factory(require("mars3d-cesium"), require("mars3d"));
	else
		root["mars3dTdt"] = factory(root["Cesium"], root["mars3d"]);
})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__2__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 12);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__0__;

/***/ }),
/* 1 */
/***/ (function(module, exports) {

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports["default"] = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports["default"] = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 2 */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__2__;

/***/ }),
/* 3 */
/***/ (function(module, exports) {

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  module.exports["default"] = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 4 */
/***/ (function(module, exports) {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

var setPrototypeOf = __webpack_require__(10);

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

var _typeof = __webpack_require__(1)["default"];

var assertThisInitialized = __webpack_require__(11);

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  } else if (call !== void 0) {
    throw new TypeError("Derived constructors may only return object or undefined");
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 7 */
/***/ (function(module, exports) {

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 8 */
/***/ (function(module, exports) {

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var cesium__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
/* harmony import */ var cesium__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cesium__WEBPACK_IMPORTED_MODULE_1__);


!function (e, t) {
  t();
}(window, function () {
  return function (e) {
    var t = {};

    function i(r) {
      if (t[r]) return t[r].exports;
      var n = t[r] = {
        i: r,
        l: !1,
        exports: {}
      };
      return e[r].call(n.exports, n, n.exports, i), n.l = !0, n.exports;
    }

    return i.m = e, i.c = t, i.d = function (e, t, r) {
      i.o(e, t) || Object.defineProperty(e, t, {
        enumerable: !0,
        get: r
      });
    }, i.r = function (e) {
      "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
        value: "Module"
      }), Object.defineProperty(e, "__esModule", {
        value: !0
      });
    }, i.t = function (e, t) {
      if (1 & t && (e = i(e)), 8 & t) return e;
      if (4 & t && "object" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e) && e && e.__esModule) return e;
      var r = Object.create(null);
      if (i.r(r), Object.defineProperty(r, "default", {
        enumerable: !0,
        value: e
      }), 2 & t && "string" != typeof e) for (var n in e) {
        i.d(r, n, function (t) {
          return e[t];
        }.bind(null, n));
      }
      return r;
    }, i.n = function (e) {
      var t = e && e.__esModule ? function () {
        return e["default"];
      } : function () {
        return e;
      };
      return i.d(t, "a", t), t;
    }, i.o = function (e, t) {
      return Object.prototype.hasOwnProperty.call(e, t);
    }, i.p = "", i(i.s = 242);
  }([function (e, t, i) {
    var r = i(175),
        n = i(6);

    function o(t) {
      return e.exports = o = "function" == typeof n && "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(r) ? function (e) {
        return _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e);
      } : function (e) {
        return e && "function" == typeof n && e.constructor === n && e !== n.prototype ? "symbol" : _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e);
      }, o(t);
    }

    e.exports = o;
  }, function (e, t, i) {
    e.exports = i(172);
  }, function (e, t, i) {
    e.exports = i(169);
  }, function (e, t, i) {
    e.exports = i(160);
  }, function (e, t, i) {
    var r = i(50)("wks"),
        n = i(28),
        o = i(10).Symbol,
        a = "function" == typeof o;
    (e.exports = function (e) {
      return r[e] || (r[e] = a && o[e] || (a ? o : n)("Symbol." + e));
    }).store = r;
  }, function (e, t) {
    var i = e.exports = {
      version: "2.6.11"
    };
    "number" == typeof __e && (__e = i);
  }, function (e, t, i) {
    e.exports = i(183);
  }, function (e, t) {
    var i = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")();
    "number" == typeof __g && (__g = i);
  }, function (e, t, i) {
    e.exports = i(167);
  }, function (e, t, i) {
    e.exports = i(154);
  }, function (e, t) {
    var i = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")();
    "number" == typeof __g && (__g = i);
  }, function (e, t, i) {
    e.exports = !i(18)(function () {
      return 7 != Object.defineProperty({}, "a", {
        get: function get() {
          return 7;
        }
      }).a;
    });
  }, function (e, t, i) {
    var r = i(7),
        n = i(5),
        o = i(59),
        a = i(32),
        s = i(31),
        x = function x(e, t, i) {
      var l,
          c,
          u,
          h = e & x.F,
          f = e & x.G,
          d = e & x.S,
          g = e & x.P,
          p = e & x.B,
          m = e & x.W,
          b = f ? n : n[t] || (n[t] = {}),
          v = b.prototype,
          C = f ? r : d ? r[t] : (r[t] || {}).prototype;

      for (l in f && (i = t), i) {
        (c = !h && C && void 0 !== C[l]) && s(b, l) || (u = c ? C[l] : i[l], b[l] = f && "function" != typeof C[l] ? i[l] : p && c ? o(u, r) : m && C[l] == u ? function (e) {
          var t = function (_t2) {
            function t(_x, _x2, _x3) {
              return _t2.apply(this, arguments);
            }

            t.toString = function () {
              return _t2.toString();
            };

            return t;
          }(function (t, i, r) {
            if (this instanceof e) {
              switch (arguments.length) {
                case 0:
                  return new e();

                case 1:
                  return new e(t);

                case 2:
                  return new e(t, i);
              }

              return new e(t, i, r);
            }

            return e.apply(this, arguments);
          });

          return t.prototype = e.prototype, t;
        }(u) : g && "function" == typeof u ? o(Function.call, u) : u, g && ((b.virtual || (b.virtual = {}))[l] = u, e & x.R && v && !v[l] && a(v, l, u)));
      }
    };

    x.F = 1, x.G = 2, x.S = 4, x.P = 8, x.B = 16, x.W = 32, x.U = 64, x.R = 128, e.exports = x;
  }, function (e, t, i) {
    var r = i(17),
        n = i(98),
        o = i(44),
        a = Object.defineProperty;
    t.f = i(11) ? Object.defineProperty : function (e, t, i) {
      if (r(e), t = o(t, !0), r(i), n) try {
        return a(e, t, i);
      } catch (e) {}
      if ("get" in i || "set" in i) throw TypeError("Accessors not supported!");
      return "value" in i && (e[t] = i.value), e;
    };
  }, function (e, t, i) {
    var r = i(75)("wks"),
        n = i(58),
        o = i(7).Symbol,
        a = "function" == typeof o;
    (e.exports = function (e) {
      return r[e] || (r[e] = a && o[e] || (a ? o : n)("Symbol." + e));
    }).store = r;
  }, function (e, t, i) {
    e.exports = i(147);
  }, function (e, t, i) {
    e.exports = i(164);
  }, function (e, t, i) {
    var r = i(21);

    e.exports = function (e) {
      if (!r(e)) throw TypeError(e + " is not an object!");
      return e;
    };
  }, function (e, t) {
    e.exports = function (e) {
      try {
        return !!e();
      } catch (e) {
        return !0;
      }
    };
  }, function (e, t, i) {
    var r = i(29),
        n = Math.min;

    e.exports = function (e) {
      return e > 0 ? n(r(e), 9007199254740991) : 0;
    };
  }, function (e, t, i) {
    var r = i(13),
        n = i(45);
    e.exports = i(11) ? function (e, t, i) {
      return r.f(e, t, n(1, i));
    } : function (e, t, i) {
      return e[t] = i, e;
    };
  }, function (e, t) {
    e.exports = function (e) {
      return "object" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e) ? null !== e : "function" == typeof e;
    };
  }, function (e, t, i) {
    var r = i(10),
        n = i(20),
        o = i(24),
        a = i(28)("src"),
        s = i(150),
        x = ("" + s).split("toString");
    i(43).inspectSource = function (e) {
      return s.call(e);
    }, (e.exports = function (e, t, i, s) {
      var l = "function" == typeof i;
      l && (o(i, "name") || n(i, "name", t)), e[t] !== i && (l && (o(i, a) || n(i, a, e[t] ? "" + e[t] : x.join(String(t)))), e === r ? e[t] = i : s ? e[t] ? e[t] = i : n(e, t, i) : (delete e[t], n(e, t, i)));
    })(Function.prototype, "toString", function () {
      return "function" == typeof this && this[a] || s.call(this);
    });
  }, function (e, t, i) {
    var r = i(10),
        n = i(43),
        o = i(20),
        a = i(22),
        s = i(51),
        x = function x(e, t, i) {
      var l,
          c,
          u,
          h,
          f = e & x.F,
          d = e & x.G,
          g = e & x.S,
          p = e & x.P,
          m = e & x.B,
          b = d ? r : g ? r[t] || (r[t] = {}) : (r[t] || {}).prototype,
          v = d ? n : n[t] || (n[t] = {}),
          C = v.prototype || (v.prototype = {});

      for (l in d && (i = t), i) {
        u = ((c = !f && b && void 0 !== b[l]) ? b : i)[l], h = m && c ? s(u, r) : p && "function" == typeof u ? s(Function.call, u) : u, b && a(b, l, u, e & x.U), v[l] != u && o(v, l, h), p && C[l] != u && (C[l] = u);
      }
    };

    r.core = n, x.F = 1, x.G = 2, x.S = 4, x.P = 8, x.B = 16, x.W = 32, x.U = 64, x.R = 128, e.exports = x;
  }, function (e, t) {
    var i = {}.hasOwnProperty;

    e.exports = function (e, t) {
      return i.call(e, t);
    };
  }, function (e, t, i) {
    e.exports = !i(40)(function () {
      return 7 != Object.defineProperty({}, "a", {
        get: function get() {
          return 7;
        }
      }).a;
    });
  }, function (e, t, i) {
    var r = i(27),
        n = i(107),
        o = i(78),
        a = Object.defineProperty;
    t.f = i(25) ? Object.defineProperty : function (e, t, i) {
      if (r(e), t = o(t, !0), r(i), n) try {
        return a(e, t, i);
      } catch (e) {}
      if ("get" in i || "set" in i) throw TypeError("Accessors not supported!");
      return "value" in i && (e[t] = i.value), e;
    };
  }, function (e, t, i) {
    var r = i(33);

    e.exports = function (e) {
      if (!r(e)) throw TypeError(e + " is not an object!");
      return e;
    };
  }, function (e, t) {
    var i = 0,
        r = Math.random();

    e.exports = function (e) {
      return "Symbol(".concat(void 0 === e ? "" : e, ")_", (++i + r).toString(36));
    };
  }, function (e, t) {
    var i = Math.ceil,
        r = Math.floor;

    e.exports = function (e) {
      return isNaN(e = +e) ? 0 : (e > 0 ? r : i)(e);
    };
  }, function (e, t, i) {
    var r = i(38);

    e.exports = function (e) {
      return Object(r(e));
    };
  }, function (e, t) {
    var i = {}.hasOwnProperty;

    e.exports = function (e, t) {
      return i.call(e, t);
    };
  }, function (e, t, i) {
    var r = i(26),
        n = i(61);
    e.exports = i(25) ? function (e, t, i) {
      return r.f(e, t, n(1, i));
    } : function (e, t, i) {
      return e[t] = i, e;
    };
  }, function (e, t) {
    e.exports = function (e) {
      return "object" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e) ? null !== e : "function" == typeof e;
    };
  }, function (e, t, i) {
    "use strict";

    if (i(11)) {
      var r = i(35),
          n = i(10),
          o = i(18),
          a = i(23),
          s = i(123),
          x = i(196),
          l = i(51),
          c = i(125),
          u = i(45),
          h = i(20),
          f = i(124),
          d = i(29),
          g = i(19),
          p = i(126),
          m = i(54),
          b = i(44),
          v = i(24),
          C = i(63),
          y = i(21),
          _ = i(30),
          A = i(197),
          I = i(52),
          w = i(104),
          G = i(41).f,
          E = i(198),
          S = i(28),
          T = i(4),
          P = i(199),
          M = i(103),
          N = i(108),
          L = i(42),
          R = i(36),
          O = i(202),
          F = i(128),
          D = i(92),
          U = i(203),
          k = i(13),
          B = i(67),
          W = k.f,
          j = B.f,
          V = n.RangeError,
          z = n.TypeError,
          H = n.Uint8Array,
          q = Array.prototype,
          X = x.ArrayBuffer,
          Y = x.DataView,
          K = P(0),
          Q = P(2),
          Z = P(3),
          J = P(4),
          $ = P(5),
          ee = P(6),
          te = M(!0),
          ie = M(!1),
          re = L.values,
          ne = L.keys,
          oe = L.entries,
          ae = q.lastIndexOf,
          se = q.reduce,
          xe = q.reduceRight,
          le = q.join,
          ce = q.sort,
          ue = q.slice,
          he = q.toString,
          fe = q.toLocaleString,
          de = T("iterator"),
          ge = T("toStringTag"),
          pe = S("typed_constructor"),
          me = S("def_constructor"),
          be = s.CONSTR,
          ve = s.TYPED,
          Ce = s.VIEW,
          ye = P(1, function (e, t) {
        return Ge(N(e, e[me]), t);
      }),
          _e = o(function () {
        return 1 === new H(new Uint16Array([1]).buffer)[0];
      }),
          Ae = !!H && !!H.prototype.set && o(function () {
        new H(1).set({});
      }),
          Ie = function Ie(e, t) {
        var i = d(e);
        if (i < 0 || i % t) throw V("Wrong offset!");
        return i;
      },
          we = function we(e) {
        if (y(e) && ve in e) return e;
        throw z(e + " is not a typed array!");
      },
          Ge = function Ge(e, t) {
        if (!y(e) || !(pe in e)) throw z("It is not a typed array constructor!");
        return new e(t);
      },
          Ee = function Ee(e, t) {
        return Se(N(e, e[me]), t);
      },
          Se = function Se(e, t) {
        for (var i = 0, r = t.length, n = Ge(e, r); r > i;) {
          n[i] = t[i++];
        }

        return n;
      },
          Te = function Te(e, t, i) {
        W(e, t, {
          get: function get() {
            return this._d[i];
          }
        });
      },
          Pe = function Pe(e) {
        var t,
            i,
            r,
            n,
            o,
            a,
            s = _(e),
            x = arguments.length,
            c = x > 1 ? arguments[1] : void 0,
            u = void 0 !== c,
            h = E(s);

        if (null != h && !A(h)) {
          for (a = h.call(s), r = [], t = 0; !(o = a.next()).done; t++) {
            r.push(o.value);
          }

          s = r;
        }

        for (u && x > 2 && (c = l(c, arguments[2], 2)), t = 0, i = g(s.length), n = Ge(this, i); i > t; t++) {
          n[t] = u ? c(s[t], t) : s[t];
        }

        return n;
      },
          Me = function Me() {
        for (var e = 0, t = arguments.length, i = Ge(this, t); t > e;) {
          i[e] = arguments[e++];
        }

        return i;
      },
          Ne = !!H && o(function () {
        fe.call(new H(1));
      }),
          Le = function Le() {
        return fe.apply(Ne ? ue.call(we(this)) : we(this), arguments);
      },
          Re = {
        copyWithin: function copyWithin(e, t) {
          return U.call(we(this), e, t, arguments.length > 2 ? arguments[2] : void 0);
        },
        every: function every(e) {
          return J(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        fill: function fill(e) {
          return D.apply(we(this), arguments);
        },
        filter: function filter(e) {
          return Ee(this, Q(we(this), e, arguments.length > 1 ? arguments[1] : void 0));
        },
        find: function find(e) {
          return $(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        findIndex: function findIndex(e) {
          return ee(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        forEach: function forEach(e) {
          K(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        indexOf: function indexOf(e) {
          return ie(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        includes: function includes(e) {
          return te(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        join: function join(e) {
          return le.apply(we(this), arguments);
        },
        lastIndexOf: function lastIndexOf(e) {
          return ae.apply(we(this), arguments);
        },
        map: function map(e) {
          return ye(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        reduce: function reduce(e) {
          return se.apply(we(this), arguments);
        },
        reduceRight: function reduceRight(e) {
          return xe.apply(we(this), arguments);
        },
        reverse: function reverse() {
          for (var e, t = we(this).length, i = Math.floor(t / 2), r = 0; r < i;) {
            e = this[r], this[r++] = this[--t], this[t] = e;
          }

          return this;
        },
        some: function some(e) {
          return Z(we(this), e, arguments.length > 1 ? arguments[1] : void 0);
        },
        sort: function sort(e) {
          return ce.call(we(this), e);
        },
        subarray: function subarray(e, t) {
          var i = we(this),
              r = i.length,
              n = m(e, r);
          return new (N(i, i[me]))(i.buffer, i.byteOffset + n * i.BYTES_PER_ELEMENT, g((void 0 === t ? r : m(t, r)) - n));
        }
      },
          Oe = function Oe(e, t) {
        return Ee(this, ue.call(we(this), e, t));
      },
          Fe = function Fe(e) {
        we(this);

        var t = Ie(arguments[1], 1),
            i = this.length,
            r = _(e),
            n = g(r.length),
            o = 0;

        if (n + t > i) throw V("Wrong length!");

        for (; o < n;) {
          this[t + o] = r[o++];
        }
      },
          De = {
        entries: function entries() {
          return oe.call(we(this));
        },
        keys: function keys() {
          return ne.call(we(this));
        },
        values: function values() {
          return re.call(we(this));
        }
      },
          Ue = function Ue(e, t) {
        return y(e) && e[ve] && "symbol" != _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(t) && t in e && String(+t) == String(t);
      },
          ke = function ke(e, t) {
        return Ue(e, t = b(t, !0)) ? u(2, e[t]) : j(e, t);
      },
          Be = function Be(e, t, i) {
        return !(Ue(e, t = b(t, !0)) && y(i) && v(i, "value")) || v(i, "get") || v(i, "set") || i.configurable || v(i, "writable") && !i.writable || v(i, "enumerable") && !i.enumerable ? W(e, t, i) : (e[t] = i.value, e);
      };

      be || (B.f = ke, k.f = Be), a(a.S + a.F * !be, "Object", {
        getOwnPropertyDescriptor: ke,
        defineProperty: Be
      }), o(function () {
        he.call({});
      }) && (he = fe = function fe() {
        return le.call(this);
      });
      var We = f({}, Re);
      f(We, De), h(We, de, De.values), f(We, {
        slice: Oe,
        set: Fe,
        constructor: function constructor() {},
        toString: he,
        toLocaleString: Le
      }), Te(We, "buffer", "b"), Te(We, "byteOffset", "o"), Te(We, "byteLength", "l"), Te(We, "length", "e"), W(We, ge, {
        get: function get() {
          return this[ve];
        }
      }), e.exports = function (e, t, i, x) {
        var l = e + ((x = !!x) ? "Clamped" : "") + "Array",
            u = "get" + e,
            f = "set" + e,
            d = n[l],
            m = d || {},
            b = d && w(d),
            v = !d || !s.ABV,
            _ = {},
            A = d && d.prototype,
            E = function E(e, i) {
          W(e, i, {
            get: function get() {
              return function (e, i) {
                var r = e._d;
                return r.v[u](i * t + r.o, _e);
              }(this, i);
            },
            set: function set(e) {
              return function (e, i, r) {
                var n = e._d;
                x && (r = (r = Math.round(r)) < 0 ? 0 : r > 255 ? 255 : 255 & r), n.v[f](i * t + n.o, r, _e);
              }(this, i, e);
            },
            enumerable: !0
          });
        };

        v ? (d = i(function (e, i, r, n) {
          c(e, d, l, "_d");
          var o,
              a,
              s,
              x,
              u = 0,
              f = 0;

          if (y(i)) {
            if (!(i instanceof X || "ArrayBuffer" == (x = C(i)) || "SharedArrayBuffer" == x)) return ve in i ? Se(d, i) : Pe.call(d, i);
            o = i, f = Ie(r, t);
            var m = i.byteLength;

            if (void 0 === n) {
              if (m % t) throw V("Wrong length!");
              if ((a = m - f) < 0) throw V("Wrong length!");
            } else if ((a = g(n) * t) + f > m) throw V("Wrong length!");

            s = a / t;
          } else s = p(i), o = new X(a = s * t);

          for (h(e, "_d", {
            b: o,
            o: f,
            l: a,
            e: s,
            v: new Y(o)
          }); u < s;) {
            E(e, u++);
          }
        }), A = d.prototype = I(We), h(A, "constructor", d)) : o(function () {
          d(1);
        }) && o(function () {
          new d(-1);
        }) && O(function (e) {
          new d(), new d(null), new d(1.5), new d(e);
        }, !0) || (d = i(function (e, i, r, n) {
          var o;
          return c(e, d, l), y(i) ? i instanceof X || "ArrayBuffer" == (o = C(i)) || "SharedArrayBuffer" == o ? void 0 !== n ? new m(i, Ie(r, t), n) : void 0 !== r ? new m(i, Ie(r, t)) : new m(i) : ve in i ? Se(d, i) : Pe.call(d, i) : new m(p(i));
        }), K(b !== Function.prototype ? G(m).concat(G(b)) : G(m), function (e) {
          e in d || h(d, e, m[e]);
        }), d.prototype = A, r || (A.constructor = d));
        var S = A[de],
            T = !!S && ("values" == S.name || null == S.name),
            P = De.values;
        h(d, pe, !0), h(A, ve, l), h(A, Ce, !0), h(A, me, d), (x ? new d(1)[ge] == l : ge in A) || W(A, ge, {
          get: function get() {
            return l;
          }
        }), _[l] = d, a(a.G + a.W + a.F * (d != m), _), a(a.S, l, {
          BYTES_PER_ELEMENT: t
        }), a(a.S + a.F * o(function () {
          m.of.call(d, 1);
        }), l, {
          from: Pe,
          of: Me
        }), "BYTES_PER_ELEMENT" in A || h(A, "BYTES_PER_ELEMENT", t), a(a.P, l, Re), F(l), a(a.P + a.F * Ae, l, {
          set: Fe
        }), a(a.P + a.F * !T, l, De), r || A.toString == he || (A.toString = he), a(a.P + a.F * o(function () {
          new d(1).slice();
        }), l, {
          slice: Oe
        }), a(a.P + a.F * (o(function () {
          return [1, 2].toLocaleString() != new d([1, 2]).toLocaleString();
        }) || !o(function () {
          A.toLocaleString.call([1, 2]);
        })), l, {
          toLocaleString: Le
        }), R[l] = T ? S : P, r || T || h(A, de, P);
      };
    } else e.exports = function () {};
  }, function (e, t) {
    e.exports = !1;
  }, function (e, t) {
    e.exports = {};
  }, function (e, t, i) {
    var r = i(100),
        n = i(38);

    e.exports = function (e) {
      return r(n(e));
    };
  }, function (e, t) {
    e.exports = function (e) {
      if (null == e) throw TypeError("Can't call method on  " + e);
      return e;
    };
  }, function (e, t, i) {
    var r = i(156),
        n = i(56);

    e.exports = function (e) {
      return r(n(e));
    };
  }, function (e, t) {
    e.exports = function (e) {
      try {
        return !!e();
      } catch (e) {
        return !0;
      }
    };
  }, function (e, t, i) {
    var r = i(102),
        n = i(71).concat("length", "prototype");

    t.f = Object.getOwnPropertyNames || function (e) {
      return r(e, n);
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(97),
        n = i(148),
        o = i(36),
        a = i(37);
    e.exports = i(149)(Array, "Array", function (e, t) {
      this._t = a(e), this._i = 0, this._k = t;
    }, function () {
      var e = this._t,
          t = this._k,
          i = this._i++;
      return !e || i >= e.length ? (this._t = void 0, n(1)) : n(0, "keys" == t ? i : "values" == t ? e[i] : [i, e[i]]);
    }, "values"), o.Arguments = o.Array, r("keys"), r("values"), r("entries");
  }, function (e, t) {
    var i = e.exports = {
      version: "2.6.11"
    };
    "number" == typeof __e && (__e = i);
  }, function (e, t, i) {
    var r = i(21);

    e.exports = function (e, t) {
      if (!r(e)) return e;
      var i, n;
      if (t && "function" == typeof (i = e.toString) && !r(n = i.call(e))) return n;
      if ("function" == typeof (i = e.valueOf) && !r(n = i.call(e))) return n;
      if (!t && "function" == typeof (i = e.toString) && !r(n = i.call(e))) return n;
      throw TypeError("Can't convert object to primitive value");
    };
  }, function (e, t) {
    e.exports = function (e, t) {
      return {
        enumerable: !(1 & e),
        configurable: !(2 & e),
        writable: !(4 & e),
        value: t
      };
    };
  }, function (e, t) {
    var i = {}.toString;

    e.exports = function (e) {
      return i.call(e).slice(8, -1);
    };
  }, function (e, t) {
    var i = {}.toString;

    e.exports = function (e) {
      return i.call(e).slice(8, -1);
    };
  }, function (e, t) {
    e.exports = !0;
  }, function (e, t) {
    e.exports = {};
  }, function (e, t, i) {
    var r = i(43),
        n = i(10),
        o = n["__core-js_shared__"] || (n["__core-js_shared__"] = {});
    (e.exports = function (e, t) {
      return o[e] || (o[e] = void 0 !== t ? t : {});
    })("versions", []).push({
      version: r.version,
      mode: i(35) ? "pure" : "global",
      copyright: "© 2019 Denis Pushkarev (zloirock.ru)"
    });
  }, function (e, t, i) {
    var r = i(101);

    e.exports = function (e, t, i) {
      if (r(e), void 0 === t) return e;

      switch (i) {
        case 1:
          return function (i) {
            return e.call(t, i);
          };

        case 2:
          return function (i, r) {
            return e.call(t, i, r);
          };

        case 3:
          return function (i, r, n) {
            return e.call(t, i, r, n);
          };
      }

      return function () {
        return e.apply(t, arguments);
      };
    };
  }, function (e, t, i) {
    var r = i(17),
        n = i(152),
        o = i(71),
        a = i(70)("IE_PROTO"),
        s = function s() {},
        _x4 = function x() {
      var e,
          t = i(99)("iframe"),
          r = o.length;

      for (t.style.display = "none", i(153).appendChild(t), t.src = "javascript:", (e = t.contentWindow.document).open(), e.write("<script>document.F=Object</script>"), e.close(), _x4 = e.F; r--;) {
        delete _x4.prototype[o[r]];
      }

      return _x4();
    };

    e.exports = Object.create || function (e, t) {
      var i;
      return null !== e ? (s.prototype = r(e), i = new s(), s.prototype = null, i[a] = e) : i = _x4(), void 0 === t ? i : n(i, t);
    };
  }, function (e, t, i) {
    var r = i(102),
        n = i(71);

    e.exports = Object.keys || function (e) {
      return r(e, n);
    };
  }, function (e, t, i) {
    var r = i(29),
        n = Math.max,
        o = Math.min;

    e.exports = function (e, t) {
      return (e = r(e)) < 0 ? n(e + t, 0) : o(e, t);
    };
  }, function (e, t, i) {
    var r = i(13).f,
        n = i(24),
        o = i(4)("toStringTag");

    e.exports = function (e, t, i) {
      e && !n(e = i ? e : e.prototype, o) && r(e, o, {
        configurable: !0,
        value: t
      });
    };
  }, function (e, t) {
    e.exports = function (e) {
      if (null == e) throw TypeError("Can't call method on  " + e);
      return e;
    };
  }, function (e, t, i) {
    var r = i(105),
        n = i(76);

    e.exports = Object.keys || function (e) {
      return r(e, n);
    };
  }, function (e, t) {
    var i = 0,
        r = Math.random();

    e.exports = function (e) {
      return "Symbol(".concat(void 0 === e ? "" : e, ")_", (++i + r).toString(36));
    };
  }, function (e, t, i) {
    var r = i(60);

    e.exports = function (e, t, i) {
      if (r(e), void 0 === t) return e;

      switch (i) {
        case 1:
          return function (i) {
            return e.call(t, i);
          };

        case 2:
          return function (i, r) {
            return e.call(t, i, r);
          };

        case 3:
          return function (i, r, n) {
            return e.call(t, i, r, n);
          };
      }

      return function () {
        return e.apply(t, arguments);
      };
    };
  }, function (e, t) {
    e.exports = function (e) {
      if ("function" != typeof e) throw TypeError(e + " is not a function!");
      return e;
    };
  }, function (e, t) {
    e.exports = function (e, t) {
      return {
        enumerable: !(1 & e),
        configurable: !(2 & e),
        writable: !(4 & e),
        value: t
      };
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(63),
        n = RegExp.prototype.exec;

    e.exports = function (e, t) {
      var i = e.exec;

      if ("function" == typeof i) {
        var o = i.call(e, t);
        if ("object" != _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(o)) throw new TypeError("RegExp exec method returned something other than an Object or null");
        return o;
      }

      if ("RegExp" !== r(e)) throw new TypeError("RegExp#exec called on incompatible receiver");
      return n.call(e, t);
    };
  }, function (e, t, i) {
    var r = i(46),
        n = i(4)("toStringTag"),
        o = "Arguments" == r(function () {
      return arguments;
    }());

    e.exports = function (e) {
      var t, i, a;
      return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (i = function (e, t) {
        try {
          return e[t];
        } catch (e) {}
      }(t = Object(e), n)) ? i : o ? r(t) : "Object" == (a = r(t)) && "function" == typeof t.callee ? "Arguments" : a;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(17);

    e.exports = function () {
      var e = r(this),
          t = "";
      return e.global && (t += "g"), e.ignoreCase && (t += "i"), e.multiline && (t += "m"), e.unicode && (t += "u"), e.sticky && (t += "y"), t;
    };
  }, function (e, t, i) {
    "use strict";

    i(163);

    var r = i(22),
        n = i(20),
        o = i(18),
        a = i(38),
        s = i(4),
        x = i(82),
        l = s("species"),
        c = !o(function () {
      var e = /./;
      return e.exec = function () {
        var e = [];
        return e.groups = {
          a: "7"
        }, e;
      }, "7" !== "".replace(e, "$<a>");
    }),
        u = function () {
      var e = /(?:)/,
          t = e.exec;

      e.exec = function () {
        return t.apply(this, arguments);
      };

      var i = "ab".split(e);
      return 2 === i.length && "a" === i[0] && "b" === i[1];
    }();

    e.exports = function (e, t, i) {
      var h = s(e),
          f = !o(function () {
        var t = {};
        return t[h] = function () {
          return 7;
        }, 7 != ""[e](t);
      }),
          d = f ? !o(function () {
        var t = !1,
            i = /a/;
        return i.exec = function () {
          return t = !0, null;
        }, "split" === e && (i.constructor = {}, i.constructor[l] = function () {
          return i;
        }), i[h](""), !t;
      }) : void 0;

      if (!f || !d || "replace" === e && !c || "split" === e && !u) {
        var g = /./[h],
            p = i(a, h, ""[e], function (e, t, i, r, n) {
          return t.exec === x ? f && !n ? {
            done: !0,
            value: g.call(t, i, r)
          } : {
            done: !0,
            value: e.call(i, t, r)
          } : {
            done: !1
          };
        }),
            m = p[0],
            b = p[1];
        r(String.prototype, e, m), n(RegExp.prototype, h, 2 == t ? function (e, t) {
          return b.call(e, this, t);
        } : function (e) {
          return b.call(e, this);
        });
      }
    };
  }, function (e, t, i) {
    var r = i(26).f,
        n = i(31),
        o = i(14)("toStringTag");

    e.exports = function (e, t, i) {
      e && !n(e = i ? e : e.prototype, o) && r(e, o, {
        configurable: !0,
        value: t
      });
    };
  }, function (e, t, i) {
    var r = i(93),
        n = i(45),
        o = i(37),
        a = i(44),
        s = i(24),
        x = i(98),
        l = Object.getOwnPropertyDescriptor;
    t.f = i(11) ? l : function (e, t) {
      if (e = o(e), t = a(t, !0), x) try {
        return l(e, t);
      } catch (e) {}
      if (s(e, t)) return n(!r.f.call(e, t), e[t]);
    };
  }, function (e, t, i) {
    e.exports = i(214);
  }, function (e, t, i) {
    for (var r = i(42), n = i(53), o = i(22), a = i(10), s = i(20), x = i(36), l = i(4), c = l("iterator"), u = l("toStringTag"), h = x.Array, f = {
      CSSRuleList: !0,
      CSSStyleDeclaration: !1,
      CSSValueList: !1,
      ClientRectList: !1,
      DOMRectList: !1,
      DOMStringList: !1,
      DOMTokenList: !0,
      DataTransferItemList: !1,
      FileList: !1,
      HTMLAllCollection: !1,
      HTMLCollection: !1,
      HTMLFormElement: !1,
      HTMLSelectElement: !1,
      MediaList: !0,
      MimeTypeArray: !1,
      NamedNodeMap: !1,
      NodeList: !0,
      PaintRequestList: !1,
      Plugin: !1,
      PluginArray: !1,
      SVGLengthList: !1,
      SVGNumberList: !1,
      SVGPathSegList: !1,
      SVGPointList: !1,
      SVGStringList: !1,
      SVGTransformList: !1,
      SourceBufferList: !1,
      StyleSheetList: !0,
      TextTrackCueList: !1,
      TextTrackList: !1,
      TouchList: !1
    }, d = n(f), g = 0; g < d.length; g++) {
      var p,
          m = d[g],
          b = f[m],
          v = a[m],
          C = v && v.prototype;
      if (C && (C[c] || s(C, c, h), C[u] || s(C, u, m), x[m] = h, b)) for (p in r) {
        C[p] || o(C, p, r[p], !0);
      }
    }
  }, function (e, t, i) {
    var r = i(50)("keys"),
        n = i(28);

    e.exports = function (e) {
      return r[e] || (r[e] = n(e));
    };
  }, function (e, t) {
    e.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
  }, function (e, t, i) {
    var r = i(56);

    e.exports = function (e) {
      return Object(r(e));
    };
  }, function (e, t) {
    var i = Math.ceil,
        r = Math.floor;

    e.exports = function (e) {
      return isNaN(e = +e) ? 0 : (e > 0 ? r : i)(e);
    };
  }, function (e, t, i) {
    var r = i(75)("keys"),
        n = i(58);

    e.exports = function (e) {
      return r[e] || (r[e] = n(e));
    };
  }, function (e, t, i) {
    var r = i(5),
        n = i(7),
        o = n["__core-js_shared__"] || (n["__core-js_shared__"] = {});
    (e.exports = function (e, t) {
      return o[e] || (o[e] = void 0 !== t ? t : {});
    })("versions", []).push({
      version: r.version,
      mode: i(48) ? "pure" : "global",
      copyright: "© 2019 Denis Pushkarev (zloirock.ru)"
    });
  }, function (e, t) {
    e.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
  }, function (e, t, i) {
    var r = i(33),
        n = i(7).document,
        o = r(n) && r(n.createElement);

    e.exports = function (e) {
      return o ? n.createElement(e) : {};
    };
  }, function (e, t, i) {
    var r = i(33);

    e.exports = function (e, t) {
      if (!r(e)) return e;
      var i, n;
      if (t && "function" == typeof (i = e.toString) && !r(n = i.call(e))) return n;
      if ("function" == typeof (i = e.valueOf) && !r(n = i.call(e))) return n;
      if (!t && "function" == typeof (i = e.toString) && !r(n = i.call(e))) return n;
      throw TypeError("Can't convert object to primitive value");
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(80),
        n = i(17),
        o = i(108),
        a = i(81),
        s = i(19),
        x = i(62),
        l = i(82),
        c = i(18),
        u = Math.min,
        h = [].push,
        f = "length",
        d = !c(function () {
      RegExp(4294967295, "y");
    });
    i(65)("split", 2, function (e, t, i, c) {
      var g;
      return g = "c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1)[f] || 2 != "ab".split(/(?:ab)*/)[f] || 4 != ".".split(/(.?)(.?)/)[f] || ".".split(/()()/)[f] > 1 || "".split(/.?/)[f] ? function (e, t) {
        var n = String(this);
        if (void 0 === e && 0 === t) return [];
        if (!r(e)) return i.call(n, e, t);

        for (var o, a, s, x = [], c = (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.unicode ? "u" : "") + (e.sticky ? "y" : ""), u = 0, d = void 0 === t ? 4294967295 : t >>> 0, g = new RegExp(e.source, c + "g"); (o = l.call(g, n)) && !((a = g.lastIndex) > u && (x.push(n.slice(u, o.index)), o[f] > 1 && o.index < n[f] && h.apply(x, o.slice(1)), s = o[0][f], u = a, x[f] >= d));) {
          g.lastIndex === o.index && g.lastIndex++;
        }

        return u === n[f] ? !s && g.test("") || x.push("") : x.push(n.slice(u)), x[f] > d ? x.slice(0, d) : x;
      } : "0".split(void 0, 0)[f] ? function (e, t) {
        return void 0 === e && 0 === t ? [] : i.call(this, e, t);
      } : i, [function (i, r) {
        var n = e(this),
            o = null == i ? void 0 : i[t];
        return void 0 !== o ? o.call(i, n, r) : g.call(String(n), i, r);
      }, function (e, t) {
        var r = c(g, e, this, t, g !== i);
        if (r.done) return r.value;
        var l = n(e),
            h = String(this),
            f = o(l, RegExp),
            p = l.unicode,
            m = (l.ignoreCase ? "i" : "") + (l.multiline ? "m" : "") + (l.unicode ? "u" : "") + (d ? "y" : "g"),
            b = new f(d ? l : "^(?:" + l.source + ")", m),
            v = void 0 === t ? 4294967295 : t >>> 0;
        if (0 === v) return [];
        if (0 === h.length) return null === x(b, h) ? [h] : [];

        for (var C = 0, y = 0, _ = []; y < h.length;) {
          b.lastIndex = d ? y : 0;
          var A,
              I = x(b, d ? h : h.slice(y));
          if (null === I || (A = u(s(b.lastIndex + (d ? 0 : y)), h.length)) === C) y = a(h, y, p);else {
            if (_.push(h.slice(C, y)), _.length === v) return _;

            for (var w = 1; w <= I.length - 1; w++) {
              if (_.push(I[w]), _.length === v) return _;
            }

            y = C = A;
          }
        }

        return _.push(h.slice(C)), _;
      }];
    });
  }, function (e, t, i) {
    var r = i(21),
        n = i(46),
        o = i(4)("match");

    e.exports = function (e) {
      var t;
      return r(e) && (void 0 !== (t = e[o]) ? !!t : "RegExp" == n(e));
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(162)(!0);

    e.exports = function (e, t, i) {
      return t + (i ? r(e, t).length : 1);
    };
  }, function (e, t, i) {
    "use strict";

    var r,
        n,
        o = i(64),
        a = RegExp.prototype.exec,
        s = String.prototype.replace,
        x = a,
        l = (r = /a/, n = /b*/g, a.call(r, "a"), a.call(n, "a"), 0 !== r.lastIndex || 0 !== n.lastIndex),
        c = void 0 !== /()??/.exec("")[1];
    (l || c) && (x = function x(e) {
      var t,
          i,
          r,
          n,
          x = this;
      return c && (i = new RegExp("^" + x.source + "$(?!\\s)", o.call(x))), l && (t = x.lastIndex), r = a.call(x, e), l && r && (x.lastIndex = x.global ? r.index + r[0].length : t), c && r && r.length > 1 && s.call(r[0], i, function () {
        for (n = 1; n < arguments.length - 2; n++) {
          void 0 === arguments[n] && (r[n] = void 0);
        }
      }), r;
    }), e.exports = x;
  }, function (e, t, i) {
    var r = i(27),
        n = i(109),
        o = i(76),
        a = i(74)("IE_PROTO"),
        s = function s() {},
        _x5 = function x() {
      var e,
          t = i(77)("iframe"),
          r = o.length;

      for (t.style.display = "none", i(110).appendChild(t), t.src = "javascript:", (e = t.contentWindow.document).open(), e.write("<script>document.F=Object</script>"), e.close(), _x5 = e.F; r--;) {
        delete _x5.prototype[o[r]];
      }

      return _x5();
    };

    e.exports = Object.create || function (e, t) {
      var i;
      return null !== e ? (s.prototype = r(e), i = new s(), s.prototype = null, i[a] = e) : i = _x5(), void 0 === t ? i : n(i, t);
    };
  }, function (e, t, i) {
    var r = i(13).f,
        n = Function.prototype,
        o = /^\s*function ([^ (]*)/;
    "name" in n || i(11) && r(n, "name", {
      configurable: !0,
      get: function get() {
        try {
          return ("" + this).match(o)[1];
        } catch (e) {
          return "";
        }
      }
    });
  }, function (e, t, i) {
    "use strict";

    i(166);

    var r = i(17),
        n = i(64),
        o = i(11),
        a = /./.toString,
        s = function s(e) {
      i(22)(RegExp.prototype, "toString", e, !0);
    };

    i(18)(function () {
      return "/a/b" != a.call({
        source: "a",
        flags: "b"
      });
    }) ? s(function () {
      var e = r(this);
      return "/".concat(e.source, "/", "flags" in e ? e.flags : !o && e instanceof RegExp ? n.call(e) : void 0);
    }) : "toString" != a.name && s(function () {
      return a.call(this);
    });
  }, function (e, t, i) {
    "use strict";

    var r = i(63),
        n = {};
    n[i(4)("toStringTag")] = "z", n + "" != "[object z]" && i(22)(Object.prototype, "toString", function () {
      return "[object " + r(this) + "]";
    }, !0);
  }, function (e, t) {
    e.exports = "\t\n\x0B\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
  }, function (e, t, i) {
    "use strict";

    var r = i(17),
        n = i(30),
        o = i(19),
        a = i(29),
        s = i(81),
        x = i(62),
        l = Math.max,
        c = Math.min,
        u = Math.floor,
        h = /\$([$&`']|\d\d?|<[^>]*>)/g,
        f = /\$([$&`']|\d\d?)/g;
    i(65)("replace", 2, function (e, t, i, d) {
      return [function (r, n) {
        var o = e(this),
            a = null == r ? void 0 : r[t];
        return void 0 !== a ? a.call(r, o, n) : i.call(String(o), r, n);
      }, function (e, t) {
        var n = d(i, e, this, t);
        if (n.done) return n.value;
        var u = r(e),
            h = String(this),
            f = "function" == typeof t;
        f || (t = String(t));
        var p = u.global;

        if (p) {
          var m = u.unicode;
          u.lastIndex = 0;
        }

        for (var b = [];;) {
          var v = x(u, h);
          if (null === v) break;
          if (b.push(v), !p) break;
          "" === String(v[0]) && (u.lastIndex = s(h, o(u.lastIndex), m));
        }

        for (var C, y = "", _ = 0, A = 0; A < b.length; A++) {
          v = b[A];

          for (var I = String(v[0]), w = l(c(a(v.index), h.length), 0), G = [], E = 1; E < v.length; E++) {
            G.push(void 0 === (C = v[E]) ? C : String(C));
          }

          var S = v.groups;

          if (f) {
            var T = [I].concat(G, w, h);
            void 0 !== S && T.push(S);
            var P = String(t.apply(void 0, T));
          } else P = g(I, h, w, G, S, t);

          w >= _ && (y += h.slice(_, w) + P, _ = w + I.length);
        }

        return y + h.slice(_);
      }];

      function g(e, t, r, o, a, s) {
        var x = r + e.length,
            l = o.length,
            c = f;
        return void 0 !== a && (a = n(a), c = h), i.call(s, c, function (i, n) {
          var s;

          switch (n.charAt(0)) {
            case "$":
              return "$";

            case "&":
              return e;

            case "`":
              return t.slice(0, r);

            case "'":
              return t.slice(x);

            case "<":
              s = a[n.slice(1, -1)];
              break;

            default:
              var c = +n;
              if (0 === c) return i;

              if (c > l) {
                var h = u(c / 10);
                return 0 === h ? i : h <= l ? void 0 === o[h - 1] ? n.charAt(1) : o[h - 1] + n.charAt(1) : i;
              }

              s = o[c - 1];
          }

          return void 0 === s ? "" : s;
        });
      }
    });
  }, function (e, t, i) {
    t.f = i(14);
  }, function (e, t, i) {
    var r = i(7),
        n = i(5),
        o = i(48),
        a = i(89),
        s = i(26).f;

    e.exports = function (e) {
      var t = n.Symbol || (n.Symbol = o ? {} : r.Symbol || {});
      "_" == e.charAt(0) || e in t || s(t, e, {
        value: a.f(e)
      });
    };
  }, function (e, t) {
    t.f = {}.propertyIsEnumerable;
  }, function (e, t, i) {
    "use strict";

    var r = i(30),
        n = i(54),
        o = i(19);

    e.exports = function (e) {
      for (var t = r(this), i = o(t.length), a = arguments.length, s = n(a > 1 ? arguments[1] : void 0, i), x = a > 2 ? arguments[2] : void 0, l = void 0 === x ? i : n(x, i); l > s;) {
        t[s++] = e;
      }

      return t;
    };
  }, function (e, t) {
    t.f = {}.propertyIsEnumerable;
  }, function (e, t, i) {
    "use strict";

    var r = i(60);

    function n(e) {
      var t, i;
      this.promise = new e(function (e, r) {
        if (void 0 !== t || void 0 !== i) throw TypeError("Bad Promise constructor");
        t = e, i = r;
      }), this.resolve = r(t), this.reject = r(i);
    }

    e.exports.f = function (e) {
      return new n(e);
    };
  }, function (e, t) {
    var i,
        r,
        n = e.exports = {};

    function o() {
      throw new Error("setTimeout has not been defined");
    }

    function a() {
      throw new Error("clearTimeout has not been defined");
    }

    function s(e) {
      if (i === setTimeout) return setTimeout(e, 0);
      if ((i === o || !i) && setTimeout) return i = setTimeout, setTimeout(e, 0);

      try {
        return i(e, 0);
      } catch (t) {
        try {
          return i.call(null, e, 0);
        } catch (t) {
          return i.call(this, e, 0);
        }
      }
    }

    !function () {
      try {
        i = "function" == typeof setTimeout ? setTimeout : o;
      } catch (e) {
        i = o;
      }

      try {
        r = "function" == typeof clearTimeout ? clearTimeout : a;
      } catch (e) {
        r = a;
      }
    }();
    var x,
        l = [],
        c = !1,
        u = -1;

    function h() {
      c && x && (c = !1, x.length ? l = x.concat(l) : u = -1, l.length && f());
    }

    function f() {
      if (!c) {
        var e = s(h);
        c = !0;

        for (var t = l.length; t;) {
          for (x = l, l = []; ++u < t;) {
            x && x[u].run();
          }

          u = -1, t = l.length;
        }

        x = null, c = !1, function (e) {
          if (r === clearTimeout) return clearTimeout(e);
          if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(e);

          try {
            r(e);
          } catch (t) {
            try {
              return r.call(null, e);
            } catch (t) {
              return r.call(this, e);
            }
          }
        }(e);
      }
    }

    function d(e, t) {
      this.fun = e, this.array = t;
    }

    function g() {}

    n.nextTick = function (e) {
      var t = new Array(arguments.length - 1);
      if (arguments.length > 1) for (var i = 1; i < arguments.length; i++) {
        t[i - 1] = arguments[i];
      }
      l.push(new d(e, t)), 1 !== l.length || c || s(f);
    }, d.prototype.run = function () {
      this.fun.apply(null, this.array);
    }, n.title = "browser", n.browser = !0, n.env = {}, n.argv = [], n.version = "", n.versions = {}, n.on = g, n.addListener = g, n.once = g, n.off = g, n.removeListener = g, n.removeAllListeners = g, n.emit = g, n.prependListener = g, n.prependOnceListener = g, n.listeners = function (e) {
      return [];
    }, n.binding = function (e) {
      throw new Error("process.binding is not supported");
    }, n.cwd = function () {
      return "/";
    }, n.chdir = function (e) {
      throw new Error("process.chdir is not supported");
    }, n.umask = function () {
      return 0;
    };
  }, function (e, t) {
    e.exports = function (e) {
      if (!e.webpackPolyfill) {
        var t = Object.create(e);
        t.children || (t.children = []), Object.defineProperty(t, "loaded", {
          enumerable: !0,
          get: function get() {
            return t.l;
          }
        }), Object.defineProperty(t, "id", {
          enumerable: !0,
          get: function get() {
            return t.i;
          }
        }), Object.defineProperty(t, "exports", {
          enumerable: !0
        }), t.webpackPolyfill = 1;
      }

      return t;
    };
  }, function (e, t, i) {
    var r = i(4)("unscopables"),
        n = Array.prototype;
    null == n[r] && i(20)(n, r, {}), e.exports = function (e) {
      n[r][e] = !0;
    };
  }, function (e, t, i) {
    e.exports = !i(11) && !i(18)(function () {
      return 7 != Object.defineProperty(i(99)("div"), "a", {
        get: function get() {
          return 7;
        }
      }).a;
    });
  }, function (e, t, i) {
    var r = i(21),
        n = i(10).document,
        o = r(n) && r(n.createElement);

    e.exports = function (e) {
      return o ? n.createElement(e) : {};
    };
  }, function (e, t, i) {
    var r = i(46);
    e.exports = Object("z").propertyIsEnumerable(0) ? Object : function (e) {
      return "String" == r(e) ? e.split("") : Object(e);
    };
  }, function (e, t) {
    e.exports = function (e) {
      if ("function" != typeof e) throw TypeError(e + " is not a function!");
      return e;
    };
  }, function (e, t, i) {
    var r = i(24),
        n = i(37),
        o = i(103)(!1),
        a = i(70)("IE_PROTO");

    e.exports = function (e, t) {
      var i,
          s = n(e),
          x = 0,
          l = [];

      for (i in s) {
        i != a && r(s, i) && l.push(i);
      }

      for (; t.length > x;) {
        r(s, i = t[x++]) && (~o(l, i) || l.push(i));
      }

      return l;
    };
  }, function (e, t, i) {
    var r = i(37),
        n = i(19),
        o = i(54);

    e.exports = function (e) {
      return function (t, i, a) {
        var s,
            x = r(t),
            l = n(x.length),
            c = o(a, l);

        if (e && i != i) {
          for (; l > c;) {
            if ((s = x[c++]) != s) return !0;
          }
        } else for (; l > c; c++) {
          if ((e || c in x) && x[c] === i) return e || c || 0;
        }

        return !e && -1;
      };
    };
  }, function (e, t, i) {
    var r = i(24),
        n = i(30),
        o = i(70)("IE_PROTO"),
        a = Object.prototype;

    e.exports = Object.getPrototypeOf || function (e) {
      return e = n(e), r(e, o) ? e[o] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? a : null;
    };
  }, function (e, t, i) {
    var r = i(31),
        n = i(39),
        o = i(157)(!1),
        a = i(74)("IE_PROTO");

    e.exports = function (e, t) {
      var i,
          s = n(e),
          x = 0,
          l = [];

      for (i in s) {
        i != a && r(s, i) && l.push(i);
      }

      for (; t.length > x;) {
        r(s, i = t[x++]) && (~o(l, i) || l.push(i));
      }

      return l;
    };
  }, function (e, t, i) {
    var r = i(73),
        n = Math.min;

    e.exports = function (e) {
      return e > 0 ? n(r(e), 9007199254740991) : 0;
    };
  }, function (e, t, i) {
    e.exports = !i(25) && !i(40)(function () {
      return 7 != Object.defineProperty(i(77)("div"), "a", {
        get: function get() {
          return 7;
        }
      }).a;
    });
  }, function (e, t, i) {
    var r = i(17),
        n = i(101),
        o = i(4)("species");

    e.exports = function (e, t) {
      var i,
          a = r(e).constructor;
      return void 0 === a || null == (i = r(a)[o]) ? t : n(i);
    };
  }, function (e, t, i) {
    var r = i(26),
        n = i(27),
        o = i(57);
    e.exports = i(25) ? Object.defineProperties : function (e, t) {
      n(e);

      for (var i, a = o(t), s = a.length, x = 0; s > x;) {
        r.f(e, i = a[x++], t[i]);
      }

      return e;
    };
  }, function (e, t, i) {
    var r = i(7).document;
    e.exports = r && r.documentElement;
  }, function (e, t, i) {
    var r = i(47);

    e.exports = Array.isArray || function (e) {
      return "Array" == r(e);
    };
  }, function (e, t, i) {
    var r = i(12),
        n = i(56),
        o = i(40),
        a = i(87),
        s = "[" + a + "]",
        x = RegExp("^" + s + s + "*"),
        l = RegExp(s + s + "*$"),
        c = function c(e, t, i) {
      var n = {},
          s = o(function () {
        return !!a[e]() || "​" != "​"[e]();
      }),
          x = n[e] = s ? t(u) : a[e];
      i && (n[i] = x), r(r.P + r.F * s, "String", n);
    },
        u = c.trim = function (e, t) {
      return e = String(n(e)), 1 & t && (e = e.replace(x, "")), 2 & t && (e = e.replace(l, "")), e;
    };

    e.exports = c;
  }, function (e, t, i) {
    "use strict";

    var r = i(177)(!0);
    i(114)(String, "String", function (e) {
      this._t = String(e), this._i = 0;
    }, function () {
      var e,
          t = this._t,
          i = this._i;
      return i >= t.length ? {
        value: void 0,
        done: !0
      } : (e = r(t, i), this._i += e.length, {
        value: e,
        done: !1
      });
    });
  }, function (e, t, i) {
    "use strict";

    var r = i(48),
        n = i(12),
        o = i(115),
        a = i(32),
        s = i(49),
        x = i(178),
        l = i(66),
        c = i(179),
        u = i(14)("iterator"),
        h = !([].keys && "next" in [].keys()),
        f = function f() {
      return this;
    };

    e.exports = function (e, t, i, d, g, p, m) {
      x(i, t, d);

      var b,
          v,
          C,
          y = function y(e) {
        if (!h && e in w) return w[e];

        switch (e) {
          case "keys":
          case "values":
            return function () {
              return new i(this, e);
            };
        }

        return function () {
          return new i(this, e);
        };
      },
          _ = t + " Iterator",
          A = "values" == g,
          I = !1,
          w = e.prototype,
          G = w[u] || w["@@iterator"] || g && w[g],
          E = G || y(g),
          S = g ? A ? y("entries") : E : void 0,
          T = "Array" == t && w.entries || G;

      if (T && (C = c(T.call(new e()))) !== Object.prototype && C.next && (l(C, _, !0), r || "function" == typeof C[u] || a(C, u, f)), A && G && "values" !== G.name && (I = !0, E = function E() {
        return G.call(this);
      }), r && !m || !h && !I && w[u] || a(w, u, E), s[t] = E, s[_] = f, g) if (b = {
        values: A ? E : y("values"),
        keys: p ? E : y("keys"),
        entries: S
      }, m) for (v in b) {
        v in w || o(w, v, b[v]);
      } else n(n.P + n.F * (h || I), t, b);
      return b;
    };
  }, function (e, t, i) {
    e.exports = i(32);
  }, function (e, t, i) {
    i(180);

    for (var r = i(7), n = i(32), o = i(49), a = i(14)("toStringTag"), s = "CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","), x = 0; x < s.length; x++) {
      var l = s[x],
          c = r[l],
          u = c && c.prototype;
      u && !u[a] && n(u, a, l), o[l] = o.Array;
    }
  }, function (e, t) {
    t.f = Object.getOwnPropertySymbols;
  }, function (e, t, i) {
    var r = i(105),
        n = i(76).concat("length", "prototype");

    t.f = Object.getOwnPropertyNames || function (e) {
      return r(e, n);
    };
  }, function (e, t) {}, function (e, t, i) {
    var r, n, o;
    /**
     * @license bytebuffer.js (c) 2015 Daniel Wirtz <dcode@dcode.io>
     * Backing buffer: ArrayBuffer, Accessor: Uint8Array
     * Released under the Apache License, Version 2.0
     * see: https://github.com/dcodeIO/bytebuffer.js for details
     */

    n = [i(191)], void 0 === (o = "function" == typeof (r = function r(e) {
      "use strict";

      var t = function t(e, i, n) {
        if (void 0 === e && (e = t.DEFAULT_CAPACITY), void 0 === i && (i = t.DEFAULT_ENDIAN), void 0 === n && (n = t.DEFAULT_NOASSERT), !n) {
          if ((e |= 0) < 0) throw RangeError("Illegal capacity");
          i = !!i, n = !!n;
        }

        this.buffer = 0 === e ? r : new ArrayBuffer(e), this.view = 0 === e ? null : new Uint8Array(this.buffer), this.offset = 0, this.markedOffset = -1, this.limit = e, this.littleEndian = i, this.noAssert = n;
      };

      t.VERSION = "5.0.1", t.LITTLE_ENDIAN = !0, t.BIG_ENDIAN = !1, t.DEFAULT_CAPACITY = 16, t.DEFAULT_ENDIAN = t.BIG_ENDIAN, t.DEFAULT_NOASSERT = !1, t.Long = e || null;
      var i = t.prototype;
      i.__isByteBuffer__, Object.defineProperty(i, "__isByteBuffer__", {
        value: !0,
        enumerable: !1,
        configurable: !1
      });
      var r = new ArrayBuffer(0),
          n = String.fromCharCode;

      function o(e) {
        var t = 0;
        return function () {
          return t < e.length ? e.charCodeAt(t++) : null;
        };
      }

      function a() {
        var e = [],
            t = [];
        return function () {
          if (0 === arguments.length) return t.join("") + n.apply(String, e);
          e.length + arguments.length > 1024 && (t.push(n.apply(String, e)), e.length = 0), Array.prototype.push.apply(e, arguments);
        };
      }

      function s(e, t, i, r, n) {
        var o,
            a,
            s = 8 * n - r - 1,
            x = (1 << s) - 1,
            l = x >> 1,
            c = -7,
            u = i ? n - 1 : 0,
            h = i ? -1 : 1,
            f = e[t + u];

        for (u += h, o = f & (1 << -c) - 1, f >>= -c, c += s; c > 0; o = 256 * o + e[t + u], u += h, c -= 8) {
          ;
        }

        for (a = o & (1 << -c) - 1, o >>= -c, c += r; c > 0; a = 256 * a + e[t + u], u += h, c -= 8) {
          ;
        }

        if (0 === o) o = 1 - l;else {
          if (o === x) return a ? NaN : 1 / 0 * (f ? -1 : 1);
          a += Math.pow(2, r), o -= l;
        }
        return (f ? -1 : 1) * a * Math.pow(2, o - r);
      }

      function x(e, t, i, r, n, o) {
        var a,
            s,
            x,
            l = 8 * o - n - 1,
            c = (1 << l) - 1,
            u = c >> 1,
            h = 23 === n ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
            f = r ? 0 : o - 1,
            d = r ? 1 : -1,
            g = 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 * (x = Math.pow(2, -a)) < 1 && (a--, x *= 2), (t += a + u >= 1 ? h / x : h * Math.pow(2, 1 - u)) * x >= 2 && (a++, x /= 2), a + u >= c ? (s = 0, a = c) : a + u >= 1 ? (s = (t * x - 1) * Math.pow(2, n), a += u) : (s = t * Math.pow(2, u - 1) * Math.pow(2, n), a = 0)); n >= 8; e[i + f] = 255 & s, f += d, s /= 256, n -= 8) {
          ;
        }

        for (a = a << n | s, l += n; l > 0; e[i + f] = 255 & a, f += d, a /= 256, l -= 8) {
          ;
        }

        e[i + f - d] |= 128 * g;
      }

      t.accessor = function () {
        return Uint8Array;
      }, t.allocate = function (e, i, r) {
        return new t(e, i, r);
      }, t.concat = function (e, i, r, n) {
        "boolean" != typeof i && "string" == typeof i || (n = r, r = i, i = void 0);

        for (var o, a = 0, s = 0, x = e.length; s < x; ++s) {
          t.isByteBuffer(e[s]) || (e[s] = t.wrap(e[s], i)), (o = e[s].limit - e[s].offset) > 0 && (a += o);
        }

        if (0 === a) return new t(0, r, n);
        var l,
            c = new t(a, r, n);

        for (s = 0; s < x;) {
          (o = (l = e[s++]).limit - l.offset) <= 0 || (c.view.set(l.view.subarray(l.offset, l.limit), c.offset), c.offset += o);
        }

        return c.limit = c.offset, c.offset = 0, c;
      }, t.isByteBuffer = function (e) {
        return !0 === (e && e.__isByteBuffer__);
      }, t.type = function () {
        return ArrayBuffer;
      }, t.wrap = function (e, r, n, o) {
        if ("string" != typeof r && (o = n, n = r, r = void 0), "string" == typeof e) switch (void 0 === r && (r = "utf8"), r) {
          case "base64":
            return t.fromBase64(e, n);

          case "hex":
            return t.fromHex(e, n);

          case "binary":
            return t.fromBinary(e, n);

          case "utf8":
            return t.fromUTF8(e, n);

          case "debug":
            return t.fromDebug(e, n);

          default:
            throw Error("Unsupported encoding: " + r);
        }
        if (null === e || "object" != _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e)) throw TypeError("Illegal buffer");
        var a;
        if (t.isByteBuffer(e)) return (a = i.clone.call(e)).markedOffset = -1, a;
        if (e instanceof Uint8Array) a = new t(0, n, o), e.length > 0 && (a.buffer = e.buffer, a.offset = e.byteOffset, a.limit = e.byteOffset + e.byteLength, a.view = new Uint8Array(e.buffer));else if (e instanceof ArrayBuffer) a = new t(0, n, o), e.byteLength > 0 && (a.buffer = e, a.offset = 0, a.limit = e.byteLength, a.view = e.byteLength > 0 ? new Uint8Array(e) : null);else {
          if ("[object Array]" !== Object.prototype.toString.call(e)) throw TypeError("Illegal buffer");
          (a = new t(e.length, n, o)).limit = e.length;

          for (var s = 0; s < e.length; ++s) {
            a.view[s] = e[s];
          }
        }
        return a;
      }, i.writeBitSet = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if (!(e instanceof Array)) throw TypeError("Illegal BitSet: Not an array");
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        var r,
            n = t,
            o = e.length,
            a = o >> 3,
            s = 0;

        for (t += this.writeVarint32(o, t); a--;) {
          r = 1 & !!e[s++] | (1 & !!e[s++]) << 1 | (1 & !!e[s++]) << 2 | (1 & !!e[s++]) << 3 | (1 & !!e[s++]) << 4 | (1 & !!e[s++]) << 5 | (1 & !!e[s++]) << 6 | (1 & !!e[s++]) << 7, this.writeByte(r, t++);
        }

        if (s < o) {
          var x = 0;

          for (r = 0; s < o;) {
            r |= (1 & !!e[s++]) << x++;
          }

          this.writeByte(r, t++);
        }

        return i ? (this.offset = t, this) : t - n;
      }, i.readBitSet = function (e) {
        var t = void 0 === e;
        t && (e = this.offset);
        var i,
            r = this.readVarint32(e),
            n = r.value,
            o = n >> 3,
            a = 0,
            s = [];

        for (e += r.length; o--;) {
          i = this.readByte(e++), s[a++] = !!(1 & i), s[a++] = !!(2 & i), s[a++] = !!(4 & i), s[a++] = !!(8 & i), s[a++] = !!(16 & i), s[a++] = !!(32 & i), s[a++] = !!(64 & i), s[a++] = !!(128 & i);
        }

        if (a < n) {
          var x = 0;

          for (i = this.readByte(e++); a < n;) {
            s[a++] = !!(i >> x++ & 1);
          }
        }

        return t && (this.offset = e), s;
      }, i.readBytes = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + e > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+" + e + ") <= " + this.buffer.byteLength);
        }

        var r = this.slice(t, t + e);
        return i && (this.offset += e), r;
      }, i.writeBytes = i.append, i.writeInt8 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 1;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 1, this.view[t] = e, i && (this.offset += 1), this;
      }, i.writeByte = i.writeInt8, i.readInt8 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+1) <= " + this.buffer.byteLength);
        }

        var i = this.view[e];
        return 128 == (128 & i) && (i = -(255 - i + 1)), t && (this.offset += 1), i;
      }, i.readByte = i.readInt8, i.writeUint8 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 1;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 1, this.view[t] = e, i && (this.offset += 1), this;
      }, i.writeUInt8 = i.writeUint8, i.readUint8 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+1) <= " + this.buffer.byteLength);
        }

        var i = this.view[e];
        return t && (this.offset += 1), i;
      }, i.readUInt8 = i.readUint8, i.writeInt16 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 2;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 2, this.littleEndian ? (this.view[t + 1] = (65280 & e) >>> 8, this.view[t] = 255 & e) : (this.view[t] = (65280 & e) >>> 8, this.view[t + 1] = 255 & e), i && (this.offset += 2), this;
      }, i.writeShort = i.writeInt16, i.readInt16 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+2) <= " + this.buffer.byteLength);
        }

        var i = 0;
        return this.littleEndian ? (i = this.view[e], i |= this.view[e + 1] << 8) : (i = this.view[e] << 8, i |= this.view[e + 1]), 32768 == (32768 & i) && (i = -(65535 - i + 1)), t && (this.offset += 2), i;
      }, i.readShort = i.readInt16, i.writeUint16 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 2;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 2, this.littleEndian ? (this.view[t + 1] = (65280 & e) >>> 8, this.view[t] = 255 & e) : (this.view[t] = (65280 & e) >>> 8, this.view[t + 1] = 255 & e), i && (this.offset += 2), this;
      }, i.writeUInt16 = i.writeUint16, i.readUint16 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+2) <= " + this.buffer.byteLength);
        }

        var i = 0;
        return this.littleEndian ? (i = this.view[e], i |= this.view[e + 1] << 8) : (i = this.view[e] << 8, i |= this.view[e + 1]), t && (this.offset += 2), i;
      }, i.readUInt16 = i.readUint16, i.writeInt32 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 4;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 4, this.littleEndian ? (this.view[t + 3] = e >>> 24 & 255, this.view[t + 2] = e >>> 16 & 255, this.view[t + 1] = e >>> 8 & 255, this.view[t] = 255 & e) : (this.view[t] = e >>> 24 & 255, this.view[t + 1] = e >>> 16 & 255, this.view[t + 2] = e >>> 8 & 255, this.view[t + 3] = 255 & e), i && (this.offset += 4), this;
      }, i.writeInt = i.writeInt32, i.readInt32 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+4) <= " + this.buffer.byteLength);
        }

        var i = 0;
        return this.littleEndian ? (i = this.view[e + 2] << 16, i |= this.view[e + 1] << 8, i |= this.view[e], i += this.view[e + 3] << 24 >>> 0) : (i = this.view[e + 1] << 16, i |= this.view[e + 2] << 8, i |= this.view[e + 3], i += this.view[e] << 24 >>> 0), i |= 0, t && (this.offset += 4), i;
      }, i.readInt = i.readInt32, i.writeUint32 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 4;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 4, this.littleEndian ? (this.view[t + 3] = e >>> 24 & 255, this.view[t + 2] = e >>> 16 & 255, this.view[t + 1] = e >>> 8 & 255, this.view[t] = 255 & e) : (this.view[t] = e >>> 24 & 255, this.view[t + 1] = e >>> 16 & 255, this.view[t + 2] = e >>> 8 & 255, this.view[t + 3] = 255 & e), i && (this.offset += 4), this;
      }, i.writeUInt32 = i.writeUint32, i.readUint32 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+4) <= " + this.buffer.byteLength);
        }

        var i = 0;
        return this.littleEndian ? (i = this.view[e + 2] << 16, i |= this.view[e + 1] << 8, i |= this.view[e], i += this.view[e + 3] << 24 >>> 0) : (i = this.view[e + 1] << 16, i |= this.view[e + 2] << 8, i |= this.view[e + 3], i += this.view[e] << 24 >>> 0), t && (this.offset += 4), i;
      }, i.readUInt32 = i.readUint32, e && (i.writeInt64 = function (t, i) {
        var r = void 0 === i;

        if (r && (i = this.offset), !this.noAssert) {
          if ("number" == typeof t) t = e.fromNumber(t);else if ("string" == typeof t) t = e.fromString(t);else if (!(t && t instanceof e)) throw TypeError("Illegal value: " + t + " (not an integer or Long)");
          if ("number" != typeof i || i % 1 != 0) throw TypeError("Illegal offset: " + i + " (not an integer)");
          if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength);
        }

        "number" == typeof t ? t = e.fromNumber(t) : "string" == typeof t && (t = e.fromString(t)), i += 8;
        var n = this.buffer.byteLength;
        i > n && this.resize((n *= 2) > i ? n : i), i -= 8;
        var o = t.low,
            a = t.high;
        return this.littleEndian ? (this.view[i + 3] = o >>> 24 & 255, this.view[i + 2] = o >>> 16 & 255, this.view[i + 1] = o >>> 8 & 255, this.view[i] = 255 & o, i += 4, this.view[i + 3] = a >>> 24 & 255, this.view[i + 2] = a >>> 16 & 255, this.view[i + 1] = a >>> 8 & 255, this.view[i] = 255 & a) : (this.view[i] = a >>> 24 & 255, this.view[i + 1] = a >>> 16 & 255, this.view[i + 2] = a >>> 8 & 255, this.view[i + 3] = 255 & a, i += 4, this.view[i] = o >>> 24 & 255, this.view[i + 1] = o >>> 16 & 255, this.view[i + 2] = o >>> 8 & 255, this.view[i + 3] = 255 & o), r && (this.offset += 8), this;
      }, i.writeLong = i.writeInt64, i.readInt64 = function (t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+8) <= " + this.buffer.byteLength);
        }

        var r = 0,
            n = 0;
        this.littleEndian ? (r = this.view[t + 2] << 16, r |= this.view[t + 1] << 8, r |= this.view[t], r += this.view[t + 3] << 24 >>> 0, t += 4, n = this.view[t + 2] << 16, n |= this.view[t + 1] << 8, n |= this.view[t], n += this.view[t + 3] << 24 >>> 0) : (n = this.view[t + 1] << 16, n |= this.view[t + 2] << 8, n |= this.view[t + 3], n += this.view[t] << 24 >>> 0, t += 4, r = this.view[t + 1] << 16, r |= this.view[t + 2] << 8, r |= this.view[t + 3], r += this.view[t] << 24 >>> 0);
        var o = new e(r, n, !1);
        return i && (this.offset += 8), o;
      }, i.readLong = i.readInt64, i.writeUint64 = function (t, i) {
        var r = void 0 === i;

        if (r && (i = this.offset), !this.noAssert) {
          if ("number" == typeof t) t = e.fromNumber(t);else if ("string" == typeof t) t = e.fromString(t);else if (!(t && t instanceof e)) throw TypeError("Illegal value: " + t + " (not an integer or Long)");
          if ("number" != typeof i || i % 1 != 0) throw TypeError("Illegal offset: " + i + " (not an integer)");
          if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength);
        }

        "number" == typeof t ? t = e.fromNumber(t) : "string" == typeof t && (t = e.fromString(t)), i += 8;
        var n = this.buffer.byteLength;
        i > n && this.resize((n *= 2) > i ? n : i), i -= 8;
        var o = t.low,
            a = t.high;
        return this.littleEndian ? (this.view[i + 3] = o >>> 24 & 255, this.view[i + 2] = o >>> 16 & 255, this.view[i + 1] = o >>> 8 & 255, this.view[i] = 255 & o, i += 4, this.view[i + 3] = a >>> 24 & 255, this.view[i + 2] = a >>> 16 & 255, this.view[i + 1] = a >>> 8 & 255, this.view[i] = 255 & a) : (this.view[i] = a >>> 24 & 255, this.view[i + 1] = a >>> 16 & 255, this.view[i + 2] = a >>> 8 & 255, this.view[i + 3] = 255 & a, i += 4, this.view[i] = o >>> 24 & 255, this.view[i + 1] = o >>> 16 & 255, this.view[i + 2] = o >>> 8 & 255, this.view[i + 3] = 255 & o), r && (this.offset += 8), this;
      }, i.writeUInt64 = i.writeUint64, i.readUint64 = function (t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+8) <= " + this.buffer.byteLength);
        }

        var r = 0,
            n = 0;
        this.littleEndian ? (r = this.view[t + 2] << 16, r |= this.view[t + 1] << 8, r |= this.view[t], r += this.view[t + 3] << 24 >>> 0, t += 4, n = this.view[t + 2] << 16, n |= this.view[t + 1] << 8, n |= this.view[t], n += this.view[t + 3] << 24 >>> 0) : (n = this.view[t + 1] << 16, n |= this.view[t + 2] << 8, n |= this.view[t + 3], n += this.view[t] << 24 >>> 0, t += 4, r = this.view[t + 1] << 16, r |= this.view[t + 2] << 8, r |= this.view[t + 3], r += this.view[t] << 24 >>> 0);
        var o = new e(r, n, !0);
        return i && (this.offset += 8), o;
      }, i.readUInt64 = i.readUint64), i.writeFloat32 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e) throw TypeError("Illegal value: " + e + " (not a number)");
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 4;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 4, x(this.view, e, t, this.littleEndian, 23, 4), i && (this.offset += 4), this;
      }, i.writeFloat = i.writeFloat32, i.readFloat32 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+4) <= " + this.buffer.byteLength);
        }

        var i = s(this.view, e, this.littleEndian, 23, 4);
        return t && (this.offset += 4), i;
      }, i.readFloat = i.readFloat32, i.writeFloat64 = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof e) throw TypeError("Illegal value: " + e + " (not a number)");
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        t += 8;
        var r = this.buffer.byteLength;
        return t > r && this.resize((r *= 2) > t ? r : t), t -= 8, x(this.view, e, t, this.littleEndian, 52, 8), i && (this.offset += 8), this;
      }, i.writeDouble = i.writeFloat64, i.readFloat64 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+8) <= " + this.buffer.byteLength);
        }

        var i = s(this.view, e, this.littleEndian, 52, 8);
        return t && (this.offset += 8), i;
      }, i.readDouble = i.readFloat64, t.MAX_VARINT32_BYTES = 5, t.calculateVarint32 = function (e) {
        return (e >>>= 0) < 128 ? 1 : e < 16384 ? 2 : e < 1 << 21 ? 3 : e < 1 << 28 ? 4 : 5;
      }, t.zigZagEncode32 = function (e) {
        return ((e |= 0) << 1 ^ e >> 31) >>> 0;
      }, t.zigZagDecode32 = function (e) {
        return e >>> 1 ^ -(1 & e) | 0;
      }, i.writeVarint32 = function (e, i) {
        var r = void 0 === i;

        if (r && (i = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof i || i % 1 != 0) throw TypeError("Illegal offset: " + i + " (not an integer)");
          if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength);
        }

        var n,
            o = t.calculateVarint32(e);
        i += o;
        var a = this.buffer.byteLength;

        for (i > a && this.resize((a *= 2) > i ? a : i), i -= o, e >>>= 0; e >= 128;) {
          n = 127 & e | 128, this.view[i++] = n, e >>>= 7;
        }

        return this.view[i++] = e, r ? (this.offset = i, this) : o;
      }, i.writeVarint32ZigZag = function (e, i) {
        return this.writeVarint32(t.zigZagEncode32(e), i);
      }, i.readVarint32 = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+1) <= " + this.buffer.byteLength);
        }

        var i,
            r = 0,
            n = 0;

        do {
          if (!this.noAssert && e > this.limit) {
            var o = Error("Truncated");
            throw o.truncated = !0, o;
          }

          i = this.view[e++], r < 5 && (n |= (127 & i) << 7 * r), ++r;
        } while (0 != (128 & i));

        return n |= 0, t ? (this.offset = e, n) : {
          value: n,
          length: r
        };
      }, i.readVarint32ZigZag = function (e) {
        var i = this.readVarint32(e);
        return "object" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(i) ? i.value = t.zigZagDecode32(i.value) : i = t.zigZagDecode32(i), i;
      }, e && (t.MAX_VARINT64_BYTES = 10, t.calculateVarint64 = function (t) {
        "number" == typeof t ? t = e.fromNumber(t) : "string" == typeof t && (t = e.fromString(t));
        var i = t.toInt() >>> 0,
            r = t.shiftRightUnsigned(28).toInt() >>> 0,
            n = t.shiftRightUnsigned(56).toInt() >>> 0;
        return 0 == n ? 0 == r ? i < 16384 ? i < 128 ? 1 : 2 : i < 1 << 21 ? 3 : 4 : r < 16384 ? r < 128 ? 5 : 6 : r < 1 << 21 ? 7 : 8 : n < 128 ? 9 : 10;
      }, t.zigZagEncode64 = function (t) {
        return "number" == typeof t ? t = e.fromNumber(t, !1) : "string" == typeof t ? t = e.fromString(t, !1) : !1 !== t.unsigned && (t = t.toSigned()), t.shiftLeft(1).xor(t.shiftRight(63)).toUnsigned();
      }, t.zigZagDecode64 = function (t) {
        return "number" == typeof t ? t = e.fromNumber(t, !1) : "string" == typeof t ? t = e.fromString(t, !1) : !1 !== t.unsigned && (t = t.toSigned()), t.shiftRightUnsigned(1).xor(t.and(e.ONE).toSigned().negate()).toSigned();
      }, i.writeVarint64 = function (i, r) {
        var n = void 0 === r;

        if (n && (r = this.offset), !this.noAssert) {
          if ("number" == typeof i) i = e.fromNumber(i);else if ("string" == typeof i) i = e.fromString(i);else if (!(i && i instanceof e)) throw TypeError("Illegal value: " + i + " (not an integer or Long)");
          if ("number" != typeof r || r % 1 != 0) throw TypeError("Illegal offset: " + r + " (not an integer)");
          if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength);
        }

        "number" == typeof i ? i = e.fromNumber(i, !1) : "string" == typeof i ? i = e.fromString(i, !1) : !1 !== i.unsigned && (i = i.toSigned());
        var o = t.calculateVarint64(i),
            a = i.toInt() >>> 0,
            s = i.shiftRightUnsigned(28).toInt() >>> 0,
            x = i.shiftRightUnsigned(56).toInt() >>> 0;
        r += o;
        var l = this.buffer.byteLength;

        switch (r > l && this.resize((l *= 2) > r ? l : r), r -= o, o) {
          case 10:
            this.view[r + 9] = x >>> 7 & 1;

          case 9:
            this.view[r + 8] = 9 !== o ? 128 | x : 127 & x;

          case 8:
            this.view[r + 7] = 8 !== o ? s >>> 21 | 128 : s >>> 21 & 127;

          case 7:
            this.view[r + 6] = 7 !== o ? s >>> 14 | 128 : s >>> 14 & 127;

          case 6:
            this.view[r + 5] = 6 !== o ? s >>> 7 | 128 : s >>> 7 & 127;

          case 5:
            this.view[r + 4] = 5 !== o ? 128 | s : 127 & s;

          case 4:
            this.view[r + 3] = 4 !== o ? a >>> 21 | 128 : a >>> 21 & 127;

          case 3:
            this.view[r + 2] = 3 !== o ? a >>> 14 | 128 : a >>> 14 & 127;

          case 2:
            this.view[r + 1] = 2 !== o ? a >>> 7 | 128 : a >>> 7 & 127;

          case 1:
            this.view[r] = 1 !== o ? 128 | a : 127 & a;
        }

        return n ? (this.offset += o, this) : o;
      }, i.writeVarint64ZigZag = function (e, i) {
        return this.writeVarint64(t.zigZagEncode64(e), i);
      }, i.readVarint64 = function (t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength);
        }

        var r = t,
            n = 0,
            o = 0,
            a = 0,
            s = 0;
        if (n = 127 & (s = this.view[t++]), 128 & s && (n |= (127 & (s = this.view[t++])) << 7, (128 & s || this.noAssert && void 0 === s) && (n |= (127 & (s = this.view[t++])) << 14, (128 & s || this.noAssert && void 0 === s) && (n |= (127 & (s = this.view[t++])) << 21, (128 & s || this.noAssert && void 0 === s) && (o = 127 & (s = this.view[t++]), (128 & s || this.noAssert && void 0 === s) && (o |= (127 & (s = this.view[t++])) << 7, (128 & s || this.noAssert && void 0 === s) && (o |= (127 & (s = this.view[t++])) << 14, (128 & s || this.noAssert && void 0 === s) && (o |= (127 & (s = this.view[t++])) << 21, (128 & s || this.noAssert && void 0 === s) && (a = 127 & (s = this.view[t++]), (128 & s || this.noAssert && void 0 === s) && (a |= (127 & (s = this.view[t++])) << 7, 128 & s || this.noAssert && void 0 === s)))))))))) throw Error("Buffer overrun");
        var x = e.fromBits(n | o << 28, o >>> 4 | a << 24, !1);
        return i ? (this.offset = t, x) : {
          value: x,
          length: t - r
        };
      }, i.readVarint64ZigZag = function (i) {
        var r = this.readVarint64(i);
        return r && r.value instanceof e ? r.value = t.zigZagDecode64(r.value) : r = t.zigZagDecode64(r), r;
      }), i.writeCString = function (e, t) {
        var i = void 0 === t;
        i && (t = this.offset);
        var r,
            n = e.length;

        if (!this.noAssert) {
          if ("string" != typeof e) throw TypeError("Illegal str: Not a string");

          for (r = 0; r < n; ++r) {
            if (0 === e.charCodeAt(r)) throw RangeError("Illegal str: Contains NULL-characters");
          }

          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        n = c.calculateUTF16asUTF8(o(e))[1], t += n + 1;
        var a = this.buffer.byteLength;
        return t > a && this.resize((a *= 2) > t ? a : t), t -= n + 1, c.encodeUTF16toUTF8(o(e), function (e) {
          this.view[t++] = e;
        }.bind(this)), this.view[t++] = 0, i ? (this.offset = t, this) : n;
      }, i.readCString = function (e) {
        var t = void 0 === e;

        if (t && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+1) <= " + this.buffer.byteLength);
        }

        var i,
            r = e,
            n = -1;
        return c.decodeUTF8toUTF16(function () {
          if (0 === n) return null;
          if (e >= this.limit) throw RangeError("Illegal range: Truncated data, " + e + " < " + this.limit);
          return 0 === (n = this.view[e++]) ? null : n;
        }.bind(this), i = a(), !0), t ? (this.offset = e, i()) : {
          string: i(),
          length: e - r
        };
      }, i.writeIString = function (e, t) {
        var i = void 0 === t;

        if (i && (t = this.offset), !this.noAssert) {
          if ("string" != typeof e) throw TypeError("Illegal str: Not a string");
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        var r,
            n = t;
        r = c.calculateUTF16asUTF8(o(e), this.noAssert)[1], t += 4 + r;
        var a = this.buffer.byteLength;
        if (t > a && this.resize((a *= 2) > t ? a : t), t -= 4 + r, this.littleEndian ? (this.view[t + 3] = r >>> 24 & 255, this.view[t + 2] = r >>> 16 & 255, this.view[t + 1] = r >>> 8 & 255, this.view[t] = 255 & r) : (this.view[t] = r >>> 24 & 255, this.view[t + 1] = r >>> 16 & 255, this.view[t + 2] = r >>> 8 & 255, this.view[t + 3] = 255 & r), t += 4, c.encodeUTF16toUTF8(o(e), function (e) {
          this.view[t++] = e;
        }.bind(this)), t !== n + 4 + r) throw RangeError("Illegal range: Truncated data, " + t + " == " + (t + 4 + r));
        return i ? (this.offset = t, this) : t - n;
      }, i.readIString = function (e) {
        var i = void 0 === e;

        if (i && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+4) <= " + this.buffer.byteLength);
        }

        var r = e,
            n = this.readUint32(e),
            o = this.readUTF8String(n, t.METRICS_BYTES, e += 4);
        return e += o.length, i ? (this.offset = e, o.string) : {
          string: o.string,
          length: e - r
        };
      }, t.METRICS_CHARS = "c", t.METRICS_BYTES = "b", i.writeUTF8String = function (e, t) {
        var i,
            r = void 0 === t;

        if (r && (t = this.offset), !this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: " + t + " (not an integer)");
          if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength);
        }

        var n = t;
        i = c.calculateUTF16asUTF8(o(e))[1], t += i;
        var a = this.buffer.byteLength;
        return t > a && this.resize((a *= 2) > t ? a : t), t -= i, c.encodeUTF16toUTF8(o(e), function (e) {
          this.view[t++] = e;
        }.bind(this)), r ? (this.offset = t, this) : t - n;
      }, i.writeString = i.writeUTF8String, t.calculateUTF8Chars = function (e) {
        return c.calculateUTF16asUTF8(o(e))[0];
      }, t.calculateUTF8Bytes = function (e) {
        return c.calculateUTF16asUTF8(o(e))[1];
      }, t.calculateString = t.calculateUTF8Bytes, i.readUTF8String = function (e, i, r) {
        "number" == typeof i && (r = i, i = void 0);
        var n = void 0 === r;

        if (n && (r = this.offset), void 0 === i && (i = t.METRICS_CHARS), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal length: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof r || r % 1 != 0) throw TypeError("Illegal offset: " + r + " (not an integer)");
          if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength);
        }

        var o,
            s = 0,
            x = r;

        if (i === t.METRICS_CHARS) {
          if (o = a(), c.decodeUTF8(function () {
            return s < e && r < this.limit ? this.view[r++] : null;
          }.bind(this), function (e) {
            ++s, c.UTF8toUTF16(e, o);
          }), s !== e) throw RangeError("Illegal range: Truncated data, " + s + " == " + e);
          return n ? (this.offset = r, o()) : {
            string: o(),
            length: r - x
          };
        }

        if (i === t.METRICS_BYTES) {
          if (!this.noAssert) {
            if ("number" != typeof r || r % 1 != 0) throw TypeError("Illegal offset: " + r + " (not an integer)");
            if ((r >>>= 0) < 0 || r + e > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + r + " (+" + e + ") <= " + this.buffer.byteLength);
          }

          var l = r + e;
          if (c.decodeUTF8toUTF16(function () {
            return r < l ? this.view[r++] : null;
          }.bind(this), o = a(), this.noAssert), r !== l) throw RangeError("Illegal range: Truncated data, " + r + " == " + l);
          return n ? (this.offset = r, o()) : {
            string: o(),
            length: r - x
          };
        }

        throw TypeError("Unsupported metrics: " + i);
      }, i.readString = i.readUTF8String, i.writeVString = function (e, i) {
        var r = void 0 === i;

        if (r && (i = this.offset), !this.noAssert) {
          if ("string" != typeof e) throw TypeError("Illegal str: Not a string");
          if ("number" != typeof i || i % 1 != 0) throw TypeError("Illegal offset: " + i + " (not an integer)");
          if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength);
        }

        var n,
            a,
            s = i;
        n = c.calculateUTF16asUTF8(o(e), this.noAssert)[1], a = t.calculateVarint32(n), i += a + n;
        var x = this.buffer.byteLength;
        if (i > x && this.resize((x *= 2) > i ? x : i), i -= a + n, i += this.writeVarint32(n, i), c.encodeUTF16toUTF8(o(e), function (e) {
          this.view[i++] = e;
        }.bind(this)), i !== s + n + a) throw RangeError("Illegal range: Truncated data, " + i + " == " + (i + n + a));
        return r ? (this.offset = i, this) : i - s;
      }, i.readVString = function (e) {
        var i = void 0 === e;

        if (i && (e = this.offset), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+1) <= " + this.buffer.byteLength);
        }

        var r = e,
            n = this.readVarint32(e),
            o = this.readUTF8String(n.value, t.METRICS_BYTES, e += n.length);
        return e += o.length, i ? (this.offset = e, o.string) : {
          string: o.string,
          length: e - r
        };
      }, i.append = function (e, i, r) {
        "number" != typeof i && "string" == typeof i || (r = i, i = void 0);
        var n = void 0 === r;

        if (n && (r = this.offset), !this.noAssert) {
          if ("number" != typeof r || r % 1 != 0) throw TypeError("Illegal offset: " + r + " (not an integer)");
          if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength);
        }

        e instanceof t || (e = t.wrap(e, i));
        var o = e.limit - e.offset;
        if (o <= 0) return this;
        r += o;
        var a = this.buffer.byteLength;
        return r > a && this.resize((a *= 2) > r ? a : r), r -= o, this.view.set(e.view.subarray(e.offset, e.limit), r), e.offset += o, n && (this.offset += o), this;
      }, i.appendTo = function (e, t) {
        return e.append(this, t), this;
      }, i.assert = function (e) {
        return this.noAssert = !e, this;
      }, i.capacity = function () {
        return this.buffer.byteLength;
      }, i.clear = function () {
        return this.offset = 0, this.limit = this.buffer.byteLength, this.markedOffset = -1, this;
      }, i.clone = function (e) {
        var i = new t(0, this.littleEndian, this.noAssert);
        return e ? (i.buffer = new ArrayBuffer(this.buffer.byteLength), i.view = new Uint8Array(i.buffer)) : (i.buffer = this.buffer, i.view = this.view), i.offset = this.offset, i.markedOffset = this.markedOffset, i.limit = this.limit, i;
      }, i.compact = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (t >>>= 0, e < 0 || e > t || t > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + t + " <= " + this.buffer.byteLength);
        }

        if (0 === e && t === this.buffer.byteLength) return this;
        var i = t - e;
        if (0 === i) return this.buffer = r, this.view = null, this.markedOffset >= 0 && (this.markedOffset -= e), this.offset = 0, this.limit = 0, this;
        var n = new ArrayBuffer(i),
            o = new Uint8Array(n);
        return o.set(this.view.subarray(e, t)), this.buffer = n, this.view = o, this.markedOffset >= 0 && (this.markedOffset -= e), this.offset = 0, this.limit = i, this;
      }, i.copy = function (e, i) {
        if (void 0 === e && (e = this.offset), void 0 === i && (i = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof i || i % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (i >>>= 0, e < 0 || e > i || i > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + i + " <= " + this.buffer.byteLength);
        }

        if (e === i) return new t(0, this.littleEndian, this.noAssert);
        var r = i - e,
            n = new t(r, this.littleEndian, this.noAssert);
        return n.offset = 0, n.limit = r, n.markedOffset >= 0 && (n.markedOffset -= e), this.copyTo(n, 0, e, i), n;
      }, i.copyTo = function (e, i, r, n) {
        var o, a;
        if (!this.noAssert && !t.isByteBuffer(e)) throw TypeError("Illegal target: Not a ByteBuffer");
        if (i = (a = void 0 === i) ? e.offset : 0 | i, r = (o = void 0 === r) ? this.offset : 0 | r, n = void 0 === n ? this.limit : 0 | n, i < 0 || i > e.buffer.byteLength) throw RangeError("Illegal target range: 0 <= " + i + " <= " + e.buffer.byteLength);
        if (r < 0 || n > this.buffer.byteLength) throw RangeError("Illegal source range: 0 <= " + r + " <= " + this.buffer.byteLength);
        var s = n - r;
        return 0 === s ? e : (e.ensureCapacity(i + s), e.view.set(this.view.subarray(r, n), i), o && (this.offset += s), a && (e.offset += s), this);
      }, i.ensureCapacity = function (e) {
        var t = this.buffer.byteLength;
        return t < e ? this.resize((t *= 2) > e ? t : e) : this;
      }, i.fill = function (e, t, i) {
        var r = void 0 === t;

        if (r && (t = this.offset), "string" == typeof e && e.length > 0 && (e = e.charCodeAt(0)), void 0 === t && (t = this.offset), void 0 === i && (i = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal value: " + e + " (not an integer)");
          if (e |= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (t >>>= 0, "number" != typeof i || i % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (i >>>= 0, t < 0 || t > i || i > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength);
        }

        if (t >= i) return this;

        for (; t < i;) {
          this.view[t++] = e;
        }

        return r && (this.offset = t), this;
      }, i.flip = function () {
        return this.limit = this.offset, this.offset = 0, this;
      }, i.mark = function (e) {
        if (e = void 0 === e ? this.offset : e, !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal offset: " + e + " (not an integer)");
          if ((e >>>= 0) < 0 || e + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + e + " (+0) <= " + this.buffer.byteLength);
        }

        return this.markedOffset = e, this;
      }, i.order = function (e) {
        if (!this.noAssert && "boolean" != typeof e) throw TypeError("Illegal littleEndian: Not a boolean");
        return this.littleEndian = !!e, this;
      }, i.LE = function (e) {
        return this.littleEndian = void 0 === e || !!e, this;
      }, i.BE = function (e) {
        return this.littleEndian = void 0 !== e && !e, this;
      }, i.prepend = function (e, i, r) {
        "number" != typeof i && "string" == typeof i || (r = i, i = void 0);
        var n = void 0 === r;

        if (n && (r = this.offset), !this.noAssert) {
          if ("number" != typeof r || r % 1 != 0) throw TypeError("Illegal offset: " + r + " (not an integer)");
          if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength);
        }

        e instanceof t || (e = t.wrap(e, i));
        var o = e.limit - e.offset;
        if (o <= 0) return this;
        var a = o - r;

        if (a > 0) {
          var s = new ArrayBuffer(this.buffer.byteLength + a),
              x = new Uint8Array(s);
          x.set(this.view.subarray(r, this.buffer.byteLength), o), this.buffer = s, this.view = x, this.offset += a, this.markedOffset >= 0 && (this.markedOffset += a), this.limit += a, r += a;
        } else new Uint8Array(this.buffer);

        return this.view.set(e.view.subarray(e.offset, e.limit), r - o), e.offset = e.limit, n && (this.offset -= o), this;
      }, i.prependTo = function (e, t) {
        return e.prepend(this, t), this;
      }, i.printDebug = function (e) {
        "function" != typeof e && (e = console.log.bind(console)), e(this.toString() + "\n-------------------------------------------------------------------\n" + this.toDebug(!0));
      }, i.remaining = function () {
        return this.limit - this.offset;
      }, i.reset = function () {
        return this.markedOffset >= 0 ? (this.offset = this.markedOffset, this.markedOffset = -1) : this.offset = 0, this;
      }, i.resize = function (e) {
        if (!this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal capacity: " + e + " (not an integer)");
          if ((e |= 0) < 0) throw RangeError("Illegal capacity: 0 <= " + e);
        }

        if (this.buffer.byteLength < e) {
          var t = new ArrayBuffer(e),
              i = new Uint8Array(t);
          i.set(this.view), this.buffer = t, this.view = i;
        }

        return this;
      }, i.reverse = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (t >>>= 0, e < 0 || e > t || t > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + t + " <= " + this.buffer.byteLength);
        }

        return e === t || Array.prototype.reverse.call(this.view.subarray(e, t)), this;
      }, i.skip = function (e) {
        if (!this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal length: " + e + " (not an integer)");
          e |= 0;
        }

        var t = this.offset + e;
        if (!this.noAssert && (t < 0 || t > this.buffer.byteLength)) throw RangeError("Illegal length: 0 <= " + this.offset + " + " + e + " <= " + this.buffer.byteLength);
        return this.offset = t, this;
      }, i.slice = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (t >>>= 0, e < 0 || e > t || t > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + t + " <= " + this.buffer.byteLength);
        }

        var i = this.clone();
        return i.offset = e, i.limit = t, i;
      }, i.toBuffer = function (e) {
        var t = this.offset,
            i = this.limit;

        if (!this.noAssert) {
          if ("number" != typeof t || t % 1 != 0) throw TypeError("Illegal offset: Not an integer");
          if (t >>>= 0, "number" != typeof i || i % 1 != 0) throw TypeError("Illegal limit: Not an integer");
          if (i >>>= 0, t < 0 || t > i || i > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength);
        }

        if (!e && 0 === t && i === this.buffer.byteLength) return this.buffer;
        if (t === i) return r;
        var n = new ArrayBuffer(i - t);
        return new Uint8Array(n).set(new Uint8Array(this.buffer).subarray(t, i), 0), n;
      }, i.toArrayBuffer = i.toBuffer, i.toString = function (e, t, i) {
        if (void 0 === e) return "ByteBufferAB(offset=" + this.offset + ",markedOffset=" + this.markedOffset + ",limit=" + this.limit + ",capacity=" + this.capacity() + ")";

        switch ("number" == typeof e && (i = t = e = "utf8"), e) {
          case "utf8":
            return this.toUTF8(t, i);

          case "base64":
            return this.toBase64(t, i);

          case "hex":
            return this.toHex(t, i);

          case "binary":
            return this.toBinary(t, i);

          case "debug":
            return this.toDebug();

          case "columns":
            return this.toColumns();

          default:
            throw Error("Unsupported encoding: " + e);
        }
      };

      var l = function () {
        for (var e = {}, t = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47], i = [], r = 0, n = t.length; r < n; ++r) {
          i[t[r]] = r;
        }

        return e.encode = function (e, i) {
          for (var r, n; null !== (r = e());) {
            i(t[r >> 2 & 63]), n = (3 & r) << 4, null !== (r = e()) ? (i(t[63 & ((n |= r >> 4 & 15) | r >> 4 & 15)]), n = (15 & r) << 2, null !== (r = e()) ? (i(t[63 & (n | r >> 6 & 3)]), i(t[63 & r])) : (i(t[63 & n]), i(61))) : (i(t[63 & n]), i(61), i(61));
          }
        }, e.decode = function (e, t) {
          var r, n, o;

          function a(e) {
            throw Error("Illegal character code: " + e);
          }

          for (; null !== (r = e());) {
            if (void 0 === (n = i[r]) && a(r), null !== (r = e()) && (void 0 === (o = i[r]) && a(r), t(n << 2 >>> 0 | (48 & o) >> 4), null !== (r = e()))) {
              if (void 0 === (n = i[r])) {
                if (61 === r) break;
                a(r);
              }

              if (t((15 & o) << 4 >>> 0 | (60 & n) >> 2), null !== (r = e())) {
                if (void 0 === (o = i[r])) {
                  if (61 === r) break;
                  a(r);
                }

                t((3 & n) << 6 >>> 0 | o);
              }
            }
          }
        }, e.test = function (e) {
          return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e);
        }, e;
      }();

      i.toBase64 = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), t |= 0, (e |= 0) < 0 || t > this.capacity || e > t) throw RangeError("begin, end");
        var i;
        return l.encode(function () {
          return e < t ? this.view[e++] : null;
        }.bind(this), i = a()), i();
      }, t.fromBase64 = function (e, i) {
        if ("string" != typeof e) throw TypeError("str");
        var r = new t(e.length / 4 * 3, i),
            n = 0;
        return l.decode(o(e), function (e) {
          r.view[n++] = e;
        }), r.limit = n, r;
      }, t.btoa = function (e) {
        return t.fromBinary(e).toBase64();
      }, t.atob = function (e) {
        return t.fromBase64(e).toBinary();
      }, i.toBinary = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), t |= 0, (e |= 0) < 0 || t > this.capacity() || e > t) throw RangeError("begin, end");
        if (e === t) return "";

        for (var i = [], r = []; e < t;) {
          i.push(this.view[e++]), i.length >= 1024 && (r.push(String.fromCharCode.apply(String, i)), i = []);
        }

        return r.join("") + String.fromCharCode.apply(String, i);
      }, t.fromBinary = function (e, i) {
        if ("string" != typeof e) throw TypeError("str");

        for (var r, n = 0, o = e.length, a = new t(o, i); n < o;) {
          if ((r = e.charCodeAt(n)) > 255) throw RangeError("illegal char code: " + r);
          a.view[n++] = r;
        }

        return a.limit = o, a;
      }, i.toDebug = function (e) {
        for (var t, i = -1, r = this.buffer.byteLength, n = "", o = "", a = ""; i < r;) {
          if (-1 !== i && (n += (t = this.view[i]) < 16 ? "0" + t.toString(16).toUpperCase() : t.toString(16).toUpperCase(), e && (o += t > 32 && t < 127 ? String.fromCharCode(t) : ".")), ++i, e && i > 0 && i % 16 == 0 && i !== r) {
            for (; n.length < 51;) {
              n += " ";
            }

            a += n + o + "\n", n = o = "";
          }

          i === this.offset && i === this.limit ? n += i === this.markedOffset ? "!" : "|" : i === this.offset ? n += i === this.markedOffset ? "[" : "<" : i === this.limit ? n += i === this.markedOffset ? "]" : ">" : n += i === this.markedOffset ? "'" : e || 0 !== i && i !== r ? " " : "";
        }

        if (e && " " !== n) {
          for (; n.length < 51;) {
            n += " ";
          }

          a += n + o + "\n";
        }

        return e ? a : n;
      }, t.fromDebug = function (e, i, r) {
        for (var n, o, a = e.length, s = new t((a + 1) / 3 | 0, i, r), x = 0, l = 0, c = !1, u = !1, h = !1, f = !1, d = !1; x < a;) {
          switch (n = e.charAt(x++)) {
            case "!":
              if (!r) {
                if (u || h || f) {
                  d = !0;
                  break;
                }

                u = h = f = !0;
              }

              s.offset = s.markedOffset = s.limit = l, c = !1;
              break;

            case "|":
              if (!r) {
                if (u || f) {
                  d = !0;
                  break;
                }

                u = f = !0;
              }

              s.offset = s.limit = l, c = !1;
              break;

            case "[":
              if (!r) {
                if (u || h) {
                  d = !0;
                  break;
                }

                u = h = !0;
              }

              s.offset = s.markedOffset = l, c = !1;
              break;

            case "<":
              if (!r) {
                if (u) {
                  d = !0;
                  break;
                }

                u = !0;
              }

              s.offset = l, c = !1;
              break;

            case "]":
              if (!r) {
                if (f || h) {
                  d = !0;
                  break;
                }

                f = h = !0;
              }

              s.limit = s.markedOffset = l, c = !1;
              break;

            case ">":
              if (!r) {
                if (f) {
                  d = !0;
                  break;
                }

                f = !0;
              }

              s.limit = l, c = !1;
              break;

            case "'":
              if (!r) {
                if (h) {
                  d = !0;
                  break;
                }

                h = !0;
              }

              s.markedOffset = l, c = !1;
              break;

            case " ":
              c = !1;
              break;

            default:
              if (!r && c) {
                d = !0;
                break;
              }

              if (o = parseInt(n + e.charAt(x++), 16), !r && (isNaN(o) || o < 0 || o > 255)) throw TypeError("Illegal str: Not a debug encoded string");
              s.view[l++] = o, c = !0;
          }

          if (d) throw TypeError("Illegal str: Invalid symbol at " + x);
        }

        if (!r) {
          if (!u || !f) throw TypeError("Illegal str: Missing offset or limit");
          if (l < s.buffer.byteLength) throw TypeError("Illegal str: Not a debug encoded string (is it hex?) " + l + " < " + a);
        }

        return s;
      }, i.toHex = function (e, t) {
        if (e = void 0 === e ? this.offset : e, t = void 0 === t ? this.limit : t, !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (t >>>= 0, e < 0 || e > t || t > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + t + " <= " + this.buffer.byteLength);
        }

        for (var i, r = new Array(t - e); e < t;) {
          (i = this.view[e++]) < 16 ? r.push("0", i.toString(16)) : r.push(i.toString(16));
        }

        return r.join("");
      }, t.fromHex = function (e, i, r) {
        if (!r) {
          if ("string" != typeof e) throw TypeError("Illegal str: Not a string");
          if (e.length % 2 != 0) throw TypeError("Illegal str: Length not a multiple of 2");
        }

        for (var n, o = e.length, a = new t(o / 2 | 0, i), s = 0, x = 0; s < o; s += 2) {
          if (n = parseInt(e.substring(s, s + 2), 16), !r && (!isFinite(n) || n < 0 || n > 255)) throw TypeError("Illegal str: Contains non-hex characters");
          a.view[x++] = n;
        }

        return a.limit = x, a;
      };

      var c = function () {
        var e = {
          MAX_CODEPOINT: 1114111,
          encodeUTF8: function encodeUTF8(e, t) {
            var i = null;

            for ("number" == typeof e && (i = e, e = function e() {
              return null;
            }); null !== i || null !== (i = e());) {
              i < 128 ? t(127 & i) : i < 2048 ? (t(i >> 6 & 31 | 192), t(63 & i | 128)) : i < 65536 ? (t(i >> 12 & 15 | 224), t(i >> 6 & 63 | 128), t(63 & i | 128)) : (t(i >> 18 & 7 | 240), t(i >> 12 & 63 | 128), t(i >> 6 & 63 | 128), t(63 & i | 128)), i = null;
            }
          },
          decodeUTF8: function decodeUTF8(e, t) {
            for (var i, r, n, o, a = function a(e) {
              e = e.slice(0, e.indexOf(null));
              var t = Error(e.toString());
              throw t.name = "TruncatedError", t.bytes = e, t;
            }; null !== (i = e());) {
              if (0 == (128 & i)) t(i);else if (192 == (224 & i)) null === (r = e()) && a([i, r]), t((31 & i) << 6 | 63 & r);else if (224 == (240 & i)) (null === (r = e()) || null === (n = e())) && a([i, r, n]), t((15 & i) << 12 | (63 & r) << 6 | 63 & n);else {
                if (240 != (248 & i)) throw RangeError("Illegal starting byte: " + i);
                (null === (r = e()) || null === (n = e()) || null === (o = e())) && a([i, r, n, o]), t((7 & i) << 18 | (63 & r) << 12 | (63 & n) << 6 | 63 & o);
              }
            }
          },
          UTF16toUTF8: function UTF16toUTF8(e, t) {
            for (var i, r = null; null !== (i = null !== r ? r : e());) {
              i >= 55296 && i <= 57343 && null !== (r = e()) && r >= 56320 && r <= 57343 ? (t(1024 * (i - 55296) + r - 56320 + 65536), r = null) : t(i);
            }

            null !== r && t(r);
          },
          UTF8toUTF16: function UTF8toUTF16(e, t) {
            var i = null;

            for ("number" == typeof e && (i = e, e = function e() {
              return null;
            }); null !== i || null !== (i = e());) {
              i <= 65535 ? t(i) : (t(55296 + ((i -= 65536) >> 10)), t(i % 1024 + 56320)), i = null;
            }
          },
          encodeUTF16toUTF8: function encodeUTF16toUTF8(t, i) {
            e.UTF16toUTF8(t, function (t) {
              e.encodeUTF8(t, i);
            });
          },
          decodeUTF8toUTF16: function decodeUTF8toUTF16(t, i) {
            e.decodeUTF8(t, function (t) {
              e.UTF8toUTF16(t, i);
            });
          },
          calculateCodePoint: function calculateCodePoint(e) {
            return e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4;
          },
          calculateUTF8: function calculateUTF8(e) {
            for (var t, i = 0; null !== (t = e());) {
              i += t < 128 ? 1 : t < 2048 ? 2 : t < 65536 ? 3 : 4;
            }

            return i;
          },
          calculateUTF16asUTF8: function calculateUTF16asUTF8(t) {
            var i = 0,
                r = 0;
            return e.UTF16toUTF8(t, function (e) {
              ++i, r += e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4;
            }), [i, r];
          }
        };
        return e;
      }();

      return i.toUTF8 = function (e, t) {
        if (void 0 === e && (e = this.offset), void 0 === t && (t = this.limit), !this.noAssert) {
          if ("number" != typeof e || e % 1 != 0) throw TypeError("Illegal begin: Not an integer");
          if (e >>>= 0, "number" != typeof t || t % 1 != 0) throw TypeError("Illegal end: Not an integer");
          if (t >>>= 0, e < 0 || e > t || t > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= " + e + " <= " + t + " <= " + this.buffer.byteLength);
        }

        var i;

        try {
          c.decodeUTF8toUTF16(function () {
            return e < t ? this.view[e++] : null;
          }.bind(this), i = a());
        } catch (i) {
          if (e !== t) throw RangeError("Illegal range: Truncated data, " + e + " != " + t);
        }

        return i();
      }, t.fromUTF8 = function (e, i, r) {
        if (!r && "string" != typeof e) throw TypeError("Illegal str: Not a string");
        var n = new t(c.calculateUTF16asUTF8(o(e), !0)[1], i, r),
            a = 0;
        return c.encodeUTF16toUTF8(o(e), function (e) {
          n.view[a++] = e;
        }), n.limit = a, n;
      }, t;
    }) ? r.apply(t, n) : r) || (e.exports = o);
  }, function (e, t) {
    (function (t) {
      e.exports = t;
    }).call(this, {});
  }, function (e, t, i) {
    (function (e) {
      function i(e, t) {
        for (var i = 0, r = e.length - 1; r >= 0; r--) {
          var n = e[r];
          "." === n ? e.splice(r, 1) : ".." === n ? (e.splice(r, 1), i++) : i && (e.splice(r, 1), i--);
        }

        if (t) for (; i--; i) {
          e.unshift("..");
        }
        return e;
      }

      function r(e, t) {
        if (e.filter) return e.filter(t);

        for (var i = [], r = 0; r < e.length; r++) {
          t(e[r], r, e) && i.push(e[r]);
        }

        return i;
      }

      t.resolve = function () {
        for (var t = "", n = !1, o = arguments.length - 1; o >= -1 && !n; o--) {
          var a = o >= 0 ? arguments[o] : e.cwd();
          if ("string" != typeof a) throw new TypeError("Arguments to path.resolve must be strings");
          a && (t = a + "/" + t, n = "/" === a.charAt(0));
        }

        return (n ? "/" : "") + (t = i(r(t.split("/"), function (e) {
          return !!e;
        }), !n).join("/")) || ".";
      }, t.normalize = function (e) {
        var o = t.isAbsolute(e),
            a = "/" === n(e, -1);
        return (e = i(r(e.split("/"), function (e) {
          return !!e;
        }), !o).join("/")) || o || (e = "."), e && a && (e += "/"), (o ? "/" : "") + e;
      }, t.isAbsolute = function (e) {
        return "/" === e.charAt(0);
      }, t.join = function () {
        var e = Array.prototype.slice.call(arguments, 0);
        return t.normalize(r(e, function (e, t) {
          if ("string" != typeof e) throw new TypeError("Arguments to path.join must be strings");
          return e;
        }).join("/"));
      }, t.relative = function (e, i) {
        function r(e) {
          for (var t = 0; t < e.length && "" === e[t]; t++) {
            ;
          }

          for (var i = e.length - 1; i >= 0 && "" === e[i]; i--) {
            ;
          }

          return t > i ? [] : e.slice(t, i - t + 1);
        }

        e = t.resolve(e).substr(1), i = t.resolve(i).substr(1);

        for (var n = r(e.split("/")), o = r(i.split("/")), a = Math.min(n.length, o.length), s = a, x = 0; x < a; x++) {
          if (n[x] !== o[x]) {
            s = x;
            break;
          }
        }

        var l = [];

        for (x = s; x < n.length; x++) {
          l.push("..");
        }

        return (l = l.concat(o.slice(s))).join("/");
      }, t.sep = "/", t.delimiter = ":", t.dirname = function (e) {
        if ("string" != typeof e && (e += ""), 0 === e.length) return ".";

        for (var t = e.charCodeAt(0), i = 47 === t, r = -1, n = !0, o = e.length - 1; o >= 1; --o) {
          if (47 === (t = e.charCodeAt(o))) {
            if (!n) {
              r = o;
              break;
            }
          } else n = !1;
        }

        return -1 === r ? i ? "/" : "." : i && 1 === r ? "/" : e.slice(0, r);
      }, t.basename = function (e, t) {
        var i = function (e) {
          "string" != typeof e && (e += "");
          var t,
              i = 0,
              r = -1,
              n = !0;

          for (t = e.length - 1; t >= 0; --t) {
            if (47 === e.charCodeAt(t)) {
              if (!n) {
                i = t + 1;
                break;
              }
            } else -1 === r && (n = !1, r = t + 1);
          }

          return -1 === r ? "" : e.slice(i, r);
        }(e);

        return t && i.substr(-1 * t.length) === t && (i = i.substr(0, i.length - t.length)), i;
      }, t.extname = function (e) {
        "string" != typeof e && (e += "");

        for (var t = -1, i = 0, r = -1, n = !0, o = 0, a = e.length - 1; a >= 0; --a) {
          var s = e.charCodeAt(a);
          if (47 !== s) -1 === r && (n = !1, r = a + 1), 46 === s ? -1 === t ? t = a : 1 !== o && (o = 1) : -1 !== t && (o = -1);else if (!n) {
            i = a + 1;
            break;
          }
        }

        return -1 === t || -1 === r || 0 === o || 1 === o && t === r - 1 && t === i + 1 ? "" : e.slice(t, r);
      };
      var n = "b" === "ab".substr(-1) ? function (e, t, i) {
        return e.substr(t, i);
      } : function (e, t, i) {
        return t < 0 && (t = e.length + t), e.substr(t, i);
      };
    }).call(this, i(95));
  }, function (e, t, i) {
    for (var r, n = i(10), o = i(20), a = i(28), s = a("typed_array"), x = a("view"), l = !(!n.ArrayBuffer || !n.DataView), c = l, u = 0, h = "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(","); u < 9;) {
      (r = n[h[u++]]) ? (o(r.prototype, s, !0), o(r.prototype, x, !0)) : c = !1;
    }

    e.exports = {
      ABV: l,
      CONSTR: c,
      TYPED: s,
      VIEW: x
    };
  }, function (e, t, i) {
    var r = i(22);

    e.exports = function (e, t, i) {
      for (var n in t) {
        r(e, n, t[n], i);
      }

      return e;
    };
  }, function (e, t) {
    e.exports = function (e, t, i, r) {
      if (!(e instanceof t) || void 0 !== r && r in e) throw TypeError(i + ": incorrect invocation!");
      return e;
    };
  }, function (e, t, i) {
    var r = i(29),
        n = i(19);

    e.exports = function (e) {
      if (void 0 === e) return 0;
      var t = r(e),
          i = n(t);
      if (t !== i) throw RangeError("Wrong length!");
      return i;
    };
  }, function (e, t, i) {
    var r = i(46);

    e.exports = Array.isArray || function (e) {
      return "Array" == r(e);
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(10),
        n = i(13),
        o = i(11),
        a = i(4)("species");

    e.exports = function (e) {
      var t = r[e];
      o && t && !t[a] && n.f(t, a, {
        configurable: !0,
        get: function get() {
          return this;
        }
      });
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(23),
        n = i(19),
        o = i(130),
        a = "".endsWith;
    r(r.P + r.F * i(131)("endsWith"), "String", {
      endsWith: function endsWith(e) {
        var t = o(this, e, "endsWith"),
            i = arguments.length > 1 ? arguments[1] : void 0,
            r = n(t.length),
            s = void 0 === i ? r : Math.min(n(i), r),
            x = String(e);
        return a ? a.call(t, x, s) : t.slice(s - x.length, s) === x;
      }
    });
  }, function (e, t, i) {
    var r = i(80),
        n = i(38);

    e.exports = function (e, t, i) {
      if (r(t)) throw TypeError("String#" + i + " doesn't accept regex!");
      return String(n(e));
    };
  }, function (e, t, i) {
    var r = i(4)("match");

    e.exports = function (e) {
      var t = /./;

      try {
        "/./"[e](t);
      } catch (i) {
        try {
          return t[r] = !1, !"/./"[e](t);
        } catch (e) {}
      }

      return !0;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(23),
        n = i(19),
        o = i(130),
        a = "".startsWith;
    r(r.P + r.F * i(131)("startsWith"), "String", {
      startsWith: function startsWith(e) {
        var t = o(this, e, "startsWith"),
            i = n(Math.min(arguments.length > 1 ? arguments[1] : void 0, t.length)),
            r = String(e);
        return a ? a.call(t, r, i) : t.slice(i, i + r.length) === r;
      }
    });
  }, function (e, t, i) {
    var r = i(47),
        n = i(14)("toStringTag"),
        o = "Arguments" == r(function () {
      return arguments;
    }());

    e.exports = function (e) {
      var t, i, a;
      return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (i = function (e, t) {
        try {
          return e[t];
        } catch (e) {}
      }(t = Object(e), n)) ? i : o ? r(t) : "Object" == (a = r(t)) && "function" == typeof t.callee ? "Arguments" : a;
    };
  }, function (e, t, i) {
    var r = i(27),
        n = i(60),
        o = i(14)("species");

    e.exports = function (e, t) {
      var i,
          a = r(e).constructor;
      return void 0 === a || null == (i = r(a)[o]) ? t : n(i);
    };
  }, function (e, t, i) {
    var r,
        n,
        o,
        a = i(59),
        s = i(221),
        x = i(110),
        l = i(77),
        c = i(7),
        u = c.process,
        h = c.setImmediate,
        f = c.clearImmediate,
        d = c.MessageChannel,
        g = c.Dispatch,
        p = 0,
        m = {},
        b = function b() {
      var e = +this;

      if (m.hasOwnProperty(e)) {
        var t = m[e];
        delete m[e], t();
      }
    },
        v = function v(e) {
      b.call(e.data);
    };

    h && f || (h = function h(e) {
      for (var t = [], i = 1; arguments.length > i;) {
        t.push(arguments[i++]);
      }

      return m[++p] = function () {
        s("function" == typeof e ? e : Function(e), t);
      }, r(p), p;
    }, f = function f(e) {
      delete m[e];
    }, "process" == i(47)(u) ? r = function r(e) {
      u.nextTick(a(b, e, 1));
    } : g && g.now ? r = function r(e) {
      g.now(a(b, e, 1));
    } : d ? (o = (n = new d()).port2, n.port1.onmessage = v, r = a(o.postMessage, o, 1)) : c.addEventListener && "function" == typeof postMessage && !c.importScripts ? (r = function r(e) {
      c.postMessage(e + "", "*");
    }, c.addEventListener("message", v, !1)) : r = "onreadystatechange" in l("script") ? function (e) {
      x.appendChild(l("script")).onreadystatechange = function () {
        x.removeChild(this), b.call(e);
      };
    } : function (e) {
      setTimeout(a(b, e, 1), 0);
    }), e.exports = {
      set: h,
      clear: f
    };
  }, function (e, t) {
    e.exports = function (e) {
      try {
        return {
          e: !1,
          v: e()
        };
      } catch (e) {
        return {
          e: !0,
          v: e
        };
      }
    };
  }, function (e, t, i) {
    var r = i(27),
        n = i(33),
        o = i(94);

    e.exports = function (e, t) {
      if (r(e), n(t) && t.constructor === e) return t;
      var i = o.f(e);
      return (0, i.resolve)(t), i.promise;
    };
  }, function (e, t, i) {
    var r = i(10),
        n = i(43),
        o = i(35),
        a = i(139),
        s = i(13).f;

    e.exports = function (e) {
      var t = n.Symbol || (n.Symbol = o ? {} : r.Symbol || {});
      "_" == e.charAt(0) || e in t || s(t, e, {
        value: a.f(e)
      });
    };
  }, function (e, t, i) {
    t.f = i(4);
  }, function (e, t) {
    t.f = Object.getOwnPropertySymbols;
  }, function (e, t, i) {
    "use strict";

    var r = i(10),
        n = i(24),
        o = i(46),
        a = i(142),
        s = i(44),
        x = i(18),
        l = i(41).f,
        c = i(67).f,
        u = i(13).f,
        h = i(235).trim,
        _f = r.Number,
        d = _f,
        g = _f.prototype,
        p = "Number" == o(i(52)(g)),
        m = ("trim" in String.prototype),
        b = function b(e) {
      var t = s(e, !1);

      if ("string" == typeof t && t.length > 2) {
        var i,
            r,
            n,
            o = (t = m ? t.trim() : h(t, 3)).charCodeAt(0);

        if (43 === o || 45 === o) {
          if (88 === (i = t.charCodeAt(2)) || 120 === i) return NaN;
        } else if (48 === o) {
          switch (t.charCodeAt(1)) {
            case 66:
            case 98:
              r = 2, n = 49;
              break;

            case 79:
            case 111:
              r = 8, n = 55;
              break;

            default:
              return +t;
          }

          for (var a, x = t.slice(2), l = 0, c = x.length; l < c; l++) {
            if ((a = x.charCodeAt(l)) < 48 || a > n) return NaN;
          }

          return parseInt(x, r);
        }
      }

      return +t;
    };

    if (!_f(" 0o1") || !_f("0b1") || _f("+0x1")) {
      _f = function f(e) {
        var t = arguments.length < 1 ? 0 : e,
            i = this;
        return i instanceof _f && (p ? x(function () {
          g.valueOf.call(i);
        }) : "Number" != o(i)) ? a(new d(b(t)), i, _f) : b(t);
      };

      for (var v, C = i(11) ? l(d) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","), y = 0; C.length > y; y++) {
        n(d, v = C[y]) && !n(_f, v) && u(_f, v, c(d, v));
      }

      _f.prototype = g, g.constructor = _f, i(22)(r, "Number", _f);
    }
  }, function (e, t, i) {
    var r = i(21),
        n = i(234).set;

    e.exports = function (e, t, i) {
      var o,
          a = t.constructor;
      return a !== i && "function" == typeof a && (o = a.prototype) !== i.prototype && r(o) && n && n(e, o), e;
    };
  }, function (e, t, i) {
    var r = i(10),
        n = i(142),
        o = i(13).f,
        a = i(41).f,
        s = i(80),
        x = i(64),
        _l = r.RegExp,
        c = _l,
        u = _l.prototype,
        h = /a/g,
        f = /a/g,
        d = new _l(h) !== h;

    if (i(11) && (!d || i(18)(function () {
      return f[i(4)("match")] = !1, _l(h) != h || _l(f) == f || "/a/i" != _l(h, "i");
    }))) {
      _l = function l(e, t) {
        var i = this instanceof _l,
            r = s(e),
            o = void 0 === t;
        return !i && r && e.constructor === _l && o ? e : n(d ? new c(r && !o ? e.source : e, t) : c((r = e instanceof _l) ? e.source : e, r && o ? x.call(e) : t), i ? this : u, _l);
      };

      for (var g = function g(e) {
        (e in _l) || o(_l, e, {
          configurable: !0,
          get: function get() {
            return c[e];
          },
          set: function set(t) {
            c[e] = t;
          }
        });
      }, p = a(c), m = 0; p.length > m;) {
        g(p[m++]);
      }

      u.constructor = _l, _l.prototype = u, i(22)(r, "RegExp", _l);
    }

    i(128)("RegExp");
  }, function (e, t, i) {
    e.exports = i(193);
  }, function (e, t, i) {
    e.exports = i(209);
  }, function (e, t, i) {
    "use strict";

    (function (e, t) {
      var r = i(15),
          n = i.n(r),
          o = (i(69), i(42), i(9)),
          a = i.n(o),
          s = i(3),
          x = i.n(s),
          l = (i(79), i(16)),
          c = i.n(l),
          u = (i(84), i(85), i(86), i(8)),
          h = i.n(u),
          f = i(2),
          d = i.n(f),
          g = i(1),
          p = i.n(g),
          m = (i(88), i(0)),
          b = i.n(m);
      !function (e, r) {
        var n = i(120);
        window.dcodeIO = window.dcodeIO || {}, window.dcodeIO.ByteBuffer = n, "function" == typeof define && i(121) ? define(["bytebuffer"], r) : "object" === b()(t) && t && t.exports ? t.exports = r(i(120), !0) : (e.dcodeIO = e.dcodeIO || {}).ProtoBuf = r(e.dcodeIO.ByteBuffer);
      }(window, function (t, r) {
        var o,
            s = {};
        return s.ByteBuffer = t, s.Long = t.Long || null, s.VERSION = "5.0.1", s.WIRE_TYPES = {}, s.WIRE_TYPES.VARINT = 0, s.WIRE_TYPES.BITS64 = 1, s.WIRE_TYPES.LDELIM = 2, s.WIRE_TYPES.STARTGROUP = 3, s.WIRE_TYPES.ENDGROUP = 4, s.WIRE_TYPES.BITS32 = 5, s.PACKABLE_WIRE_TYPES = [s.WIRE_TYPES.VARINT, s.WIRE_TYPES.BITS64, s.WIRE_TYPES.BITS32], s.TYPES = {
          int32: {
            name: "int32",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: 0
          },
          uint32: {
            name: "uint32",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: 0
          },
          sint32: {
            name: "sint32",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: 0
          },
          int64: {
            name: "int64",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: s.Long ? s.Long.ZERO : void 0
          },
          uint64: {
            name: "uint64",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: s.Long ? s.Long.UZERO : void 0
          },
          sint64: {
            name: "sint64",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: s.Long ? s.Long.ZERO : void 0
          },
          bool: {
            name: "bool",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: !1
          },
          "double": {
            name: "double",
            wireType: s.WIRE_TYPES.BITS64,
            defaultValue: 0
          },
          string: {
            name: "string",
            wireType: s.WIRE_TYPES.LDELIM,
            defaultValue: ""
          },
          bytes: {
            name: "bytes",
            wireType: s.WIRE_TYPES.LDELIM,
            defaultValue: null
          },
          fixed32: {
            name: "fixed32",
            wireType: s.WIRE_TYPES.BITS32,
            defaultValue: 0
          },
          sfixed32: {
            name: "sfixed32",
            wireType: s.WIRE_TYPES.BITS32,
            defaultValue: 0
          },
          fixed64: {
            name: "fixed64",
            wireType: s.WIRE_TYPES.BITS64,
            defaultValue: s.Long ? s.Long.UZERO : void 0
          },
          sfixed64: {
            name: "sfixed64",
            wireType: s.WIRE_TYPES.BITS64,
            defaultValue: s.Long ? s.Long.ZERO : void 0
          },
          "float": {
            name: "float",
            wireType: s.WIRE_TYPES.BITS32,
            defaultValue: 0
          },
          "enum": {
            name: "enum",
            wireType: s.WIRE_TYPES.VARINT,
            defaultValue: 0
          },
          message: {
            name: "message",
            wireType: s.WIRE_TYPES.LDELIM,
            defaultValue: null
          },
          group: {
            name: "group",
            wireType: s.WIRE_TYPES.STARTGROUP,
            defaultValue: null
          }
        }, s.MAP_KEY_TYPES = [s.TYPES.int32, s.TYPES.sint32, s.TYPES.sfixed32, s.TYPES.uint32, s.TYPES.fixed32, s.TYPES.int64, s.TYPES.sint64, s.TYPES.sfixed64, s.TYPES.uint64, s.TYPES.fixed64, s.TYPES.bool, s.TYPES.string, s.TYPES.bytes], s.ID_MIN = 1, s.ID_MAX = 536870911, s.convertFieldsToCamelCase = !1, s.populateAccessors = !0, s.populateDefaults = !0, s.Util = ((o = {}).IS_NODE = !("object" !== (void 0 === e ? "undefined" : b()(e)) || "[object process]" != e + "" || e.browser), o.XHR = function () {
          for (var e = [function () {
            return new XMLHttpRequest();
          }, function () {
            return new ActiveXObject("Msxml2.XMLHTTP");
          }, function () {
            return new ActiveXObject("Msxml3.XMLHTTP");
          }, function () {
            return new ActiveXObject("Microsoft.XMLHTTP");
          }], t = null, i = 0; i < e.length; i++) {
            try {
              t = e[i]();
            } catch (e) {
              continue;
            }

            break;
          }

          if (!t) throw Error("XMLHttpRequest is not supported");
          return t;
        }, o.fetch = function (e, t) {
          if (t && "function" != typeof t && (t = null), o.IS_NODE) {
            var r = i(192);
            if (t) r.readFile(e, function (e, i) {
              t(e ? null : "" + i);
            });else try {
              return r.readFileSync(e);
            } catch (e) {
              return null;
            }
          } else {
            var n = o.XHR();
            if (n.open("GET", e, !!t), n.setRequestHeader("Accept", "text/plain"), "function" == typeof n.overrideMimeType && n.overrideMimeType("text/plain"), !t) return n.send(null), 200 == n.status || 0 == n.status && "string" == typeof n.responseText ? n.responseText : null;
            n.onreadystatechange = function () {
              4 == n.readyState && (200 == n.status || 0 == n.status && "string" == typeof n.responseText ? t(n.responseText) : t(null));
            }, 4 != n.readyState && n.send(null);
          }
        }, o.toCamelCase = function (e) {
          return e.replace(/_([a-zA-Z])/g, function (e, t) {
            return t.toUpperCase();
          });
        }, o), s.Lang = {
          DELIM: /[\s\{\}=;:\[\],'"\(\)<>]/g,
          RULE: /^(?:required|optional|repeated|map)$/,
          TYPE: /^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,
          NAME: /^[a-zA-Z_][a-zA-Z_0-9]*$/,
          TYPEDEF: /^[a-zA-Z][a-zA-Z_0-9]*$/,
          TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/,
          FQTYPEREF: /^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/,
          NUMBER: /^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,
          NUMBER_DEC: /^(?:[1-9][0-9]*|0)$/,
          NUMBER_HEX: /^0[xX][0-9a-fA-F]+$/,
          NUMBER_OCT: /^0[0-7]+$/,
          NUMBER_FLT: /^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,
          BOOL: /^(?:true|false)$/i,
          ID: /^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
          NEGID: /^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
          WHITESPACE: /\s/,
          STRING: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,
          STRING_DQ: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,
          STRING_SQ: /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g
        }, s.DotProto = function (e, t) {
          function i(e, i) {
            var r = -1,
                n = 1;
            if ("-" == e.charAt(0) && (n = -1, e = e.substring(1)), t.NUMBER_DEC.test(e)) r = p()(e);else if (t.NUMBER_HEX.test(e)) r = p()(e.substring(2), 16);else {
              if (!t.NUMBER_OCT.test(e)) throw Error("illegal id value: " + (0 > n ? "-" : "") + e);
              r = p()(e.substring(1), 8);
            }
            if (r = n * r | 0, !i && 0 > r) throw Error("illegal id value: " + (0 > n ? "-" : "") + e);
            return r;
          }

          function r(e) {
            var i = 1;
            if ("-" == e.charAt(0) && (i = -1, e = e.substring(1)), t.NUMBER_DEC.test(e)) return i * p()(e, 10);
            if (t.NUMBER_HEX.test(e)) return i * p()(e.substring(2), 16);
            if (t.NUMBER_OCT.test(e)) return i * p()(e.substring(1), 8);
            if ("inf" === e) return 1 / 0 * i;
            if ("nan" === e) return NaN;
            if (t.NUMBER_FLT.test(e)) return i * d()(e);
            throw Error("illegal number value: " + (0 > i ? "-" : "") + e);
          }

          function n(e, t, i) {
            void 0 === e[t] ? e[t] = i : (h()(e[t]) || (e[t] = [e[t]]), e[t].push(i));
          }

          var o = {},
              a = function a(e) {
            this.source = e + "", this.index = 0, this.line = 1, this.stack = [], this._stringOpen = null;
          };

          (s = a.prototype)._readString = function () {
            var e = '"' === this._stringOpen ? t.STRING_DQ : t.STRING_SQ;
            e.lastIndex = this.index - 1;
            var i = e.exec(this.source);
            if (!i) throw Error("unterminated string");
            return this.index = e.lastIndex, this.stack.push(this._stringOpen), this._stringOpen = null, i[1];
          }, s.next = function () {
            if (0 < this.stack.length) return this.stack.shift();
            if (this.index >= this.source.length) return null;
            if (null !== this._stringOpen) return this._readString();
            var e, i;

            do {
              for (e = !1; t.WHITESPACE.test(i = this.source.charAt(this.index));) {
                if ("\n" === i && ++this.line, ++this.index === this.source.length) return null;
              }

              if ("/" === this.source.charAt(this.index)) if (++this.index, "/" === this.source.charAt(this.index)) {
                for (; "\n" !== this.source.charAt(++this.index);) {
                  if (this.index == this.source.length) return null;
                }

                ++this.index, ++this.line, e = !0;
              } else {
                if ("*" !== (i = this.source.charAt(this.index))) return "/";

                do {
                  if ("\n" === i && ++this.line, ++this.index === this.source.length) return null;
                  e = i, i = this.source.charAt(this.index);
                } while ("*" !== e || "/" !== i);

                ++this.index, e = !0;
              }
            } while (e);

            if (this.index === this.source.length) return null;
            if (i = this.index, t.DELIM.lastIndex = 0, !t.DELIM.test(this.source.charAt(i++))) for (; i < this.source.length && !t.DELIM.test(this.source.charAt(i));) {
              ++i;
            }
            return '"' !== (i = this.source.substring(this.index, this.index = i)) && "'" !== i || (this._stringOpen = i), i;
          }, s.peek = function () {
            if (0 === this.stack.length) {
              var e = this.next();
              if (null === e) return null;
              this.stack.push(e);
            }

            return this.stack[0];
          }, s.skip = function (e) {
            var t = this.next();
            if (t !== e) throw Error("illegal '" + t + "', '" + e + "' expected");
          }, s.omit = function (e) {
            return this.peek() === e && (this.next(), !0);
          }, s.toString = function () {
            return "Tokenizer (" + this.index + "/" + this.source.length + " at line " + this.line + ")";
          }, o.Tokenizer = a;

          var s,
              x = function x(e) {
            this.tn = new a(e), this.proto3 = !1;
          };

          return (s = x.prototype).parse = function () {
            var e,
                i,
                r = {
              name: "[ROOT]",
              "package": null,
              messages: [],
              enums: [],
              imports: [],
              options: {},
              services: []
            },
                n = !0;

            try {
              for (; e = this.tn.next();) {
                switch (e) {
                  case "package":
                    if (!n || null !== r["package"]) throw Error("unexpected 'package'");
                    if (e = this.tn.next(), !t.TYPEREF.test(e)) throw Error("illegal package name: " + e);
                    this.tn.skip(";"), r["package"] = e;
                    break;

                  case "import":
                    if (!n) throw Error("unexpected 'import'");
                    ("public" === (e = this.tn.peek()) || (i = "weak" === e)) && this.tn.next(), e = this._readString(), this.tn.skip(";"), i || r.imports.push(e);
                    break;

                  case "syntax":
                    if (!n) throw Error("unexpected 'syntax'");
                    this.tn.skip("="), "proto3" === (r.syntax = this._readString()) && (this.proto3 = !0), this.tn.skip(";");
                    break;

                  case "message":
                    this._parseMessage(r, null), n = !1;
                    break;

                  case "enum":
                    this._parseEnum(r), n = !1;
                    break;

                  case "option":
                    this._parseOption(r);

                    break;

                  case "service":
                    this._parseService(r);

                    break;

                  case "extend":
                    this._parseExtend(r);

                    break;

                  default:
                    throw Error("unexpected '" + e + "'");
                }
              }
            } catch (e) {
              throw e.message = "Parse error at line " + this.tn.line + ": " + e.message, e;
            }

            return delete r.name, r;
          }, x.parse = function (e) {
            return new x(e).parse();
          }, s._readString = function () {
            var e,
                t = "";

            do {
              if ("'" !== (e = this.tn.next()) && '"' !== e) throw Error("illegal string delimiter: " + e);
              t += this.tn.next(), this.tn.skip(e), e = this.tn.peek();
            } while ('"' === e || '"' === e);

            return t;
          }, s._readValue = function (e) {
            var i = this.tn.peek();
            if ('"' === i || "'" === i) return this._readString();
            if (this.tn.next(), t.NUMBER.test(i)) return r(i);
            if (t.BOOL.test(i)) return "true" === i.toLowerCase();
            if (e && t.TYPEREF.test(i)) return i;
            throw Error("illegal value: " + i);
          }, s._parseOption = function (e, i) {
            var r = this.tn.next(),
                n = !1;
            if ("(" === r && (n = !0, r = this.tn.next()), !t.TYPEREF.test(r)) throw Error("illegal option name: " + r);
            var o = r;
            n && (this.tn.skip(")"), o = "(" + o + ")", r = this.tn.peek(), t.FQTYPEREF.test(r) && (o += r, this.tn.next())), this.tn.skip("="), this._parseOptionValue(e, o), i || this.tn.skip(";");
          }, s._parseOptionValue = function (e, i) {
            var r = this.tn.peek();
            if ("{" !== r) n(e.options, i, this._readValue(!0));else for (this.tn.skip("{"); "}" !== (r = this.tn.next());) {
              if (!t.NAME.test(r)) throw Error("illegal option name: " + i + "." + r);
              this.tn.omit(":") ? n(e.options, i + "." + r, this._readValue(!0)) : this._parseOptionValue(e, i + "." + r);
            }
          }, s._parseService = function (e) {
            var i = this.tn.next();
            if (!t.NAME.test(i)) throw Error("illegal service name at line " + this.tn.line + ": " + i);
            var r = {
              name: i,
              rpc: {},
              options: {}
            };

            for (this.tn.skip("{"); "}" !== (i = this.tn.next());) {
              if ("option" === i) this._parseOption(r);else {
                if ("rpc" !== i) throw Error("illegal service token: " + i);

                this._parseServiceRPC(r);
              }
            }

            this.tn.omit(";"), e.services.push(r);
          }, s._parseServiceRPC = function (e) {
            var i = this.tn.next();
            if (!t.NAME.test(i)) throw Error("illegal rpc service method name: " + i);
            var r = i,
                n = {
              request: null,
              response: null,
              request_stream: !1,
              response_stream: !1,
              options: {}
            };
            if (this.tn.skip("("), "stream" === (i = this.tn.next()).toLowerCase() && (n.request_stream = !0, i = this.tn.next()), !t.TYPEREF.test(i)) throw Error("illegal rpc service request type: " + i);
            if (n.request = i, this.tn.skip(")"), "returns" !== (i = this.tn.next()).toLowerCase()) throw Error("illegal rpc service request type delimiter: " + i);

            if (this.tn.skip("("), "stream" === (i = this.tn.next()).toLowerCase() && (n.response_stream = !0, i = this.tn.next()), n.response = i, this.tn.skip(")"), "{" === (i = this.tn.peek())) {
              for (this.tn.next(); "}" !== (i = this.tn.next());) {
                if ("option" !== i) throw Error("illegal rpc service token: " + i);

                this._parseOption(n);
              }

              this.tn.omit(";");
            } else this.tn.skip(";");

            void 0 === e.rpc && (e.rpc = {}), e.rpc[r] = n;
          }, s._parseMessage = function (e, r) {
            var n = !!r,
                o = this.tn.next(),
                a = {
              name: "",
              fields: [],
              enums: [],
              messages: [],
              options: {},
              services: [],
              oneofs: {}
            };
            if (!t.NAME.test(o)) throw Error("illegal " + (n ? "group" : "message") + " name: " + o);

            for (a.name = o, n && (this.tn.skip("="), r.id = i(this.tn.next()), a.isGroup = !0), "[" === (o = this.tn.peek()) && r && this._parseFieldOptions(r), this.tn.skip("{"); "}" !== (o = this.tn.next());) {
              if (t.RULE.test(o)) this._parseMessageField(a, o);else if ("oneof" === o) this._parseMessageOneOf(a);else if ("enum" === o) this._parseEnum(a);else if ("message" === o) this._parseMessage(a);else if ("option" === o) this._parseOption(a);else if ("service" === o) this._parseService(a);else if ("extensions" === o) a.hasOwnProperty("extensions") ? a.extensions = a.extensions.concat(this._parseExtensionRanges()) : a.extensions = this._parseExtensionRanges();else if ("reserved" === o) this._parseIgnored();else if ("extend" === o) this._parseExtend(a);else {
                if (!t.TYPEREF.test(o)) throw Error("illegal message token: " + o);
                if (!this.proto3) throw Error("illegal field rule: " + o);

                this._parseMessageField(a, "optional", o);
              }
            }

            return this.tn.omit(";"), e.messages.push(a), a;
          }, s._parseIgnored = function () {
            for (; ";" !== this.tn.peek();) {
              this.tn.next();
            }

            this.tn.skip(";");
          }, s._parseMessageField = function (e, r, n) {
            if (!t.RULE.test(r)) throw Error("illegal message field rule: " + r);
            var o = {
              rule: r,
              type: "",
              name: "",
              options: {},
              id: 0
            };

            if ("map" === r) {
              if (n) throw Error("illegal type: " + n);
              if (this.tn.skip("<"), r = this.tn.next(), !t.TYPE.test(r) && !t.TYPEREF.test(r)) throw Error("illegal message field type: " + r);
              if (o.keytype = r, this.tn.skip(","), r = this.tn.next(), !t.TYPE.test(r) && !t.TYPEREF.test(r)) throw Error("illegal message field: " + r);
              if (o.type = r, this.tn.skip(">"), r = this.tn.next(), !t.NAME.test(r)) throw Error("illegal message field name: " + r);
              o.name = r, this.tn.skip("="), o.id = i(this.tn.next()), "[" === (r = this.tn.peek()) && this._parseFieldOptions(o), this.tn.skip(";");
            } else if ("group" === (n = void 0 !== n ? n : this.tn.next())) {
              if (r = this._parseMessage(e, o), !/^[A-Z]/.test(r.name)) throw Error("illegal group name: " + r.name);
              o.type = r.name, o.name = r.name.toLowerCase(), this.tn.omit(";");
            } else {
              if (!t.TYPE.test(n) && !t.TYPEREF.test(n)) throw Error("illegal message field type: " + n);
              if (o.type = n, r = this.tn.next(), !t.NAME.test(r)) throw Error("illegal message field name: " + r);
              o.name = r, this.tn.skip("="), o.id = i(this.tn.next()), "[" === (r = this.tn.peek()) && this._parseFieldOptions(o), this.tn.skip(";");
            }

            return e.fields.push(o), o;
          }, s._parseMessageOneOf = function (e) {
            var i = this.tn.next();
            if (!t.NAME.test(i)) throw Error("illegal oneof name: " + i);
            var r = i,
                n = [];

            for (this.tn.skip("{"); "}" !== (i = this.tn.next());) {
              (i = this._parseMessageField(e, "optional", i)).oneof = r, n.push(i.id);
            }

            this.tn.omit(";"), e.oneofs[r] = n;
          }, s._parseFieldOptions = function (e) {
            this.tn.skip("[");

            for (var t = !0; "]" !== this.tn.peek();) {
              t || this.tn.skip(","), this._parseOption(e, !0), t = !1;
            }

            this.tn.next();
          }, s._parseEnum = function (e) {
            var r = {
              name: "",
              values: [],
              options: {}
            },
                n = this.tn.next();
            if (!t.NAME.test(n)) throw Error("illegal name: " + n);

            for (r.name = n, this.tn.skip("{"); "}" !== (n = this.tn.next());) {
              if ("option" === n) this._parseOption(r);else {
                if (!t.NAME.test(n)) throw Error("illegal name: " + n);
                this.tn.skip("=");
                var o = {
                  name: n,
                  id: i(this.tn.next(), !0)
                };
                "[" === (n = this.tn.peek()) && this._parseFieldOptions({
                  options: {}
                }), this.tn.skip(";"), r.values.push(o);
              }
            }

            this.tn.omit(";"), e.enums.push(r);
          }, s._parseExtensionRanges = function () {
            var t,
                i,
                n = [];

            do {
              for (i = [];;) {
                switch (t = this.tn.next()) {
                  case "min":
                    t = e.ID_MIN;
                    break;

                  case "max":
                    t = e.ID_MAX;
                    break;

                  default:
                    t = r(t);
                }

                if (i.push(t), 2 === i.length) break;

                if ("to" !== this.tn.peek()) {
                  i.push(t);
                  break;
                }

                this.tn.next();
              }

              n.push(i);
            } while (this.tn.omit(","));

            return this.tn.skip(";"), n;
          }, s._parseExtend = function (e) {
            var i = this.tn.next();
            if (!t.TYPEREF.test(i)) throw Error("illegal extend reference: " + i);
            var r = {
              ref: i,
              fields: []
            };

            for (this.tn.skip("{"); "}" !== (i = this.tn.next());) {
              if (t.RULE.test(i)) this._parseMessageField(r, i);else {
                if (!t.TYPEREF.test(i)) throw Error("illegal extend token: " + i);
                if (!this.proto3) throw Error("illegal field rule: " + i);

                this._parseMessageField(r, "optional", i);
              }
            }

            return this.tn.omit(";"), e.messages.push(r), r;
          }, s.toString = function () {
            return "Parser at line " + this.tn.line;
          }, o.Parser = x, o;
        }(s, s.Lang), s.Reflect = function (e) {
          function i(t, i) {
            if (t && "number" == typeof t.low && "number" == typeof t.high && "boolean" == typeof t.unsigned && t.low == t.low && t.high == t.high) return new e.Long(t.low, t.high, void 0 === i ? t.unsigned : i);
            if ("string" == typeof t) return e.Long.fromString(t, i || !1, 10);
            if ("number" == typeof t) return e.Long.fromNumber(t, i || !1);
            throw Error("not convertible to Long");
          }

          function r(t, i) {
            var n = 7 & (o = i.readVarint32()),
                o = o >>> 3;

            switch (n) {
              case e.WIRE_TYPES.VARINT:
                do {
                  o = i.readUint8();
                } while (128 == (128 & o));

                break;

              case e.WIRE_TYPES.BITS64:
                i.offset += 8;
                break;

              case e.WIRE_TYPES.LDELIM:
                o = i.readVarint32(), i.offset += o;
                break;

              case e.WIRE_TYPES.STARTGROUP:
                r(o, i);
                break;

              case e.WIRE_TYPES.ENDGROUP:
                if (o === t) return !1;
                throw Error("Illegal GROUPEND after unknown group: " + o + " (" + t + " expected)");

              case e.WIRE_TYPES.BITS32:
                i.offset += 4;
                break;

              default:
                throw Error("Illegal wire type in unknown group " + t + ": " + n);
            }

            return !0;
          }

          var o = {},
              s = function s(e, t, i) {
            this.builder = e, this.parent = t, this.name = i;
          };

          (l = s.prototype).fqn = function () {
            for (var e = this.name, t = this;;) {
              if (null == (t = t.parent)) break;
              e = t.name + "." + e;
            }

            return e;
          }, l.toString = function (e) {
            return (e ? this.className + " " : "") + this.fqn();
          }, l.build = function () {
            throw Error(this.toString(!0) + " cannot be built directly");
          }, o.T = s;

          var l,
              u = function u(e, t, i, r, n) {
            s.call(this, e, t, i), this.className = "Namespace", this.children = [], this.options = r || {}, this.syntax = n || "proto2";
          };

          (l = u.prototype = c()(s.prototype)).getChildren = function (e) {
            if (null == (e = e || null)) return this.children.slice();

            for (var t = [], i = 0, r = this.children.length; i < r; ++i) {
              this.children[i] instanceof e && t.push(this.children[i]);
            }

            return t;
          }, l.addChild = function (e) {
            var t;
            if (t = this.getChild(e.name)) if (t instanceof g.Field && t.name !== t.originalName && null === this.getChild(t.originalName)) t.name = t.originalName;else {
              if (!(e instanceof g.Field && e.name !== e.originalName && null === this.getChild(e.originalName))) throw Error("Duplicate name in namespace " + this.toString(!0) + ": " + e.name);
              e.name = e.originalName;
            }
            this.children.push(e);
          }, l.getChild = function (e) {
            for (var t = "number" == typeof e ? "id" : "name", i = 0, r = this.children.length; i < r; ++i) {
              if (this.children[i][t] === e) return this.children[i];
            }

            return null;
          }, l.resolve = function (e, t) {
            var i = "string" == typeof e ? e.split(".") : e,
                r = this,
                n = 0;

            if ("" === i[n]) {
              for (; null !== r.parent;) {
                r = r.parent;
              }

              n++;
            }

            do {
              do {
                if (!(r instanceof o.Namespace)) {
                  r = null;
                  break;
                }

                if (!((r = r.getChild(i[n])) && r instanceof o.T) || t && !(r instanceof o.Namespace)) {
                  r = null;
                  break;
                }

                n++;
              } while (n < i.length);

              if (null != r) break;
              if (null !== this.parent) return this.parent.resolve(e, t);
            } while (null != r);

            return r;
          }, l.qn = function (e) {
            var t = [],
                i = e;

            do {
              t.unshift(i.name), i = i.parent;
            } while (null !== i);

            for (i = 1; i <= t.length; i++) {
              var r = t.slice(t.length - i);
              if (e === this.resolve(r, e instanceof o.Namespace)) return r.join(".");
            }

            return e.fqn();
          }, l.build = function () {
            for (var e, t = {}, i = this.children, r = 0, n = i.length; r < n; ++r) {
              (e = i[r]) instanceof u && (t[e.name] = e.build());
            }

            return x.a && x()(t, "$options", {
              value: this.buildOpt()
            }), t;
          }, l.buildOpt = function () {
            for (var e = {}, t = a()(this.options), i = 0, r = t.length; i < r; ++i) {
              e[t[i]] = this.options[t[i]];
            }

            return e;
          }, l.getOption = function (e) {
            return void 0 === e ? this.options : void 0 !== this.options[e] ? this.options[e] : null;
          }, o.Namespace = u;

          var f = function f(t, i, r, n, o) {
            if (this.type = t, this.resolvedType = i, this.isMapKey = r, this.syntax = n, this.name = o, r && 0 > e.MAP_KEY_TYPES.indexOf(t)) throw Error("Invalid map key type: " + t.name);
          },
              d = f.prototype;

          f.defaultFieldValue = function (i) {
            if ("string" == typeof i && (i = e.TYPES[i]), void 0 === i.defaultValue) throw Error("default value for type " + i.name + " is not supported");
            return i == e.TYPES.bytes ? new t(0) : i.defaultValue;
          }, d.toString = function () {
            return (this.name || "") + (this.isMapKey ? "map" : "value") + " element";
          }, d.verifyValue = function (r) {
            function n(e, t) {
              throw Error("Illegal value for " + o.toString(!0) + " of type " + o.type.name + ": " + e + " (" + t + ")");
            }

            var o = this;

            switch (this.type) {
              case e.TYPES.int32:
              case e.TYPES.sint32:
              case e.TYPES.sfixed32:
                return ("number" != typeof r || r == r && 0 != r % 1) && n(b()(r), "not an integer"), 4294967295 < r ? 0 | r : r;

              case e.TYPES.uint32:
              case e.TYPES.fixed32:
                return ("number" != typeof r || r == r && 0 != r % 1) && n(b()(r), "not an integer"), 0 > r ? r >>> 0 : r;

              case e.TYPES.int64:
              case e.TYPES.sint64:
              case e.TYPES.sfixed64:
                if (e.Long) try {
                  return i(r, !1);
                } catch (e) {
                  n(b()(r), e.message);
                } else n(b()(r), "requires Long.js");

              case e.TYPES.uint64:
              case e.TYPES.fixed64:
                if (e.Long) try {
                  return i(r, !0);
                } catch (e) {
                  n(b()(r), e.message);
                } else n(b()(r), "requires Long.js");

              case e.TYPES.bool:
                return "boolean" != typeof r && n(b()(r), "not a boolean"), r;

              case e.TYPES["float"]:
              case e.TYPES["double"]:
                return "number" != typeof r && n(b()(r), "not a number"), r;

              case e.TYPES.string:
                return "string" == typeof r || r && r instanceof String || n(b()(r), "not a string"), "" + r;

              case e.TYPES.bytes:
                return t.isByteBuffer(r) ? r : t.wrap(r, "base64");

              case e.TYPES["enum"]:
                for (var a = this.resolvedType.getChildren(e.Reflect.Enum.Value), s = 0; s < a.length; s++) {
                  if (a[s].name == r || a[s].id == r) return a[s].id;
                }

                if ("proto3" === this.syntax) return ("number" != typeof r || r == r && 0 != r % 1) && n(b()(r), "not an integer"), (4294967295 < r || 0 > r) && n(b()(r), "not in range for uint32"), r;
                n(r, "not a valid enum value");

              case e.TYPES.group:
              case e.TYPES.message:
                if (r && "object" === b()(r) || n(b()(r), "object expected"), r instanceof this.resolvedType.clazz) return r;

                if (r instanceof e.Builder.Message) {
                  a = {};

                  for (s in r) {
                    r.hasOwnProperty(s) && (a[s] = r[s]);
                  }

                  r = a;
                }

                return new this.resolvedType.clazz(r);
            }

            throw Error("[INTERNAL] Illegal value for " + this.toString(!0) + ": " + r + " (undefined type " + this.type + ")");
          }, d.calculateLength = function (i, r) {
            if (null === r) return 0;
            var n;

            switch (this.type) {
              case e.TYPES.int32:
                return 0 > r ? t.calculateVarint64(r) : t.calculateVarint32(r);

              case e.TYPES.uint32:
                return t.calculateVarint32(r);

              case e.TYPES.sint32:
                return t.calculateVarint32(t.zigZagEncode32(r));

              case e.TYPES.fixed32:
              case e.TYPES.sfixed32:
              case e.TYPES["float"]:
                return 4;

              case e.TYPES.int64:
              case e.TYPES.uint64:
                return t.calculateVarint64(r);

              case e.TYPES.sint64:
                return t.calculateVarint64(t.zigZagEncode64(r));

              case e.TYPES.fixed64:
              case e.TYPES.sfixed64:
                return 8;

              case e.TYPES.bool:
                return 1;

              case e.TYPES["enum"]:
                return t.calculateVarint32(r);

              case e.TYPES["double"]:
                return 8;

              case e.TYPES.string:
                return n = t.calculateUTF8Bytes(r), t.calculateVarint32(n) + n;

              case e.TYPES.bytes:
                if (0 > r.remaining()) throw Error("Illegal value for " + this.toString(!0) + ": " + r.remaining() + " bytes remaining");
                return t.calculateVarint32(r.remaining()) + r.remaining();

              case e.TYPES.message:
                return n = this.resolvedType.calculate(r), t.calculateVarint32(n) + n;

              case e.TYPES.group:
                return (n = this.resolvedType.calculate(r)) + t.calculateVarint32(i << 3 | e.WIRE_TYPES.ENDGROUP);
            }

            throw Error("[INTERNAL] Illegal value to encode in " + this.toString(!0) + ": " + r + " (unknown type)");
          }, d.encodeValue = function (i, r, n) {
            if (null === r) return n;

            switch (this.type) {
              case e.TYPES.int32:
                0 > r ? n.writeVarint64(r) : n.writeVarint32(r);
                break;

              case e.TYPES.uint32:
                n.writeVarint32(r);
                break;

              case e.TYPES.sint32:
                n.writeVarint32ZigZag(r);
                break;

              case e.TYPES.fixed32:
                n.writeUint32(r);
                break;

              case e.TYPES.sfixed32:
                n.writeInt32(r);
                break;

              case e.TYPES.int64:
              case e.TYPES.uint64:
                n.writeVarint64(r);
                break;

              case e.TYPES.sint64:
                n.writeVarint64ZigZag(r);
                break;

              case e.TYPES.fixed64:
                n.writeUint64(r);
                break;

              case e.TYPES.sfixed64:
                n.writeInt64(r);
                break;

              case e.TYPES.bool:
                "string" == typeof r ? n.writeVarint32("false" === r.toLowerCase() ? 0 : !!r) : n.writeVarint32(r ? 1 : 0);
                break;

              case e.TYPES["enum"]:
                n.writeVarint32(r);
                break;

              case e.TYPES["float"]:
                n.writeFloat32(r);
                break;

              case e.TYPES["double"]:
                n.writeFloat64(r);
                break;

              case e.TYPES.string:
                n.writeVString(r);
                break;

              case e.TYPES.bytes:
                if (0 > r.remaining()) throw Error("Illegal value for " + this.toString(!0) + ": " + r.remaining() + " bytes remaining");
                i = r.offset, n.writeVarint32(r.remaining()), n.append(r), r.offset = i;
                break;

              case e.TYPES.message:
                i = new t().LE(), this.resolvedType.encode(r, i), n.writeVarint32(i.offset), n.append(i.flip());
                break;

              case e.TYPES.group:
                this.resolvedType.encode(r, n), n.writeVarint32(i << 3 | e.WIRE_TYPES.ENDGROUP);
                break;

              default:
                throw Error("[INTERNAL] Illegal value to encode in " + this.toString(!0) + ": " + r + " (unknown type)");
            }

            return n;
          }, d.decode = function (t, i, r) {
            if (i != this.type.wireType) throw Error("Unexpected wire type for element");

            switch (this.type) {
              case e.TYPES.int32:
                return 0 | t.readVarint32();

              case e.TYPES.uint32:
                return t.readVarint32() >>> 0;

              case e.TYPES.sint32:
                return 0 | t.readVarint32ZigZag();

              case e.TYPES.fixed32:
                return t.readUint32() >>> 0;

              case e.TYPES.sfixed32:
                return 0 | t.readInt32();

              case e.TYPES.int64:
                return t.readVarint64();

              case e.TYPES.uint64:
                return t.readVarint64().toUnsigned();

              case e.TYPES.sint64:
                return t.readVarint64ZigZag();

              case e.TYPES.fixed64:
                return t.readUint64();

              case e.TYPES.sfixed64:
                return t.readInt64();

              case e.TYPES.bool:
                return !!t.readVarint32();

              case e.TYPES["enum"]:
                return t.readVarint32();

              case e.TYPES["float"]:
                return t.readFloat();

              case e.TYPES["double"]:
                return t.readDouble();

              case e.TYPES.string:
                return t.readVString();

              case e.TYPES.bytes:
                if (r = t.readVarint32(), t.remaining() < r) throw Error("Illegal number of bytes for " + this.toString(!0) + ": " + r + " required but got only " + t.remaining());
                return (i = t.clone()).limit = i.offset + r, t.offset += r, i;

              case e.TYPES.message:
                return r = t.readVarint32(), this.resolvedType.decode(t, r);

              case e.TYPES.group:
                return this.resolvedType.decode(t, -1, r);
            }

            throw Error("[INTERNAL] Illegal decode type");
          }, d.valueFromString = function (i) {
            if (!this.isMapKey) throw Error("valueFromString() called on non-map-key element");

            switch (this.type) {
              case e.TYPES.int32:
              case e.TYPES.sint32:
              case e.TYPES.sfixed32:
              case e.TYPES.uint32:
              case e.TYPES.fixed32:
                return this.verifyValue(p()(i));

              case e.TYPES.int64:
              case e.TYPES.sint64:
              case e.TYPES.sfixed64:
              case e.TYPES.uint64:
              case e.TYPES.fixed64:
                return this.verifyValue(i);

              case e.TYPES.bool:
                return "true" === i;

              case e.TYPES.string:
                return this.verifyValue(i);

              case e.TYPES.bytes:
                return t.fromBinary(i);
            }
          }, d.valueToString = function (t) {
            if (!this.isMapKey) throw Error("valueToString() called on non-map-key element");
            return this.type === e.TYPES.bytes ? t.toString("binary") : t.toString();
          }, o.Element = f;

          var g = function g(e, t, i, r, n, o) {
            u.call(this, e, t, i, r, o), this.className = "Message", this.extensions = void 0, this.clazz = null, this.isGroup = !!n, this._fieldsByName = this._fieldsById = this._fields = null;
          };

          (d = g.prototype = c()(u.prototype)).build = function (i) {
            if (this.clazz && !i) return this.clazz;
            i = function (e, i) {
              function r(i, n, o, a) {
                if (null === i || "object" !== b()(i)) {
                  if (a && a instanceof e.Reflect.Enum) if (null !== (c = e.Reflect.Enum.getName(a.object, i))) return c;
                  return i;
                }

                if (t.isByteBuffer(i)) return n ? i.toBase64() : i.toBuffer();
                if (e.Long.isLong(i)) return o ? i.toString() : e.Long.fromValue(i);
                var s;
                if (h()(i)) return s = [], i.forEach(function (e, t) {
                  s[t] = r(e, n, o, a);
                }), s;

                if (s = {}, i instanceof e.Map) {
                  for (var x = (c = i.entries()).next(); !x.done; x = c.next()) {
                    s[i.keyElem.valueToString(x.value[0])] = r(x.value[1], n, o, i.valueElem.resolvedType);
                  }

                  return s;
                }

                var l,
                    c = i.$type;
                x = void 0;

                for (l in i) {
                  i.hasOwnProperty(l) && (c && (x = c.getChild(l)) ? s[l] = r(i[l], n, o, x.resolvedType) : s[l] = r(i[l], n, o));
                }

                return s;
              }

              var o = i.getChildren(e.Reflect.Message.Field),
                  a = i.getChildren(e.Reflect.Message.OneOf),
                  s = function r(n, s) {
                e.Builder.Message.call(this);

                for (var x = 0, l = a.length; x < l; ++x) {
                  this[a[x].name] = null;
                }

                for (x = 0, l = o.length; x < l; ++x) {
                  var c = o[x];
                  this[c.name] = c.repeated ? [] : c.map ? new e.Map(c) : null, !c.required && "proto3" !== i.syntax || null === c.defaultValue || (this[c.name] = c.defaultValue);
                }

                if (0 < arguments.length) if (1 !== arguments.length || null === n || "object" !== b()(n) || !("function" != typeof n.encode || n instanceof r) || h()(n) || n instanceof e.Map || t.isByteBuffer(n) || n instanceof ArrayBuffer || e.Long && n instanceof e.Long) for (x = 0, l = arguments.length; x < l; ++x) {
                  void 0 !== (c = arguments[x]) && this.$set(o[x].name, c);
                } else this.$set(n);
              },
                  l = s.prototype = c()(e.Builder.Message.prototype);

              l.add = function (t, r, n) {
                var o = i._fieldsByName[t];

                if (!n) {
                  if (!o) throw Error(this + "#" + t + " is undefined");
                  if (!(o instanceof e.Reflect.Message.Field)) throw Error(this + "#" + t + " is not a field: " + o.toString(!0));
                  if (!o.repeated) throw Error(this + "#" + t + " is not a repeated field");
                  r = o.verifyValue(r, !0);
                }

                return null === this[t] && (this[t] = []), this[t].push(r), this;
              }, l.$add = l.add, l.set = function (t, r, n) {
                if (t && "object" === b()(t)) {
                  for (var o in n = r, t) {
                    t.hasOwnProperty(o) && void 0 !== (r = t[o]) && this.$set(o, r, n);
                  }

                  return this;
                }

                if (o = i._fieldsByName[t], n) this[t] = r;else {
                  if (!o) throw Error(this + "#" + t + " is not a field: undefined");
                  if (!(o instanceof e.Reflect.Message.Field)) throw Error(this + "#" + t + " is not a field: " + o.toString(!0));
                  this[o.name] = r = o.verifyValue(r);
                }
                return o && o.oneof && (n = this[o.oneof.name], null !== r ? (null !== n && n !== o.name && (this[n] = null), this[o.oneof.name] = o.name) : n === t && (this[o.oneof.name] = null)), this;
              }, l.$set = l.set, l.get = function (t, r) {
                if (r) return this[t];
                var n = i._fieldsByName[t];
                if (!(n && n instanceof e.Reflect.Message.Field)) throw Error(this + "#" + t + " is not a field: undefined");
                if (!(n instanceof e.Reflect.Message.Field)) throw Error(this + "#" + t + " is not a field: " + n.toString(!0));
                return this[n.name];
              }, l.$get = l.get;

              for (var u = 0; u < o.length; u++) {
                var f = o[u];
                f instanceof e.Reflect.Message.ExtensionField || i.builder.options.populateAccessors && function (e) {
                  var t = (t = e.originalName.replace(/(_[a-zA-Z])/g, function (e) {
                    return e.toUpperCase().replace("_", "");
                  })).substring(0, 1).toUpperCase() + t.substring(1),
                      r = e.originalName.replace(/([A-Z])/g, function (e) {
                    return "_" + e;
                  }),
                      n = function n(t, i) {
                    return this[e.name] = i ? t : e.verifyValue(t), this;
                  },
                      o = function o() {
                    return this[e.name];
                  };

                  null === i.getChild("set" + t) && (l["set" + t] = n), null === i.getChild("set_" + r) && (l["set_" + r] = n), null === i.getChild("get" + t) && (l["get" + t] = o), null === i.getChild("get_" + r) && (l["get_" + r] = o);
                }(f);
              }

              return l.encode = function (e, r) {
                "boolean" == typeof e && (r = e, e = void 0);
                var n = !1;
                e || (e = new t(), n = !0);
                var o = e.littleEndian;

                try {
                  return i.encode(this, e.LE(), r), (n ? e.flip() : e).LE(o);
                } catch (t) {
                  throw e.LE(o), t;
                }
              }, s.encode = function (e, t, i) {
                return new s(e).encode(t, i);
              }, l.calculate = function () {
                return i.calculate(this);
              }, l.encodeDelimited = function (e, r) {
                var n = !1;
                e || (e = new t(), n = !0);
                var o = new t().LE();
                return i.encode(this, o, r).flip(), e.writeVarint32(o.remaining()), e.append(o), n ? e.flip() : e;
              }, l.encodeAB = function () {
                try {
                  return this.encode().toArrayBuffer();
                } catch (e) {
                  throw e.encoded && (e.encoded = e.encoded.toArrayBuffer()), e;
                }
              }, l.toArrayBuffer = l.encodeAB, l.encodeNB = function () {
                try {
                  return this.encode().toBuffer();
                } catch (e) {
                  throw e.encoded && (e.encoded = e.encoded.toBuffer()), e;
                }
              }, l.toBuffer = l.encodeNB, l.encode64 = function () {
                try {
                  return this.encode().toBase64();
                } catch (e) {
                  throw e.encoded && (e.encoded = e.encoded.toBase64()), e;
                }
              }, l.toBase64 = l.encode64, l.encodeHex = function () {
                try {
                  return this.encode().toHex();
                } catch (e) {
                  throw e.encoded && (e.encoded = e.encoded.toHex()), e;
                }
              }, l.toHex = l.encodeHex, l.toRaw = function (e, t) {
                return r(this, !!e, !!t, this.$type);
              }, l.encodeJSON = function () {
                return n()(r(this, !0, !0, this.$type));
              }, s.decode = function (e, r, n) {
                "string" == typeof r && (n = r, r = -1), "string" == typeof e ? e = t.wrap(e, n || "base64") : t.isByteBuffer(e) || (e = t.wrap(e)), n = e.littleEndian;

                try {
                  var o = i.decode(e.LE(), r);
                  return e.LE(n), o;
                } catch (t) {
                  throw e.LE(n), t;
                }
              }, s.decodeDelimited = function (e, r) {
                if ("string" == typeof e ? e = t.wrap(e, r || "base64") : t.isByteBuffer(e) || (e = t.wrap(e)), 1 > e.remaining()) return null;
                var n = e.offset,
                    o = e.readVarint32();
                if (e.remaining() < o) return e.offset = n, null;

                try {
                  var a = i.decode(e.slice(e.offset, e.offset + o).LE());
                  return e.offset += o, a;
                } catch (t) {
                  throw e.offset += o, t;
                }
              }, s.decode64 = function (e) {
                return s.decode(e, "base64");
              }, s.decodeHex = function (e) {
                return s.decode(e, "hex");
              }, s.decodeJSON = function (e) {
                return new s(JSON.parse(e));
              }, l.toString = function () {
                return i.toString();
              }, x.a && (x()(s, "$options", {
                value: i.buildOpt()
              }), x()(l, "$options", {
                value: s.$options
              }), x()(s, "$type", {
                value: i
              }), x()(l, "$type", {
                value: i
              })), s;
            }(e, this), this._fields = [], this._fieldsById = {}, this._fieldsByName = {};

            for (var r, o = 0, a = this.children.length; o < a; o++) {
              if ((r = this.children[o]) instanceof v || r instanceof g || r instanceof y) {
                if (i.hasOwnProperty(r.name)) throw Error("Illegal reflect child of " + this.toString(!0) + ": " + r.toString(!0) + " cannot override static property '" + r.name + "'");
                i[r.name] = r.build();
              } else if (r instanceof g.Field) r.build(), this._fields.push(r), this._fieldsById[r.id] = r, this._fieldsByName[r.name] = r;else if (!(r instanceof g.OneOf || r instanceof C)) throw Error("Illegal reflect child of " + this.toString(!0) + ": " + this.children[o].toString(!0));
            }

            return this.clazz = i;
          }, d.encode = function (e, t, i) {
            for (var r, n, o = null, a = 0, s = this._fields.length; a < s; ++a) {
              n = e[(r = this._fields[a]).name], r.required && null === n ? null === o && (o = r) : r.encode(i ? n : r.verifyValue(n), t, e);
            }

            if (null !== o) throw (e = Error("Missing at least one required field for " + this.toString(!0) + ": " + o)).encoded = t, e;
            return t;
          }, d.calculate = function (e) {
            for (var t, i, r = 0, n = 0, o = this._fields.length; n < o; ++n) {
              if (i = e[(t = this._fields[n]).name], t.required && null === i) throw Error("Missing at least one required field for " + this.toString(!0) + ": " + t);
              r += t.calculate(i, e);
            }

            return r;
          }, d.decode = function (t, i, n) {
            "number" != typeof i && (i = -1);

            for (var o, a, s, x = t.offset, l = new this.clazz(); t.offset < x + i || -1 === i && 0 < t.remaining();) {
              if (s = (o = t.readVarint32()) >>> 3, (a = 7 & o) === e.WIRE_TYPES.ENDGROUP) {
                if (s !== n) throw Error("Illegal group end indicator for " + this.toString(!0) + ": " + s + " (" + (n ? n + " expected" : "not a group") + ")");
                break;
              }

              if (o = this._fieldsById[s]) o.repeated && !o.options.packed ? l[o.name].push(o.decode(a, t)) : o.map ? (a = o.decode(a, t), l[o.name].set(a[0], a[1])) : (l[o.name] = o.decode(a, t), o.oneof && (null !== (a = l[o.oneof.name]) && a !== o.name && (l[a] = null), l[o.oneof.name] = o.name));else switch (a) {
                case e.WIRE_TYPES.VARINT:
                  t.readVarint32();
                  break;

                case e.WIRE_TYPES.BITS32:
                  t.offset += 4;
                  break;

                case e.WIRE_TYPES.BITS64:
                  t.offset += 8;
                  break;

                case e.WIRE_TYPES.LDELIM:
                  o = t.readVarint32(), t.offset += o;
                  break;

                case e.WIRE_TYPES.STARTGROUP:
                  for (; r(s, t);) {
                    ;
                  }

                  break;

                default:
                  throw Error("Illegal wire type for unknown field " + s + " in " + this.toString(!0) + "#decode: " + a);
              }
            }

            for (t = 0, i = this._fields.length; t < i; ++t) {
              if (null === l[(o = this._fields[t]).name]) if ("proto3" === this.syntax) l[o.name] = o.defaultValue;else {
                if (o.required) throw (t = Error("Missing at least one required field for " + this.toString(!0) + ": " + o.name)).decoded = l, t;
                e.populateDefaults && null !== o.defaultValue && (l[o.name] = o.defaultValue);
              }
            }

            return l;
          }, o.Message = g;

          var m = function m(t, i, r, n, o, a, x, l, c, u) {
            s.call(this, t, i, a), this.className = "Message.Field", this.required = "required" === r, this.repeated = "repeated" === r, this.map = "map" === r, this.keyType = n || null, this.type = o, this.resolvedType = null, this.id = x, this.options = l || {}, this.defaultValue = null, this.oneof = c || null, this.syntax = u || "proto2", this.originalName = this.name, this.keyElement = this.element = null, !this.builder.options.convertFieldsToCamelCase || this instanceof g.ExtensionField || (this.name = e.Util.toCamelCase(this.name));
          };

          (d = m.prototype = c()(s.prototype)).build = function () {
            this.element = new f(this.type, this.resolvedType, !1, this.syntax, this.name), this.map && (this.keyElement = new f(this.keyType, void 0, !0, this.syntax, this.name)), "proto3" !== this.syntax || this.repeated || this.map ? void 0 !== this.options["default"] && (this.defaultValue = this.verifyValue(this.options["default"])) : this.defaultValue = f.defaultFieldValue(this.type);
          }, d.verifyValue = function (t, i) {
            function r(e, t) {
              throw Error("Illegal value for " + o.toString(!0) + " of type " + o.type.name + ": " + e + " (" + t + ")");
            }

            i = i || !1;
            var n,
                o = this;
            if (null === t) return this.required && r(b()(t), "required"), "proto3" === this.syntax && this.type !== e.TYPES.message && r(b()(t), "proto3 field without field presence cannot be null"), null;

            if (this.repeated && !i) {
              h()(t) || (t = [t]);
              var a = [];

              for (n = 0; n < t.length; n++) {
                a.push(this.element.verifyValue(t[n]));
              }

              return a;
            }

            return this.map && !i ? t instanceof e.Map ? t : (t instanceof Object || r(b()(t), "expected ProtoBuf.Map or raw object for map field"), new e.Map(this, t)) : (!this.repeated && h()(t) && r(b()(t), "no array expected"), this.element.verifyValue(t));
          }, d.hasWirePresence = function (t, i) {
            if ("proto3" !== this.syntax) return null !== t;
            if (this.oneof && i[this.oneof.name] === this.name) return !0;

            switch (this.type) {
              case e.TYPES.int32:
              case e.TYPES.sint32:
              case e.TYPES.sfixed32:
              case e.TYPES.uint32:
              case e.TYPES.fixed32:
                return 0 !== t;

              case e.TYPES.int64:
              case e.TYPES.sint64:
              case e.TYPES.sfixed64:
              case e.TYPES.uint64:
              case e.TYPES.fixed64:
                return 0 !== t.low || 0 !== t.high;

              case e.TYPES.bool:
                return t;

              case e.TYPES["float"]:
              case e.TYPES["double"]:
                return 0 !== t;

              case e.TYPES.string:
                return 0 < t.length;

              case e.TYPES.bytes:
                return 0 < t.remaining();

              case e.TYPES["enum"]:
                return 0 !== t;

              case e.TYPES.message:
                return null !== t;

              default:
                return !0;
            }
          }, d.encode = function (i, r, n) {
            if (null === this.type || "object" !== b()(this.type)) throw Error("[INTERNAL] Unresolved type in " + this.toString(!0) + ": " + this.type);
            if (null === i || this.repeated && 0 == i.length) return r;

            try {
              var o;
              if (this.repeated) {
                if (this.options.packed && 0 <= e.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)) {
                  r.writeVarint32(this.id << 3 | e.WIRE_TYPES.LDELIM), r.ensureCapacity(r.offset += 1);
                  var a = r.offset;

                  for (o = 0; o < i.length; o++) {
                    this.element.encodeValue(this.id, i[o], r);
                  }

                  var s = r.offset - a,
                      x = t.calculateVarint32(s);

                  if (1 < x) {
                    var l = r.slice(a, r.offset);
                    a = a + (x - 1);
                    r.offset = a, r.append(l);
                  }

                  r.writeVarint32(s, a - x);
                } else for (o = 0; o < i.length; o++) {
                  r.writeVarint32(this.id << 3 | this.type.wireType), this.element.encodeValue(this.id, i[o], r);
                }
              } else this.map ? i.forEach(function (i, n, o) {
                o = t.calculateVarint32(8 | this.keyType.wireType) + this.keyElement.calculateLength(1, n) + t.calculateVarint32(16 | this.type.wireType) + this.element.calculateLength(2, i), r.writeVarint32(this.id << 3 | e.WIRE_TYPES.LDELIM), r.writeVarint32(o), r.writeVarint32(8 | this.keyType.wireType), this.keyElement.encodeValue(1, n, r), r.writeVarint32(16 | this.type.wireType), this.element.encodeValue(2, i, r);
              }, this) : this.hasWirePresence(i, n) && (r.writeVarint32(this.id << 3 | this.type.wireType), this.element.encodeValue(this.id, i, r));
            } catch (e) {
              throw Error("Illegal value for " + this.toString(!0) + ": " + i + " (" + e + ")");
            }

            return r;
          }, d.calculate = function (i, r) {
            if (i = this.verifyValue(i), null === this.type || "object" !== b()(this.type)) throw Error("[INTERNAL] Unresolved type in " + this.toString(!0) + ": " + this.type);
            if (null === i || this.repeated && 0 == i.length) return 0;
            var n = 0;

            try {
              var o, a;
              if (this.repeated) {
                if (this.options.packed && 0 <= e.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)) {
                  for (n += t.calculateVarint32(this.id << 3 | e.WIRE_TYPES.LDELIM), o = a = 0; o < i.length; o++) {
                    a += this.element.calculateLength(this.id, i[o]);
                  }

                  n += t.calculateVarint32(a), n += a;
                } else for (o = 0; o < i.length; o++) {
                  n += t.calculateVarint32(this.id << 3 | this.type.wireType), n += this.element.calculateLength(this.id, i[o]);
                }
              } else this.map ? i.forEach(function (i, r, o) {
                i = t.calculateVarint32(8 | this.keyType.wireType) + this.keyElement.calculateLength(1, r) + t.calculateVarint32(16 | this.type.wireType) + this.element.calculateLength(2, i), n += t.calculateVarint32(this.id << 3 | e.WIRE_TYPES.LDELIM), n += t.calculateVarint32(i), n += i;
              }, this) : this.hasWirePresence(i, r) && (n += t.calculateVarint32(this.id << 3 | this.type.wireType), n += this.element.calculateLength(this.id, i));
            } catch (e) {
              throw Error("Illegal value for " + this.toString(!0) + ": " + i + " (" + e + ")");
            }

            return n;
          }, d.decode = function (t, i, r) {
            if (!(!this.map && t == this.type.wireType || !r && this.repeated && this.options.packed && t == e.WIRE_TYPES.LDELIM || this.map && t == e.WIRE_TYPES.LDELIM)) throw Error("Illegal wire type for field " + this.toString(!0) + ": " + t + " (" + this.type.wireType + " expected)");

            if (t == e.WIRE_TYPES.LDELIM && this.repeated && this.options.packed && 0 <= e.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType) && !r) {
              for (t = i.readVarint32(), t = i.offset + t, r = []; i.offset < t;) {
                r.push(this.decode(this.type.wireType, i, !0));
              }

              return r;
            }

            if (this.map) {
              var n = f.defaultFieldValue(this.keyType);
              if (r = f.defaultFieldValue(this.type), t = i.readVarint32(), i.remaining() < t) throw Error("Illegal number of bytes for " + this.toString(!0) + ": " + t + " required but got only " + i.remaining());
              var o = i.clone();

              for (o.limit = o.offset + t, i.offset += t; 0 < o.remaining();) {
                if (t = 7 & (i = o.readVarint32()), 1 === (i >>>= 3)) n = this.keyElement.decode(o, t, i);else {
                  if (2 !== i) throw Error("Unexpected tag in map field key/value submessage");
                  r = this.element.decode(o, t, i);
                }
              }

              return [n, r];
            }

            return this.element.decode(i, t, this.id);
          }, o.Message.Field = m, (d = function d(e, t, i, r, n, o, a) {
            m.call(this, e, t, i, null, r, n, o, a);
          }).prototype = c()(m.prototype), o.Message.ExtensionField = d, o.Message.OneOf = function (e, t, i) {
            s.call(this, e, t, i), this.fields = [];
          };

          var v = function v(e, t, i, r, n) {
            u.call(this, e, t, i, r, n), this.className = "Enum", this.object = null;
          };

          v.getName = function (e, t) {
            for (var i, r = a()(e), n = 0; n < r.length; ++n) {
              if (e[i = r[n]] === t) return i;
            }

            return null;
          }, (v.prototype = c()(u.prototype)).build = function (t) {
            if (this.object && !t) return this.object;
            t = new e.Builder.Enum();

            for (var i = this.getChildren(v.Value), r = 0, n = i.length; r < n; ++r) {
              t[i[r].name] = i[r].id;
            }

            return x.a && x()(t, "$options", {
              value: this.buildOpt(),
              enumerable: !1
            }), this.object = t;
          }, o.Enum = v, (d = function d(e, t, i, r) {
            s.call(this, e, t, i), this.className = "Enum.Value", this.id = r;
          }).prototype = c()(s.prototype), o.Enum.Value = d;

          var C = function C(e, t, i, r) {
            s.call(this, e, t, i), this.field = r;
          };

          C.prototype = c()(s.prototype), o.Extension = C;

          var y = function y(e, t, i, r) {
            u.call(this, e, t, i, r), this.className = "Service", this.clazz = null;
          };

          (y.prototype = c()(u.prototype)).build = function (i) {
            return this.clazz && !i ? this.clazz : this.clazz = function (e, i) {
              for (var r = function r(t) {
                e.Builder.Service.call(this), this.rpcImpl = t || function (e, t, i) {
                  setTimeout(i.bind(this, Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")), 0);
                };
              }, n = r.prototype = c()(e.Builder.Service.prototype), o = i.getChildren(e.Reflect.Service.RPCMethod), a = 0; a < o.length; a++) {
                !function (e) {
                  n[e.name] = function (r, n) {
                    try {
                      try {
                        r = e.resolvedRequestType.clazz.decode(t.wrap(r));
                      } catch (e) {
                        if (!(e instanceof TypeError)) throw e;
                      }

                      if (null === r || "object" !== b()(r)) throw Error("Illegal arguments");
                      r instanceof e.resolvedRequestType.clazz || (r = new e.resolvedRequestType.clazz(r)), this.rpcImpl(e.fqn(), r, function (t, r) {
                        if (t) n(t);else {
                          null === r && (r = "");

                          try {
                            r = e.resolvedResponseType.clazz.decode(r);
                          } catch (e) {}

                          r && r instanceof e.resolvedResponseType.clazz ? n(null, r) : n(Error("Illegal response type received in service method " + i.name + "#" + e.name));
                        }
                      });
                    } catch (e) {
                      setTimeout(n.bind(this, e), 0);
                    }
                  }, r[e.name] = function (t, i, n) {
                    new r(t)[e.name](i, n);
                  }, x.a && (x()(r[e.name], "$options", {
                    value: e.buildOpt()
                  }), x()(n[e.name], "$options", {
                    value: r[e.name].$options
                  }));
                }(o[a]);
              }

              return x.a && (x()(r, "$options", {
                value: i.buildOpt()
              }), x()(n, "$options", {
                value: r.$options
              }), x()(r, "$type", {
                value: i
              }), x()(n, "$type", {
                value: i
              })), r;
            }(e, this);
          }, o.Service = y;

          var _ = function _(e, t, i, r) {
            s.call(this, e, t, i), this.className = "Service.Method", this.options = r || {};
          };

          return (_.prototype = c()(s.prototype)).buildOpt = l.buildOpt, o.Service.Method = _, (l = function l(e, t, i, r, n, o, a, s) {
            _.call(this, e, t, i, s), this.className = "Service.RPCMethod", this.requestName = r, this.responseName = n, this.requestStream = o, this.responseStream = a, this.resolvedResponseType = this.resolvedRequestType = null;
          }).prototype = c()(_.prototype), o.Service.RPCMethod = l, o;
        }(s), s.Builder = function (e, t, r) {
          var o = function o(e) {
            this.ptr = this.ns = new r.Namespace(this, null, ""), this.resolved = !1, this.result = null, this.files = {}, this.importRoot = null, this.options = e || {};
          },
              s = o.prototype;

          return o.isMessage = function (e) {
            return "string" == typeof e.name && void 0 === e.values && void 0 === e.rpc;
          }, o.isMessageField = function (e) {
            return "string" == typeof e.rule && "string" == typeof e.name && "string" == typeof e.type && void 0 !== e.id;
          }, o.isEnum = function (e) {
            return !("string" != typeof e.name || void 0 === e.values || !h()(e.values) || 0 === e.values.length);
          }, o.isService = function (e) {
            return !("string" != typeof e.name || "object" !== b()(e.rpc) || !e.rpc);
          }, o.isExtend = function (e) {
            return "string" == typeof e.ref;
          }, s.reset = function () {
            return this.ptr = this.ns, this;
          }, s.define = function (e) {
            if ("string" != typeof e || !t.TYPEREF.test(e)) throw Error("illegal namespace: " + e);
            return e.split(".").forEach(function (e) {
              var t = this.ptr.getChild(e);
              null === t && this.ptr.addChild(t = new r.Namespace(this, this.ptr, e)), this.ptr = t;
            }, this), this;
          }, s.create = function (t) {
            if (!t) return this;

            if (h()(t)) {
              if (0 === t.length) return this;
              t = t.slice();
            } else t = [t];

            for (var i = [t]; 0 < i.length;) {
              if (t = i.pop(), !h()(t)) throw Error("not a valid namespace: " + n()(t));

              for (; 0 < t.length;) {
                var s = t.shift();

                if (o.isMessage(s)) {
                  var x = new r.Message(this, this.ptr, s.name, s.options, s.isGroup, s.syntax),
                      l = {};
                  s.oneofs && a()(s.oneofs).forEach(function (e) {
                    x.addChild(l[e] = new r.Message.OneOf(this, x, e));
                  }, this), s.fields && s.fields.forEach(function (e) {
                    if (null !== x.getChild(0 | e.id)) throw Error("duplicate or invalid field id in " + x.name + ": " + e.id);
                    if (e.options && "object" !== b()(e.options)) throw Error("illegal field options in " + x.name + "#" + e.name);
                    var t = null;
                    if ("string" == typeof e.oneof && !(t = l[e.oneof])) throw Error("illegal oneof in " + x.name + "#" + e.name + ": " + e.oneof);
                    e = new r.Message.Field(this, x, e.rule, e.keytype, e.type, e.name, e.id, e.options, t, s.syntax), t && t.fields.push(e), x.addChild(e);
                  }, this);
                  var c = [];

                  if (s.enums && s.enums.forEach(function (e) {
                    c.push(e);
                  }), s.messages && s.messages.forEach(function (e) {
                    c.push(e);
                  }), s.services && s.services.forEach(function (e) {
                    c.push(e);
                  }), s.extensions && (x.extensions = "number" == typeof s.extensions[0] ? [s.extensions] : s.extensions), this.ptr.addChild(x), 0 < c.length) {
                    i.push(t), t = c, c = null, this.ptr = x, x = null;
                    continue;
                  }

                  c = null;
                } else if (o.isEnum(s)) x = new r.Enum(this, this.ptr, s.name, s.options, s.syntax), s.values.forEach(function (e) {
                  x.addChild(new r.Enum.Value(this, x, e.name, e.id));
                }, this), this.ptr.addChild(x);else if (o.isService(s)) x = new r.Service(this, this.ptr, s.name, s.options), a()(s.rpc).forEach(function (e) {
                  var t = s.rpc[e];
                  x.addChild(new r.Service.RPCMethod(this, x, e, t.request, t.response, !!t.request_stream, !!t.response_stream, t.options));
                }, this), this.ptr.addChild(x);else {
                  if (!o.isExtend(s)) throw Error("not a valid definition: " + n()(s));
                  if (x = this.ptr.resolve(s.ref, !0)) s.fields.forEach(function (t) {
                    if (null !== x.getChild(0 | t.id)) throw Error("duplicate extended field id in " + x.name + ": " + t.id);

                    if (x.extensions) {
                      var i = !1;
                      if (x.extensions.forEach(function (e) {
                        t.id >= e[0] && t.id <= e[1] && (i = !0);
                      }), !i) throw Error("illegal extended field id in " + x.name + ": " + t.id + " (not within valid ranges)");
                    }

                    var n = t.name;
                    this.options.convertFieldsToCamelCase && (n = e.Util.toCamelCase(n));
                    n = new r.Message.ExtensionField(this, x, t.rule, t.type, this.ptr.fqn() + "." + n, t.id, t.options);
                    var o = new r.Extension(this, this.ptr, t.name, n);
                    n.extension = o, this.ptr.addChild(o), x.addChild(n);
                  }, this);else if (!/\.?google\.protobuf\./.test(s.ref)) throw Error("extended message " + s.ref + " is not defined");
                }

                x = s = null;
              }

              t = null, this.ptr = this.ptr.parent;
            }

            return this.resolved = !1, this.result = null, this;
          }, s["import"] = function (t, r) {
            var n = "/";

            if ("string" == typeof r) {
              if (e.Util.IS_NODE && (r = i(122).resolve(r)), !0 === this.files[r]) return this.reset();
              this.files[r] = !0;
            } else if ("object" === b()(r)) {
              var o = r.root;
              if (e.Util.IS_NODE && (o = i(122).resolve(o)), (0 <= o.indexOf("\\") || 0 <= r.file.indexOf("\\")) && (n = "\\"), o = o + n + r.file, !0 === this.files[o]) return this.reset();
              this.files[o] = !0;
            }

            if (t.imports && 0 < t.imports.length) {
              var s = !1;
              "object" === b()(r) ? (this.importRoot = r.root, s = !0, o = this.importRoot, r = r.file, (0 <= o.indexOf("\\") || 0 <= r.indexOf("\\")) && (n = "\\")) : "string" == typeof r ? this.importRoot ? o = this.importRoot : 0 <= r.indexOf("/") ? "" === (o = r.replace(/\/[^\/]*$/, "")) && (o = "/") : 0 <= r.indexOf("\\") ? (o = r.replace(/\\[^\\]*$/, ""), n = "\\") : o = "." : o = null;

              for (var x = 0; x < t.imports.length; x++) {
                if ("string" == typeof t.imports[x]) {
                  if (!o) throw Error("cannot determine import root");
                  var l = t.imports[x];

                  if ("google/protobuf/descriptor.proto" !== l && (l = o + n + l, !0 !== this.files[l])) {
                    /\.proto$/i.test(l) && !e.DotProto && (l = l.replace(/\.proto$/, ".json"));
                    var c = e.Util.fetch(l);
                    if (null === c) throw Error("failed to import '" + l + "' in '" + r + "': file not found");
                    /\.json$/i.test(l) ? this["import"](JSON.parse(c + ""), l) : this["import"](e.DotProto.Parser.parse(c), l);
                  }
                } else r ? /\.(\w+)$/.test(r) ? this["import"](t.imports[x], r.replace(/^(.+)\.(\w+)$/, function (e, t, i) {
                  return t + "_import" + x + "." + i;
                })) : this["import"](t.imports[x], r + "_import" + x) : this["import"](t.imports[x]);
              }

              s && (this.importRoot = null);
            }

            t["package"] && this.define(t["package"]), t.syntax && function e(t) {
              t.messages && t.messages.forEach(function (i) {
                i.syntax = t.syntax, e(i);
              }), t.enums && t.enums.forEach(function (e) {
                e.syntax = t.syntax;
              });
            }(t);
            var u = this.ptr;
            return t.options && a()(t.options).forEach(function (e) {
              u.options[e] = t.options[e];
            }), t.messages && (this.create(t.messages), this.ptr = u), t.enums && (this.create(t.enums), this.ptr = u), t.services && (this.create(t.services), this.ptr = u), t["extends"] && this.create(t["extends"]), this.reset();
          }, s.resolveAll = function () {
            var i;
            if (null == this.ptr || "object" === b()(this.ptr.type)) return this;
            if (this.ptr instanceof r.Namespace) this.ptr.children.forEach(function (e) {
              this.ptr = e, this.resolveAll();
            }, this);else if (this.ptr instanceof r.Message.Field) {
              if (t.TYPE.test(this.ptr.type)) this.ptr.type = e.TYPES[this.ptr.type];else {
                if (!t.TYPEREF.test(this.ptr.type)) throw Error("illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);
                if (!(i = (this.ptr instanceof r.Message.ExtensionField ? this.ptr.extension.parent : this.ptr.parent).resolve(this.ptr.type, !0))) throw Error("unresolvable type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);

                if (this.ptr.resolvedType = i, i instanceof r.Enum) {
                  if (this.ptr.type = e.TYPES["enum"], "proto3" === this.ptr.syntax && "proto3" !== i.syntax) throw Error("proto3 message cannot reference proto2 enum");
                } else {
                  if (!(i instanceof r.Message)) throw Error("illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);
                  this.ptr.type = i.isGroup ? e.TYPES.group : e.TYPES.message;
                }
              }

              if (this.ptr.map) {
                if (!t.TYPE.test(this.ptr.keyType)) throw Error("illegal key type for map field in " + this.ptr.toString(!0) + ": " + this.ptr.keyType);
                this.ptr.keyType = e.TYPES[this.ptr.keyType];
              }
            } else if (this.ptr instanceof e.Reflect.Service.Method) {
              if (!(this.ptr instanceof e.Reflect.Service.RPCMethod)) throw Error("illegal service type in " + this.ptr.toString(!0));
              if (!((i = this.ptr.parent.resolve(this.ptr.requestName, !0)) && i instanceof e.Reflect.Message)) throw Error("Illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.requestName);
              if (this.ptr.resolvedRequestType = i, !((i = this.ptr.parent.resolve(this.ptr.responseName, !0)) && i instanceof e.Reflect.Message)) throw Error("Illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.responseName);
              this.ptr.resolvedResponseType = i;
            } else if (!(this.ptr instanceof e.Reflect.Message.OneOf || this.ptr instanceof e.Reflect.Extension || this.ptr instanceof e.Reflect.Enum.Value)) throw Error("illegal object in namespace: " + b()(this.ptr) + ": " + this.ptr);
            return this.reset();
          }, s.build = function (e) {
            if (this.reset(), this.resolved || (this.resolveAll(), this.resolved = !0, this.result = null), null === this.result && (this.result = this.ns.build()), !e) return this.result;
            e = "string" == typeof e ? e.split(".") : e;

            for (var t = this.result, i = 0; i < e.length; i++) {
              if (!t[e[i]]) {
                t = null;
                break;
              }

              t = t[e[i]];
            }

            return t;
          }, s.lookup = function (e, t) {
            return e ? this.ns.resolve(e, t) : this.ns;
          }, s.toString = function () {
            return "Builder";
          }, o.Message = function () {}, o.Enum = function () {}, o.Service = function () {}, o;
        }(s, s.Lang, s.Reflect), s.Map = function (e, t) {
          function i(e) {
            var t = 0;
            return {
              next: function next() {
                return t < e.length ? {
                  done: !1,
                  value: e[t++]
                } : {
                  done: !0
                };
              }
            };
          }

          var r = function r(e, i) {
            if (!e.map) throw Error("field is not a map");
            if (this.field = e, this.keyElem = new t.Element(e.keyType, null, !0, e.syntax), this.valueElem = new t.Element(e.type, e.resolvedType, !1, e.syntax), this.map = {}, x()(this, "size", {
              get: function get() {
                return a()(this.map).length;
              }
            }), i) for (var r = a()(i), n = 0; n < r.length; n++) {
              var o = this.keyElem.valueFromString(r[n]),
                  s = this.valueElem.verifyValue(i[r[n]]);
              this.map[this.keyElem.valueToString(o)] = {
                key: o,
                value: s
              };
            }
          },
              n = r.prototype;

          return n.clear = function () {
            this.map = {};
          }, n["delete"] = function (e) {
            var t = ((e = this.keyElem.valueToString(this.keyElem.verifyValue(e))) in this.map);
            return delete this.map[e], t;
          }, n.entries = function () {
            for (var e, t = [], r = a()(this.map), n = 0; n < r.length; n++) {
              t.push([(e = this.map[r[n]]).key, e.value]);
            }

            return i(t);
          }, n.keys = function () {
            for (var e = [], t = a()(this.map), r = 0; r < t.length; r++) {
              e.push(this.map[t[r]].key);
            }

            return i(e);
          }, n.values = function () {
            for (var e = [], t = a()(this.map), r = 0; r < t.length; r++) {
              e.push(this.map[t[r]].value);
            }

            return i(e);
          }, n.forEach = function (e, t) {
            for (var i, r = a()(this.map), n = 0; n < r.length; n++) {
              e.call(t, (i = this.map[r[n]]).value, i.key, this);
            }
          }, n.set = function (e, t) {
            var i = this.keyElem.verifyValue(e),
                r = this.valueElem.verifyValue(t);
            return this.map[this.keyElem.valueToString(i)] = {
              key: i,
              value: r
            }, this;
          }, n.get = function (e) {
            return (e = this.keyElem.valueToString(this.keyElem.verifyValue(e))) in this.map ? this.map[e].value : void 0;
          }, n.has = function (e) {
            return this.keyElem.valueToString(this.keyElem.verifyValue(e)) in this.map;
          }, r;
        }(0, s.Reflect), s.loadProto = function (e, t, i) {
          return ("string" == typeof t || t && "string" == typeof t.file && "string" == typeof t.root) && (i = t, t = void 0), s.loadJson(s.DotProto.Parser.parse(e), t, i);
        }, s.protoFromString = s.loadProto, s.loadProtoFile = function (e, t, i) {
          if (t && "object" === b()(t) ? (i = t, t = null) : t && "function" == typeof t || (t = null), t) return s.Util.fetch("string" == typeof e ? e : e.root + "/" + e.file, function (r) {
            if (null === r) t(Error("Failed to fetch file"));else try {
              t(null, s.loadProto(r, i, e));
            } catch (e) {
              t(e);
            }
          });
          var r = s.Util.fetch("object" === b()(e) ? e.root + "/" + e.file : e);
          return null === r ? null : s.loadProto(r, i, e);
        }, s.protoFromFile = s.loadProtoFile, s.newBuilder = function (e) {
          return void 0 === (e = e || {}).convertFieldsToCamelCase && (e.convertFieldsToCamelCase = s.convertFieldsToCamelCase), void 0 === e.populateAccessors && (e.populateAccessors = s.populateAccessors), new s.Builder(e);
        }, s.loadJson = function (e, t, i) {
          return ("string" == typeof t || t && "string" == typeof t.file && "string" == typeof t.root) && (i = t, t = null), t && "object" === b()(t) || (t = s.newBuilder()), "string" == typeof e && (e = JSON.parse(e)), t["import"](e, i), t.resolveAll(), t;
        }, s.loadJsonFile = function (e, t, i) {
          if (t && "object" === b()(t) ? (i = t, t = null) : t && "function" == typeof t || (t = null), t) return s.Util.fetch("string" == typeof e ? e : e.root + "/" + e.file, function (r) {
            if (null === r) t(Error("Failed to fetch file"));else try {
              t(null, s.loadJson(JSON.parse(r), i, e));
            } catch (e) {
              t(e);
            }
          });
          var r = s.Util.fetch("object" === b()(e) ? e.root + "/" + e.file : e);
          return null === r ? null : s.loadJson(JSON.parse(r), i, e);
        }, s;
      });
    }).call(this, i(95), i(96)(e));
  }, function (e, t, i) {
    var r = i(5),
        n = r.JSON || (r.JSON = {
      stringify: JSON.stringify
    });

    e.exports = function (e) {
      return n.stringify.apply(n, arguments);
    };
  }, function (e, t) {
    e.exports = function (e, t) {
      return {
        value: t,
        done: !!e
      };
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(35),
        n = i(23),
        o = i(22),
        a = i(20),
        s = i(36),
        x = i(151),
        l = i(55),
        c = i(104),
        u = i(4)("iterator"),
        h = !([].keys && "next" in [].keys()),
        f = function f() {
      return this;
    };

    e.exports = function (e, t, i, d, g, p, m) {
      x(i, t, d);

      var b,
          v,
          C,
          y = function y(e) {
        if (!h && e in w) return w[e];

        switch (e) {
          case "keys":
          case "values":
            return function () {
              return new i(this, e);
            };
        }

        return function () {
          return new i(this, e);
        };
      },
          _ = t + " Iterator",
          A = "values" == g,
          I = !1,
          w = e.prototype,
          G = w[u] || w["@@iterator"] || g && w[g],
          E = G || y(g),
          S = g ? A ? y("entries") : E : void 0,
          T = "Array" == t && w.entries || G;

      if (T && (C = c(T.call(new e()))) !== Object.prototype && C.next && (l(C, _, !0), r || "function" == typeof C[u] || a(C, u, f)), A && G && "values" !== G.name && (I = !0, E = function E() {
        return G.call(this);
      }), r && !m || !h && !I && w[u] || a(w, u, E), s[t] = E, s[_] = f, g) if (b = {
        values: A ? E : y("values"),
        keys: p ? E : y("keys"),
        entries: S
      }, m) for (v in b) {
        v in w || o(w, v, b[v]);
      } else n(n.P + n.F * (h || I), t, b);
      return b;
    };
  }, function (e, t, i) {
    e.exports = i(50)("native-function-to-string", Function.toString);
  }, function (e, t, i) {
    "use strict";

    var r = i(52),
        n = i(45),
        o = i(55),
        a = {};
    i(20)(a, i(4)("iterator"), function () {
      return this;
    }), e.exports = function (e, t, i) {
      e.prototype = r(a, {
        next: n(1, i)
      }), o(e, t + " Iterator");
    };
  }, function (e, t, i) {
    var r = i(13),
        n = i(17),
        o = i(53);
    e.exports = i(11) ? Object.defineProperties : function (e, t) {
      n(e);

      for (var i, a = o(t), s = a.length, x = 0; s > x;) {
        r.f(e, i = a[x++], t[i]);
      }

      return e;
    };
  }, function (e, t, i) {
    var r = i(10).document;
    e.exports = r && r.documentElement;
  }, function (e, t, i) {
    i(155), e.exports = i(5).Object.keys;
  }, function (e, t, i) {
    var r = i(72),
        n = i(57);
    i(159)("keys", function () {
      return function (e) {
        return n(r(e));
      };
    });
  }, function (e, t, i) {
    var r = i(47);
    e.exports = Object("z").propertyIsEnumerable(0) ? Object : function (e) {
      return "String" == r(e) ? e.split("") : Object(e);
    };
  }, function (e, t, i) {
    var r = i(39),
        n = i(106),
        o = i(158);

    e.exports = function (e) {
      return function (t, i, a) {
        var s,
            x = r(t),
            l = n(x.length),
            c = o(a, l);

        if (e && i != i) {
          for (; l > c;) {
            if ((s = x[c++]) != s) return !0;
          }
        } else for (; l > c; c++) {
          if ((e || c in x) && x[c] === i) return e || c || 0;
        }

        return !e && -1;
      };
    };
  }, function (e, t, i) {
    var r = i(73),
        n = Math.max,
        o = Math.min;

    e.exports = function (e, t) {
      return (e = r(e)) < 0 ? n(e + t, 0) : o(e, t);
    };
  }, function (e, t, i) {
    var r = i(12),
        n = i(5),
        o = i(40);

    e.exports = function (e, t) {
      var i = (n.Object || {})[e] || Object[e],
          a = {};
      a[e] = t(i), r(r.S + r.F * o(function () {
        i(1);
      }), "Object", a);
    };
  }, function (e, t, i) {
    i(161);
    var r = i(5).Object;

    e.exports = function (e, t, i) {
      return r.defineProperty(e, t, i);
    };
  }, function (e, t, i) {
    var r = i(12);
    r(r.S + r.F * !i(25), "Object", {
      defineProperty: i(26).f
    });
  }, function (e, t, i) {
    var r = i(29),
        n = i(38);

    e.exports = function (e) {
      return function (t, i) {
        var o,
            a,
            s = String(n(t)),
            x = r(i),
            l = s.length;
        return x < 0 || x >= l ? e ? "" : void 0 : (o = s.charCodeAt(x)) < 55296 || o > 56319 || x + 1 === l || (a = s.charCodeAt(x + 1)) < 56320 || a > 57343 ? e ? s.charAt(x) : o : e ? s.slice(x, x + 2) : a - 56320 + (o - 55296 << 10) + 65536;
      };
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(82);
    i(23)({
      target: "RegExp",
      proto: !0,
      forced: r !== /./.exec
    }, {
      exec: r
    });
  }, function (e, t, i) {
    i(165);
    var r = i(5).Object;

    e.exports = function (e, t) {
      return r.create(e, t);
    };
  }, function (e, t, i) {
    var r = i(12);
    r(r.S, "Object", {
      create: i(83)
    });
  }, function (e, t, i) {
    i(11) && "g" != /./g.flags && i(13).f(RegExp.prototype, "flags", {
      configurable: !0,
      get: i(64)
    });
  }, function (e, t, i) {
    i(168), e.exports = i(5).Array.isArray;
  }, function (e, t, i) {
    var r = i(12);
    r(r.S, "Array", {
      isArray: i(111)
    });
  }, function (e, t, i) {
    i(170), e.exports = i(5).parseFloat;
  }, function (e, t, i) {
    var r = i(12),
        n = i(171);
    r(r.G + r.F * (parseFloat != n), {
      parseFloat: n
    });
  }, function (e, t, i) {
    var r = i(7).parseFloat,
        n = i(112).trim;
    e.exports = 1 / r(i(87) + "-0") != -1 / 0 ? function (e) {
      var t = n(String(e), 3),
          i = r(t);
      return 0 === i && "-" == t.charAt(0) ? -0 : i;
    } : r;
  }, function (e, t, i) {
    i(173), e.exports = i(5).parseInt;
  }, function (e, t, i) {
    var r = i(12),
        n = i(174);
    r(r.G + r.F * (parseInt != n), {
      parseInt: n
    });
  }, function (e, t, i) {
    var r = i(7).parseInt,
        n = i(112).trim,
        o = i(87),
        a = /^[-+]?0[xX]/;
    e.exports = 8 !== r(o + "08") || 22 !== r(o + "0x16") ? function (e, t) {
      var i = n(String(e), 3);
      return r(i, t >>> 0 || (a.test(i) ? 16 : 10));
    } : r;
  }, function (e, t, i) {
    e.exports = i(176);
  }, function (e, t, i) {
    i(113), i(116), e.exports = i(89).f("iterator");
  }, function (e, t, i) {
    var r = i(73),
        n = i(56);

    e.exports = function (e) {
      return function (t, i) {
        var o,
            a,
            s = String(n(t)),
            x = r(i),
            l = s.length;
        return x < 0 || x >= l ? e ? "" : void 0 : (o = s.charCodeAt(x)) < 55296 || o > 56319 || x + 1 === l || (a = s.charCodeAt(x + 1)) < 56320 || a > 57343 ? e ? s.charAt(x) : o : e ? s.slice(x, x + 2) : a - 56320 + (o - 55296 << 10) + 65536;
      };
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(83),
        n = i(61),
        o = i(66),
        a = {};
    i(32)(a, i(14)("iterator"), function () {
      return this;
    }), e.exports = function (e, t, i) {
      e.prototype = r(a, {
        next: n(1, i)
      }), o(e, t + " Iterator");
    };
  }, function (e, t, i) {
    var r = i(31),
        n = i(72),
        o = i(74)("IE_PROTO"),
        a = Object.prototype;

    e.exports = Object.getPrototypeOf || function (e) {
      return e = n(e), r(e, o) ? e[o] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? a : null;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(181),
        n = i(182),
        o = i(49),
        a = i(39);
    e.exports = i(114)(Array, "Array", function (e, t) {
      this._t = a(e), this._i = 0, this._k = t;
    }, function () {
      var e = this._t,
          t = this._k,
          i = this._i++;
      return !e || i >= e.length ? (this._t = void 0, n(1)) : n(0, "keys" == t ? i : "values" == t ? e[i] : [i, e[i]]);
    }, "values"), o.Arguments = o.Array, r("keys"), r("values"), r("entries");
  }, function (e, t) {
    e.exports = function () {};
  }, function (e, t) {
    e.exports = function (e, t) {
      return {
        value: t,
        done: !!e
      };
    };
  }, function (e, t, i) {
    i(184), i(119), i(189), i(190), e.exports = i(5).Symbol;
  }, function (e, t, i) {
    "use strict";

    var r = i(7),
        n = i(31),
        o = i(25),
        a = i(12),
        s = i(115),
        x = i(185).KEY,
        l = i(40),
        c = i(75),
        u = i(66),
        h = i(58),
        f = i(14),
        d = i(89),
        g = i(90),
        p = i(186),
        m = i(111),
        b = i(27),
        v = i(33),
        C = i(72),
        y = i(39),
        _ = i(78),
        A = i(61),
        I = i(83),
        w = i(187),
        G = i(188),
        E = i(117),
        S = i(26),
        T = i(57),
        P = G.f,
        M = S.f,
        N = w.f,
        _L = r.Symbol,
        R = r.JSON,
        O = R && R.stringify,
        F = f("_hidden"),
        D = f("toPrimitive"),
        U = {}.propertyIsEnumerable,
        k = c("symbol-registry"),
        B = c("symbols"),
        W = c("op-symbols"),
        j = Object.prototype,
        V = "function" == typeof _L && !!E.f,
        z = r.QObject,
        H = !z || !z.prototype || !z.prototype.findChild,
        q = o && l(function () {
      return 7 != I(M({}, "a", {
        get: function get() {
          return M(this, "a", {
            value: 7
          }).a;
        }
      })).a;
    }) ? function (e, t, i) {
      var r = P(j, t);
      r && delete j[t], M(e, t, i), r && e !== j && M(j, t, r);
    } : M,
        X = function X(e) {
      var t = B[e] = I(_L.prototype);
      return t._k = e, t;
    },
        Y = V && "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(_L.iterator) ? function (e) {
      return "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e);
    } : function (e) {
      return e instanceof _L;
    },
        K = function K(e, t, i) {
      return e === j && K(W, t, i), b(e), t = _(t, !0), b(i), n(B, t) ? (i.enumerable ? (n(e, F) && e[F][t] && (e[F][t] = !1), i = I(i, {
        enumerable: A(0, !1)
      })) : (n(e, F) || M(e, F, A(1, {})), e[F][t] = !0), q(e, t, i)) : M(e, t, i);
    },
        Q = function Q(e, t) {
      b(e);

      for (var i, r = p(t = y(t)), n = 0, o = r.length; o > n;) {
        K(e, i = r[n++], t[i]);
      }

      return e;
    },
        Z = function Z(e) {
      var t = U.call(this, e = _(e, !0));
      return !(this === j && n(B, e) && !n(W, e)) && (!(t || !n(this, e) || !n(B, e) || n(this, F) && this[F][e]) || t);
    },
        J = function J(e, t) {
      if (e = y(e), t = _(t, !0), e !== j || !n(B, t) || n(W, t)) {
        var i = P(e, t);
        return !i || !n(B, t) || n(e, F) && e[F][t] || (i.enumerable = !0), i;
      }
    },
        $ = function $(e) {
      for (var t, i = N(y(e)), r = [], o = 0; i.length > o;) {
        n(B, t = i[o++]) || t == F || t == x || r.push(t);
      }

      return r;
    },
        ee = function ee(e) {
      for (var t, i = e === j, r = N(i ? W : y(e)), o = [], a = 0; r.length > a;) {
        !n(B, t = r[a++]) || i && !n(j, t) || o.push(B[t]);
      }

      return o;
    };

    V || (s((_L = function L() {
      if (this instanceof _L) throw TypeError("Symbol is not a constructor!");

      var e = h(arguments.length > 0 ? arguments[0] : void 0),
          t = function t(i) {
        this === j && t.call(W, i), n(this, F) && n(this[F], e) && (this[F][e] = !1), q(this, e, A(1, i));
      };

      return o && H && q(j, e, {
        configurable: !0,
        set: t
      }), X(e);
    }).prototype, "toString", function () {
      return this._k;
    }), G.f = J, S.f = K, i(118).f = w.f = $, i(91).f = Z, E.f = ee, o && !i(48) && s(j, "propertyIsEnumerable", Z, !0), d.f = function (e) {
      return X(f(e));
    }), a(a.G + a.W + a.F * !V, {
      Symbol: _L
    });

    for (var te = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), ie = 0; te.length > ie;) {
      f(te[ie++]);
    }

    for (var re = T(f.store), ne = 0; re.length > ne;) {
      g(re[ne++]);
    }

    a(a.S + a.F * !V, "Symbol", {
      "for": function _for(e) {
        return n(k, e += "") ? k[e] : k[e] = _L(e);
      },
      keyFor: function keyFor(e) {
        if (!Y(e)) throw TypeError(e + " is not a symbol!");

        for (var t in k) {
          if (k[t] === e) return t;
        }
      },
      useSetter: function useSetter() {
        H = !0;
      },
      useSimple: function useSimple() {
        H = !1;
      }
    }), a(a.S + a.F * !V, "Object", {
      create: function create(e, t) {
        return void 0 === t ? I(e) : Q(I(e), t);
      },
      defineProperty: K,
      defineProperties: Q,
      getOwnPropertyDescriptor: J,
      getOwnPropertyNames: $,
      getOwnPropertySymbols: ee
    });
    var oe = l(function () {
      E.f(1);
    });
    a(a.S + a.F * oe, "Object", {
      getOwnPropertySymbols: function getOwnPropertySymbols(e) {
        return E.f(C(e));
      }
    }), R && a(a.S + a.F * (!V || l(function () {
      var e = _L();

      return "[null]" != O([e]) || "{}" != O({
        a: e
      }) || "{}" != O(Object(e));
    })), "JSON", {
      stringify: function stringify(e) {
        for (var t, i, r = [e], n = 1; arguments.length > n;) {
          r.push(arguments[n++]);
        }

        if (i = t = r[1], (v(t) || void 0 !== e) && !Y(e)) return m(t) || (t = function (_t3) {
          function t(_x6, _x7) {
            return _t3.apply(this, arguments);
          }

          t.toString = function () {
            return _t3.toString();
          };

          return t;
        }(function (e, t) {
          if ("function" == typeof i && (t = i.call(this, e, t)), !Y(t)) return t;
        })), r[1] = t, O.apply(R, r);
      }
    }), _L.prototype[D] || i(32)(_L.prototype, D, _L.prototype.valueOf), u(_L, "Symbol"), u(Math, "Math", !0), u(r.JSON, "JSON", !0);
  }, function (e, t, i) {
    var r = i(58)("meta"),
        n = i(33),
        o = i(31),
        a = i(26).f,
        s = 0,
        x = Object.isExtensible || function () {
      return !0;
    },
        l = !i(40)(function () {
      return x(Object.preventExtensions({}));
    }),
        c = function c(e) {
      a(e, r, {
        value: {
          i: "O" + ++s,
          w: {}
        }
      });
    },
        u = e.exports = {
      KEY: r,
      NEED: !1,
      fastKey: function fastKey(e, t) {
        if (!n(e)) return "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e) ? e : ("string" == typeof e ? "S" : "P") + e;

        if (!o(e, r)) {
          if (!x(e)) return "F";
          if (!t) return "E";
          c(e);
        }

        return e[r].i;
      },
      getWeak: function getWeak(e, t) {
        if (!o(e, r)) {
          if (!x(e)) return !0;
          if (!t) return !1;
          c(e);
        }

        return e[r].w;
      },
      onFreeze: function onFreeze(e) {
        return l && u.NEED && x(e) && !o(e, r) && c(e), e;
      }
    };
  }, function (e, t, i) {
    var r = i(57),
        n = i(117),
        o = i(91);

    e.exports = function (e) {
      var t = r(e),
          i = n.f;
      if (i) for (var a, s = i(e), x = o.f, l = 0; s.length > l;) {
        x.call(e, a = s[l++]) && t.push(a);
      }
      return t;
    };
  }, function (e, t, i) {
    var r = i(39),
        n = i(118).f,
        o = {}.toString,
        a = "object" == (typeof window === "undefined" ? "undefined" : _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(window)) && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];

    e.exports.f = function (e) {
      return a && "[object Window]" == o.call(e) ? function (e) {
        try {
          return n(e);
        } catch (e) {
          return a.slice();
        }
      }(e) : n(r(e));
    };
  }, function (e, t, i) {
    var r = i(91),
        n = i(61),
        o = i(39),
        a = i(78),
        s = i(31),
        x = i(107),
        l = Object.getOwnPropertyDescriptor;
    t.f = i(25) ? l : function (e, t) {
      if (e = o(e), t = a(t, !0), x) try {
        return l(e, t);
      } catch (e) {}
      if (s(e, t)) return n(!r.f.call(e, t), e[t]);
    };
  }, function (e, t, i) {
    i(90)("asyncIterator");
  }, function (e, t, i) {
    i(90)("observable");
  }, function (e, t, i) {
    var r, n, o;
    /**
     * @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
     * Released under the Apache License, Version 2.0
     * see: https://github.com/dcodeIO/long.js for details
     */

    n = [], void 0 === (o = "function" == typeof (r = function r() {
      "use strict";

      function e(e, t, i) {
        this.low = 0 | e, this.high = 0 | t, this.unsigned = !!i;
      }

      function t(e) {
        return !0 === (e && e.__isLong__);
      }

      e.prototype.__isLong__, Object.defineProperty(e.prototype, "__isLong__", {
        value: !0,
        enumerable: !1,
        configurable: !1
      }), e.isLong = t;
      var i = {},
          r = {};

      function n(e, t) {
        var n, o, s;
        return t ? (s = 0 <= (e >>>= 0) && e < 256) && (o = r[e]) ? o : (n = a(e, (0 | e) < 0 ? -1 : 0, !0), s && (r[e] = n), n) : (s = -128 <= (e |= 0) && e < 128) && (o = i[e]) ? o : (n = a(e, e < 0 ? -1 : 0, !1), s && (i[e] = n), n);
      }

      function o(e, t) {
        if (isNaN(e) || !isFinite(e)) return t ? g : d;

        if (t) {
          if (e < 0) return g;
          if (e >= u) return C;
        } else {
          if (e <= -h) return y;
          if (e + 1 >= h) return v;
        }

        return e < 0 ? o(-e, t).neg() : a(e % c | 0, e / c | 0, t);
      }

      function a(t, i, r) {
        return new e(t, i, r);
      }

      e.fromInt = n, e.fromNumber = o, e.fromBits = a;
      var s = Math.pow;

      function x(e, t, i) {
        if (0 === e.length) throw Error("empty string");
        if ("NaN" === e || "Infinity" === e || "+Infinity" === e || "-Infinity" === e) return d;
        if ("number" == typeof t ? (i = t, t = !1) : t = !!t, (i = i || 10) < 2 || 36 < i) throw RangeError("radix");
        var r;
        if ((r = e.indexOf("-")) > 0) throw Error("interior hyphen");
        if (0 === r) return x(e.substring(1), t, i).neg();

        for (var n = o(s(i, 8)), a = d, l = 0; l < e.length; l += 8) {
          var c = Math.min(8, e.length - l),
              u = parseInt(e.substring(l, l + c), i);

          if (c < 8) {
            var h = o(s(i, c));
            a = a.mul(h).add(o(u));
          } else a = (a = a.mul(n)).add(o(u));
        }

        return a.unsigned = t, a;
      }

      function l(t) {
        return t instanceof e ? t : "number" == typeof t ? o(t) : "string" == typeof t ? x(t) : a(t.low, t.high, t.unsigned);
      }

      e.fromString = x, e.fromValue = l;
      var c = 4294967296,
          u = c * c,
          h = u / 2,
          f = n(1 << 24),
          d = n(0);
      e.ZERO = d;
      var g = n(0, !0);
      e.UZERO = g;
      var p = n(1);
      e.ONE = p;
      var m = n(1, !0);
      e.UONE = m;
      var b = n(-1);
      e.NEG_ONE = b;
      var v = a(-1, 2147483647, !1);
      e.MAX_VALUE = v;
      var C = a(-1, -1, !0);
      e.MAX_UNSIGNED_VALUE = C;
      var y = a(0, -2147483648, !1);
      e.MIN_VALUE = y;
      var _ = e.prototype;
      return _.toInt = function () {
        return this.unsigned ? this.low >>> 0 : this.low;
      }, _.toNumber = function () {
        return this.unsigned ? (this.high >>> 0) * c + (this.low >>> 0) : this.high * c + (this.low >>> 0);
      }, _.toString = function (e) {
        if ((e = e || 10) < 2 || 36 < e) throw RangeError("radix");
        if (this.isZero()) return "0";

        if (this.isNegative()) {
          if (this.eq(y)) {
            var t = o(e),
                i = this.div(t),
                r = i.mul(t).sub(this);
            return i.toString(e) + r.toInt().toString(e);
          }

          return "-" + this.neg().toString(e);
        }

        for (var n = o(s(e, 6), this.unsigned), a = this, x = "";;) {
          var l = a.div(n),
              c = (a.sub(l.mul(n)).toInt() >>> 0).toString(e);
          if ((a = l).isZero()) return c + x;

          for (; c.length < 6;) {
            c = "0" + c;
          }

          x = "" + c + x;
        }
      }, _.getHighBits = function () {
        return this.high;
      }, _.getHighBitsUnsigned = function () {
        return this.high >>> 0;
      }, _.getLowBits = function () {
        return this.low;
      }, _.getLowBitsUnsigned = function () {
        return this.low >>> 0;
      }, _.getNumBitsAbs = function () {
        if (this.isNegative()) return this.eq(y) ? 64 : this.neg().getNumBitsAbs();

        for (var e = 0 != this.high ? this.high : this.low, t = 31; t > 0 && 0 == (e & 1 << t); t--) {
          ;
        }

        return 0 != this.high ? t + 33 : t + 1;
      }, _.isZero = function () {
        return 0 === this.high && 0 === this.low;
      }, _.isNegative = function () {
        return !this.unsigned && this.high < 0;
      }, _.isPositive = function () {
        return this.unsigned || this.high >= 0;
      }, _.isOdd = function () {
        return 1 == (1 & this.low);
      }, _.isEven = function () {
        return 0 == (1 & this.low);
      }, _.equals = function (e) {
        return t(e) || (e = l(e)), (this.unsigned === e.unsigned || this.high >>> 31 != 1 || e.high >>> 31 != 1) && this.high === e.high && this.low === e.low;
      }, _.eq = _.equals, _.notEquals = function (e) {
        return !this.eq(e);
      }, _.neq = _.notEquals, _.lessThan = function (e) {
        return this.comp(e) < 0;
      }, _.lt = _.lessThan, _.lessThanOrEqual = function (e) {
        return this.comp(e) <= 0;
      }, _.lte = _.lessThanOrEqual, _.greaterThan = function (e) {
        return this.comp(e) > 0;
      }, _.gt = _.greaterThan, _.greaterThanOrEqual = function (e) {
        return this.comp(e) >= 0;
      }, _.gte = _.greaterThanOrEqual, _.compare = function (e) {
        if (t(e) || (e = l(e)), this.eq(e)) return 0;
        var i = this.isNegative(),
            r = e.isNegative();
        return i && !r ? -1 : !i && r ? 1 : this.unsigned ? e.high >>> 0 > this.high >>> 0 || e.high === this.high && e.low >>> 0 > this.low >>> 0 ? -1 : 1 : this.sub(e).isNegative() ? -1 : 1;
      }, _.comp = _.compare, _.negate = function () {
        return !this.unsigned && this.eq(y) ? y : this.not().add(p);
      }, _.neg = _.negate, _.add = function (e) {
        t(e) || (e = l(e));
        var i = this.high >>> 16,
            r = 65535 & this.high,
            n = this.low >>> 16,
            o = 65535 & this.low,
            s = e.high >>> 16,
            x = 65535 & e.high,
            c = e.low >>> 16,
            u = 0,
            h = 0,
            f = 0,
            d = 0;
        return f += (d += o + (65535 & e.low)) >>> 16, h += (f += n + c) >>> 16, u += (h += r + x) >>> 16, u += i + s, a((f &= 65535) << 16 | (d &= 65535), (u &= 65535) << 16 | (h &= 65535), this.unsigned);
      }, _.subtract = function (e) {
        return t(e) || (e = l(e)), this.add(e.neg());
      }, _.sub = _.subtract, _.multiply = function (e) {
        if (this.isZero()) return d;
        if (t(e) || (e = l(e)), e.isZero()) return d;
        if (this.eq(y)) return e.isOdd() ? y : d;
        if (e.eq(y)) return this.isOdd() ? y : d;
        if (this.isNegative()) return e.isNegative() ? this.neg().mul(e.neg()) : this.neg().mul(e).neg();
        if (e.isNegative()) return this.mul(e.neg()).neg();
        if (this.lt(f) && e.lt(f)) return o(this.toNumber() * e.toNumber(), this.unsigned);
        var i = this.high >>> 16,
            r = 65535 & this.high,
            n = this.low >>> 16,
            s = 65535 & this.low,
            x = e.high >>> 16,
            c = 65535 & e.high,
            u = e.low >>> 16,
            h = 65535 & e.low,
            g = 0,
            p = 0,
            m = 0,
            b = 0;
        return m += (b += s * h) >>> 16, p += (m += n * h) >>> 16, m &= 65535, p += (m += s * u) >>> 16, g += (p += r * h) >>> 16, p &= 65535, g += (p += n * u) >>> 16, p &= 65535, g += (p += s * c) >>> 16, g += i * h + r * u + n * c + s * x, a((m &= 65535) << 16 | (b &= 65535), (g &= 65535) << 16 | (p &= 65535), this.unsigned);
      }, _.mul = _.multiply, _.divide = function (e) {
        if (t(e) || (e = l(e)), e.isZero()) throw Error("division by zero");
        if (this.isZero()) return this.unsigned ? g : d;
        var i, r, n;

        if (this.unsigned) {
          if (e.unsigned || (e = e.toUnsigned()), e.gt(this)) return g;
          if (e.gt(this.shru(1))) return m;
          n = g;
        } else {
          if (this.eq(y)) return e.eq(p) || e.eq(b) ? y : e.eq(y) ? p : (i = this.shr(1).div(e).shl(1)).eq(d) ? e.isNegative() ? p : b : (r = this.sub(e.mul(i)), n = i.add(r.div(e)));
          if (e.eq(y)) return this.unsigned ? g : d;
          if (this.isNegative()) return e.isNegative() ? this.neg().div(e.neg()) : this.neg().div(e).neg();
          if (e.isNegative()) return this.div(e.neg()).neg();
          n = d;
        }

        for (r = this; r.gte(e);) {
          i = Math.max(1, Math.floor(r.toNumber() / e.toNumber()));

          for (var a = Math.ceil(Math.log(i) / Math.LN2), x = a <= 48 ? 1 : s(2, a - 48), c = o(i), u = c.mul(e); u.isNegative() || u.gt(r);) {
            u = (c = o(i -= x, this.unsigned)).mul(e);
          }

          c.isZero() && (c = p), n = n.add(c), r = r.sub(u);
        }

        return n;
      }, _.div = _.divide, _.modulo = function (e) {
        return t(e) || (e = l(e)), this.sub(this.div(e).mul(e));
      }, _.mod = _.modulo, _.not = function () {
        return a(~this.low, ~this.high, this.unsigned);
      }, _.and = function (e) {
        return t(e) || (e = l(e)), a(this.low & e.low, this.high & e.high, this.unsigned);
      }, _.or = function (e) {
        return t(e) || (e = l(e)), a(this.low | e.low, this.high | e.high, this.unsigned);
      }, _.xor = function (e) {
        return t(e) || (e = l(e)), a(this.low ^ e.low, this.high ^ e.high, this.unsigned);
      }, _.shiftLeft = function (e) {
        return t(e) && (e = e.toInt()), 0 == (e &= 63) ? this : e < 32 ? a(this.low << e, this.high << e | this.low >>> 32 - e, this.unsigned) : a(0, this.low << e - 32, this.unsigned);
      }, _.shl = _.shiftLeft, _.shiftRight = function (e) {
        return t(e) && (e = e.toInt()), 0 == (e &= 63) ? this : e < 32 ? a(this.low >>> e | this.high << 32 - e, this.high >> e, this.unsigned) : a(this.high >> e - 32, this.high >= 0 ? 0 : -1, this.unsigned);
      }, _.shr = _.shiftRight, _.shiftRightUnsigned = function (e) {
        if (t(e) && (e = e.toInt()), 0 == (e &= 63)) return this;
        var i = this.high;
        return e < 32 ? a(this.low >>> e | i << 32 - e, i >>> e, this.unsigned) : a(32 === e ? i : i >>> e - 32, 0, this.unsigned);
      }, _.shru = _.shiftRightUnsigned, _.toSigned = function () {
        return this.unsigned ? a(this.low, this.high, !1) : this;
      }, _.toUnsigned = function () {
        return this.unsigned ? this : a(this.low, this.high, !0);
      }, _.toBytes = function (e) {
        return e ? this.toBytesLE() : this.toBytesBE();
      }, _.toBytesLE = function () {
        var e = this.high,
            t = this.low;
        return [255 & t, t >>> 8 & 255, t >>> 16 & 255, t >>> 24 & 255, 255 & e, e >>> 8 & 255, e >>> 16 & 255, e >>> 24 & 255];
      }, _.toBytesBE = function () {
        var e = this.high,
            t = this.low;
        return [e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, 255 & e, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t];
      }, e;
    }) ? r.apply(t, n) : r) || (e.exports = o);
  }, function (e, t) {}, function (e, t, i) {
    i(194);
    var r = i(5).Object;

    e.exports = function (e, t) {
      return r.defineProperties(e, t);
    };
  }, function (e, t, i) {
    var r = i(12);
    r(r.S + r.F * !i(25), "Object", {
      defineProperties: i(109)
    });
  }, function (e, t, i) {
    i(34)("Uint8", 1, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    }, !0);
  }, function (e, t, i) {
    "use strict";

    var r = i(10),
        n = i(11),
        o = i(35),
        a = i(123),
        s = i(20),
        x = i(124),
        l = i(18),
        c = i(125),
        u = i(29),
        h = i(19),
        f = i(126),
        d = i(41).f,
        g = i(13).f,
        p = i(92),
        m = i(55),
        _b2 = r.ArrayBuffer,
        _v = r.DataView,
        C = r.Math,
        y = r.RangeError,
        _ = r.Infinity,
        A = _b2,
        I = C.abs,
        w = C.pow,
        G = C.floor,
        E = C.log,
        S = C.LN2,
        T = n ? "_b" : "buffer",
        P = n ? "_l" : "byteLength",
        M = n ? "_o" : "byteOffset";

    function N(e, t, i) {
      var r,
          n,
          o,
          a = new Array(i),
          s = 8 * i - t - 1,
          x = (1 << s) - 1,
          l = x >> 1,
          c = 23 === t ? w(2, -24) - w(2, -77) : 0,
          u = 0,
          h = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;

      for ((e = I(e)) != e || e === _ ? (n = e != e ? 1 : 0, r = x) : (r = G(E(e) / S), e * (o = w(2, -r)) < 1 && (r--, o *= 2), (e += r + l >= 1 ? c / o : c * w(2, 1 - l)) * o >= 2 && (r++, o /= 2), r + l >= x ? (n = 0, r = x) : r + l >= 1 ? (n = (e * o - 1) * w(2, t), r += l) : (n = e * w(2, l - 1) * w(2, t), r = 0)); t >= 8; a[u++] = 255 & n, n /= 256, t -= 8) {
        ;
      }

      for (r = r << t | n, s += t; s > 0; a[u++] = 255 & r, r /= 256, s -= 8) {
        ;
      }

      return a[--u] |= 128 * h, a;
    }

    function L(e, t, i) {
      var r,
          n = 8 * i - t - 1,
          o = (1 << n) - 1,
          a = o >> 1,
          s = n - 7,
          x = i - 1,
          l = e[x--],
          c = 127 & l;

      for (l >>= 7; s > 0; c = 256 * c + e[x], x--, s -= 8) {
        ;
      }

      for (r = c & (1 << -s) - 1, c >>= -s, s += t; s > 0; r = 256 * r + e[x], x--, s -= 8) {
        ;
      }

      if (0 === c) c = 1 - a;else {
        if (c === o) return r ? NaN : l ? -_ : _;
        r += w(2, t), c -= a;
      }
      return (l ? -1 : 1) * r * w(2, c - t);
    }

    function R(e) {
      return e[3] << 24 | e[2] << 16 | e[1] << 8 | e[0];
    }

    function O(e) {
      return [255 & e];
    }

    function F(e) {
      return [255 & e, e >> 8 & 255];
    }

    function D(e) {
      return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255];
    }

    function U(e) {
      return N(e, 52, 8);
    }

    function k(e) {
      return N(e, 23, 4);
    }

    function B(e, t, i) {
      g(e.prototype, t, {
        get: function get() {
          return this[i];
        }
      });
    }

    function W(e, t, i, r) {
      var n = f(+i);
      if (n + t > e[P]) throw y("Wrong index!");
      var o = e[T]._b,
          a = n + e[M],
          s = o.slice(a, a + t);
      return r ? s : s.reverse();
    }

    function j(e, t, i, r, n, o) {
      var a = f(+i);
      if (a + t > e[P]) throw y("Wrong index!");

      for (var s = e[T]._b, x = a + e[M], l = r(+n), c = 0; c < t; c++) {
        s[x + c] = l[o ? c : t - c - 1];
      }
    }

    if (a.ABV) {
      if (!l(function () {
        _b2(1);
      }) || !l(function () {
        new _b2(-1);
      }) || l(function () {
        return new _b2(), new _b2(1.5), new _b2(NaN), "ArrayBuffer" != _b2.name;
      })) {
        for (var V, z = (_b2 = function b(e) {
          return c(this, _b2), new A(f(e));
        }).prototype = A.prototype, H = d(A), q = 0; H.length > q;) {
          (V = H[q++]) in _b2 || s(_b2, V, A[V]);
        }

        o || (z.constructor = _b2);
      }

      var X = new _v(new _b2(2)),
          Y = _v.prototype.setInt8;
      X.setInt8(0, 2147483648), X.setInt8(1, 2147483649), !X.getInt8(0) && X.getInt8(1) || x(_v.prototype, {
        setInt8: function setInt8(e, t) {
          Y.call(this, e, t << 24 >> 24);
        },
        setUint8: function setUint8(e, t) {
          Y.call(this, e, t << 24 >> 24);
        }
      }, !0);
    } else _b2 = function _b(e) {
      c(this, _b2, "ArrayBuffer");
      var t = f(e);
      this._b = p.call(new Array(t), 0), this[P] = t;
    }, _v = function v(e, t, i) {
      c(this, _v, "DataView"), c(e, _b2, "DataView");
      var r = e[P],
          n = u(t);
      if (n < 0 || n > r) throw y("Wrong offset!");
      if (n + (i = void 0 === i ? r - n : h(i)) > r) throw y("Wrong length!");
      this[T] = e, this[M] = n, this[P] = i;
    }, n && (B(_b2, "byteLength", "_l"), B(_v, "buffer", "_b"), B(_v, "byteLength", "_l"), B(_v, "byteOffset", "_o")), x(_v.prototype, {
      getInt8: function getInt8(e) {
        return W(this, 1, e)[0] << 24 >> 24;
      },
      getUint8: function getUint8(e) {
        return W(this, 1, e)[0];
      },
      getInt16: function getInt16(e) {
        var t = W(this, 2, e, arguments[1]);
        return (t[1] << 8 | t[0]) << 16 >> 16;
      },
      getUint16: function getUint16(e) {
        var t = W(this, 2, e, arguments[1]);
        return t[1] << 8 | t[0];
      },
      getInt32: function getInt32(e) {
        return R(W(this, 4, e, arguments[1]));
      },
      getUint32: function getUint32(e) {
        return R(W(this, 4, e, arguments[1])) >>> 0;
      },
      getFloat32: function getFloat32(e) {
        return L(W(this, 4, e, arguments[1]), 23, 4);
      },
      getFloat64: function getFloat64(e) {
        return L(W(this, 8, e, arguments[1]), 52, 8);
      },
      setInt8: function setInt8(e, t) {
        j(this, 1, e, O, t);
      },
      setUint8: function setUint8(e, t) {
        j(this, 1, e, O, t);
      },
      setInt16: function setInt16(e, t) {
        j(this, 2, e, F, t, arguments[2]);
      },
      setUint16: function setUint16(e, t) {
        j(this, 2, e, F, t, arguments[2]);
      },
      setInt32: function setInt32(e, t) {
        j(this, 4, e, D, t, arguments[2]);
      },
      setUint32: function setUint32(e, t) {
        j(this, 4, e, D, t, arguments[2]);
      },
      setFloat32: function setFloat32(e, t) {
        j(this, 4, e, k, t, arguments[2]);
      },
      setFloat64: function setFloat64(e, t) {
        j(this, 8, e, U, t, arguments[2]);
      }
    });

    m(_b2, "ArrayBuffer"), m(_v, "DataView"), s(_v.prototype, a.VIEW, !0), t.ArrayBuffer = _b2, t.DataView = _v;
  }, function (e, t, i) {
    var r = i(36),
        n = i(4)("iterator"),
        o = Array.prototype;

    e.exports = function (e) {
      return void 0 !== e && (r.Array === e || o[n] === e);
    };
  }, function (e, t, i) {
    var r = i(63),
        n = i(4)("iterator"),
        o = i(36);

    e.exports = i(43).getIteratorMethod = function (e) {
      if (null != e) return e[n] || e["@@iterator"] || o[r(e)];
    };
  }, function (e, t, i) {
    var r = i(51),
        n = i(100),
        o = i(30),
        a = i(19),
        s = i(200);

    e.exports = function (e, t) {
      var i = 1 == e,
          x = 2 == e,
          l = 3 == e,
          c = 4 == e,
          u = 6 == e,
          h = 5 == e || u,
          f = t || s;
      return function (t, s, d) {
        for (var g, p, m = o(t), b = n(m), v = r(s, d, 3), C = a(b.length), y = 0, _ = i ? f(t, C) : x ? f(t, 0) : void 0; C > y; y++) {
          if ((h || y in b) && (p = v(g = b[y], y, m), e)) if (i) _[y] = p;else if (p) switch (e) {
            case 3:
              return !0;

            case 5:
              return g;

            case 6:
              return y;

            case 2:
              _.push(g);

          } else if (c) return !1;
        }

        return u ? -1 : l || c ? c : _;
      };
    };
  }, function (e, t, i) {
    var r = i(201);

    e.exports = function (e, t) {
      return new (r(e))(t);
    };
  }, function (e, t, i) {
    var r = i(21),
        n = i(127),
        o = i(4)("species");

    e.exports = function (e) {
      var t;
      return n(e) && ("function" != typeof (t = e.constructor) || t !== Array && !n(t.prototype) || (t = void 0), r(t) && null === (t = t[o]) && (t = void 0)), void 0 === t ? Array : t;
    };
  }, function (e, t, i) {
    var r = i(4)("iterator"),
        n = !1;

    try {
      var o = [7][r]();
      o["return"] = function () {
        n = !0;
      }, Array.from(o, function () {
        throw 2;
      });
    } catch (e) {}

    e.exports = function (e, t) {
      if (!t && !n) return !1;
      var i = !1;

      try {
        var o = [7],
            a = o[r]();
        a.next = function () {
          return {
            done: i = !0
          };
        }, o[r] = function () {
          return a;
        }, e(o);
      } catch (e) {}

      return i;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(30),
        n = i(54),
        o = i(19);

    e.exports = [].copyWithin || function (e, t) {
      var i = r(this),
          a = o(i.length),
          s = n(e, a),
          x = n(t, a),
          l = arguments.length > 2 ? arguments[2] : void 0,
          c = Math.min((void 0 === l ? a : n(l, a)) - x, a - s),
          u = 1;

      for (x < s && s < x + c && (u = -1, x += c - 1, s += c - 1); c-- > 0;) {
        x in i ? i[s] = i[x] : delete i[s], s += u, x += u;
      }

      return i;
    };
  }, function (e, t, i) {
    i(34)("Uint32", 4, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    i(34)("Float64", 8, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    i(34)("Uint8", 1, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    i(34)("Int16", 2, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    var r = i(23);
    r(r.S, "Math", {
      log2: function log2(e) {
        return Math.log(e) / Math.LN2;
      }
    });
  }, function (e, t, i) {
    i(210), e.exports = i(5).Date.now;
  }, function (e, t, i) {
    var r = i(12);
    r(r.S, "Date", {
      now: function now() {
        return new Date().getTime();
      }
    });
  }, function (e, t, i) {
    i(34)("Uint16", 2, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    var r = i(23);
    r(r.P, "Array", {
      fill: i(92)
    }), i(97)("fill");
  }, function (e, t, i) {
    i(34)("Float32", 4, function (e) {
      return function (t, i, r) {
        return e(this, t, i, r);
      };
    });
  }, function (e, t, i) {
    i(119), i(113), i(116), i(215), i(227), i(228), e.exports = i(5).Promise;
  }, function (e, t, i) {
    "use strict";

    var r,
        n,
        o,
        a,
        s = i(48),
        x = i(7),
        l = i(59),
        c = i(133),
        u = i(12),
        h = i(33),
        f = i(60),
        d = i(216),
        g = i(217),
        p = i(134),
        m = i(135).set,
        b = i(222)(),
        v = i(94),
        C = i(136),
        y = i(223),
        _ = i(137),
        A = x.TypeError,
        I = x.process,
        w = I && I.versions,
        G = w && w.v8 || "",
        _E = x.Promise,
        S = "process" == c(I),
        T = function T() {},
        P = n = v.f,
        M = !!function () {
      try {
        var e = _E.resolve(1),
            t = (e.constructor = {})[i(14)("species")] = function (e) {
          e(T, T);
        };

        return (S || "function" == typeof PromiseRejectionEvent) && e.then(T) instanceof t && 0 !== G.indexOf("6.6") && -1 === y.indexOf("Chrome/66");
      } catch (e) {}
    }(),
        N = function N(e) {
      var t;
      return !(!h(e) || "function" != typeof (t = e.then)) && t;
    },
        L = function L(e, t) {
      if (!e._n) {
        e._n = !0;
        var i = e._c;
        b(function () {
          for (var r = e._v, n = 1 == e._s, o = 0, a = function a(t) {
            var i,
                o,
                a,
                s = n ? t.ok : t.fail,
                x = t.resolve,
                l = t.reject,
                c = t.domain;

            try {
              s ? (n || (2 == e._h && F(e), e._h = 1), !0 === s ? i = r : (c && c.enter(), i = s(r), c && (c.exit(), a = !0)), i === t.promise ? l(A("Promise-chain cycle")) : (o = N(i)) ? o.call(i, x, l) : x(i)) : l(r);
            } catch (e) {
              c && !a && c.exit(), l(e);
            }
          }; i.length > o;) {
            a(i[o++]);
          }

          e._c = [], e._n = !1, t && !e._h && R(e);
        });
      }
    },
        R = function R(e) {
      m.call(x, function () {
        var t,
            i,
            r,
            n = e._v,
            o = O(e);
        if (o && (t = C(function () {
          S ? I.emit("unhandledRejection", n, e) : (i = x.onunhandledrejection) ? i({
            promise: e,
            reason: n
          }) : (r = x.console) && r.error && r.error("Unhandled promise rejection", n);
        }), e._h = S || O(e) ? 2 : 1), e._a = void 0, o && t.e) throw t.v;
      });
    },
        O = function O(e) {
      return 1 !== e._h && 0 === (e._a || e._c).length;
    },
        F = function F(e) {
      m.call(x, function () {
        var t;
        S ? I.emit("rejectionHandled", e) : (t = x.onrejectionhandled) && t({
          promise: e,
          reason: e._v
        });
      });
    },
        D = function D(e) {
      var t = this;
      t._d || (t._d = !0, (t = t._w || t)._v = e, t._s = 2, t._a || (t._a = t._c.slice()), L(t, !0));
    },
        U = function U(e) {
      var t,
          i = this;

      if (!i._d) {
        i._d = !0, i = i._w || i;

        try {
          if (i === e) throw A("Promise can't be resolved itself");
          (t = N(e)) ? b(function () {
            var r = {
              _w: i,
              _d: !1
            };

            try {
              t.call(e, l(U, r, 1), l(D, r, 1));
            } catch (e) {
              D.call(r, e);
            }
          }) : (i._v = e, i._s = 1, L(i, !1));
        } catch (e) {
          D.call({
            _w: i,
            _d: !1
          }, e);
        }
      }
    };

    M || (_E = function E(e) {
      d(this, _E, "Promise", "_h"), f(e), r.call(this);

      try {
        e(l(U, this, 1), l(D, this, 1));
      } catch (e) {
        D.call(this, e);
      }
    }, (r = function r(e) {
      this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1;
    }).prototype = i(224)(_E.prototype, {
      then: function then(e, t) {
        var i = P(p(this, _E));
        return i.ok = "function" != typeof e || e, i.fail = "function" == typeof t && t, i.domain = S ? I.domain : void 0, this._c.push(i), this._a && this._a.push(i), this._s && L(this, !1), i.promise;
      },
      "catch": function _catch(e) {
        return this.then(void 0, e);
      }
    }), o = function o() {
      var e = new r();
      this.promise = e, this.resolve = l(U, e, 1), this.reject = l(D, e, 1);
    }, v.f = P = function P(e) {
      return e === _E || e === a ? new o(e) : n(e);
    }), u(u.G + u.W + u.F * !M, {
      Promise: _E
    }), i(66)(_E, "Promise"), i(225)("Promise"), a = i(5).Promise, u(u.S + u.F * !M, "Promise", {
      reject: function reject(e) {
        var t = P(this);
        return (0, t.reject)(e), t.promise;
      }
    }), u(u.S + u.F * (s || !M), "Promise", {
      resolve: function resolve(e) {
        return _(s && this === a ? _E : this, e);
      }
    }), u(u.S + u.F * !(M && i(226)(function (e) {
      _E.all(e)["catch"](T);
    })), "Promise", {
      all: function all(e) {
        var t = this,
            i = P(t),
            r = i.resolve,
            n = i.reject,
            o = C(function () {
          var i = [],
              o = 0,
              a = 1;
          g(e, !1, function (e) {
            var s = o++,
                x = !1;
            i.push(void 0), a++, t.resolve(e).then(function (e) {
              x || (x = !0, i[s] = e, --a || r(i));
            }, n);
          }), --a || r(i);
        });
        return o.e && n(o.v), i.promise;
      },
      race: function race(e) {
        var t = this,
            i = P(t),
            r = i.reject,
            n = C(function () {
          g(e, !1, function (e) {
            t.resolve(e).then(i.resolve, r);
          });
        });
        return n.e && r(n.v), i.promise;
      }
    });
  }, function (e, t) {
    e.exports = function (e, t, i, r) {
      if (!(e instanceof t) || void 0 !== r && r in e) throw TypeError(i + ": incorrect invocation!");
      return e;
    };
  }, function (e, t, i) {
    var r = i(59),
        n = i(218),
        o = i(219),
        a = i(27),
        s = i(106),
        x = i(220),
        l = {},
        c = {};
    (t = e.exports = function (e, t, i, u, h) {
      var f,
          d,
          g,
          p,
          m = h ? function () {
        return e;
      } : x(e),
          b = r(i, u, t ? 2 : 1),
          v = 0;
      if ("function" != typeof m) throw TypeError(e + " is not iterable!");

      if (o(m)) {
        for (f = s(e.length); f > v; v++) {
          if ((p = t ? b(a(d = e[v])[0], d[1]) : b(e[v])) === l || p === c) return p;
        }
      } else for (g = m.call(e); !(d = g.next()).done;) {
        if ((p = n(g, b, d.value, t)) === l || p === c) return p;
      }
    }).BREAK = l, t.RETURN = c;
  }, function (e, t, i) {
    var r = i(27);

    e.exports = function (e, t, i, n) {
      try {
        return n ? t(r(i)[0], i[1]) : t(i);
      } catch (t) {
        var o = e["return"];
        throw void 0 !== o && r(o.call(e)), t;
      }
    };
  }, function (e, t, i) {
    var r = i(49),
        n = i(14)("iterator"),
        o = Array.prototype;

    e.exports = function (e) {
      return void 0 !== e && (r.Array === e || o[n] === e);
    };
  }, function (e, t, i) {
    var r = i(133),
        n = i(14)("iterator"),
        o = i(49);

    e.exports = i(5).getIteratorMethod = function (e) {
      if (null != e) return e[n] || e["@@iterator"] || o[r(e)];
    };
  }, function (e, t) {
    e.exports = function (e, t, i) {
      var r = void 0 === i;

      switch (t.length) {
        case 0:
          return r ? e() : e.call(i);

        case 1:
          return r ? e(t[0]) : e.call(i, t[0]);

        case 2:
          return r ? e(t[0], t[1]) : e.call(i, t[0], t[1]);

        case 3:
          return r ? e(t[0], t[1], t[2]) : e.call(i, t[0], t[1], t[2]);

        case 4:
          return r ? e(t[0], t[1], t[2], t[3]) : e.call(i, t[0], t[1], t[2], t[3]);
      }

      return e.apply(i, t);
    };
  }, function (e, t, i) {
    var r = i(7),
        n = i(135).set,
        o = r.MutationObserver || r.WebKitMutationObserver,
        a = r.process,
        s = r.Promise,
        x = "process" == i(47)(a);

    e.exports = function () {
      var e,
          t,
          i,
          l = function l() {
        var r, n;

        for (x && (r = a.domain) && r.exit(); e;) {
          n = e.fn, e = e.next;

          try {
            n();
          } catch (r) {
            throw e ? i() : t = void 0, r;
          }
        }

        t = void 0, r && r.enter();
      };

      if (x) i = function i() {
        a.nextTick(l);
      };else if (!o || r.navigator && r.navigator.standalone) {
        if (s && s.resolve) {
          var c = s.resolve(void 0);

          i = function i() {
            c.then(l);
          };
        } else i = function i() {
          n.call(r, l);
        };
      } else {
        var u = !0,
            h = document.createTextNode("");
        new o(l).observe(h, {
          characterData: !0
        }), i = function i() {
          h.data = u = !u;
        };
      }
      return function (r) {
        var n = {
          fn: r,
          next: void 0
        };
        t && (t.next = n), e || (e = n, i()), t = n;
      };
    };
  }, function (e, t, i) {
    var r = i(7).navigator;
    e.exports = r && r.userAgent || "";
  }, function (e, t, i) {
    var r = i(32);

    e.exports = function (e, t, i) {
      for (var n in t) {
        i && e[n] ? e[n] = t[n] : r(e, n, t[n]);
      }

      return e;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(7),
        n = i(5),
        o = i(26),
        a = i(25),
        s = i(14)("species");

    e.exports = function (e) {
      var t = "function" == typeof n[e] ? n[e] : r[e];
      a && t && !t[s] && o.f(t, s, {
        configurable: !0,
        get: function get() {
          return this;
        }
      });
    };
  }, function (e, t, i) {
    var r = i(14)("iterator"),
        n = !1;

    try {
      var o = [7][r]();
      o["return"] = function () {
        n = !0;
      }, Array.from(o, function () {
        throw 2;
      });
    } catch (e) {}

    e.exports = function (e, t) {
      if (!t && !n) return !1;
      var i = !1;

      try {
        var o = [7],
            a = o[r]();
        a.next = function () {
          return {
            done: i = !0
          };
        }, o[r] = function () {
          return a;
        }, e(o);
      } catch (e) {}

      return i;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(12),
        n = i(5),
        o = i(7),
        a = i(134),
        s = i(137);
    r(r.P + r.R, "Promise", {
      "finally": function _finally(e) {
        var t = a(this, n.Promise || o.Promise),
            i = "function" == typeof e;
        return this.then(i ? function (i) {
          return s(t, e()).then(function () {
            return i;
          });
        } : e, i ? function (i) {
          return s(t, e()).then(function () {
            throw i;
          });
        } : e);
      }
    });
  }, function (e, t, i) {
    "use strict";

    var r = i(12),
        n = i(94),
        o = i(136);
    r(r.S, "Promise", {
      "try": function _try(e) {
        var t = n.f(this),
            i = o(e);
        return (i.e ? t.reject : t.resolve)(i.v), t.promise;
      }
    });
  }, function (e, t, i) {
    i(138)("asyncIterator");
  }, function (e, t, i) {
    "use strict";

    var r = i(10),
        n = i(24),
        o = i(11),
        a = i(23),
        s = i(22),
        x = i(231).KEY,
        l = i(18),
        c = i(50),
        u = i(55),
        h = i(28),
        f = i(4),
        d = i(139),
        g = i(138),
        p = i(232),
        m = i(127),
        b = i(17),
        v = i(21),
        C = i(30),
        y = i(37),
        _ = i(44),
        A = i(45),
        I = i(52),
        w = i(233),
        G = i(67),
        E = i(140),
        S = i(13),
        T = i(53),
        P = G.f,
        M = S.f,
        N = w.f,
        _L2 = r.Symbol,
        R = r.JSON,
        O = R && R.stringify,
        F = f("_hidden"),
        D = f("toPrimitive"),
        U = {}.propertyIsEnumerable,
        k = c("symbol-registry"),
        B = c("symbols"),
        W = c("op-symbols"),
        j = Object.prototype,
        V = "function" == typeof _L2 && !!E.f,
        z = r.QObject,
        H = !z || !z.prototype || !z.prototype.findChild,
        q = o && l(function () {
      return 7 != I(M({}, "a", {
        get: function get() {
          return M(this, "a", {
            value: 7
          }).a;
        }
      })).a;
    }) ? function (e, t, i) {
      var r = P(j, t);
      r && delete j[t], M(e, t, i), r && e !== j && M(j, t, r);
    } : M,
        X = function X(e) {
      var t = B[e] = I(_L2.prototype);
      return t._k = e, t;
    },
        Y = V && "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(_L2.iterator) ? function (e) {
      return "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e);
    } : function (e) {
      return e instanceof _L2;
    },
        K = function K(e, t, i) {
      return e === j && K(W, t, i), b(e), t = _(t, !0), b(i), n(B, t) ? (i.enumerable ? (n(e, F) && e[F][t] && (e[F][t] = !1), i = I(i, {
        enumerable: A(0, !1)
      })) : (n(e, F) || M(e, F, A(1, {})), e[F][t] = !0), q(e, t, i)) : M(e, t, i);
    },
        Q = function Q(e, t) {
      b(e);

      for (var i, r = p(t = y(t)), n = 0, o = r.length; o > n;) {
        K(e, i = r[n++], t[i]);
      }

      return e;
    },
        Z = function Z(e) {
      var t = U.call(this, e = _(e, !0));
      return !(this === j && n(B, e) && !n(W, e)) && (!(t || !n(this, e) || !n(B, e) || n(this, F) && this[F][e]) || t);
    },
        J = function J(e, t) {
      if (e = y(e), t = _(t, !0), e !== j || !n(B, t) || n(W, t)) {
        var i = P(e, t);
        return !i || !n(B, t) || n(e, F) && e[F][t] || (i.enumerable = !0), i;
      }
    },
        $ = function $(e) {
      for (var t, i = N(y(e)), r = [], o = 0; i.length > o;) {
        n(B, t = i[o++]) || t == F || t == x || r.push(t);
      }

      return r;
    },
        ee = function ee(e) {
      for (var t, i = e === j, r = N(i ? W : y(e)), o = [], a = 0; r.length > a;) {
        !n(B, t = r[a++]) || i && !n(j, t) || o.push(B[t]);
      }

      return o;
    };

    V || (s((_L2 = function L() {
      if (this instanceof _L2) throw TypeError("Symbol is not a constructor!");

      var e = h(arguments.length > 0 ? arguments[0] : void 0),
          t = function t(i) {
        this === j && t.call(W, i), n(this, F) && n(this[F], e) && (this[F][e] = !1), q(this, e, A(1, i));
      };

      return o && H && q(j, e, {
        configurable: !0,
        set: t
      }), X(e);
    }).prototype, "toString", function () {
      return this._k;
    }), G.f = J, S.f = K, i(41).f = w.f = $, i(93).f = Z, E.f = ee, o && !i(35) && s(j, "propertyIsEnumerable", Z, !0), d.f = function (e) {
      return X(f(e));
    }), a(a.G + a.W + a.F * !V, {
      Symbol: _L2
    });

    for (var te = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), ie = 0; te.length > ie;) {
      f(te[ie++]);
    }

    for (var re = T(f.store), ne = 0; re.length > ne;) {
      g(re[ne++]);
    }

    a(a.S + a.F * !V, "Symbol", {
      "for": function _for(e) {
        return n(k, e += "") ? k[e] : k[e] = _L2(e);
      },
      keyFor: function keyFor(e) {
        if (!Y(e)) throw TypeError(e + " is not a symbol!");

        for (var t in k) {
          if (k[t] === e) return t;
        }
      },
      useSetter: function useSetter() {
        H = !0;
      },
      useSimple: function useSimple() {
        H = !1;
      }
    }), a(a.S + a.F * !V, "Object", {
      create: function create(e, t) {
        return void 0 === t ? I(e) : Q(I(e), t);
      },
      defineProperty: K,
      defineProperties: Q,
      getOwnPropertyDescriptor: J,
      getOwnPropertyNames: $,
      getOwnPropertySymbols: ee
    });
    var oe = l(function () {
      E.f(1);
    });
    a(a.S + a.F * oe, "Object", {
      getOwnPropertySymbols: function getOwnPropertySymbols(e) {
        return E.f(C(e));
      }
    }), R && a(a.S + a.F * (!V || l(function () {
      var e = _L2();

      return "[null]" != O([e]) || "{}" != O({
        a: e
      }) || "{}" != O(Object(e));
    })), "JSON", {
      stringify: function stringify(e) {
        for (var t, i, r = [e], n = 1; arguments.length > n;) {
          r.push(arguments[n++]);
        }

        if (i = t = r[1], (v(t) || void 0 !== e) && !Y(e)) return m(t) || (t = function (_t4) {
          function t(_x8, _x9) {
            return _t4.apply(this, arguments);
          }

          t.toString = function () {
            return _t4.toString();
          };

          return t;
        }(function (e, t) {
          if ("function" == typeof i && (t = i.call(this, e, t)), !Y(t)) return t;
        })), r[1] = t, O.apply(R, r);
      }
    }), _L2.prototype[D] || i(20)(_L2.prototype, D, _L2.prototype.valueOf), u(_L2, "Symbol"), u(Math, "Math", !0), u(r.JSON, "JSON", !0);
  }, function (e, t, i) {
    var r = i(28)("meta"),
        n = i(21),
        o = i(24),
        a = i(13).f,
        s = 0,
        x = Object.isExtensible || function () {
      return !0;
    },
        l = !i(18)(function () {
      return x(Object.preventExtensions({}));
    }),
        c = function c(e) {
      a(e, r, {
        value: {
          i: "O" + ++s,
          w: {}
        }
      });
    },
        u = e.exports = {
      KEY: r,
      NEED: !1,
      fastKey: function fastKey(e, t) {
        if (!n(e)) return "symbol" == _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(e) ? e : ("string" == typeof e ? "S" : "P") + e;

        if (!o(e, r)) {
          if (!x(e)) return "F";
          if (!t) return "E";
          c(e);
        }

        return e[r].i;
      },
      getWeak: function getWeak(e, t) {
        if (!o(e, r)) {
          if (!x(e)) return !0;
          if (!t) return !1;
          c(e);
        }

        return e[r].w;
      },
      onFreeze: function onFreeze(e) {
        return l && u.NEED && x(e) && !o(e, r) && c(e), e;
      }
    };
  }, function (e, t, i) {
    var r = i(53),
        n = i(140),
        o = i(93);

    e.exports = function (e) {
      var t = r(e),
          i = n.f;
      if (i) for (var a, s = i(e), x = o.f, l = 0; s.length > l;) {
        x.call(e, a = s[l++]) && t.push(a);
      }
      return t;
    };
  }, function (e, t, i) {
    var r = i(37),
        n = i(41).f,
        o = {}.toString,
        a = "object" == (typeof window === "undefined" ? "undefined" : _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(window)) && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];

    e.exports.f = function (e) {
      return a && "[object Window]" == o.call(e) ? function (e) {
        try {
          return n(e);
        } catch (e) {
          return a.slice();
        }
      }(e) : n(r(e));
    };
  }, function (e, t, i) {
    var r = i(21),
        n = i(17),
        o = function o(e, t) {
      if (n(e), !r(t) && null !== t) throw TypeError(t + ": can't set as prototype!");
    };

    e.exports = {
      set: Object.setPrototypeOf || ("__proto__" in {} ? function (e, t, r) {
        try {
          (r = i(51)(Function.call, i(67).f(Object.prototype, "__proto__").set, 2))(e, []), t = !(e instanceof Array);
        } catch (e) {
          t = !0;
        }

        return function (e, i) {
          return o(e, i), t ? e.__proto__ = i : r(e, i), e;
        };
      }({}, !1) : void 0),
      check: o
    };
  }, function (e, t, i) {
    var r = i(23),
        n = i(38),
        o = i(18),
        a = i(236),
        s = "[" + a + "]",
        x = RegExp("^" + s + s + "*"),
        l = RegExp(s + s + "*$"),
        c = function c(e, t, i) {
      var n = {},
          s = o(function () {
        return !!a[e]() || "​" != "​"[e]();
      }),
          x = n[e] = s ? t(u) : a[e];
      i && (n[i] = x), r(r.P + r.F * s, "String", n);
    },
        u = c.trim = function (e, t) {
      return e = String(n(e)), 1 & t && (e = e.replace(x, "")), 2 & t && (e = e.replace(l, "")), e;
    };

    e.exports = c;
  }, function (e, t) {
    e.exports = "\t\n\x0B\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
  }, function (module, __webpack_exports__, __webpack_require__) {
    "use strict";

    (function (module, global) {
      var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69),
          core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_0__),
          core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42),
          core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1__),
          _babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15),
          _babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_2__),
          core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84),
          core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__),
          _babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8),
          _babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4__),
          core_js_modules_es6_string_ends_with__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(129),
          core_js_modules_es6_string_ends_with__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(core_js_modules_es6_string_ends_with__WEBPACK_IMPORTED_MODULE_5__),
          core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(132),
          core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_6___default = __webpack_require__.n(core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_6__),
          _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1),
          _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default = __webpack_require__.n(_babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7__),
          core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(141),
          core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8___default = __webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8__),
          core_js_modules_es6_regexp_search__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(239),
          core_js_modules_es6_regexp_search__WEBPACK_IMPORTED_MODULE_9___default = __webpack_require__.n(core_js_modules_es6_regexp_search__WEBPACK_IMPORTED_MODULE_9__),
          core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(88),
          core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_10___default = __webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_10__),
          _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(0),
          _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default = __webpack_require__.n(_babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11__),
          _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(2),
          _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default = __webpack_require__.n(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12__),
          core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(85),
          core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_13___default = __webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_13__),
          core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(86),
          core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_14___default = __webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_14__),
          core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(79),
          core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_15___default = __webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_15__),
          core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(241),
          core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_16___default = __webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_16__),
          core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(143),
          core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_17___default = __webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_17__),
          require,
          require,
          e;

      window.GeoGlobe = window.GeoGlobe || {}, window.GeoGlobe.Class = window.GeoGlobe.Class || {}, window.GeoGlobe.LngLatBounds = window.GeoGlobe.LngLatBounds || {}, window.GeoGlobe.LngLat = window.GeoGlobe.LngLat || {}, window.GeoGlobe.Filter = window.GeoGlobe.Filter || {}, window.GeoGlobe.Format = window.GeoGlobe.Format || {}, window.GeoGlobe.Protocol = window.GeoGlobe.Protocol || {}, window.GeoGlobe.Query = window.GeoGlobe.Query || {}, window.GeoGlobe.Service = window.GeoGlobe.Service || {}, window.GeoGlobe.Analysis = window.GeoGlobe.Analysis || {}, GeoGlobe.getScriptLocation = function (e) {
        for (var t = "", i = new RegExp("(^|(.*?\\/))(" + e + ")(\\?|$)"), r = document.getElementsByTagName("script"), n = 0, o = r.length; n < o; n++) {
          var a = r[n].getAttribute("src");

          if (a) {
            var s = a.match(i);

            if (s) {
              t = s[1];
              break;
            }
          }
        }

        return t;
      }, GeoGlobe.createNS = function (e) {
        for (var t = e.split("."), i = window, r = 0; r < t.length; r++) {
          i[t[r]] || (i[t[r]] = {}), i = i[t[r]];
        }
      }, GeoGlobe.Class = function () {
        var e = arguments.length,
            t = arguments[0],
            i = arguments[e - 1],
            r = "function" == typeof i.initialize ? i.initialize : function () {
          t.prototype.initialize.apply(this, arguments);
        };
        return e > 1 ? [r, t].concat(Array.prototype.slice.call(arguments).slice(1, e - 1), i) : r.prototype = i, r;
      }, GeoGlobe.Class4OL = function () {
        var e = arguments.length,
            t = arguments[0],
            i = arguments[e - 1],
            r = "function" == typeof i.initialize ? i.initialize : function () {
          t.prototype.initialize.apply(this, arguments);
        };

        if (e > 1) {
          var n = [r, t].concat(Array.prototype.slice.call(arguments).slice(1, e - 1), i);
          GeoGlobe.inherit.apply(null, n);
        } else r.prototype = i;

        return r;
      }, GeoGlobe.inherit = function (e, t) {
        var i,
            r,
            n,
            o = function o() {};

        for (o.prototype = t.prototype, e.prototype = new o(), i = 2, r = arguments.length; i < r; i++) {
          "function" == typeof (n = arguments[i]) && (n = n.prototype), GeoGlobe.Util.extend(e.prototype, n);
        }
      }, GeoGlobe.Util = GeoGlobe.Util || {}, GeoGlobe.Util.extend = function (e, t) {
        if (e = e || {}, t) {
          for (var i in t) {
            var r = t[i];
            void 0 !== r && (e[i] = r);
          }

          !("function" == typeof window.Event && t instanceof window.Event) && t.hasOwnProperty && t.hasOwnProperty("toString") && (e.toString = t.toString);
        }

        return e;
      }, GeoGlobe.Util.deepExtend = function (e) {
        for (var t = 1; t < arguments.length; t++) {
          for (var i in arguments[t]) {
            if (arguments[t].hasOwnProperty(i)) switch (GeoGlobe.Util.getType(arguments[t][i])) {
              case "array":
                e.hasOwnProperty(i) && "array" === GeoGlobe.Util.getType(e[i]) ? GeoGlobe.Util.deepExtend(e[i], arguments[t][i]) : e[i] = GeoGlobe.Util.deepExtend([], arguments[t][i]);
                break;

              case "object":
                e.hasOwnProperty(i) && "object" === GeoGlobe.Util.getType(e[i]) ? GeoGlobe.Util.deepExtend(e[i], arguments[t][i]) : e[i] = GeoGlobe.Util.deepExtend({}, arguments[t][i]);
                break;

              default:
                e[i] = arguments[t][i];
            }
          }
        }

        return e;
      }, GeoGlobe.Util = GeoGlobe.Util || {}, GeoGlobe.Util.getElement = function () {
        for (var e = [], t = 0, i = arguments.length; t < i; t++) {
          var r = arguments[t];
          if ("string" == typeof r && (r = document.getElementById(r)), 1 == arguments.length) return r;
          e.push(r);
        }

        return e;
      }, GeoGlobe.Util.isElement = function (e) {
        return !(!e || 1 !== e.nodeType);
      }, GeoGlobe.Util.isArray = function (e) {
        return "[object Array]" === Object.prototype.toString.call(e);
      }, GeoGlobe.Util.removeItem = function (e, t) {
        for (var i = e.length - 1; i >= 0; i--) {
          e[i] == t && e.splice(i, 1);
        }

        return e;
      }, GeoGlobe.Util.indexOf = function (e, t) {
        if ("function" == typeof e.indexOf) return e.indexOf(t);

        for (var i = 0, r = e.length; i < r; i++) {
          if (e[i] == t) return i;
        }

        return -1;
      }, GeoGlobe.Util.dotless = /\./g, GeoGlobe.IMAGE_RELOAD_ATTEMPTS = 0, GeoGlobe.Util.alphaHackNeeded = null, GeoGlobe.Util.alphaHack = function () {
        if (null == GeoGlobe.Util.alphaHackNeeded) {
          var e = navigator.appVersion.split("MSIE"),
              t = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e[1]),
              i = !1;

          try {
            i = !!document.body.filters;
          } catch (e) {}

          GeoGlobe.Util.alphaHackNeeded = i && t >= 5.5 && t < 7;
        }

        return GeoGlobe.Util.alphaHackNeeded;
      }, GeoGlobe.Util.upperCaseObject = function (e) {
        var t = {};

        for (var i in e) {
          t[i.toUpperCase()] = e[i];
        }

        return t;
      }, GeoGlobe.Util.applyDefaults = function (e, t) {
        e = e || {};
        var i = "function" == typeof window.Event && t instanceof window.Event;

        for (var r in t) {
          (void 0 === e[r] || !i && t.hasOwnProperty && t.hasOwnProperty(r) && !e.hasOwnProperty(r)) && (e[r] = t[r]);
        }

        return !i && t && t.hasOwnProperty && t.hasOwnProperty("toString") && !e.hasOwnProperty("toString") && (e.toString = t.toString), e;
      }, GeoGlobe.Util.getParameterString = function (e) {
        var t = [];

        for (var i in e) {
          var r = e[i];

          if (null != r && "function" != typeof r) {
            var n;

            if ("object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(r) && r.constructor == Array) {
              for (var o, a = [], s = 0, x = r.length; s < x; s++) {
                o = r[s], a.push(encodeURIComponent(null == o ? "" : o));
              }

              n = a.join(",");
            } else n = encodeURIComponent(r);

            t.push(encodeURIComponent(i) + "=" + n);
          }
        }

        return t.join("&");
      }, GeoGlobe.Util.urlAppend = function (e, t) {
        var i = e;

        if (t) {
          var r = (e + " ").split(/[?&]/);
          i += " " === r.pop() ? t : r.length ? "&" + t : "?" + t;
        }

        return i;
      }, GeoGlobe.Util.getImagesLocation = function () {
        return GeoGlobe.ImgPath || GeoGlobe._getScriptLocation() + "img/";
      }, GeoGlobe.Util.getImageLocation = function (e) {
        return GeoGlobe.Util.getImagesLocation() + e;
      }, GeoGlobe.Util.Try = function () {
        for (var e = null, t = 0, i = arguments.length; t < i; t++) {
          var r = arguments[t];

          try {
            e = r();
            break;
          } catch (e) {}
        }

        return e;
      }, GeoGlobe.Util.getXmlNodeValue = function (e) {
        var t = null;
        return GeoGlobe.Util.Try(function () {
          (t = e.text) || (t = e.textContent), t || (t = e.firstChild.nodeValue);
        }, function () {
          t = e.textContent;
        }), t;
      }, GeoGlobe.Util.mouseLeft = function (e, t) {
        for (var i = e.relatedTarget ? e.relatedTarget : e.toElement; i != t && null != i;) {
          i = i.parentNode;
        }

        return i != t;
      }, GeoGlobe.Util.DEFAULT_PRECISION = 14, GeoGlobe.Util.toFloat = function (e, t) {
        return null == t && (t = GeoGlobe.Util.DEFAULT_PRECISION), "number" != typeof e && (e = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e)), 0 === t ? e : _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.toPrecision(t));
      }, GeoGlobe.Util.rad = function (e) {
        return e * Math.PI / 180;
      }, GeoGlobe.Util.deg = function (e) {
        return 180 * e / Math.PI;
      }, GeoGlobe.Util.VincentyConstants = {
        a: 6378137,
        b: 6356752.3142,
        f: 1 / 298.257223563
      }, GeoGlobe.Util.distVincenty = function (e, t) {
        for (var i = GeoGlobe.Util.VincentyConstants, r = i.a, n = i.b, o = i.f, a = GeoGlobe.Util.rad(t.lng - e.lng), s = Math.atan((1 - o) * Math.tan(GeoGlobe.Util.rad(e.lat))), x = Math.atan((1 - o) * Math.tan(GeoGlobe.Util.rad(t.lat))), l = Math.sin(s), c = Math.cos(s), u = Math.sin(x), h = Math.cos(x), f = a, d = 2 * Math.PI, g = 20; Math.abs(f - d) > 1e-12 && --g > 0;) {
          var p = Math.sin(f),
              m = Math.cos(f),
              b = Math.sqrt(h * p * (h * p) + (c * u - l * h * m) * (c * u - l * h * m));
          if (0 == b) return 0;

          var v = l * u + c * h * m,
              C = Math.atan2(b, v),
              y = Math.asin(c * h * p / b),
              _ = Math.cos(y) * Math.cos(y),
              A = v - 2 * l * u / _,
              I = o / 16 * _ * (4 + o * (4 - 3 * _));

          d = f, f = a + (1 - I) * o * Math.sin(y) * (C + I * b * (A + I * v * (2 * A * A - 1)));
        }

        if (0 == g) return NaN;
        var w = _ * (r * r - n * n) / (n * n),
            G = w / 1024 * (256 + w * (w * (74 - 47 * w) - 128));
        return (n * (1 + w / 16384 * (4096 + w * (w * (320 - 175 * w) - 768))) * (C - G * b * (A + G / 4 * (v * (2 * A * A - 1) - G / 6 * A * (4 * b * b - 3) * (4 * A * A - 3))))).toFixed(3) / 1e3;
      }, GeoGlobe.Util.destinationVincenty = function (e, t, i) {
        for (var r = GeoGlobe.Util, n = r.VincentyConstants, o = n.a, a = n.b, s = n.f, x = e.lng, l = e.lat, c = i, u = r.rad(t), h = Math.sin(u), f = Math.cos(u), d = (1 - s) * Math.tan(r.rad(l)), g = 1 / Math.sqrt(1 + d * d), p = d * g, m = Math.atan2(d, f), b = g * h, v = 1 - b * b, C = v * (o * o - a * a) / (a * a), y = 1 + C / 16384 * (4096 + C * (C * (320 - 175 * C) - 768)), _ = C / 1024 * (256 + C * (C * (74 - 47 * C) - 128)), A = c / (a * y), I = 2 * Math.PI; Math.abs(A - I) > 1e-12;) {
          var w = Math.cos(2 * m + A),
              G = Math.sin(A),
              E = Math.cos(A);
          I = A, A = c / (a * y) + _ * G * (w + _ / 4 * (E * (2 * w * w - 1) - _ / 6 * w * (4 * G * G - 3) * (4 * w * w - 3)));
        }

        var S = p * G - g * E * f,
            T = Math.atan2(p * E + g * G * f, (1 - s) * Math.sqrt(b * b + S * S)),
            P = s / 16 * v * (4 + s * (4 - 3 * v)),
            M = Math.atan2(G * h, g * E - p * G * f) - (1 - P) * s * b * (A + P * G * (w + P * E * (2 * w * w - 1)));
        return Math.atan2(b, -S), new GeoGlobe.LngLat(x + r.deg(M), r.deg(T));
      }, GeoGlobe.Util.getParameters = function (e, t) {
        t = t || {}, e = null == e ? window.location.href : e;
        var i = "";

        if (GeoGlobe.String.contains(e, "?")) {
          var r = e.indexOf("?") + 1,
              n = GeoGlobe.String.contains(e, "#") ? e.indexOf("#") : e.length;
          i = e.substring(r, n);
        }

        for (var o = {}, a = i.split(/[&;]/), s = 0, x = a.length; s < x; ++s) {
          var l = a[s].split("=");

          if (l[0]) {
            var c = l[0];

            try {
              c = decodeURIComponent(c);
            } catch (e) {
              c = unescape(c);
            }

            var u = (l[1] || "").replace(/\+/g, " ");

            try {
              u = decodeURIComponent(u);
            } catch (e) {
              u = unescape(u);
            }

            !1 !== t.splitArgs && (u = u.split(",")), 1 == u.length && (u = u[0]), o[c] = u;
          }
        }

        return o;
      }, GeoGlobe.Util.lastSeqID = 0, GeoGlobe.Util.createUniqueID = function (e) {
        return e = null == e ? "id_" : e.replace(GeoGlobe.Util.dotless, "_"), GeoGlobe.Util.lastSeqID += 1, e + GeoGlobe.Util.lastSeqID;
      }, GeoGlobe.INCHES_PER_UNIT = {
        inches: 1,
        ft: 12,
        mi: 63360,
        m: 1 / 0.0254,
        km: 39370,
        dd: 4374754,
        yd: 36
      }, GeoGlobe.INCHES_PER_UNIT["in"] = GeoGlobe.INCHES_PER_UNIT.inches, GeoGlobe.INCHES_PER_UNIT.degrees = GeoGlobe.INCHES_PER_UNIT.dd, GeoGlobe.INCHES_PER_UNIT.nmi = 1852 * GeoGlobe.INCHES_PER_UNIT.m, GeoGlobe.METERS_PER_INCH = 0.0254000508001016, GeoGlobe.Util.extend(GeoGlobe.INCHES_PER_UNIT, {
        Inch: GeoGlobe.INCHES_PER_UNIT.inches,
        Meter: 1 / GeoGlobe.METERS_PER_INCH,
        Foot: 0.3048006096012192 / GeoGlobe.METERS_PER_INCH,
        IFoot: 0.3048 / GeoGlobe.METERS_PER_INCH,
        ClarkeFoot: 0.3047972651151 / GeoGlobe.METERS_PER_INCH,
        SearsFoot: 0.30479947153867626 / GeoGlobe.METERS_PER_INCH,
        GoldCoastFoot: 0.3047997101815088 / GeoGlobe.METERS_PER_INCH,
        IInch: 0.0254 / GeoGlobe.METERS_PER_INCH,
        MicroInch: 254e-7 / GeoGlobe.METERS_PER_INCH,
        Mil: 2.54e-8 / GeoGlobe.METERS_PER_INCH,
        Centimeter: 0.01 / GeoGlobe.METERS_PER_INCH,
        Kilometer: 1e3 / GeoGlobe.METERS_PER_INCH,
        Yard: 0.9144018288036576 / GeoGlobe.METERS_PER_INCH,
        SearsYard: 0.914398414616029 / GeoGlobe.METERS_PER_INCH,
        IndianYard: 0.9143985307444408 / GeoGlobe.METERS_PER_INCH,
        IndianYd37: 0.91439523 / GeoGlobe.METERS_PER_INCH,
        IndianYd62: 0.9143988 / GeoGlobe.METERS_PER_INCH,
        IndianYd75: 0.9143985 / GeoGlobe.METERS_PER_INCH,
        IndianFoot: 0.30479951 / GeoGlobe.METERS_PER_INCH,
        IndianFt37: 0.30479841 / GeoGlobe.METERS_PER_INCH,
        IndianFt62: 0.3047996 / GeoGlobe.METERS_PER_INCH,
        IndianFt75: 0.3047995 / GeoGlobe.METERS_PER_INCH,
        Mile: 1609.3472186944373 / GeoGlobe.METERS_PER_INCH,
        IYard: 0.9144 / GeoGlobe.METERS_PER_INCH,
        IMile: 1609.344 / GeoGlobe.METERS_PER_INCH,
        NautM: 1852 / GeoGlobe.METERS_PER_INCH,
        "Lat-66": 110943.31648893273 / GeoGlobe.METERS_PER_INCH,
        "Lat-83": 110946.25736872235 / GeoGlobe.METERS_PER_INCH,
        Decimeter: 0.1 / GeoGlobe.METERS_PER_INCH,
        Millimeter: 0.001 / GeoGlobe.METERS_PER_INCH,
        Dekameter: 10 / GeoGlobe.METERS_PER_INCH,
        Decameter: 10 / GeoGlobe.METERS_PER_INCH,
        Hectometer: 100 / GeoGlobe.METERS_PER_INCH,
        GermanMeter: 1.0000135965 / GeoGlobe.METERS_PER_INCH,
        CaGrid: 0.999738 / GeoGlobe.METERS_PER_INCH,
        ClarkeChain: 20.1166194976 / GeoGlobe.METERS_PER_INCH,
        GunterChain: 20.11684023368047 / GeoGlobe.METERS_PER_INCH,
        BenoitChain: 20.116782494375872 / GeoGlobe.METERS_PER_INCH,
        SearsChain: 20.11676512155 / GeoGlobe.METERS_PER_INCH,
        ClarkeLink: 0.201166194976 / GeoGlobe.METERS_PER_INCH,
        GunterLink: 0.2011684023368047 / GeoGlobe.METERS_PER_INCH,
        BenoitLink: 0.20116782494375873 / GeoGlobe.METERS_PER_INCH,
        SearsLink: 0.2011676512155 / GeoGlobe.METERS_PER_INCH,
        Rod: 5.02921005842012 / GeoGlobe.METERS_PER_INCH,
        IntnlChain: 20.1168 / GeoGlobe.METERS_PER_INCH,
        IntnlLink: 0.201168 / GeoGlobe.METERS_PER_INCH,
        Perch: 5.02921005842012 / GeoGlobe.METERS_PER_INCH,
        Pole: 5.02921005842012 / GeoGlobe.METERS_PER_INCH,
        Furlong: 201.1684023368046 / GeoGlobe.METERS_PER_INCH,
        Rood: 3.778266898 / GeoGlobe.METERS_PER_INCH,
        CapeFoot: 0.3047972615 / GeoGlobe.METERS_PER_INCH,
        Brealey: 375 / GeoGlobe.METERS_PER_INCH,
        ModAmFt: 0.304812252984506 / GeoGlobe.METERS_PER_INCH,
        Fathom: 1.8288 / GeoGlobe.METERS_PER_INCH,
        "NautM-UK": 1853.184 / GeoGlobe.METERS_PER_INCH,
        "50kilometers": 5e4 / GeoGlobe.METERS_PER_INCH,
        "150kilometers": 15e4 / GeoGlobe.METERS_PER_INCH
      }), GeoGlobe.Util.extend(GeoGlobe.INCHES_PER_UNIT, {
        mm: GeoGlobe.INCHES_PER_UNIT.Meter / 1e3,
        cm: GeoGlobe.INCHES_PER_UNIT.Meter / 100,
        dm: 100 * GeoGlobe.INCHES_PER_UNIT.Meter,
        km: 1e3 * GeoGlobe.INCHES_PER_UNIT.Meter,
        kmi: GeoGlobe.INCHES_PER_UNIT.nmi,
        fath: GeoGlobe.INCHES_PER_UNIT.Fathom,
        ch: GeoGlobe.INCHES_PER_UNIT.IntnlChain,
        link: GeoGlobe.INCHES_PER_UNIT.IntnlLink,
        "us-in": GeoGlobe.INCHES_PER_UNIT.inches,
        "us-ft": GeoGlobe.INCHES_PER_UNIT.Foot,
        "us-yd": GeoGlobe.INCHES_PER_UNIT.Yard,
        "us-ch": GeoGlobe.INCHES_PER_UNIT.GunterChain,
        "us-mi": GeoGlobe.INCHES_PER_UNIT.Mile,
        "ind-yd": GeoGlobe.INCHES_PER_UNIT.IndianYd37,
        "ind-ft": GeoGlobe.INCHES_PER_UNIT.IndianFt37,
        "ind-ch": 20.11669506 / GeoGlobe.METERS_PER_INCH
      }), GeoGlobe.DOTS_PER_INCH = 96, GeoGlobe.Util.normalizeScale = function (e) {
        return e > 1 ? 1 / e : e;
      }, GeoGlobe.Util.getResolutionFromScale = function (e, t) {
        var i;
        return e && (null == t && (t = "degrees"), i = 1 / (GeoGlobe.Util.normalizeScale(e) * GeoGlobe.INCHES_PER_UNIT[t] * GeoGlobe.DOTS_PER_INCH)), i;
      }, GeoGlobe.Util.getScaleFromResolution = function (e, t) {
        return null == t && (t = "degrees"), e * GeoGlobe.INCHES_PER_UNIT[t] * GeoGlobe.DOTS_PER_INCH;
      }, GeoGlobe.Util.pagePosition = function (e) {
        var t = [0, 0],
            i = GeoGlobe.Util.getViewportElement();
        if (!e || e == window || e == i) return t;
        var r,
            n = GeoGlobe.IS_GECKO && document.getBoxObjectFor && "absolute" == GeoGlobe.Element.getStyle(e, "position") && ("" == e.style.top || "" == e.style.left),
            o = null;

        if (e.getBoundingClientRect) {
          r = e.getBoundingClientRect();
          var a = window.pageYOffset || i.scrollTop,
              s = window.pageXOffset || i.scrollLeft;
          t[0] = r.left + s, t[1] = r.top + a;
        } else if (document.getBoxObjectFor && !n) {
          r = document.getBoxObjectFor(e);
          var x = document.getBoxObjectFor(i);
          t[0] = r.screenX - x.screenX, t[1] = r.screenY - x.screenY;
        } else {
          if (t[0] = e.offsetLeft, t[1] = e.offsetTop, (o = e.offsetParent) != e) for (; o;) {
            t[0] += o.offsetLeft, t[1] += o.offsetTop, o = o.offsetParent;
          }
          var l = GeoGlobe.BROWSER_NAME;

          for (("opera" == l || "safari" == l && "absolute" == GeoGlobe.Element.getStyle(e, "position")) && (t[1] -= document.body.offsetTop), o = e.offsetParent; o && o != document.body;) {
            t[0] -= o.scrollLeft, "opera" == l && "TR" == o.tagName || (t[1] -= o.scrollTop), o = o.offsetParent;
          }
        }

        return t;
      }, GeoGlobe.Util.getViewportElement = function () {
        var e = arguments.callee.viewportElement;
        return null == e && (e = "msie" == GeoGlobe.BROWSER_NAME && "CSS1Compat" != document.compatMode ? document.body : document.documentElement, arguments.callee.viewportElement = e), e;
      }, GeoGlobe.Util.isEquivalentUrl = function (e, t, i) {
        i = i || {}, GeoGlobe.Util.applyDefaults(i, {
          ignoreCase: !0,
          ignorePort80: !0,
          ignoreHash: !0,
          splitArgs: !1
        });
        var r = GeoGlobe.Util.createUrlObject(e, i),
            n = GeoGlobe.Util.createUrlObject(t, i);

        for (var o in r) {
          if ("args" !== o && r[o] != n[o]) return !1;
        }

        for (var o in r.args) {
          if (r.args[o] != n.args[o]) return !1;
          delete n.args[o];
        }

        for (var o in n.args) {
          return !1;
        }

        return !0;
      }, GeoGlobe.Util.createUrlObject = function (e, t) {
        if (t = t || {}, !/^\w+:\/\//.test(e)) {
          var i = window.location,
              r = i.port ? ":" + i.port : "",
              n = i.protocol + "//" + i.host.split(":").shift() + r;
          if (0 === e.indexOf("/")) e = n + e;else {
            var o = i.pathname.split("/");
            o.pop(), e = n + o.join("/") + "/" + e;
          }
        }

        t.ignoreCase && (e = e.toLowerCase());
        var a = document.createElement("a");
        a.href = e;
        var s = {};
        s.host = a.host.split(":").shift(), s.protocol = a.protocol, t.ignorePort80 ? s.port = "80" == a.port || "0" == a.port ? "" : a.port : s.port = "" == a.port || "0" == a.port ? "80" : a.port, s.hash = t.ignoreHash || "#" === a.hash ? "" : a.hash;
        var x = a.search;

        if (!x) {
          var l = e.indexOf("?");
          x = -1 != l ? e.substr(l) : "";
        }

        return s.args = GeoGlobe.Util.getParameters(x, {
          splitArgs: t.splitArgs
        }), s.pathname = "/" == a.pathname.charAt(0) ? a.pathname : "/" + a.pathname, s;
      }, GeoGlobe.Util.removeTail = function (e) {
        var t = e.indexOf("?"),
            i = e.indexOf("#");
        return -1 == t ? -1 != i ? e.substr(0, i) : e : -1 != i ? e.substr(0, Math.min(t, i)) : e.substr(0, t);
      }, GeoGlobe.IS_GECKO = (e = navigator.userAgent.toLowerCase(), -1 == e.indexOf("webkit") && -1 != e.indexOf("gecko")), GeoGlobe.CANVAS_SUPPORTED = function () {
        var e = document.createElement("canvas");
        return !(!e.getContext || !e.getContext("2d"));
      }(), GeoGlobe.BROWSER_NAME = function () {
        var e = "",
            t = navigator.userAgent.toLowerCase();
        return -1 != t.indexOf("opera") ? e = "opera" : -1 != t.indexOf("msie") ? e = "msie" : -1 != t.indexOf("safari") ? e = "safari" : -1 != t.indexOf("mozilla") && (e = -1 != t.indexOf("firefox") ? "firefox" : "mozilla"), e;
      }(), GeoGlobe.Util.getBrowserName = function () {
        return GeoGlobe.BROWSER_NAME;
      }, GeoGlobe.Util.getScrollbarWidth = function () {
        var e = GeoGlobe.Util._scrollbarWidth;

        if (null == e) {
          var t,
              i,
              r = null,
              n = null;
          (r = document.createElement("div")).style.position = "absolute", r.style.top = "-1000px", r.style.left = "-1000px", r.style.width = "100px", r.style.height = "50px", r.style.overflow = "hidden", (n = document.createElement("div")).style.width = "100%", n.style.height = "200px", r.appendChild(n), document.body.appendChild(r), t = n.offsetWidth, r.style.overflow = "scroll", i = n.offsetWidth, document.body.removeChild(document.body.lastChild), GeoGlobe.Util._scrollbarWidth = t - i, e = GeoGlobe.Util._scrollbarWidth;
        }

        return e;
      }, GeoGlobe.Util.randomStr = function (e) {
        for (var t = "", i = [], r = 0; r < e; r++) {
          var n = Math.ceil(25 * Math.random());
          i.push(String.fromCharCode(97 + n));
        }

        for (r = 0; r < e; r++) {
          t += i[r];
        }

        return t;
      }, GeoGlobe.Util.globalEval = function (e) {
        e && GeoGlobe.String.trim(e) && (window.execScript || function (e) {
          window.eval.call(window, e);
        })(e);
      }, GeoGlobe.Util.getResolutionFromScale_DPI = function (e, t, i) {
        var r;
        return e && (null == t && (t = "degrees"), r = 1 / (GeoGlobe.Util.normalizeScale(e) * GeoGlobe.INCHES_PER_UNIT[t] * i)), r;
      }, GeoGlobe.Util.getScaleFromResolution_DPI = function (e, t, i) {
        return null == t && (t = "degrees"), e * GeoGlobe.INCHES_PER_UNIT[t] * i;
      }, GeoGlobe.Util.getMapLevelFormResolution = function (e, t) {
        if (!t) return 0;
        var i,
            r,
            n = Number.POSITIVE_INFINITY,
            o = e.getResolutions();

        for (i = 0, len = o.length; i < len && !((r = Math.abs(o[i] - t)) > n); i++) {
          n = r;
        }

        return Math.max(0, i - 1);
      }, GeoGlobe.Util.getMapLevelFormScale = function (e, t, i, r) {
        i = i || "degrees", r = r || 96;
        var n = GeoGlobe.Util.getResolutionFromScale_DPI(t, i, r);
        return GeoGlobe.Util.getMapLevelFormResolution(e, n);
      }, GeoGlobe.Util.delayFun = function (e, t, i) {
        var r;
        return function () {
          var n = this,
              o = arguments,
              a = i && !r;
          clearTimeout(r), r = setTimeout(function () {
            r = null, i || e.apply(n, o);
          }, t), a && e.apply(n, o);
        };
      }, GeoGlobe.Util.clone = function (e) {
        if ("object" != _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(e)) return e;
        if (null == e) return e;
        var t = e.constructor == Array ? [] : {};

        for (var i in e) {
          t[i] = GeoGlobe.Util.clone(e[i]);
        }

        return t;
      }, GeoGlobe.Util.getType = function (e) {
        var t = Object.prototype.toString;
        return e instanceof Element ? "element" : {
          "[object Boolean]": "boolean",
          "[object Number]": "number",
          "[object String]": "string",
          "[object Function]": "function",
          "[object Array]": "array",
          "[object Date]": "date",
          "[object RegExp]": "regExp",
          "[object Undefined]": "undefined",
          "[object Null]": "null",
          "[object Object]": "object"
        }[t.call(e)];
      }, GeoGlobe.Util.formatNumberToThousands = function (e, t, i) {
        e = e.toString().replace(/\$|\,/g, ""), isNaN(e) && (e = "0");
        var r = e === (e = Math.abs(e)),
            n = (e = Math.floor(e * Math.pow(10, t) + 0.50000000001)) % Math.pow(10, t);

        for (e = Math.floor(e / Math.pow(10, t)).toString(), n = n.toString(); n.length < t;) {
          n = "0" + n;
        }

        if (i) for (var o = 0; o < Math.floor((e.length - (1 + o)) / 3); o++) {
          e = e.substring(0, e.length - (4 * o + 3)) + "," + e.substring(e.length - (4 * o + 3));
        }
        return t > 0 ? (r ? "" : "-") + e + "." + n : (r ? "" : "-") + e;
      }, GeoGlobe.Util.getFormattedString = function (e, t) {
        var i = t;
        if ((i = (i = i.replace(/{a}/g, e.a)).replace(/{b}/g, e.b)).contains("{c")) for (var r = i.split("{c"), n = 0, o = 0; o < r.length - 1; o++) {
          n = r[o + 1].split("}")[0], i = i.replace(new RegExp("{c" + n + "}", "g"), GeoGlobe.Util.formatNumberToThousands(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.c), "" === n ? 2 : n, !0));
        }
        return i;
      }, GeoGlobe.Util.getGradientImageData = function (e) {
        var t = document.createElement("canvas"),
            i = t.getContext("2d");
        t.width = 1, t.height = 256;
        var r = i.createLinearGradient(0, 0, 0, 256);

        for (var n in e) {
          e.hasOwnProperty(n) && r.addColorStop(n, e[n]);
        }

        return i.fillStyle = r, i.fillRect(0, 0, 1, 256), i.getImageData(0, 0, 1, 256).data;
      }, GeoGlobe.Util.getRgbColor = function (e) {
        if ((e = e.toLowerCase()) && /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(e)) {
          if (4 === e.length) {
            for (var t = "#", i = 1; i < 4; i += 1) {
              t += e.slice(i, i + 1).concat(e.slice(i, i + 1));
            }

            e = t;
          }

          for (t = [], i = 1; i < 7; i += 2) {
            t.push(_babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()("0x" + e.slice(i, i + 2)));
          }

          return "rgb(" + t.join(",") + ")";
        }

        return e.startsWith("rgba") || e.startsWith("hsla") ? e.substring(0, 3) + e.substring(4, e.lastIndexOf(",")) + ")" : e.startsWith("rgb") || e.startsWith("hsl") ? e : "";
      }, GeoGlobe.Util.getShadeColor = function (e, t) {
        e = (e = GeoGlobe.Util.getHexColor(e)).substr(1);

        var i = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e, 16),
            r = Math.round(2.55 * t),
            n = (i >> 16) + r,
            o = (i >> 8 & 255) + r,
            a = (255 & i) + r;

        return "#" + (16777216 + 65536 * (n < 255 ? n < 1 ? 0 : n : 255) + 256 * (o < 255 ? o < 1 ? 0 : o : 255) + (a < 255 ? a < 1 ? 0 : a : 255)).toString(16).slice(1);
      }, GeoGlobe.Util.getHexColor = function (e) {
        if (e = e.toLowerCase(), /^(rgb|rgba)/.test(e)) {
          for (var t = e.split("(")[1].split(")")[0].split(","), i = "#", r = 0; r < 3; r++) {
            var n = Number(t[r]).toString(16);
            "0" === n && (n += n), 1 === n.length && (n = "0" + n), i += n;
          }

          return 7 !== i.length && (i = e), i;
        }

        if (!/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(e)) return e;
        var o = e.replace(/#/, "").split("");
        if (6 === o.length) return e;

        if (3 === o.length) {
          var a = "#";

          for (r = 0; r < o.length; r += 1) {
            a += o[r] + o[r];
          }

          return a;
        }
      }, GeoGlobe.Util.transferToLonLat = function (e) {
        return -238107693.23182276 === e[1] ? [e[0] / 20037508.34 * 180, -90] : [e[0] / 20037508.34 * 180, 180 / Math.PI * (2 * Math.atan(Math.exp(e[1] / 20037508.34 * 180 * Math.PI / 180)) - Math.PI / 2)];
      }, GeoGlobe.Util.transferToMercator = function (e) {
        return -90 === e[1] ? [20037508.34 * e[0] / 180, -238107693.23182276] : [20037508.34 * e[0] / 180, Math.log(Math.tan((90 + e[1]) * Math.PI / 360)) / (Math.PI / 180) * 20037508.34 / 180];
      }, GeoGlobe.ProjAxisOrder = {
        AXIS_ORDER_EN: !0,
        AXIS_ORDER_NE: !1
      }, GeoGlobe.ProjAxisOrder.AxisOrder = {
        "EPSG:900913": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        WGS84: GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "IGNF:WGS84G": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:4326": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:4490": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:4269": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:2361": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:27700": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:904490": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:4171": GeoGlobe.ProjAxisOrder.AXIS_ORDER_NE,
        "EPSG:32637": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:32638": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:32639": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:32640": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:32641": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:28991": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:28992": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:31300": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:31370": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2176": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2177": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2178": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2179": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2180": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2154": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:3346": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:3857": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN,
        "EPSG:2065": GeoGlobe.ProjAxisOrder.AXIS_ORDER_EN
      }, GeoGlobe.SpatialReference = GeoGlobe.Class({
        proj: null,
        projCode: null,
        titleRegEx: /\+title=[^\+]*/,
        initialize: function initialize(e, t) {
          GeoGlobe.Util.extend(this, t), this.projCode = e, "object" == ("undefined" == typeof Proj4js ? "undefined" : _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(Proj4js)) && (this.proj = new Proj4js.Proj(e));
        },
        getCode: function getCode() {
          return this.proj ? this.proj.srsCode : this.projCode;
        },
        getUnits: function getUnits() {
          return this.proj ? this.proj.units : null;
        },
        toString: function toString() {
          return this.getCode();
        },
        equals: function equals(e) {
          var t = e,
              i = !1;
          if (t) if (t instanceof GeoGlobe.SpatialReference || (t = new GeoGlobe.SpatialReference(t)), "object" == ("undefined" == typeof Proj4js ? "undefined" : _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(Proj4js)) && this.proj.defData && t.proj.defData) i = this.proj.defData.replace(this.titleRegEx, "") == t.proj.defData.replace(this.titleRegEx, "");else if (t.getCode) {
            var r = this.getCode(),
                n = t.getCode();
            i = r == n || !!GeoGlobe.SpatialReference.transforms[r] && GeoGlobe.SpatialReference.transforms[r][n] === GeoGlobe.SpatialReference.nullTransform;
          }
          return i;
        },
        destroy: function destroy() {
          delete this.proj, delete this.projCode;
        },
        CLASS_NAME: "GeoGlobe.SpatialReference"
      }), GeoGlobe.SpatialReference.transforms = {}, GeoGlobe.SpatialReference.defaults = {
        "EPSG:4326": {
          units: "degrees",
          maxExtent: [-180, -90, 180, 90],
          yx: !0
        },
        "CRS:84": {
          units: "degrees",
          maxExtent: [-180, -90, 180, 90]
        },
        "EPSG:900913": {
          units: "m",
          maxExtent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34]
        }
      }, GeoGlobe.SpatialReference.addTransform = function (e, t, i) {
        if (i === GeoGlobe.SpatialReference.nullTransform) {
          var r = GeoGlobe.SpatialReference.defaults[e];
          r && !GeoGlobe.SpatialReference.defaults[t] && (GeoGlobe.SpatialReference.defaults[t] = r);
        }

        GeoGlobe.SpatialReference.transforms[e] || (GeoGlobe.SpatialReference.transforms[e] = {}), GeoGlobe.SpatialReference.transforms[e][t] = i;
      }, GeoGlobe.SpatialReference.transform = function (e, t, i) {
        if (t && i) if (t instanceof GeoGlobe.SpatialReference || (t = new GeoGlobe.SpatialReference(t)), i instanceof GeoGlobe.SpatialReference || (i = new GeoGlobe.SpatialReference(i)), t.proj && i.proj) e = Proj4js.transform(t.proj, i.proj, e);else {
          var r = t.getCode(),
              n = i.getCode(),
              o = GeoGlobe.SpatialReference.transforms;
          o[r] && o[r][n] && o[r][n](e);
        }
        return e;
      }, GeoGlobe.SpatialReference.nullTransform = function (e) {
        return e;
      }, function () {
        var e = 20037508.34;

        function t(t) {
          return t.x = 180 * t.x / e, t.y = 180 / Math.PI * (2 * Math.atan(Math.exp(t.y / e * Math.PI)) - Math.PI / 2), t;
        }

        function i(t) {
          t.x = t.x * e / 180;
          var i = Math.log(Math.tan((90 + t.y) * Math.PI / 360)) / Math.PI * e;
          return t.y = Math.max(-20037508.34, Math.min(i, 20037508.34)), t;
        }

        function r(e, r) {
          var n,
              o,
              a,
              s,
              x,
              l = GeoGlobe.SpatialReference.addTransform,
              c = GeoGlobe.SpatialReference.nullTransform;

          for (n = 0, o = r.length; n < o; ++n) {
            for (l(e, a = r[n], i), l(a, e, t), x = n + 1; x < o; ++x) {
              l(a, s = r[x], c), l(s, a, c);
            }
          }
        }

        var n,
            o = ["EPSG:900913", "EPSG:3857", "EPSG:102113", "EPSG:102100"],
            a = ["CRS:84", "urn:ogc:def:crs:EPSG:6.6:4326", "EPSG:4326"];

        for (n = o.length - 1; n >= 0; --n) {
          r(o[n], a);
        }

        for (n = a.length - 1; n >= 0; --n) {
          r(a[n], o);
        }
      }(), GeoGlobe.Console = {
        log: function log() {},
        debug: function debug() {},
        info: function info() {},
        warn: function warn() {},
        error: function error() {},
        userError: function userError(e) {
          alert(e);
        },
        assert: function assert() {},
        dir: function dir() {},
        dirxml: function dirxml() {},
        trace: function trace() {},
        group: function group() {},
        groupEnd: function groupEnd() {},
        time: function time() {},
        timeEnd: function timeEnd() {},
        profile: function profile() {},
        profileEnd: function profileEnd() {},
        count: function count() {},
        CLASS_NAME: "GeoGlobe.Console"
      }, function () {
        for (var e = document.getElementsByTagName("script"), t = 0, i = e.length; t < i; ++t) {
          if (-1 != e[t].src.indexOf("firebug.js") && console) {
            GeoGlobe.Util.extend(GeoGlobe.Console, console);
            break;
          }
        }
      }(), GeoGlobe.ProxyHost = "", GeoGlobe.Request || (GeoGlobe.Request = {}), GeoGlobe.Util.extend(GeoGlobe.Request, {
        DEFAULT_CONFIG: {
          method: "GET",
          url: window.location.href,
          async: !0,
          user: void 0,
          password: void 0,
          params: null,
          proxy: GeoGlobe.ProxyHost,
          headers: {},
          data: null,
          callback: function callback() {},
          success: null,
          failure: null,
          scope: null
        },
        URL_SPLIT_REGEX: /([^:]*:)\/\/([^:]*:?[^@]*@)?([^:\/\?]*):?([^\/\?]*)/,
        makeSameOrigin: function makeSameOrigin(e, t) {
          var i = 0 !== e.indexOf("http"),
              r = !i && e.match(this.URL_SPLIT_REGEX);

          if (r) {
            var n = window.location;
            i = r[1] == n.protocol && r[3] == n.hostname;
            var o = r[4],
                a = n.port;
            (80 != o && "" != o || "80" != a && "" != a) && (i = i && o == a);
          }

          return i || t && (e = "function" == typeof t ? t(e) : e.indexOf("cts?") >= 0 ? t + e : t + encodeURIComponent(e)), e;
        },
        issue: function issue(e) {
          var t = GeoGlobe.Util.extend(this.DEFAULT_CONFIG, {
            proxy: GeoGlobe.ProxyHost
          });
          (e = e || {}).headers = e.headers || {}, (e = GeoGlobe.Util.applyDefaults(e, t)).headers = GeoGlobe.Util.applyDefaults(e.headers, t.headers);
          var i,
              r = !1;

          for (i in e.headers) {
            e.headers.hasOwnProperty(i) && "x-requested-with" === i.toLowerCase() && (r = !0);
          }

          !1 === r && (e.headers["X-Requested-With"] = "XMLHttpRequest");
          var n = new GeoGlobe.Request.XMLHttpRequest();
          e.url = encodeURI(e.url);
          var o = GeoGlobe.Util.urlAppend(e.url, GeoGlobe.Util.getParameterString(e.params || {}));

          for (var a in o = GeoGlobe.Request.makeSameOrigin(o, e.proxy), n.open(e.method, o, e.async, e.user, e.password), e.headers) {
            n.setRequestHeader(a, e.headers[a]);
          }

          var s = this;
          return n.onreadystatechange = function () {
            n.readyState == GeoGlobe.Request.XMLHttpRequest.DONE && s.runCallbacks({
              request: n,
              config: e,
              requestUrl: o
            });
          }, !1 === e.async ? n.send(e.data) : window.setTimeout(function () {
            0 !== n.readyState && n.send(e.data);
          }, 0), n;
        },
        runCallbacks: function runCallbacks(e) {
          var t,
              i,
              r = e.request,
              n = e.config,
              o = n.scope ? GeoGlobe.Function.bind(n.callback, n.scope) : n.callback;
          n.success && (t = n.scope ? GeoGlobe.Function.bind(n.success, n.scope) : n.success), n.failure && (i = n.scope ? GeoGlobe.Function.bind(n.failure, n.scope) : n.failure), "file:" == GeoGlobe.Util.createUrlObject(n.url).protocol && r.responseText && (r.status = 200), o(r), (!r.status || r.status >= 200 && r.status < 300) && t && t(r), r.status && (r.status < 200 || r.status >= 300) && i && i(r);
        },
        GET: function GET(e) {
          return e = GeoGlobe.Util.extend(e, {
            method: "GET"
          }), GeoGlobe.Request.issue(e);
        },
        POST: function POST(e) {
          return (e = GeoGlobe.Util.extend(e, {
            method: "POST"
          })).headers = e.headers ? e.headers : {}, "CONTENT-TYPE" in GeoGlobe.Util.upperCaseObject(e.headers) || (e.headers["Content-Type"] = "application/xml"), GeoGlobe.Request.issue(e);
        },
        PUT: function PUT(e) {
          return (e = GeoGlobe.Util.extend(e, {
            method: "PUT"
          })).headers = e.headers ? e.headers : {}, "CONTENT-TYPE" in GeoGlobe.Util.upperCaseObject(e.headers) || (e.headers["Content-Type"] = "application/xml"), GeoGlobe.Request.issue(e);
        },
        DELETE: function DELETE(e) {
          return e = GeoGlobe.Util.extend(e, {
            method: "DELETE"
          }), GeoGlobe.Request.issue(e);
        },
        HEAD: function HEAD(e) {
          return e = GeoGlobe.Util.extend(e, {
            method: "HEAD"
          }), GeoGlobe.Request.issue(e);
        },
        OPTIONS: function OPTIONS(e) {
          return e = GeoGlobe.Util.extend(e, {
            method: "OPTIONS"
          }), GeoGlobe.Request.issue(e);
        }
      }), GeoGlobe.nullHandler = function (e) {
        GeoGlobe.Console.userError(GeoGlobe.i18n("unhandledRequest", {
          statusText: e.statusText
        }));
      }, GeoGlobe.loadURL = function (e, t, i, r, n) {
        "string" == typeof t && (t = GeoGlobe.Util.getParameters(t));
        var o = r || GeoGlobe.nullHandler,
            a = n || GeoGlobe.nullHandler;
        return GeoGlobe.Request.GET({
          url: e,
          params: t,
          success: o,
          failure: a,
          scope: i
        });
      }, GeoGlobe.Request.setProxyHost = function (e) {
        GeoGlobe.ProxyHost = e;
      }, GeoGlobe.Request.getProxyHost = function () {
        return GeoGlobe.ProxyHost;
      }, GeoGlobe.appendToProxy = function (e) {
        var t = e.split("?"),
            i = GeoGlobe.ProxyHost + encodeURI(encodeURI(t[0]));
        return 2 === t.length && (i += "?" + t[1]), i;
      }, GeoGlobe.loadScript = function (e) {
        GeoGlobe.Request.GET({
          url: e,
          async: !1,
          headers: {
            Accept: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"
          },
          success: function success(e) {
            GeoGlobe.Util.globalEval(e.responseText);
          },
          failure: function failure(t) {
            alert("加载:" + e + " 失败。");
          }
        });
      }, function () {
        var e = window.XMLHttpRequest,
            t = !!window.controllers,
            i = window.document.all && !window.opera,
            r = i && window.navigator.userAgent.match(/MSIE 7.0/);

        function n() {
          this._object = e && !r ? new e() : new window.ActiveXObject("Microsoft.XMLHTTP"), this._listeners = [];
        }

        function o() {
          return new n();
        }

        function a(e) {
          o.onreadystatechange && o.onreadystatechange.apply(e), e.dispatchEvent({
            type: "readystatechange",
            bubbles: !1,
            cancelable: !1,
            timeStamp: new Date() + 0
          });
        }

        function s(e) {
          try {
            e.responseText = e._object.responseText;
          } catch (e) {}

          try {
            e.responseXML = (r = (t = e._object).responseXML, n = t.responseText, i && n && r && !r.documentElement && t.getResponseHeader("Content-Type").match(/[^\/]+\/[^\+]+\+xml/) && ((r = new window.ActiveXObject("Microsoft.XMLDOM")).async = !1, r.validateOnParse = !1, r.loadXML(n)), r && (i && 0 != r.parseError || !r.documentElement || r.documentElement && "parsererror" == r.documentElement.tagName) ? null : r);
          } catch (e) {}

          var t, r, n;

          try {
            e.status = e._object.status;
          } catch (e) {}

          try {
            e.statusText = e._object.statusText;
          } catch (e) {}
        }

        function x(e) {
          e._object.onreadystatechange = new window.Function();
        }

        o.prototype = n.prototype, t && e.wrapped && (o.wrapped = e.wrapped), o.UNSENT = 0, o.OPENED = 1, o.HEADERS_RECEIVED = 2, o.LOADING = 3, o.DONE = 4, o.prototype.readyState = o.UNSENT, o.prototype.responseText = "", o.prototype.responseXML = null, o.prototype.status = 0, o.prototype.statusText = "", o.prototype.priority = "NORMAL", o.prototype.onreadystatechange = null, o.onreadystatechange = null, o.onopen = null, o.onsend = null, o.onabort = null, o.prototype.open = function (e, r, n, l, c) {
          delete this._headers, arguments.length < 3 && (n = !0), this._async = n;
          var u,
              h = this,
              f = this.readyState;
          i && n && (u = function u() {
            f != o.DONE && (x(h), h.abort());
          }, window.attachEvent("onunload", u)), o.onopen && o.onopen.apply(this, arguments), arguments.length > 4 ? this._object.open(e, r, n, l, c) : arguments.length > 3 ? this._object.open(e, r, n, l) : this._object.open(e, r, n);

          try {
            this._object.responseType = "msxml-document";
          } catch (e) {}

          this.readyState = o.OPENED, a(this), this._object.onreadystatechange = function () {
            t && !n || (h.readyState = h._object.readyState, s(h), h._aborted ? h.readyState = o.UNSENT : (h.readyState == o.DONE && (delete h._data, x(h), i && n && window.detachEvent("onunload", u)), f != h.readyState && a(h), f = h.readyState));
          };
        }, o.prototype.send = function (e) {
          o.onsend && o.onsend.apply(this, arguments), arguments.length || (e = null), e && e.nodeType && (e = window.XMLSerializer ? new window.XMLSerializer().serializeToString(e) : e.xml, this._headers["Content-Type"] || this._object.setRequestHeader("Content-Type", "application/xml")), this._data = e, function (e) {
            if (e._object.send(e._data), t && !e._async) for (e.readyState = o.OPENED, s(e); e.readyState < o.DONE;) {
              if (e.readyState++, a(e), e._aborted) return;
            }
          }(this);
        }, o.prototype.abort = function () {
          o.onabort && o.onabort.apply(this, arguments), this.readyState > o.UNSENT && (this._aborted = !0), this._object.abort(), x(this), this.readyState = o.UNSENT, delete this._data;
        }, o.prototype.getAllResponseHeaders = function () {
          return this._object.getAllResponseHeaders();
        }, o.prototype.getResponseHeader = function (e) {
          return this._object.getResponseHeader(e);
        }, o.prototype.setRequestHeader = function (e, t) {
          return this._headers || (this._headers = {}), this._headers[e] = t, this._object.setRequestHeader(e, t);
        }, o.prototype.addEventListener = function (e, t, i) {
          for (var r, n = 0; r = this._listeners[n]; n++) {
            if (r[0] == e && r[1] == t && r[2] == i) return;
          }

          this._listeners.push([e, t, i]);
        }, o.prototype.removeEventListener = function (e, t, i) {
          for (var r, n = 0; (r = this._listeners[n]) && (r[0] != e || r[1] != t || r[2] != i); n++) {
            ;
          }

          r && this._listeners.splice(n, 1);
        }, o.prototype.dispatchEvent = function (e) {
          var t = {
            type: e.type,
            target: this,
            currentTarget: this,
            eventPhase: 2,
            bubbles: e.bubbles,
            cancelable: e.cancelable,
            timeStamp: e.timeStamp,
            stopPropagation: function stopPropagation() {},
            preventDefault: function preventDefault() {},
            initEvent: function initEvent() {}
          };
          "readystatechange" == t.type && this.onreadystatechange && (this.onreadystatechange.handleEvent || this.onreadystatechange).apply(this, [t]);

          for (var i, r = 0; i = this._listeners[r]; r++) {
            i[0] != t.type || i[2] || (i[1].handleEvent || i[1]).apply(this, [t]);
          }
        }, o.prototype.toString = function () {
          return "[object XMLHttpRequest]";
        }, o.toString = function () {
          return "[XMLHttpRequest]";
        }, window.Function.prototype.apply || (window.Function.prototype.apply = function (e, t) {
          t || (t = []), e.__func = this, e.__func(t[0], t[1], t[2], t[3], t[4]), delete e.__func;
        }), GeoGlobe.Request || (GeoGlobe.Request = {}), GeoGlobe.Request.XMLHttpRequest = o;
      }(), GeoGlobe.Lang = {
        code: null,
        defaultCode: "zh-CN",
        getCode: function getCode() {
          return GeoGlobe.Lang.code || GeoGlobe.Lang.setCode(), GeoGlobe.Lang.code;
        },
        setCode: function setCode(e) {
          var t;
          e || (e = "msie" == GeoGlobe.BROWSER_NAME ? navigator.userLanguage : navigator.language);
          var i = e.split("-");

          if (i[0] = i[0].toLowerCase(), "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(GeoGlobe.Lang[i[0]]) && (t = i[0]), i[1]) {
            var r = i[0] + "-" + i[1].toUpperCase();
            "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(GeoGlobe.Lang[r]) && (t = r);
          }

          t || (GeoGlobe.Console.warn("Failed to find GeoGlobe.Lang." + i.join("-") + " dictionary, falling back to default language"), t = GeoGlobe.Lang.defaultCode), GeoGlobe.Lang.code = t;
        },
        translate: function translate(e, t) {
          var i = GeoGlobe.Lang[GeoGlobe.Lang.getCode()],
              r = i && i[e];
          return r || (r = e), t && (r = GeoGlobe.String.format(r, t)), r;
        }
      }, GeoGlobe.i18n = GeoGlobe.Lang.translate, GeoGlobe.Lang.en = {
        unhandledRequest: "Unhandled request return ${statusText}",
        end: ""
      }, GeoGlobe.Lang["zh-CN"] = {
        unhandledRequest: "未处理的请求，返回值为 ${statusText}",
        end: ""
      }, GeoGlobe.String = {
        startsWith: function startsWith(e, t) {
          return 0 == e.indexOf(t);
        },
        contains: function contains(e, t) {
          return -1 != e.indexOf(t);
        },
        trim: function trim(e) {
          return e.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
        },
        camelize: function camelize(e) {
          for (var t = e.split("-"), i = t[0], r = 1, n = t.length; r < n; r++) {
            var o = t[r];
            i += o.charAt(0).toUpperCase() + o.substring(1);
          }

          return i;
        },
        format: function format(e, t, i) {
          return t || (t = window), e.replace(GeoGlobe.String.tokenRegEx, function (e, r) {
            for (var n, o = r.split(/\.+/), a = 0; a < o.length && (0 == a && (n = t), void 0 !== n); a++) {
              n = n[o[a]];
            }

            return "function" == typeof n && (n = i ? n.apply(null, i) : n()), void 0 === n ? "undefined" : n;
          });
        },
        tokenRegEx: /\$\{([\w.]+?)\}/g,
        numberRegEx: /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/,
        isNumeric: function isNumeric(e) {
          return GeoGlobe.String.numberRegEx.test(e);
        },
        numericIf: function numericIf(e, t) {
          var i = e;
          return !0 === t && null != e && e.replace && (e = e.replace(/^\s*|\s*$/g, "")), GeoGlobe.String.isNumeric(e) ? _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e) : i;
        }
      }, GeoGlobe.Number = {
        decimalSeparator: ".",
        thousandsSeparator: ",",
        limitSigDigs: function limitSigDigs(e, t) {
          var i = 0;
          return t > 0 && (i = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.toPrecision(t))), i;
        },
        format: function format(e, t, i, r) {
          t = void 0 !== t ? t : 0, i = void 0 !== i ? i : GeoGlobe.Number.thousandsSeparator, r = void 0 !== r ? r : GeoGlobe.Number.decimalSeparator, null != t && (e = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.toFixed(t)));
          var n = e.toString().split(".");
          1 == n.length && null == t && (t = 0);
          var o,
              a = n[0];
          if (i) for (var s = /(-?[0-9]+)([0-9]{3})/; s.test(a);) {
            a = a.replace(s, "$1" + i + "$2");
          }
          if (0 == t) o = a;else {
            var x = n.length > 1 ? n[1] : "0";
            null != t && (x += new Array(t - x.length + 1).join("0")), o = a + r + x;
          }
          return o;
        },
        zeroPad: function zeroPad(e, t, i) {
          for (var r = e.toString(i || 10); r.length < t;) {
            r = "0" + r;
          }

          return r;
        }
      }, GeoGlobe.Function = {
        bind: function bind(e, t) {
          var i = Array.prototype.slice.apply(arguments, [2]);
          return function () {
            var r = i.concat(Array.prototype.slice.apply(arguments, [0]));
            return e.apply(t, r);
          };
        },
        bindAsEventListener: function bindAsEventListener(e, t) {
          return function (i) {
            return e.call(t, i || window.event);
          };
        },
        False: function False() {
          return !1;
        },
        True: function True() {
          return !0;
        },
        Void: function Void() {}
      }, GeoGlobe.Array = {
        filter: function filter(e, t, i) {
          var r = [];
          if (Array.prototype.filter) r = e.filter(t, i);else {
            var n = e.length;
            if ("function" != typeof t) throw new TypeError();

            for (var o = 0; o < n; o++) {
              if (o in e) {
                var a = e[o];
                t.call(i, a, o, e) && r.push(a);
              }
            }
          }
          return r;
        }
      }, String.prototype.endsWith || (String.prototype.endsWith = function (e, t) {
        var i = this.toString();
        ("number" != typeof t || !isFinite(t) || Math.floor(t) !== t || t > i.length) && (t = i.length), t -= e.length;
        var r = i.lastIndexOf(e, t);
        return -1 !== r && r === t;
      }), GeoGlobe.Date = {
        dateRegEx: /^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))|Z)?$/,
        toISOString: "toISOString" in Date.prototype ? function (e) {
          return e.toISOString();
        } : function (e) {
          return isNaN(e.getTime()) ? "Invalid Date" : e.getUTCFullYear() + "-" + GeoGlobe.Number.zeroPad(e.getUTCMonth() + 1, 2) + "-" + GeoGlobe.Number.zeroPad(e.getUTCDate(), 2) + "T" + GeoGlobe.Number.zeroPad(e.getUTCHours(), 2) + ":" + GeoGlobe.Number.zeroPad(e.getUTCMinutes(), 2) + ":" + GeoGlobe.Number.zeroPad(e.getUTCSeconds(), 2) + "." + GeoGlobe.Number.zeroPad(e.getUTCMilliseconds(), 3) + "Z";
        },
        parse: function parse(e) {
          var t,
              i = e.match(this.dateRegEx);

          if (i && (i[1] || i[7])) {
            var r = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[1], 10) || 0,
                n = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[2], 10) - 1 || 0,
                o = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[3], 10) || 1;
            t = new Date(Date.UTC(r, n, o));
            var a = i[7];

            if (a) {
              var s = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[4], 10),
                  x = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[5], 10),
                  l = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(i[6]),
                  c = 0 | l,
                  u = Math.round(1e3 * (l - c));

              if (t.setUTCHours(s, x, c, u), "Z" !== a) {
                var h = -1e3 * (60 * _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(a, 10) * 60 + 60 * (_babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[8], 10) || 0));
                t = new Date(t.getTime() + h);
              }
            }
          } else t = new Date("invalid");

          return t;
        }
      }, function (e) {
        "object" == ("undefined" == typeof exports ? "undefined" : _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(exports)) && void 0 !== module ? module.exports = e() : "function" == typeof define && __webpack_require__(121) ? define([], e) : ("undefined" != typeof window ? window : void 0 !== global ? global : "undefined" != typeof self ? self : this)._GeoGlobe = e();
      }(function () {
        return function e(t, i, r) {
          function n(a, s) {
            if (!i[a]) {
              if (!t[a]) {
                if (!s && "function" == typeof require && require) return require(a, !0);
                if (o) return o(a, !0);
                var x = new Error("Cannot find module '" + a + "'");
                throw x.code = "MODULE_NOT_FOUND", x;
              }

              var l = i[a] = {
                exports: {}
              };
              t[a][0].call(l.exports, function (e) {
                return n(t[a][1][e] || e);
              }, l, l.exports, e, t, i, r);
            }

            return i[a].exports;
          }

          for (var o = "function" == typeof require && require, a = 0; a < r.length; a++) {
            n(r[a]);
          }

          return n;
        }({
          1: [function (e, t, i) {
            var r = function r(e, t) {
              if (isNaN(e) || isNaN(t)) throw new Error("Invalid LngLat object: (" + e + ", " + t + ")");
              this.lng = +e, this.lat = +t;
            };

            r.prototype.wrap = function () {
              return new r((i = ((this.lng - (e = -180)) % (t = 180 - e) + t) % t + e) === e ? 180 : i, this.lat);
              var e, t, i;
            }, r.prototype.toArray = function () {
              return [this.lng, this.lat];
            }, r.prototype.toString = function () {
              return "LngLat(" + this.lng + ", " + this.lat + ")";
            }, r.prototype.toBounds = function (t) {
              var i = 360 * t / 40075017,
                  n = i / Math.cos(Math.PI / 180 * this.lat);
              return new (e("./lng_lat_bounds"))(new r(this.lng - n, this.lat - i), new r(this.lng + n, this.lat + i));
            }, r.convert = function (e) {
              if (e instanceof r) return e;
              if (_babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4___default()(e) && 2 === e.length) return new r(Number(e[0]), Number(e[1]));
              if (!_babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4___default()(e) && "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(e) && null !== e) return new r(Number(e.lng), Number(e.lat));
              throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]");
            }, t.exports = r;
          }, {
            "./lng_lat_bounds": 2
          }],
          2: [function (e, t, i) {
            var r = e("./lng_lat"),
                n = function n(e, t) {
              e && (t ? this.setSouthWest(e).setNorthEast(t) : 4 === e.length ? this.setSouthWest([e[0], e[1]]).setNorthEast([e[2], e[3]]) : this.setSouthWest(e[0]).setNorthEast(e[1]));
            };

            n.prototype.setNorthEast = function (e) {
              return this._ne = e instanceof r ? new r(e.lng, e.lat) : r.convert(e), this;
            }, n.prototype.setSouthWest = function (e) {
              return this._sw = e instanceof r ? new r(e.lng, e.lat) : r.convert(e), this;
            }, n.prototype.extend = function (e) {
              var t,
                  i,
                  o = this._sw,
                  a = this._ne;
              if (e instanceof r) t = e, i = e;else {
                if (!(e instanceof n)) return _babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4___default()(e) ? e.every(_babel_runtime_corejs2_core_js_array_is_array__WEBPACK_IMPORTED_MODULE_4___default.a) ? this.extend(n.convert(e)) : this.extend(r.convert(e)) : this;
                if (t = e._sw, i = e._ne, !t || !i) return this;
              }
              return o || a ? (o.lng = Math.min(t.lng, o.lng), o.lat = Math.min(t.lat, o.lat), a.lng = Math.max(i.lng, a.lng), a.lat = Math.max(i.lat, a.lat)) : (this._sw = new r(t.lng, t.lat), this._ne = new r(i.lng, i.lat)), this;
            }, n.prototype.getCenter = function () {
              return new r((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);
            }, n.prototype.getSouthWest = function () {
              return this._sw;
            }, n.prototype.getNorthEast = function () {
              return this._ne;
            }, n.prototype.getNorthWest = function () {
              return new r(this.getWest(), this.getNorth());
            }, n.prototype.getSouthEast = function () {
              return new r(this.getEast(), this.getSouth());
            }, n.prototype.getWest = function () {
              return this._sw.lng;
            }, n.prototype.getSouth = function () {
              return this._sw.lat;
            }, n.prototype.getEast = function () {
              return this._ne.lng;
            }, n.prototype.getNorth = function () {
              return this._ne.lat;
            }, n.prototype.toArray = function () {
              return [this._sw.toArray(), this._ne.toArray()];
            }, n.prototype.toString = function () {
              return "LngLatBounds(" + this._sw.toString() + ", " + this._ne.toString() + ")";
            }, n.convert = function (e) {
              return !e || e instanceof n ? e : new n(e);
            }, t.exports = n;
          }, {
            "./lng_lat": 1
          }],
          3: [function (e, t, i) {
            var r = e("./geo/lng_lat"),
                n = e("./geo/lng_lat_bounds");
            t.exports = {
              LngLat: r,
              LngLatBounds: n
            };
          }, {
            "./geo/lng_lat": 1,
            "./geo/lng_lat_bounds": 2
          }]
        }, {}, [3])(3);
      }), window.GeoGlobe.Util.extend(window.GeoGlobe, window._GeoGlobe), GeoGlobe.LngLat.prototype.CLASS_NAME = "GeoGlobe.LngLat", GeoGlobe.LngLatBounds.prototype.clone = function () {
        return new GeoGlobe.LngLatBounds(this._sw, this._ne);
      }, GeoGlobe.LngLatBounds.prototype.contains = function (e, t, i) {
        return null == i && (i = !0), null != e && null != t && (e = GeoGlobe.Util.toFloat(e), t = GeoGlobe.Util.toFloat(t), i ? e >= this._sw.lng && e <= this._ne.lng && t >= this._sw.lat && t <= this._ne.lat : e > this._sw.lng && e < this._ne.lng && t > this._sw.lat && t < this._ne.lat);
      }, GeoGlobe.LngLatBounds.prototype.getWidth = function () {
        return this._ne.lng - this._sw.lng;
      }, GeoGlobe.LngLatBounds.prototype.containsLonLat = function (e, t) {
        "boolean" == typeof t && (t = {
          inclusive: t
        }), t = t || {};
        var i = this.contains(e.lng, e.lat, t.inclusive),
            r = t.worldBounds;

        if (r && !i) {
          var n = r.getWidth(),
              o = (r._sw.lng + r._ne.lng) / 2,
              a = Math.round((e.lng - o) / n);
          i = this.containsLonLat({
            lng: e.lng - a * n,
            lat: e.lat
          }, {
            inclusive: t.inclusive
          });
        }

        return i;
      }, GeoGlobe.LngLatBounds.prototype.equals = function (e) {
        var t = !1;
        return null != e && (t = this._sw.lng == e._sw.lng && this._ne.lng == e._ne.lng && this._ne.lat == e._ne.lat && this._sw.lat == e._sw.lat), t;
      }, GeoGlobe.LngLatBounds.prototype.toBBOX = function (e, t) {
        null == e && (e = 6);
        var i = Math.pow(10, e),
            r = Math.round(this._sw.lng * i) / i,
            n = Math.round(this._sw.lat * i) / i,
            o = Math.round(this._ne.lng * i) / i,
            a = Math.round(this._ne.lat * i) / i;
        return !0 === t ? n + "," + r + "," + a + "," + o : r + "," + n + "," + o + "," + a;
      }, GeoGlobe.LngLatBounds.prototype.toGeometry = function () {
        return new GeoGlobe.Geometry.Polygon([new GeoGlobe.Geometry.LinearRing([new GeoGlobe.Geometry.Point(this._sw.lng, this._sw.lat), new GeoGlobe.Geometry.Point(this._ne.lng, this._sw.lat), new GeoGlobe.Geometry.Point(this._ne.lng, this._ne.lat), new GeoGlobe.Geometry.Point(this._sw.lng, this._ne.lat)])]);
      }, GeoGlobe.LngLatBounds.prototype.getCenterLonLat = function () {
        return this.centerLonLat || (this.centerLonLat = new GeoGlobe.LngLat((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2)), this.centerLonLat;
      }, GeoGlobe.LngLatBounds.prototype.CLASS_NAME = "GeoGlobe.LngLatBounds", GeoGlobe.LngLatBounds.fromString = function (e, t) {
        var i = e.split(",");
        return GeoGlobe.LngLatBounds.fromArray(i, t);
      }, GeoGlobe.LngLatBounds.fromArray = function (e, t) {
        return !0 === t ? new GeoGlobe.LngLatBounds(new GeoGlobe.LngLat(e[1], e[0]), new GeoGlobe.LngLat(e[3], e[2])) : new GeoGlobe.LngLatBounds(new GeoGlobe.LngLat(e[0], e[1]), new GeoGlobe.LngLat(e[2], e[3]));
      }, GeoGlobe.Geometry = GeoGlobe.Class4OL({
        id: null,
        parent: null,
        bounds: null,
        initialize: function initialize() {
          this.id = GeoGlobe.Util.createUniqueID(this.CLASS_NAME + "_");
        },
        destroy: function destroy() {
          this.id = null, this.bounds = null;
        },
        clone: function clone() {
          return new GeoGlobe.Geometry();
        },
        setBounds: function setBounds(e) {
          e && (this.bounds = e.clone());
        },
        clearBounds: function clearBounds() {
          this.bounds = null, this.parent && this.parent.clearBounds();
        },
        extendBounds: function extendBounds(e) {
          this.getBounds() ? this.bounds.extend(e) : this.setBounds(e);
        },
        getBounds: function getBounds() {
          return null == this.bounds && this.calculateBounds(), this.bounds;
        },
        calculateBounds: function calculateBounds() {},
        distanceTo: function distanceTo(e, t) {},
        getVertices: function getVertices(e) {},
        atPoint: function atPoint(e, t, i) {
          var r = !1;

          if (null != this.getBounds() && null != e) {
            var n = null != t ? t : 0,
                o = null != i ? i : 0,
                a = new GeoGlobe.LngLat(this.bounds._sw.lng - n, this.bounds._sw.lat - o),
                s = new GeoGlobe.LngLat(this.bounds._ne.lng + n, this.bounds._ne.lat + o);
            r = new GeoGlobe.LngLatBounds(a, s).containsLonLat(e);
          }

          return r;
        },
        getLength: function getLength() {
          return 0;
        },
        getArea: function getArea() {
          return 0;
        },
        getCentroid: function getCentroid() {
          return null;
        },
        toString: function toString() {
          return GeoGlobe.Format && GeoGlobe.Format.WKT ? GeoGlobe.Format.WKT.prototype.write(new GeoGlobe.Feature(this)) : Object.prototype.toString.call(this);
        },
        CLASS_NAME: "GeoGlobe.Geometry"
      }), GeoGlobe.Geometry.fromWKT = function (e) {
        var t;

        if (GeoGlobe.Format && GeoGlobe.Format.WKT) {
          var i = GeoGlobe.Geometry.fromWKT.format;
          i || (i = new GeoGlobe.Format.WKT(), GeoGlobe.Geometry.fromWKT.format = i);
          var r = i.read(e);
          if (r instanceof GeoGlobe.Feature) t = r.geometry;else if (GeoGlobe.Util.isArray(r)) {
            for (var n = r.length, o = new Array(n), a = 0; a < n; ++a) {
              o[a] = r[a].geometry;
            }

            t = new GeoGlobe.Geometry.Collection(o);
          }
        }

        return t;
      }, GeoGlobe.Geometry.segmentsIntersect = function (e, t, i) {
        var r = i && i.point,
            n = i && i.tolerance,
            o = !1,
            a = e.x1 - t.x1,
            s = e.y1 - t.y1,
            x = e.x2 - e.x1,
            l = e.y2 - e.y1,
            c = t.y2 - t.y1,
            u = t.x2 - t.x1,
            h = c * x - u * l,
            f = u * s - c * a,
            d = x * s - l * a;
        if (0 == h) 0 == f && 0 == d && (o = !0);else {
          var g = f / h,
              p = d / h;
          if (g >= 0 && g <= 1 && p >= 0 && p <= 1) if (r) {
            var m = e.x1 + g * x,
                b = e.y1 + g * l;
            o = new GeoGlobe.Geometry.Point(m, b);
          } else o = !0;
        }
        if (n) if (o) {
          if (r) {
            var v,
                C = [e, t];

            e: for (var y = 0; y < 2; ++y) {
              v = C[y];

              for (var _ = 1; _ < 3; ++_) {
                if (m = v["x" + _], b = v["y" + _], Math.sqrt(Math.pow(m - o.x, 2) + Math.pow(b - o.y, 2)) < n) {
                  o.x = m, o.y = b;
                  break e;
                }
              }
            }
          }
        } else {
          var A, I, w;
          C = [e, t];

          e: for (y = 0; y < 2; ++y) {
            for (A = C[y], I = C[(y + 1) % 2], _ = 1; _ < 3; ++_) {
              if (w = {
                x: A["x" + _],
                y: A["y" + _]
              }, GeoGlobe.Geometry.distanceToSegment(w, I).distance < n) {
                o = !r || new GeoGlobe.Geometry.Point(w.x, w.y);
                break e;
              }
            }
          }
        }
        return o;
      }, GeoGlobe.Geometry.distanceToSegment = function (e, t) {
        var i = GeoGlobe.Geometry.distanceSquaredToSegment(e, t);
        return i.distance = Math.sqrt(i.distance), i;
      }, GeoGlobe.Geometry.distanceSquaredToSegment = function (e, t) {
        var i,
            r,
            n = e.x,
            o = e.y,
            a = t.x1,
            s = t.y1,
            x = t.x2,
            l = t.y2,
            c = x - a,
            u = l - s,
            h = 0 == c && 0 == u ? 0 : (c * (n - a) + u * (o - s)) / (Math.pow(c, 2) + Math.pow(u, 2));
        return h <= 0 ? (i = a, r = s) : h >= 1 ? (i = x, r = l) : (i = a + h * c, r = s + h * u), {
          distance: Math.pow(i - n, 2) + Math.pow(r - o, 2),
          x: i,
          y: r,
          along: h
        };
      }, GeoGlobe.Geometry.fromGeoJson = function (e) {
        var t;

        if (GeoGlobe.Format && GeoGlobe.Format.GeoJSON) {
          format = new GeoGlobe.Format.GeoJSON();
          var i = null;

          try {
            i = format.parseGeometry(geojson);
          } catch (e) {
            console.log(e);
          }

          t = i;
        }

        return t;
      }, GeoGlobe.Geometry.Collection = GeoGlobe.Class4OL(GeoGlobe.Geometry, {
        components: null,
        componentTypes: null,
        initialize: function initialize(e) {
          GeoGlobe.Geometry.prototype.initialize.apply(this, arguments), this.components = [], null != e && this.addComponents(e);
        },
        destroy: function destroy() {
          this.components.length = 0, this.components = null, GeoGlobe.Geometry.prototype.destroy.apply(this, arguments);
        },
        clone: function clone() {
          for (var geometry = eval("new " + this.CLASS_NAME + "()"), i = 0, len = this.components.length; i < len; i++) {
            geometry.addComponent(this.components[i].clone());
          }

          return GeoGlobe.Util.applyDefaults(geometry, this), geometry;
        },
        getComponentsString: function getComponentsString() {
          for (var e = [], t = 0, i = this.components.length; t < i; t++) {
            e.push(this.components[t].toShortString());
          }

          return e.join(",");
        },
        calculateBounds: function calculateBounds() {
          this.bounds = null;
          var e = new GeoGlobe.LngLatBounds(),
              t = this.components;
          if (t) for (var i = 0, r = t.length; i < r; i++) {
            e.extend(t[i].getBounds());
          }
          null != e._sw && null != e._sw && null != e._ne && null != e._ne && null != e._sw.lng && null != e._sw.lat && null != e._ne.lng && null != e._ne.lat && this.setBounds(e);
        },
        addComponents: function addComponents(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = 0, i = e.length; t < i; t++) {
            this.addComponent(e[t]);
          }
        },
        addComponent: function addComponent(e, t) {
          var i = !1;

          if (e && (null == this.componentTypes || GeoGlobe.Util.indexOf(this.componentTypes, e.CLASS_NAME) > -1)) {
            if (null != t && t < this.components.length) {
              var r = this.components.slice(0, t),
                  n = this.components.slice(t, this.components.length);
              r.push(e), this.components = r.concat(n);
            } else this.components.push(e);

            e.parent = this, this.clearBounds(), i = !0;
          }

          return i;
        },
        removeComponents: function removeComponents(e) {
          var t = !1;
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var i = e.length - 1; i >= 0; --i) {
            t = this.removeComponent(e[i]) || t;
          }

          return t;
        },
        removeComponent: function removeComponent(e) {
          return GeoGlobe.Util.removeItem(this.components, e), this.clearBounds(), !0;
        },
        getLength: function getLength() {
          for (var e = 0, t = 0, i = this.components.length; t < i; t++) {
            e += this.components[t].getLength();
          }

          return e;
        },
        getArea: function getArea() {
          for (var e = 0, t = 0, i = this.components.length; t < i; t++) {
            e += this.components[t].getArea();
          }

          return e;
        },
        getGeodesicArea: function getGeodesicArea(e) {
          for (var t = 0, i = 0, r = this.components.length; i < r; i++) {
            t += this.components[i].getGeodesicArea(e);
          }

          return t;
        },
        getCentroid: function getCentroid(e) {
          if (!e) return this.components.length && this.components[0].getCentroid();
          var t = this.components.length;
          if (!t) return !1;

          for (var i, r = [], n = [], o = 0, a = Number.MAX_VALUE, s = 0; s < t; ++s) {
            var x = (i = this.components[s]).getArea(),
                l = i.getCentroid(!0);
            isNaN(x) || isNaN(l.x) || isNaN(l.y) || (r.push(x), o += x, a = x < a && x > 0 ? x : a, n.push(l));
          }

          if (t = r.length, 0 === o) {
            for (s = 0; s < t; ++s) {
              r[s] = 1;
            }

            o = r.length;
          } else {
            for (s = 0; s < t; ++s) {
              r[s] /= a;
            }

            o /= a;
          }

          var c = 0,
              u = 0;

          for (s = 0; s < t; ++s) {
            l = n[s], x = r[s], c += l.x * x, u += l.y * x;
          }

          return new GeoGlobe.Geometry.Point(c / o, u / o);
        },
        getGeodesicLength: function getGeodesicLength(e) {
          for (var t = 0, i = 0, r = this.components.length; i < r; i++) {
            t += this.components[i].getGeodesicLength(e);
          }

          return t;
        },
        move: function move(e, t) {
          for (var i = 0, r = this.components.length; i < r; i++) {
            this.components[i].move(e, t);
          }
        },
        rotate: function rotate(e, t) {
          for (var i = 0, r = this.components.length; i < r; ++i) {
            this.components[i].rotate(e, t);
          }
        },
        resize: function resize(e, t, i) {
          for (var r = 0; r < this.components.length; ++r) {
            this.components[r].resize(e, t, i);
          }

          return this;
        },
        distanceTo: function distanceTo(e, t) {
          for (var i, r, n, o = !(t && !1 === t.edge) && t && t.details, a = Number.POSITIVE_INFINITY, s = 0, x = this.components.length; s < x && (i = this.components[s].distanceTo(e, t), !((n = o ? i.distance : i) < a && (r = i, 0 == (a = n)))); ++s) {
            ;
          }

          return r;
        },
        equals: function equals(e) {
          var t = !0;
          if (e && e.CLASS_NAME && this.CLASS_NAME == e.CLASS_NAME) {
            if (GeoGlobe.Util.isArray(e.components) && e.components.length == this.components.length) {
              for (var i = 0, r = this.components.length; i < r; ++i) {
                if (!this.components[i].equals(e.components[i])) {
                  t = !1;
                  break;
                }
              }
            } else t = !1;
          } else t = !1;
          return t;
        },
        transform: function transform(e, t) {
          if (e && t) {
            for (var i = 0, r = this.components.length; i < r; i++) {
              this.components[i].transform(e, t);
            }

            this.bounds = null;
          }

          return this;
        },
        intersects: function intersects(e) {
          for (var t = !1, i = 0, r = this.components.length; i < r && !(t = e.intersects(this.components[i])); ++i) {
            ;
          }

          return t;
        },
        getVertices: function getVertices(e) {
          for (var t = [], i = 0, r = this.components.length; i < r; ++i) {
            Array.prototype.push.apply(t, this.components[i].getVertices(e));
          }

          return t;
        },
        CLASS_NAME: "GeoGlobe.Geometry.Collection"
      }), GeoGlobe.Geometry.Point = GeoGlobe.Class4OL(GeoGlobe.Geometry, {
        x: null,
        y: null,
        initialize: function initialize(e, t) {
          GeoGlobe.Geometry.prototype.initialize.apply(this, arguments), this.x = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e), this.y = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(t);
        },
        clone: function clone(e) {
          return null == e && (e = new GeoGlobe.Geometry.Point(this.x, this.y)), GeoGlobe.Util.applyDefaults(e, this), e;
        },
        calculateBounds: function calculateBounds() {
          var e = new GeoGlobe.LngLat(this.x, this.y),
              t = new GeoGlobe.LngLat(this.x, this.y);
          this.bounds = new GeoGlobe.LngLatBounds(e, t);
        },
        distanceTo: function distanceTo(e, t) {
          var i,
              r,
              n,
              o,
              a,
              s,
              x = !(t && !1 === t.edge) && t && t.details;
          return e instanceof GeoGlobe.Geometry.Point ? (r = this.x, n = this.y, o = e.x, a = e.y, i = Math.sqrt(Math.pow(r - o, 2) + Math.pow(n - a, 2)), s = x ? {
            x0: r,
            y0: n,
            x1: o,
            y1: a,
            distance: i
          } : i) : (s = e.distanceTo(this, t), x && (s = {
            x0: s.x1,
            y0: s.y1,
            x1: s.x0,
            y1: s.y0,
            distance: s.distance
          })), s;
        },
        equals: function equals(e) {
          var t = !1;
          return null != e && (t = this.x == e.x && this.y == e.y || isNaN(this.x) && isNaN(this.y) && isNaN(e.x) && isNaN(e.y)), t;
        },
        toShortString: function toShortString() {
          return this.x + ", " + this.y;
        },
        move: function move(e, t) {
          this.x = this.x + e, this.y = this.y + t, this.clearBounds();
        },
        rotate: function rotate(e, t) {
          e *= Math.PI / 180;
          var i = this.distanceTo(t),
              r = e + Math.atan2(this.y - t.y, this.x - t.x);
          this.x = t.x + i * Math.cos(r), this.y = t.y + i * Math.sin(r), this.clearBounds();
        },
        getCentroid: function getCentroid() {
          return new GeoGlobe.Geometry.Point(this.x, this.y);
        },
        resize: function resize(e, t, i) {
          return i = null == i ? 1 : i, this.x = t.x + e * i * (this.x - t.x), this.y = t.y + e * (this.y - t.y), this.clearBounds(), this;
        },
        intersects: function intersects(e) {
          return "GeoGlobe.Geometry.Point" == e.CLASS_NAME ? this.equals(e) : e.intersects(this);
        },
        transform: function transform(e, t) {
          return e && t && (GeoGlobe.SpatialReference.transform(this, e, t), this.bounds = null), this;
        },
        getVertices: function getVertices(e) {
          return [this];
        },
        CLASS_NAME: "GeoGlobe.Geometry.Point"
      }), GeoGlobe.Geometry.MultiPoint = GeoGlobe.Class4OL(GeoGlobe.Geometry.Collection, {
        componentTypes: ["GeoGlobe.Geometry.Point"],
        addPoint: function addPoint(e, t) {
          this.addComponent(e, t);
        },
        removePoint: function removePoint(e) {
          this.removeComponent(e);
        },
        CLASS_NAME: "GeoGlobe.Geometry.MultiPoint"
      }), GeoGlobe.Geometry.Curve = GeoGlobe.Class4OL(GeoGlobe.Geometry.MultiPoint, {
        componentTypes: ["GeoGlobe.Geometry.Point"],
        getLength: function getLength() {
          var e = 0;
          if (this.components && this.components.length > 1) for (var t = 1, i = this.components.length; t < i; t++) {
            e += this.components[t - 1].distanceTo(this.components[t]);
          }
          return e;
        },
        getGeodesicLength: function getGeodesicLength(e) {
          var t = this;

          if (e) {
            var i = new GeoGlobe.SpatialReference("EPSG:4326");
            i.equals(e) || (t = this.clone().transform(e, i));
          }

          var r = 0;
          if (t.components && t.components.length > 1) for (var n, o, a = 1, s = t.components.length; a < s; a++) {
            n = t.components[a - 1], o = t.components[a], r += GeoGlobe.Util.distVincenty({
              lng: n.x,
              lat: n.y
            }, {
              lng: o.x,
              lat: o.y
            });
          }
          return 1e3 * r;
        },
        CLASS_NAME: "GeoGlobe.Geometry.Curve"
      }), GeoGlobe.Geometry.LineString = GeoGlobe.Class4OL(GeoGlobe.Geometry.Curve, {
        removeComponent: function removeComponent(e) {
          var t = this.components && this.components.length > 2;
          return t && GeoGlobe.Geometry.Collection.prototype.removeComponent.apply(this, arguments), t;
        },
        intersects: function intersects(e) {
          var t = !1,
              i = e.CLASS_NAME;

          if ("GeoGlobe.Geometry.LineString" == i || "GeoGlobe.Geometry.LinearRing" == i || "GeoGlobe.Geometry.Point" == i) {
            var r,
                n,
                o,
                a,
                s,
                x,
                l,
                c,
                u,
                h = this.getSortedSegments();
            r = "GeoGlobe.Geometry.Point" == i ? [{
              x1: e.x,
              y1: e.y,
              x2: e.x,
              y2: e.y
            }] : e.getSortedSegments();

            e: for (var f = 0, d = h.length; f < d; ++f) {
              o = (n = h[f]).x1, a = n.x2, s = n.y1, x = n.y2;

              for (var g = 0, p = r.length; g < p && !((l = r[g]).x1 > a); ++g) {
                if (!(l.x2 < o) && (c = l.y1, u = l.y2, !(Math.min(c, u) > Math.max(s, x)) && !(Math.max(c, u) < Math.min(s, x)) && GeoGlobe.Geometry.segmentsIntersect(n, l))) {
                  t = !0;
                  break e;
                }
              }
            }
          } else t = e.intersects(this);

          return t;
        },
        getSortedSegments: function getSortedSegments() {
          for (var e, t, i = this.components.length - 1, r = new Array(i), n = 0; n < i; ++n) {
            e = this.components[n], t = this.components[n + 1], e.x < t.x ? r[n] = {
              x1: e.x,
              y1: e.y,
              x2: t.x,
              y2: t.y
            } : r[n] = {
              x1: t.x,
              y1: t.y,
              x2: e.x,
              y2: e.y
            };
          }

          return r.sort(function (e, t) {
            return e.x1 - t.x1;
          });
        },
        splitWithSegment: function splitWithSegment(e, t) {
          for (var i, r, n, o, a = !(t && !1 === t.edge), s = t && t.tolerance, x = [], l = this.getVertices(), c = [], u = [], h = !1, f = {
            point: !0,
            tolerance: s
          }, d = null, g = 0, p = l.length - 2; g <= p; ++g) {
            if (i = l[g], c.push(i.clone()), r = l[g + 1], o = {
              x1: i.x,
              y1: i.y,
              x2: r.x,
              y2: r.y
            }, (n = GeoGlobe.Geometry.segmentsIntersect(e, o, f)) instanceof GeoGlobe.Geometry.Point && (n.x === e.x1 && n.y === e.y1 || n.x === e.x2 && n.y === e.y2 || n.equals(i) || n.equals(r) || a)) {
              if (n.equals(u[u.length - 1]) || u.push(n.clone()), 0 === g && n.equals(i)) continue;
              if (n.equals(r)) continue;
              h = !0, n.equals(i) || c.push(n), x.push(new GeoGlobe.Geometry.LineString(c)), c = [n.clone()];
            }
          }

          if (h && (c.push(r.clone()), x.push(new GeoGlobe.Geometry.LineString(c))), u.length > 0) {
            var m = e.x1 < e.x2 ? 1 : -1,
                b = e.y1 < e.y2 ? 1 : -1;
            d = {
              lines: x,
              points: u.sort(function (e, t) {
                return m * e.x - m * t.x || b * e.y - b * t.y;
              })
            };
          }

          return d;
        },
        split: function split(e, t) {
          var i,
              r,
              n,
              o,
              a = null,
              s = t && t.mutual;

          if (e instanceof GeoGlobe.Geometry.LineString) {
            var x,
                l,
                c,
                u,
                h,
                f,
                d = this.getVertices(),
                g = [];
            n = [];

            for (var p = 0, m = d.length - 2; p <= m; ++p) {
              x = d[p], l = d[p + 1], c = {
                x1: x.x,
                y1: x.y,
                x2: l.x,
                y2: l.y
              }, o = o || [e], s && g.push(x.clone());

              for (var b = 0; b < o.length; ++b) {
                if ((u = o[b].splitWithSegment(c, t)) && ((h = u.lines).length > 0 && (h.unshift(b, 1), Array.prototype.splice.apply(o, h), b += h.length - 2), s)) for (var v = 0, C = u.points.length; v < C; ++v) {
                  (f = u.points[v]).equals(x) || (g.push(f), n.push(new GeoGlobe.Geometry.LineString(g)), g = f.equals(l) ? [] : [f.clone()]);
                }
              }
            }

            s && n.length > 0 && g.length > 0 && (g.push(l.clone()), n.push(new GeoGlobe.Geometry.LineString(g)));
          } else a = e.splitWith(this, t);

          return o && o.length > 1 ? r = !0 : o = [], n && n.length > 1 ? i = !0 : n = [], (r || i) && (a = s ? [n, o] : o), a;
        },
        splitWith: function splitWith(e, t) {
          return e.split(this, t);
        },
        getVertices: function getVertices(e) {
          return !0 === e ? [this.components[0], this.components[this.components.length - 1]] : !1 === e ? this.components.slice(1, this.components.length - 1) : this.components.slice();
        },
        distanceTo: function distanceTo(e, t) {
          var i,
              r = !(t && !1 === t.edge) && t && t.details,
              n = {},
              o = Number.POSITIVE_INFINITY;

          if (e instanceof GeoGlobe.Geometry.Point) {
            for (var a, s = this.getSortedSegments(), x = e.x, l = e.y, c = 0, u = s.length; c < u; ++c) {
              if (a = s[c], (i = GeoGlobe.Geometry.distanceToSegment(e, a)).distance < o) {
                if (n = i, 0 === (o = i.distance)) break;
              } else if (a.x2 > x && (l > a.y1 && l < a.y2 || l < a.y1 && l > a.y2)) break;
            }

            n = r ? {
              distance: n.distance,
              x0: n.x,
              y0: n.y,
              x1: x,
              y1: l
            } : n.distance;
          } else if (e instanceof GeoGlobe.Geometry.LineString) {
            var h,
                f,
                d,
                g,
                p,
                m = this.getSortedSegments(),
                b = e.getSortedSegments(),
                v = b.length,
                C = {
              point: !0
            };

            e: for (c = 0, u = m.length; c < u; ++c) {
              g = (h = m[c]).x1, p = h.y1;

              for (var y = 0; y < v; ++y) {
                if (f = b[y], d = GeoGlobe.Geometry.segmentsIntersect(h, f, C)) {
                  o = 0, n = {
                    distance: 0,
                    x0: d.x,
                    y0: d.y,
                    x1: d.x,
                    y1: d.y
                  };
                  break e;
                }

                (i = GeoGlobe.Geometry.distanceToSegment({
                  x: g,
                  y: p
                }, f)).distance < o && (n = {
                  distance: o = i.distance,
                  x0: g,
                  y0: p,
                  x1: i.x,
                  y1: i.y
                });
              }
            }

            if (r || (n = n.distance), 0 !== o && h) {
              i = e.distanceTo(new GeoGlobe.Geometry.Point(h.x2, h.y2), t);

              var _ = r ? i.distance : i;

              _ < o && (n = r ? {
                distance: o,
                x0: i.x1,
                y0: i.y1,
                x1: i.x0,
                y1: i.y0
              } : _);
            }
          } else n = e.distanceTo(this, t), r && (n = {
            distance: n.distance,
            x0: n.x1,
            y0: n.y1,
            x1: n.x0,
            y1: n.y0
          });

          return n;
        },
        simplify: function simplify(e) {
          if (this && null !== this) {
            var t = this.getVertices();
            if (t.length < 3) return this;

            var i = function (_i) {
              function i(_x10, _x11, _x12) {
                return _i.apply(this, arguments);
              }

              i.toString = function () {
                return _i.toString();
              };

              return i;
            }(function (e, t, i) {
              return Math.abs(0.5 * (e.x * t.y + t.x * i.y + i.x * e.y - t.x * e.y - i.x * t.y - e.x * i.y)) / Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) * 2;
            }),
                r = t.length - 1,
                n = [];

            for (n.push(0), n.push(r); t[0].equals(t[r]);) {
              r--, n.push(r);
            }

            !function e(t, r, o, a) {
              for (var s, x = 0, l = 0, c = r; c < o; c++) {
                (s = i(t[r], t[o], t[c])) > x && (x = s, l = c);
              }

              x > a && l != r && (n.push(l), e(t, r, l, a), e(t, l, o, a));
            }(t, 0, r, e);
            var o = [];
            n.sort(function (e, t) {
              return e - t;
            });

            for (var a = 0; a < n.length; a++) {
              o.push(t[n[a]]);
            }

            return new GeoGlobe.Geometry.LineString(o);
          }

          return this;
        },
        CLASS_NAME: "GeoGlobe.Geometry.LineString"
      }), GeoGlobe.Geometry.LineString.createCurveLine = function (e) {
        for (var t = [], i = 0; i < e.length - 1; i++) {
          var r = GeoGlobe.Geometry.LineString.getCurveCoordinatesByTwoPoints(e[i], e[i + 1]);
          r && r.length > 0 && (t = t.concat(r));
        }

        return new GeoGlobe.Geometry.LineString(t);
      }, GeoGlobe.Geometry.LineString.getCurveCoordinatesByTwoPoints = function (e, t) {
        if (!(e && t && e instanceof GeoGlobe.Geometry.Point && t instanceof GeoGlobe.Geometry.Point)) return null;

        var i = function i(e) {
          return 1 - 2 * e + e * e;
        },
            r = function r(e) {
          return 2 * e - 2 * e * e;
        },
            n = function n(e) {
          return e * e;
        };

        curveCoordinates = [];
        var o,
            a,
            s,
            x,
            l,
            c,
            u = 0,
            h = 0;

        if (void 0 !== t) {
          var f = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.y),
              d = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(t.y),
              g = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.x),
              p = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(t.x);

          for (p > g && _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(p - g) > 180 && g < 0 && (g = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(360 + g)), g > p && _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(g - p) > 180 && p < 0 && (p = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(360 + p)), c = 0, d == f ? (o = 0, a = g - p) : p == g ? (o = Math.PI / 2, a = f - d) : (o = Math.atan((d - f) / (p - g)), a = (d - f) / Math.sin(o)), 0 == c && (c = o + Math.PI / 5), l = (s = a / 2) * Math.cos(c) + g, x = s * Math.sin(c) + f, u = 0; u < 31; u++) {
            curveCoordinates.push(new GeoGlobe.Geometry.Point(g * i(h) + l * r(h) + p * n(h), f * i(h) + x * r(h) + d * n(h))), h += 1 / 30;
          }

          return curveCoordinates;
        }

        "undefined" != typeof curveCoordinates && (curveCoordinates = []);
      }, GeoGlobe.Geometry.LinearRing = GeoGlobe.Class4OL(GeoGlobe.Geometry.LineString, {
        componentTypes: ["GeoGlobe.Geometry.Point"],
        addComponent: function addComponent(e, t) {
          var i = !1,
              r = this.components.pop();
          null == t && e.equals(r) || (i = GeoGlobe.Geometry.Collection.prototype.addComponent.apply(this, arguments));
          var n = this.components[0];
          return GeoGlobe.Geometry.Collection.prototype.addComponent.apply(this, [n]), i;
        },
        removeComponent: function removeComponent(e) {
          var t = this.components && this.components.length > 3;

          if (t) {
            this.components.pop(), GeoGlobe.Geometry.Collection.prototype.removeComponent.apply(this, arguments);
            var i = this.components[0];
            GeoGlobe.Geometry.Collection.prototype.addComponent.apply(this, [i]);
          }

          return t;
        },
        move: function move(e, t) {
          for (var i = 0, r = this.components.length; i < r - 1; i++) {
            this.components[i].move(e, t);
          }
        },
        rotate: function rotate(e, t) {
          for (var i = 0, r = this.components.length; i < r - 1; ++i) {
            this.components[i].rotate(e, t);
          }
        },
        resize: function resize(e, t, i) {
          for (var r = 0, n = this.components.length; r < n - 1; ++r) {
            this.components[r].resize(e, t, i);
          }

          return this;
        },
        transform: function transform(e, t) {
          if (e && t) {
            for (var i = 0, r = this.components.length; i < r - 1; i++) {
              this.components[i].transform(e, t);
            }

            this.bounds = null;
          }

          return this;
        },
        getCentroid: function getCentroid() {
          if (this.components) {
            var e = this.components.length;
            if (e > 0 && e <= 2) return this.components[0].clone();

            if (e > 2) {
              var t = 0,
                  i = 0,
                  r = this.components[0].x,
                  n = this.components[0].y,
                  o = -1 * this.getArea();

              if (0 != o) {
                for (var a = 0; a < e - 1; a++) {
                  var s = this.components[a],
                      x = this.components[a + 1];
                  t += (s.x + x.x - 2 * r) * ((s.x - r) * (x.y - n) - (x.x - r) * (s.y - n)), i += (s.y + x.y - 2 * n) * ((s.x - r) * (x.y - n) - (x.x - r) * (s.y - n));
                }

                var l = r + t / (6 * o),
                    c = n + i / (6 * o);
              } else {
                for (a = 0; a < e - 1; a++) {
                  t += this.components[a].x, i += this.components[a].y;
                }

                l = t / (e - 1), c = i / (e - 1);
              }

              return new GeoGlobe.Geometry.Point(l, c);
            }

            return null;
          }
        },
        getArea: function getArea() {
          var e = 0;

          if (this.components && this.components.length > 2) {
            for (var t = 0, i = 0, r = this.components.length; i < r - 1; i++) {
              var n = this.components[i],
                  o = this.components[i + 1];
              t += (n.x + o.x) * (o.y - n.y);
            }

            e = -t / 2;
          }

          return e;
        },
        getGeodesicArea: function getGeodesicArea(e) {
          var t = this;

          if (e) {
            var i = new GeoGlobe.SpatialReference("EPSG:4326");
            i.equals(e) || (t = this.clone().transform(e, i));
          }

          var r = 0,
              n = t.components && t.components.length;

          if (n > 2) {
            for (var o, a, s = 0; s < n - 1; s++) {
              o = t.components[s], a = t.components[s + 1], r += GeoGlobe.Util.rad(a.x - o.x) * (2 + Math.sin(GeoGlobe.Util.rad(o.y)) + Math.sin(GeoGlobe.Util.rad(a.y)));
            }

            r = 6378137 * r * 6378137 / 2;
          }

          return r;
        },
        containsPoint: function containsPoint(e) {
          for (var t, i, r, n, o, a, s, x, l, c = GeoGlobe.Number.limitSigDigs, u = c(e.x, 14), h = c(e.y, 14), f = this.components.length - 1, d = 0, g = 0; g < f; ++g) {
            if (r = c((t = this.components[g]).x, 14), n = c(t.y, 14), o = c((i = this.components[g + 1]).x, 14), n != (a = c(i.y, 14))) {
              if ((s = c(((x = o) - r) / ((l = a) - n) * (h - l) + x, 14)) == u && (n < a && h >= n && h <= a || n > a && h <= n && h >= a)) {
                d = -1;
                break;
              }

              s <= u || r != o && (s < Math.min(r, o) || s > Math.max(r, o)) || (n < a && h >= n && h < a || n > a && h < n && h >= a) && ++d;
            } else if (h == n && (r <= o && u >= r && u <= o || r >= o && u <= r && u >= o)) {
              d = -1;
              break;
            }
          }

          return -1 == d ? 1 : !!(1 & d);
        },
        intersects: function intersects(e) {
          var t = !1;
          if ("GeoGlobe.Geometry.Point" == e.CLASS_NAME) t = this.containsPoint(e);else if ("GeoGlobe.Geometry.LineString" == e.CLASS_NAME) t = e.intersects(this);else if ("GeoGlobe.Geometry.LinearRing" == e.CLASS_NAME) t = GeoGlobe.Geometry.LineString.prototype.intersects.apply(this, [e]);else for (var i = 0, r = e.components.length; i < r && !(t = e.components[i].intersects(this)); ++i) {
            ;
          }
          return t;
        },
        getVertices: function getVertices(e) {
          return !0 === e ? [] : this.components.slice(0, this.components.length - 1);
        },
        CLASS_NAME: "GeoGlobe.Geometry.LinearRing"
      }), GeoGlobe.Geometry.Polygon = GeoGlobe.Class4OL(GeoGlobe.Geometry.Collection, {
        componentTypes: ["GeoGlobe.Geometry.LinearRing"],
        getArea: function getArea() {
          var e = 0;

          if (this.components && this.components.length > 0) {
            e += Math.abs(this.components[0].getArea());

            for (var t = 1, i = this.components.length; t < i; t++) {
              e -= Math.abs(this.components[t].getArea());
            }
          }

          return e;
        },
        getGeodesicArea: function getGeodesicArea(e) {
          var t = 0;

          if (this.components && this.components.length > 0) {
            t += Math.abs(this.components[0].getGeodesicArea(e));

            for (var i = 1, r = this.components.length; i < r; i++) {
              t -= Math.abs(this.components[i].getGeodesicArea(e));
            }
          }

          return t;
        },
        containsPoint: function containsPoint(e) {
          var t = this.components.length,
              i = !1;
          if (t > 0 && 1 !== (i = this.components[0].containsPoint(e)) && i && t > 1) for (var r, n = 1; n < t; ++n) {
            if (r = this.components[n].containsPoint(e)) {
              i = 1 === r && 1;
              break;
            }
          }
          return i;
        },
        intersects: function intersects(e) {
          var t,
              i,
              r = !1;
          if ("GeoGlobe.Geometry.Point" == e.CLASS_NAME) r = this.containsPoint(e);else if ("GeoGlobe.Geometry.LineString" == e.CLASS_NAME || "GeoGlobe.Geometry.LinearRing" == e.CLASS_NAME) {
            for (t = 0, i = this.components.length; t < i && !(r = e.intersects(this.components[t])); ++t) {
              ;
            }

            if (!r) for (t = 0, i = e.components.length; t < i && !(r = this.containsPoint(e.components[t])); ++t) {
              ;
            }
          } else for (t = 0, i = e.components.length; t < i && !(r = this.intersects(e.components[t])); ++t) {
            ;
          }

          if (!r && "GeoGlobe.Geometry.Polygon" == e.CLASS_NAME) {
            var n = this.components[0];

            for (t = 0, i = n.components.length; t < i && !(r = e.containsPoint(n.components[t])); ++t) {
              ;
            }
          }

          return r;
        },
        distanceTo: function distanceTo(e, t) {
          return t && !1 === t.edge && this.intersects(e) ? 0 : GeoGlobe.Geometry.Collection.prototype.distanceTo.apply(this, [e, t]);
        },
        CLASS_NAME: "GeoGlobe.Geometry.Polygon"
      }), GeoGlobe.Geometry.Polygon.createRegularPolygon = function (e, t, i, r) {
        var n,
            o,
            a,
            s = Math.PI * (1 / i - 0.5);
        r && (s += r / 180 * Math.PI);

        for (var x = [], l = 0; l < i; ++l) {
          n = s + 2 * l * Math.PI / i, o = e.x + t * Math.cos(n), a = e.y + t * Math.sin(n), x.push(new GeoGlobe.Geometry.Point(o, a));
        }

        var c = new GeoGlobe.Geometry.LinearRing(x);
        return new GeoGlobe.Geometry.Polygon([c]);
      }, GeoGlobe.Geometry.MultiLineString = GeoGlobe.Class4OL(GeoGlobe.Geometry.Collection, {
        componentTypes: ["GeoGlobe.Geometry.LineString"],
        split: function split(e, t) {
          for (var i, r, n, o, a, s = null, x = t && t.mutual, l = [], c = [e], u = 0, h = this.components.length; u < h; ++u) {
            r = this.components[u], o = !1;

            for (var f = 0; f < c.length; ++f) {
              if (i = r.split(c[f], t)) {
                if (x) {
                  for (var d = 0, g = (n = i[0]).length; d < g; ++d) {
                    0 === d && l.length ? l[l.length - 1].addComponent(n[d]) : l.push(new GeoGlobe.Geometry.MultiLineString([n[d]]));
                  }

                  o = !0, i = i[1];
                }

                if (i.length) {
                  i.unshift(f, 1), Array.prototype.splice.apply(c, i);
                  break;
                }
              }
            }

            o || (l.length ? l[l.length - 1].addComponent(r.clone()) : l = [new GeoGlobe.Geometry.MultiLineString(r.clone())]);
          }

          return l && l.length > 1 ? o = !0 : l = [], c && c.length > 1 ? a = !0 : c = [], (o || a) && (s = x ? [l, c] : c), s;
        },
        splitWith: function splitWith(e, t) {
          var i,
              r,
              n,
              o,
              a,
              s,
              x,
              l = null,
              c = t && t.mutual;

          if (e instanceof GeoGlobe.Geometry.LineString) {
            x = [], s = [e];

            for (var u = 0, h = this.components.length; u < h; ++u) {
              a = !1, r = this.components[u];

              for (var f = 0; f < s.length; ++f) {
                if (i = s[f].split(r, t)) {
                  c && ((n = i[0]).length && (n.unshift(f, 1), Array.prototype.splice.apply(s, n), f += n.length - 2), 0 === (i = i[1]).length && (i = [r.clone()]));

                  for (var d = 0, g = i.length; d < g; ++d) {
                    0 === d && x.length ? x[x.length - 1].addComponent(i[d]) : x.push(new GeoGlobe.Geometry.MultiLineString([i[d]]));
                  }

                  a = !0;
                }
              }

              a || (x.length ? x[x.length - 1].addComponent(r.clone()) : x = [new GeoGlobe.Geometry.MultiLineString([r.clone()])]);
            }
          } else l = e.split(this);

          return s && s.length > 1 ? o = !0 : s = [], x && x.length > 1 ? a = !0 : x = [], (o || a) && (l = c ? [s, x] : x), l;
        },
        CLASS_NAME: "GeoGlobe.Geometry.MultiLineString"
      }), GeoGlobe.Geometry.MultiPolygon = GeoGlobe.Class4OL(GeoGlobe.Geometry.Collection, {
        componentTypes: ["GeoGlobe.Geometry.Polygon"],
        CLASS_NAME: "GeoGlobe.Geometry.MultiPolygon"
      }), GeoGlobe.State = {
        UNKNOWN: "Unknown",
        INSERT: "Insert",
        UPDATE: "Update",
        DELETE: "Delete"
      }, GeoGlobe.Feature = GeoGlobe.Class4OL({
        id: null,
        fid: null,
        lonlat: null,
        geometry: null,
        attributes: null,
        data: null,
        bounds: null,
        state: null,
        url: null,
        modified: null,
        initialize: function initialize(e, t) {
          this.data = null != t ? t : {}, this.id = GeoGlobe.Util.createUniqueID(this.CLASS_NAME + "_"), this.lonlat = null, this.geometry = e || null, this.state = null, this.attributes = {}, t && (this.attributes = GeoGlobe.Util.extend(this.attributes, t));
        },
        destroy: function destroy() {
          this.geometry = null, this.modified = null, this.id = null, this.lonlat = null, this.data = null;
        },
        clone: function clone() {
          return new GeoGlobe.Feature(this.geometry ? this.geometry.clone() : null, this.attributes);
        },
        createMarker: function createMarker() {
          return null;
        },
        destroyMarker: function destroyMarker() {},
        createPopup: function createPopup() {
          return null;
        },
        atPoint: function atPoint(e, t, i) {
          var r = !1;
          return this.geometry && (r = this.geometry.atPoint(e, t, i)), r;
        },
        destroyPopup: function destroyPopup() {},
        toState: function toState(e) {
          if (e == GeoGlobe.State.UPDATE) switch (this.state) {
            case GeoGlobe.State.UNKNOWN:
            case GeoGlobe.State.DELETE:
              this.state = e;
              break;

            case GeoGlobe.State.UPDATE:
            case GeoGlobe.State.INSERT:
          } else if (e == GeoGlobe.State.INSERT) switch (this.state) {
            case GeoGlobe.State.UNKNOWN:
              break;

            default:
              this.state = e;
          } else if (e == GeoGlobe.State.DELETE) switch (this.state) {
            case GeoGlobe.State.INSERT:
            case GeoGlobe.State.DELETE:
              break;

            case GeoGlobe.State.UNKNOWN:
            case GeoGlobe.State.UPDATE:
              this.state = e;
          } else e == GeoGlobe.State.UNKNOWN && (this.state = e);
        },
        CLASS_NAME: "GeoGlobe.Feature"
      }), GeoGlobe.Feature.getBoundsByFeatures = function (e) {
        for (var t = e.length, i = new Array(t), r = 0; r < t; ++r) {
          i[r] = e[r].geometry;
        }

        var n = new GeoGlobe.Geometry.Collection(i);
        return n.calculateBounds(), n.bounds;
      }, GeoGlobe.Feature.fromGeoJson = function (e) {
        if (GeoGlobe.Format && GeoGlobe.Format.GeoJSON) {
          format = new GeoGlobe.Format.GeoJSON();
          var t = format.read(e);
        }

        return t;
      }, GeoGlobe.Filter = GeoGlobe.Class4OL({
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e);
        },
        destroy: function destroy() {},
        evaluate: function evaluate(e) {
          return !0;
        },
        clone: function clone() {
          return null;
        },
        toString: function toString() {
          return GeoGlobe.Format && GeoGlobe.Format.CQL ? GeoGlobe.Format.CQL.prototype.write(this) : Object.prototype.toString.call(this);
        },
        CLASS_NAME: "GeoGlobe.Filter"
      }), GeoGlobe.Filter.FeatureId = GeoGlobe.Class4OL(GeoGlobe.Filter, {
        fids: null,
        type: "FID",
        initialize: function initialize(e) {
          this.fids = [], GeoGlobe.Filter.prototype.initialize.apply(this, [e]);
        },
        evaluate: function evaluate(e) {
          for (var t = 0, i = this.fids.length; t < i; t++) {
            if ((e.fid || e.id) == this.fids[t]) return !0;
          }

          return !1;
        },
        clone: function clone() {
          var e = new GeoGlobe.Filter.FeatureId();
          return GeoGlobe.Util.extend(e, this), e.fids = this.fids.slice(), e;
        },
        CLASS_NAME: "GeoGlobe.Filter.FeatureId"
      }), GeoGlobe.Filter.Logical = GeoGlobe.Class4OL(GeoGlobe.Filter, {
        filters: null,
        type: null,
        initialize: function initialize(e) {
          this.filters = [], GeoGlobe.Filter.prototype.initialize.apply(this, [e]);
        },
        destroy: function destroy() {
          this.filters = null, GeoGlobe.Filter.prototype.destroy.apply(this);
        },
        evaluate: function evaluate(e) {
          var t, i;

          switch (this.type) {
            case GeoGlobe.Filter.Logical.AND:
              for (t = 0, i = this.filters.length; t < i; t++) {
                if (0 == this.filters[t].evaluate(e)) return !1;
              }

              return !0;

            case GeoGlobe.Filter.Logical.OR:
              for (t = 0, i = this.filters.length; t < i; t++) {
                if (1 == this.filters[t].evaluate(e)) return !0;
              }

              return !1;

            case GeoGlobe.Filter.Logical.NOT:
              return !this.filters[0].evaluate(e);
          }
        },
        clone: function clone() {
          for (var e = [], t = 0, i = this.filters.length; t < i; ++t) {
            e.push(this.filters[t].clone());
          }

          return new GeoGlobe.Filter.Logical({
            type: this.type,
            filters: e
          });
        },
        CLASS_NAME: "GeoGlobe.Filter.Logical"
      }), GeoGlobe.Filter.Logical.AND = "&&", GeoGlobe.Filter.Logical.OR = "||", GeoGlobe.Filter.Logical.NOT = "!", GeoGlobe.Filter.Comparison = GeoGlobe.Class4OL(GeoGlobe.Filter, {
        type: null,
        property: null,
        value: null,
        matchCase: !0,
        lowerBoundary: null,
        upperBoundary: null,
        initialize: function initialize(e) {
          GeoGlobe.Filter.prototype.initialize.apply(this, [e]), this.type === GeoGlobe.Filter.Comparison.LIKE && void 0 === e.matchCase && (this.matchCase = null);
        },
        evaluate: function evaluate(e) {
          e instanceof GeoGlobe.Feature && (e = e.attributes);
          var t,
              i = !1,
              r = e[this.property];
          if (void 0 === r) return !1;

          switch (this.type) {
            case GeoGlobe.Filter.Comparison.EQUAL_TO:
              t = this.value, i = this.matchCase || "string" != typeof r || "string" != typeof t ? r == t : r.toUpperCase() == t.toUpperCase();
              break;

            case GeoGlobe.Filter.Comparison.NOT_EQUAL_TO:
              t = this.value, i = this.matchCase || "string" != typeof r || "string" != typeof t ? r != t : r.toUpperCase() != t.toUpperCase();
              break;

            case GeoGlobe.Filter.Comparison.LESS_THAN:
              i = r < this.value;
              break;

            case GeoGlobe.Filter.Comparison.GREATER_THAN:
              i = r > this.value;
              break;

            case GeoGlobe.Filter.Comparison.LESS_THAN_OR_EQUAL_TO:
              i = r <= this.value;
              break;

            case GeoGlobe.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO:
              i = r >= this.value;
              break;

            case GeoGlobe.Filter.Comparison.BETWEEN:
              i = r >= this.lowerBoundary && r <= this.upperBoundary;
              break;

            case GeoGlobe.Filter.Comparison.LIKE:
              i = new RegExp(this.value, "gi").test(r);
              break;

            case GeoGlobe.Filter.Comparison.IS_NULL:
              i = null === r;
          }

          return i;
        },
        value2regex: function value2regex(e, t, i) {
          if ("." == e) throw new Error("'.' is an unsupported wildCard character for GeoGlobe.Filter.Comparison");
          return e = e || "*", t = t || ".", i = i || "!", this.value = this.value.replace(new RegExp("\\" + i + "(.|$)", "g"), "\\$1"), this.value = this.value.replace(new RegExp("\\" + t, "g"), "."), this.value = this.value.replace(new RegExp("\\" + e, "g"), ".*"), this.value = this.value.replace(new RegExp("\\\\.\\*", "g"), "\\" + e), this.value = this.value.replace(new RegExp("\\\\\\.", "g"), "\\" + t), this.value;
        },
        regex2value: function regex2value() {
          var e = this.value;
          return (e = (e = (e = (e = e.replace(/!/g, "!!")).replace(/(\\)?\\\./g, function (e, t) {
            return t ? e : "!.";
          })).replace(/(\\)?\\\*/g, function (e, t) {
            return t ? e : "!*";
          })).replace(/\\\\/g, "\\")).replace(/\.\*/g, "*");
        },
        clone: function clone() {
          return GeoGlobe.Util.extend(new GeoGlobe.Filter.Comparison(), this);
        },
        CLASS_NAME: "GeoGlobe.Filter.Comparison"
      }), GeoGlobe.Filter.Comparison.EQUAL_TO = "==", GeoGlobe.Filter.Comparison.NOT_EQUAL_TO = "!=", GeoGlobe.Filter.Comparison.LESS_THAN = "<", GeoGlobe.Filter.Comparison.GREATER_THAN = ">", GeoGlobe.Filter.Comparison.LESS_THAN_OR_EQUAL_TO = "<=", GeoGlobe.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO = ">=", GeoGlobe.Filter.Comparison.BETWEEN = "..", GeoGlobe.Filter.Comparison.LIKE = "~", GeoGlobe.Filter.Comparison.IS_NULL = "NULL", GeoGlobe.Filter.Spatial = GeoGlobe.Class4OL(GeoGlobe.Filter, {
        type: null,
        property: null,
        value: null,
        distance: null,
        distanceUnits: null,
        evaluate: function evaluate(e) {
          var t = !1;

          switch (this.type) {
            case GeoGlobe.Filter.Spatial.BBOX:
            case GeoGlobe.Filter.Spatial.INTERSECTS:
              if (e.geometry) {
                var i = this.value;
                "GeoGlobe.LngLatBounds" == this.value.CLASS_NAME && (i = this.value.toGeometry()), e.geometry.intersects(i) && (t = !0);
              }

              break;

            default:
              throw new Error("evaluate is not implemented for this filter type.");
          }

          return t;
        },
        clone: function clone() {
          var e = GeoGlobe.Util.applyDefaults({
            value: this.value && this.value.clone && this.value.clone()
          }, this);
          return new GeoGlobe.Filter.Spatial(e);
        },
        CLASS_NAME: "GeoGlobe.Filter.Spatial"
      }), GeoGlobe.Filter.Spatial.BBOX = "BBOX", GeoGlobe.Filter.Spatial.INTERSECTS = "INTERSECTS", GeoGlobe.Filter.Spatial.DWITHIN = "DWITHIN", GeoGlobe.Filter.Spatial.WITHIN = "WITHIN", GeoGlobe.Filter.Spatial.CONTAINS = "CONTAINS", GeoGlobe.Filter.Function = GeoGlobe.Class4OL(GeoGlobe.Filter, {
        name: null,
        params: null,
        CLASS_NAME: "GeoGlobe.Filter.Function"
      }), GeoGlobe.Protocol = GeoGlobe.Class4OL({
        format: null,
        options: null,
        autoDestroy: !0,
        defaultFilter: null,
        initialize: function initialize(e) {
          e = e || {}, GeoGlobe.Util.extend(this, e), this.options = e;
        },
        mergeWithDefaultFilter: function mergeWithDefaultFilter(e) {
          return e && this.defaultFilter ? new GeoGlobe.Filter.Logical({
            type: GeoGlobe.Filter.Logical.AND,
            filters: [this.defaultFilter, e]
          }) : e || this.defaultFilter || void 0;
        },
        destroy: function destroy() {
          this.options = null, this.format = null;
        },
        read: function read(e) {
          (e = e || {}).filter = this.mergeWithDefaultFilter(e.filter);
        },
        create: function create() {},
        update: function update() {},
        "delete": function _delete() {},
        commit: function commit() {},
        abort: function abort(e) {},
        createCallback: function createCallback(e, t, i) {
          return GeoGlobe.Function.bind(function () {
            e.apply(this, [t, i]);
          }, this);
        },
        CLASS_NAME: "GeoGlobe.Protocol"
      }), GeoGlobe.Protocol.Response = GeoGlobe.Class4OL({
        code: null,
        requestType: null,
        last: !0,
        features: null,
        data: null,
        reqFeatures: null,
        priv: null,
        error: null,
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e);
        },
        success: function success() {
          return this.code > 0;
        },
        CLASS_NAME: "GeoGlobe.Protocol.Response"
      }), GeoGlobe.Protocol.Response.SUCCESS = 1, GeoGlobe.Protocol.Response.FAILURE = 0, GeoGlobe.Protocol.HTTP = GeoGlobe.Class4OL(GeoGlobe.Protocol, {
        url: null,
        headers: null,
        params: null,
        callback: null,
        scope: null,
        readWithPOST: !1,
        updateWithPOST: !1,
        deleteWithPOST: !1,
        wildcarded: !1,
        srsInBBOX: !1,
        initialize: function initialize(e) {
          if (e = e || {}, this.params = {}, this.headers = {}, GeoGlobe.Protocol.prototype.initialize.apply(this, arguments), !this.filterToParams && GeoGlobe.Format.QueryStringFilter) {
            var t = new GeoGlobe.Format.QueryStringFilter({
              wildcarded: this.wildcarded,
              srsInBBOX: this.srsInBBOX
            });

            this.filterToParams = function (e, i) {
              return t.write(e, i);
            };
          }
        },
        destroy: function destroy() {
          this.params = null, this.headers = null, GeoGlobe.Protocol.prototype.destroy.apply(this);
        },
        read: function read(e) {
          GeoGlobe.Protocol.prototype.read.apply(this, arguments), (e = e || {}).params = GeoGlobe.Util.applyDefaults(e.params, this.options.params), (e = GeoGlobe.Util.applyDefaults(e, this.options)).filter && this.filterToParams && (e.params = this.filterToParams(e.filter, e.params));
          var t = void 0 !== e.readWithPOST ? e.readWithPOST : this.readWithPOST,
              i = new GeoGlobe.Protocol.Response({
            requestType: "read"
          });

          if (t) {
            var r = e.headers || {};
            r["Content-Type"] = "application/x-www-form-urlencoded", i.priv = GeoGlobe.Request.POST({
              url: e.url,
              callback: this.createCallback(this.handleRead, i, e),
              data: GeoGlobe.Util.getParameterString(e.params),
              headers: r
            });
          } else i.priv = GeoGlobe.Request.GET({
            url: e.url,
            callback: this.createCallback(this.handleRead, i, e),
            params: e.params,
            headers: e.headers
          });

          return i;
        },
        handleRead: function handleRead(e, t) {
          this.handleResponse(e, t);
        },
        create: function create(e, t) {
          t = GeoGlobe.Util.applyDefaults(t, this.options);
          var i = new GeoGlobe.Protocol.Response({
            reqFeatures: e,
            requestType: "create"
          });
          return i.priv = GeoGlobe.Request.POST({
            url: t.url,
            callback: this.createCallback(this.handleCreate, i, t),
            headers: t.headers,
            data: this.format.write(e)
          }), i;
        },
        handleCreate: function handleCreate(e, t) {
          this.handleResponse(e, t);
        },
        update: function update(e, t) {
          var i = (t = t || {}).url || e.url || this.options.url + "/" + e.fid;
          t = GeoGlobe.Util.applyDefaults(t, this.options);
          var r = new GeoGlobe.Protocol.Response({
            reqFeatures: e,
            requestType: "update"
          }),
              n = this.updateWithPOST ? "POST" : "PUT";
          return r.priv = GeoGlobe.Request[n]({
            url: i,
            callback: this.createCallback(this.handleUpdate, r, t),
            headers: t.headers,
            data: this.format.write(e)
          }), r;
        },
        handleUpdate: function handleUpdate(e, t) {
          this.handleResponse(e, t);
        },
        "delete": function _delete(e, t) {
          var i = (t = t || {}).url || e.url || this.options.url + "/" + e.fid;
          t = GeoGlobe.Util.applyDefaults(t, this.options);
          var r = new GeoGlobe.Protocol.Response({
            reqFeatures: e,
            requestType: "delete"
          }),
              n = this.deleteWithPOST ? "POST" : "DELETE",
              o = {
            url: i,
            callback: this.createCallback(this.handleDelete, r, t),
            headers: t.headers
          };
          return this.deleteWithPOST && (o.data = this.format.write(e)), r.priv = GeoGlobe.Request[n](o), r;
        },
        handleDelete: function handleDelete(e, t) {
          this.handleResponse(e, t);
        },
        handleResponse: function handleResponse(e, t) {
          var i = e.priv;
          t.callback && (i.status >= 200 && i.status < 300 ? ("delete" != e.requestType && (e.features = this.parseFeatures(i)), e.code = GeoGlobe.Protocol.Response.SUCCESS) : e.code = GeoGlobe.Protocol.Response.FAILURE, t.callback.call(t.scope, e));
        },
        parseFeatures: function parseFeatures(e) {
          var t = e.responseXML;
          return t && t.documentElement || (t = e.responseText), !t || t.length <= 0 ? null : this.format.read(t);
        },
        commit: function commit(e, t) {
          t = GeoGlobe.Util.applyDefaults(t, this.options);
          var i = [],
              r = 0,
              n = {};
          n[GeoGlobe.State.INSERT] = [], n[GeoGlobe.State.UPDATE] = [], n[GeoGlobe.State.DELETE] = [];

          for (var o, a, s = [], x = 0, l = e.length; x < l; ++x) {
            (a = n[(o = e[x]).state]) && (a.push(o), s.push(o));
          }

          var c = (n[GeoGlobe.State.INSERT].length > 0 ? 1 : 0) + n[GeoGlobe.State.UPDATE].length + n[GeoGlobe.State.DELETE].length,
              u = !0,
              h = new GeoGlobe.Protocol.Response({
            reqFeatures: s
          });

          function f(e) {
            this.callUserCallback(e, t), u = u && e.success(), ++r >= c && t.callback && (h.code = u ? GeoGlobe.Protocol.Response.SUCCESS : GeoGlobe.Protocol.Response.FAILURE, t.callback.apply(t.scope, [h]));
          }

          var d = n[GeoGlobe.State.INSERT];

          for (d.length > 0 && i.push(this.create(d, GeoGlobe.Util.applyDefaults({
            callback: function callback(e) {
              for (var t = e.features ? e.features.length : 0, i = new Array(t), r = 0; r < t; ++r) {
                i[r] = e.features[r].fid;
              }

              h.insertIds = i, f.apply(this, [e]);
            },
            scope: this
          }, t.create))), x = (d = n[GeoGlobe.State.UPDATE]).length - 1; x >= 0; --x) {
            i.push(this.update(d[x], GeoGlobe.Util.applyDefaults({
              callback: f,
              scope: this
            }, t.update)));
          }

          for (x = (d = n[GeoGlobe.State.DELETE]).length - 1; x >= 0; --x) {
            i.push(this["delete"](d[x], GeoGlobe.Util.applyDefaults({
              callback: f,
              scope: this
            }, t["delete"])));
          }

          return i;
        },
        abort: function abort(e) {
          e && e.priv.abort();
        },
        callUserCallback: function callUserCallback(e, t) {
          var i = t[e.requestType];
          i && i.callback && i.callback.call(i.scope, e);
        },
        CLASS_NAME: "GeoGlobe.Protocol.HTTP"
      }), GeoGlobe.Protocol.WFS = function (e) {
        e = GeoGlobe.Util.applyDefaults(e, GeoGlobe.Protocol.WFS.DEFAULTS);
        var t = GeoGlobe.Protocol.WFS["v" + e.version.replace(/\./g, "_")];
        if (!t) throw "Unsupported WFS version: " + e.version;
        return new t(e);
      }, GeoGlobe.Protocol.WFS.DEFAULTS = {
        version: "1.0.0"
      }, GeoGlobe.Protocol.WFS.v1 = GeoGlobe.Class4OL(GeoGlobe.Protocol, {
        version: null,
        srsName: "EPSG:4326",
        featureType: null,
        featureNS: null,
        geometryName: "the_geom",
        schema: null,
        featurePrefix: "feature",
        formatOptions: null,
        readFormat: null,
        readOptions: null,
        initialize: function initialize(e) {
          GeoGlobe.Protocol.prototype.initialize.apply(this, [e]), e.format || (this.format = GeoGlobe.Format.WFST(GeoGlobe.Util.extend({
            version: this.version,
            featureType: this.featureType,
            featureNS: this.featureNS,
            featurePrefix: this.featurePrefix,
            geometryName: this.geometryName,
            srsName: this.srsName,
            schema: this.schema
          }, this.formatOptions))), !e.geometryName && _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.format.version) > 1 && this.setGeometryName(null);
        },
        destroy: function destroy() {
          this.options && !this.options.format && this.format.destroy(), this.format = null, GeoGlobe.Protocol.prototype.destroy.apply(this);
        },
        read: function read(e) {
          GeoGlobe.Protocol.prototype.read.apply(this, arguments), e = GeoGlobe.Util.extend({}, e), GeoGlobe.Util.applyDefaults(e, this.options || {});
          var t = new GeoGlobe.Protocol.Response({
            requestType: "read"
          }),
              i = GeoGlobe.Format.XML.prototype.write.apply(this.format, [this.format.writeNode("wfs:GetFeature", e)]);
          return t.priv = GeoGlobe.Request.POST({
            url: e.url,
            callback: this.createCallback(this.handleRead, t, e),
            params: e.params,
            headers: e.headers,
            data: i
          }), t;
        },
        setFeatureType: function setFeatureType(e) {
          this.featureType = e, this.format.featureType = e;
        },
        setGeometryName: function setGeometryName(e) {
          this.geometryName = e, this.format.geometryName = e;
        },
        handleRead: function handleRead(e, t) {
          if (t = GeoGlobe.Util.extend({}, t), GeoGlobe.Util.applyDefaults(t, this.options), t.callback) {
            var i = e.priv;

            if (i.status >= 200 && i.status < 300) {
              var r = this.parseResponse(i, t.readOptions);
              r && !1 !== r.success ? (t.readOptions && "object" == t.readOptions.output ? GeoGlobe.Util.extend(e, r) : e.features = r, e.code = GeoGlobe.Protocol.Response.SUCCESS) : (e.code = GeoGlobe.Protocol.Response.FAILURE, e.error = r);
            } else e.code = GeoGlobe.Protocol.Response.FAILURE;

            t.callback.call(t.scope, e);
          }
        },
        parseResponse: function parseResponse(e, t) {
          var i = e.responseXML;
          if (i && i.documentElement || (i = e.responseText), !i || i.length <= 0) return null;
          var r = null;

          try {
            r = null !== this.readFormat ? this.readFormat.read(i) : this.format.read(i, t);
          } catch (e) {
            var n = "程序运行异常：" + e.name + "，" + e.message;
            alert(n);
          }

          if (!this.featureNS) {
            var o = this.readFormat || this.format;
            this.featureNS = o.featureNS, o.autoConfig = !1, this.geometryName || this.setGeometryName(o.geometryName);
          }

          return r;
        },
        commit: function commit(e, t) {
          t = GeoGlobe.Util.extend({}, t), GeoGlobe.Util.applyDefaults(t, this.options);
          var i = new GeoGlobe.Protocol.Response({
            requestType: "commit",
            reqFeatures: e
          });
          return i.priv = GeoGlobe.Request.POST({
            url: t.url,
            headers: t.headers,
            data: this.format.write(e, t),
            callback: this.createCallback(this.handleCommit, i, t)
          }), i;
        },
        handleCommit: function handleCommit(e, t) {
          if (t.callback) {
            var i = e.priv,
                r = i.responseXML;
            r && r.documentElement || (r = i.responseText);
            var n = this.format.read(r) || {};
            e.insertIds = n.insertIds || [], n.success ? e.code = GeoGlobe.Protocol.Response.SUCCESS : (e.code = GeoGlobe.Protocol.Response.FAILURE, e.error = n), t.callback.call(t.scope, e);
          }
        },
        filterDelete: function filterDelete(e, t) {
          t = GeoGlobe.Util.extend({}, t), GeoGlobe.Util.applyDefaults(t, this.options), new GeoGlobe.Protocol.Response({
            requestType: "commit"
          });
          var i = this.format.createElementNSPlus("wfs:Transaction", {
            attributes: {
              service: "WFS",
              version: this.version
            }
          }),
              r = this.format.createElementNSPlus("wfs:Delete", {
            attributes: {
              typeName: (t.featureNS ? this.featurePrefix + ":" : "") + t.featureType
            }
          });
          t.featureNS && r.setAttribute("xmlns:" + this.featurePrefix, t.featureNS);
          var n = this.format.writeNode("ogc:Filter", e);
          r.appendChild(n), i.appendChild(r);
          var o = GeoGlobe.Format.XML.prototype.write.apply(this.format, [i]);
          return GeoGlobe.Request.POST({
            url: this.url,
            callback: t.callback || function () {},
            data: o
          });
        },
        abort: function abort(e) {
          e && e.priv.abort();
        },
        CLASS_NAME: "GeoGlobe.Protocol.WFS.v1"
      }), GeoGlobe.Protocol.WFS.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Protocol.WFS.v1, {
        version: "1.0.0",
        CLASS_NAME: "GeoGlobe.Protocol.WFS.v1_0_0"
      }), GeoGlobe.Protocol.WFS.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Protocol.WFS.v1, {
        version: "1.1.0",
        initialize: function initialize(e) {
          GeoGlobe.Protocol.WFS.v1.prototype.initialize.apply(this, arguments), this.outputFormat && !this.readFormat && ("gml2" == this.outputFormat.toLowerCase() ? this.readFormat = new GeoGlobe.Format.GML.v2({
            featureType: this.featureType,
            featureNS: this.featureNS,
            geometryName: this.geometryName
          }) : "json" == this.outputFormat.toLowerCase() && (this.readFormat = new GeoGlobe.Format.GeoJSON()));
        },
        CLASS_NAME: "GeoGlobe.Protocol.WFS.v1_1_0"
      }), GeoGlobe.Protocol.CSW = function (e) {
        e = GeoGlobe.Util.applyDefaults(e, GeoGlobe.Protocol.CSW.DEFAULTS);
        var t = GeoGlobe.Protocol.CSW["v" + e.version.replace(/\./g, "_")];
        if (!t) throw "Unsupported CSW version: " + e.version;
        return new t(e);
      }, GeoGlobe.Protocol.CSW.DEFAULTS = {
        version: "2.0.2"
      }, GeoGlobe.Protocol.CSW.v2_0_2 = GeoGlobe.Class4OL(GeoGlobe.Protocol, {
        formatOptions: null,
        initialize: function initialize(e) {
          GeoGlobe.Protocol.prototype.initialize.apply(this, [e]), e.format || (this.format = new GeoGlobe.Format.CSWGetRecords.v2_0_2(GeoGlobe.Util.extend({}, this.formatOptions)));
        },
        destroy: function destroy() {
          this.options && !this.options.format && this.format.destroy(), this.format = null, GeoGlobe.Protocol.prototype.destroy.apply(this);
        },
        read: function read(e) {
          e = GeoGlobe.Util.extend({}, e), GeoGlobe.Util.applyDefaults(e, this.options || {});
          var t = new GeoGlobe.Protocol.Response({
            requestType: "read"
          }),
              i = this.format.write(e.params || e);
          return t.priv = GeoGlobe.Request.POST({
            url: e.url,
            callback: this.createCallback(this.handleRead, t, e),
            params: e.params,
            headers: e.headers,
            data: i
          }), t;
        },
        handleRead: function handleRead(e, t) {
          if (t.callback) {
            var i = e.priv;
            i.status >= 200 && i.status < 300 ? (e.data = this.parseData(i), e.code = GeoGlobe.Protocol.Response.SUCCESS) : e.code = GeoGlobe.Protocol.Response.FAILURE, t.callback.call(t.scope, e);
          }
        },
        parseData: function parseData(e) {
          var t = e.responseXML;
          return t && t.documentElement || (t = e.responseText), !t || t.length <= 0 ? null : this.format.read(t);
        },
        CLASS_NAME: "GeoGlobe.Protocol.CSW.v2_0_2"
      }), GeoGlobe.Protocol.Script = GeoGlobe.Class4OL(GeoGlobe.Protocol, {
        url: null,
        params: null,
        callback: null,
        callbackTemplate: "GeoGlobe.Protocol.Script.registry.${id}",
        callbackKey: "callback",
        callbackPrefix: "",
        scope: null,
        format: null,
        pendingRequests: null,
        srsInBBOX: !1,
        initialize: function initialize(e) {
          if (e = e || {}, this.params = {}, this.pendingRequests = {}, GeoGlobe.Protocol.prototype.initialize.apply(this, arguments), this.format || (this.format = new GeoGlobe.Format.GeoJSON()), !this.filterToParams && GeoGlobe.Format.QueryStringFilter) {
            var t = new GeoGlobe.Format.QueryStringFilter({
              srsInBBOX: this.srsInBBOX
            });

            this.filterToParams = function (e, i) {
              return t.write(e, i);
            };
          }
        },
        read: function read(e) {
          GeoGlobe.Protocol.prototype.read.apply(this, arguments), (e = GeoGlobe.Util.applyDefaults(e, this.options)).params = GeoGlobe.Util.applyDefaults(e.params, this.options.params), e.filter && this.filterToParams && (e.params = this.filterToParams(e.filter, e.params));
          var t = new GeoGlobe.Protocol.Response({
            requestType: "read"
          }),
              i = this.createRequest(e.url, e.params, GeoGlobe.Function.bind(function (i) {
            t.data = i, this.handleRead(t, e);
          }, this));
          return t.priv = i, t;
        },
        createRequest: function createRequest(e, t, i) {
          var r = GeoGlobe.Protocol.Script.register(i),
              n = GeoGlobe.String.format(this.callbackTemplate, {
            id: r
          });
          (t = GeoGlobe.Util.extend({}, t))[this.callbackKey] = this.callbackPrefix + n, e = GeoGlobe.Util.urlAppend(e, GeoGlobe.Util.getParameterString(t));
          var o = document.createElement("script");
          return o.type = "text/javascript", o.src = e, o.id = "GeoGlobe_Protocol_Script_" + r, this.pendingRequests[o.id] = o, document.getElementsByTagName("head")[0].appendChild(o), o;
        },
        destroyRequest: function destroyRequest(e) {
          GeoGlobe.Protocol.Script.unregister(e.id.split("_").pop()), delete this.pendingRequests[e.id], e.parentNode && e.parentNode.removeChild(e);
        },
        handleRead: function handleRead(e, t) {
          this.handleResponse(e, t);
        },
        handleResponse: function handleResponse(e, t) {
          t.callback && (e.data ? (e.features = this.parseFeatures(e.data), e.code = GeoGlobe.Protocol.Response.SUCCESS) : e.code = GeoGlobe.Protocol.Response.FAILURE, this.destroyRequest(e.priv), t.callback.call(t.scope, e));
        },
        parseFeatures: function parseFeatures(e) {
          return this.format.read(e);
        },
        abort: function abort(e) {
          if (e) this.destroyRequest(e.priv);else for (var t in this.pendingRequests) {
            this.destroyRequest(this.pendingRequests[t]);
          }
        },
        destroy: function destroy() {
          this.abort(), delete this.params, delete this.format, GeoGlobe.Protocol.prototype.destroy.apply(this);
        },
        CLASS_NAME: "GeoGlobe.Protocol.Script"
      }), function () {
        var e = GeoGlobe.Protocol.Script,
            t = 0;
        e.registry = {}, e.register = function (i) {
          var r = "c" + ++t;
          return e.registry[r] = function () {
            i.apply(this, arguments);
          }, r;
        }, e.unregister = function (t) {
          delete e.registry[t];
        };
      }(), GeoGlobe.Format = GeoGlobe.Class4OL({
        options: null,
        externalProjection: null,
        internalProjection: null,
        data: null,
        keepData: !1,
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e), this.options = e;
        },
        destroy: function destroy() {},
        read: function read(e) {
          throw new Error("Read not implemented.");
        },
        write: function write(e) {
          throw new Error("Write not implemented.");
        },
        CLASS_NAME: "GeoGlobe.Format"
      }), GeoGlobe.Format.XML = GeoGlobe.Class4OL(GeoGlobe.Format, {
        namespaces: null,
        namespaceAlias: null,
        defaultPrefix: null,
        readers: {},
        writers: {},
        xmldom: null,
        initialize: function initialize(e) {
          for (var t in window.ActiveXObject && (this.xmldom = new ActiveXObject("Microsoft.XMLDOM")), GeoGlobe.Format.prototype.initialize.apply(this, [e]), this.namespaces = GeoGlobe.Util.extend({}, this.namespaces), this.namespaceAlias = {}, this.namespaces) {
            this.namespaceAlias[this.namespaces[t]] = t;
          }
        },
        destroy: function destroy() {
          this.xmldom = null, GeoGlobe.Format.prototype.destroy.apply(this, arguments);
        },
        setNamespace: function setNamespace(e, t) {
          this.namespaces[e] = t, this.namespaceAlias[t] = e;
        },
        read: function read(e) {
          var t = e.indexOf("<");
          t > 0 && (e = e.substring(t));
          var i = GeoGlobe.Util.Try(GeoGlobe.Function.bind(function () {
            var t;
            return (t = window.ActiveXObject && !this.xmldom ? new ActiveXObject("Microsoft.XMLDOM") : this.xmldom).loadXML(e), t;
          }, this), function () {
            return new DOMParser().parseFromString(e, "text/xml");
          }, function () {
            var t = new XMLHttpRequest();
            return t.open("GET", "data:text/xml;charset=utf-8," + encodeURIComponent(e), !1), t.overrideMimeType && t.overrideMimeType("text/xml"), t.send(null), t.responseXML;
          });
          return this.keepData && (this.data = i), i;
        },
        write: function write(e) {
          var t;
          if (e.xml) t = e.xml;else {
            var i = new XMLSerializer();

            if (1 == e.nodeType) {
              var r = document.implementation.createDocument("", "", null);
              r.importNode && (e = r.importNode(e, !0)), r.appendChild(e), t = i.serializeToString(r);
            } else t = i.serializeToString(e);
          }
          return t;
        },
        createElementNS: function createElementNS(e, t) {
          return this.xmldom ? "string" == typeof e ? this.xmldom.createNode(1, t, e) : this.xmldom.createNode(1, t, "") : document.createElementNS(e, t);
        },
        createDocumentFragment: function createDocumentFragment() {
          return this.xmldom ? this.xmldom.createDocumentFragment() : document.createDocumentFragment();
        },
        createTextNode: function createTextNode(e) {
          return "string" != typeof e && (e = String(e)), this.xmldom ? this.xmldom.createTextNode(e) : document.createTextNode(e);
        },
        getElementsByTagNameNS: function getElementsByTagNameNS(e, t, i) {
          var r = [];
          if (e.getElementsByTagNameNS) r = e.getElementsByTagNameNS(t, i);else for (var n, o, a = e.getElementsByTagName("*"), s = 0, x = a.length; s < x; ++s) {
            o = (n = a[s]).prefix ? n.prefix + ":" + i : i, "*" != i && o != n.nodeName || "*" != t && t != n.namespaceURI || r.push(n);
          }
          return r;
        },
        getAttributeNodeNS: function getAttributeNodeNS(e, t, i) {
          var r = null;
          if (e.getAttributeNodeNS) r = e.getAttributeNodeNS(t, i);else for (var n, o = e.attributes, a = 0, s = o.length; a < s; ++a) {
            if ((n = o[a]).namespaceURI == t && (n.prefix ? n.prefix + ":" + i : i) == n.nodeName) {
              r = n;
              break;
            }
          }
          return r;
        },
        getAttributeNS: function getAttributeNS(e, t, i) {
          var r = "";
          if (e.getAttributeNS) r = e.getAttributeNS(t, i) || "";else {
            var n = this.getAttributeNodeNS(e, t, i);
            n && (r = n.nodeValue);
          }
          return r;
        },
        getChildValue: function getChildValue(e, t) {
          var i = t || "";
          if (e) for (var r = e.firstChild; r; r = r.nextSibling) {
            switch (r.nodeType) {
              case 3:
              case 4:
                i += r.nodeValue;
            }
          }
          return i;
        },
        isSimpleContent: function isSimpleContent(e) {
          for (var t = !0, i = e.firstChild; i; i = i.nextSibling) {
            if (1 === i.nodeType) {
              t = !1;
              break;
            }
          }

          return t;
        },
        contentType: function contentType(e) {
          for (var t = !1, i = !1, r = GeoGlobe.Format.XML.CONTENT_TYPE.EMPTY, n = e.firstChild; n; n = n.nextSibling) {
            switch (n.nodeType) {
              case 1:
                i = !0;
                break;

              case 8:
                break;

              default:
                t = !0;
            }

            if (i && t) break;
          }

          if (i && t) r = GeoGlobe.Format.XML.CONTENT_TYPE.MIXED;else {
            if (i) return GeoGlobe.Format.XML.CONTENT_TYPE.COMPLEX;
            if (t) return GeoGlobe.Format.XML.CONTENT_TYPE.SIMPLE;
          }
          return r;
        },
        hasAttributeNS: function hasAttributeNS(e, t, i) {
          return e.hasAttributeNS ? e.hasAttributeNS(t, i) : !!this.getAttributeNodeNS(e, t, i);
        },
        setAttributeNS: function setAttributeNS(e, t, i, r) {
          if (e.setAttributeNS) e.setAttributeNS(t, i, r);else {
            if (!this.xmldom) throw "setAttributeNS not implemented";

            if (t) {
              var n = e.ownerDocument.createNode(2, i, t);
              n.nodeValue = r, e.setAttributeNode(n);
            } else e.setAttribute(i, r);
          }
        },
        createElementNSPlus: function createElementNSPlus(e, t) {
          var i = (t = t || {}).uri || this.namespaces[t.prefix];

          if (!i) {
            var r = e.indexOf(":");
            i = this.namespaces[e.substring(0, r)];
          }

          i || (i = this.namespaces[this.defaultPrefix]);
          var n = this.createElementNS(i, e);
          t.attributes && this.setAttributes(n, t.attributes);
          var o = t.value;
          return null != o && n.appendChild(this.createTextNode(o)), n;
        },
        setAttributes: function setAttributes(e, t) {
          var i, r;

          for (var n in t) {
            null != t[n] && t[n].toString && (i = t[n].toString(), r = this.namespaces[n.substring(0, n.indexOf(":"))] || null, this.setAttributeNS(e, r, n, i));
          }
        },
        readNode: function readNode(e, t) {
          t || (t = {});
          var i = this.readers[e.namespaceURI ? this.namespaceAlias[e.namespaceURI] : this.defaultPrefix];

          if (i) {
            var r = i[e.localName || e.nodeName.split(":").pop()] || i["*"];
            r && r.apply(this, [e, t]);
          }

          return t;
        },
        readChildNodes: function readChildNodes(e, t) {
          t || (t = {});

          for (var i, r = e.childNodes, n = 0, o = r.length; n < o; ++n) {
            1 == (i = r[n]).nodeType && this.readNode(i, t);
          }

          return t;
        },
        writeNode: function writeNode(e, t, i) {
          var r,
              n,
              o = e.indexOf(":");
          o > 0 ? (r = e.substring(0, o), n = e.substring(o + 1)) : (r = i ? this.namespaceAlias[i.namespaceURI] : this.defaultPrefix, n = e);
          var a = this.writers[r][n].apply(this, [t]);
          return i && i.appendChild(a), a;
        },
        getChildEl: function getChildEl(e, t, i) {
          return e && this.getThisOrNextEl(e.firstChild, t, i);
        },
        getNextEl: function getNextEl(e, t, i) {
          return e && this.getThisOrNextEl(e.nextSibling, t, i);
        },
        getThisOrNextEl: function getThisOrNextEl(e, t, i) {
          e: for (var r = e; r; r = r.nextSibling) {
            switch (r.nodeType) {
              case 1:
                if (!(t && t !== (r.localName || r.nodeName.split(":").pop()) || i && i !== r.namespaceURI)) break e;
                r = null;
                break e;

              case 3:
                if (/^\s*$/.test(r.nodeValue)) break;

              case 4:
              case 6:
              case 12:
              case 10:
              case 11:
                r = null;
                break e;
            }
          }

          return r || null;
        },
        lookupNamespaceURI: function lookupNamespaceURI(e, t) {
          var i = null;
          if (e) if (e.lookupNamespaceURI) i = e.lookupNamespaceURI(t);else e: switch (e.nodeType) {
            case 1:
              if (null !== e.namespaceURI && e.prefix === t) {
                i = e.namespaceURI;
                break e;
              }

              var r = e.attributes.length;
              if (r) for (var n, o = 0; o < r; ++o) {
                if ("xmlns" === (n = e.attributes[o]).prefix && n.name === "xmlns:" + t) {
                  i = n.value || null;
                  break e;
                }

                if ("xmlns" === n.name && null === t) {
                  i = n.value || null;
                  break e;
                }
              }
              i = this.lookupNamespaceURI(e.parentNode, t);
              break e;

            case 2:
              i = this.lookupNamespaceURI(e.ownerElement, t);
              break e;

            case 9:
              i = this.lookupNamespaceURI(e.documentElement, t);
              break e;

            case 6:
            case 12:
            case 10:
            case 11:
              break e;

            default:
              i = this.lookupNamespaceURI(e.parentNode, t);
          }
          return i;
        },
        getXMLDoc: function getXMLDoc() {
          return GeoGlobe.Format.XML.document || this.xmldom || (document.implementation && document.implementation.createDocument ? GeoGlobe.Format.XML.document = document.implementation.createDocument("", "", null) : !this.xmldom && window.ActiveXObject && (this.xmldom = new ActiveXObject("Microsoft.XMLDOM"))), GeoGlobe.Format.XML.document || this.xmldom;
        },
        CLASS_NAME: "GeoGlobe.Format.XML"
      }), GeoGlobe.Format.XML.CONTENT_TYPE = {
        EMPTY: 0,
        SIMPLE: 1,
        COMPLEX: 2,
        MIXED: 3
      }, GeoGlobe.Format.XML.lookupNamespaceURI = GeoGlobe.Function.bind(GeoGlobe.Format.XML.prototype.lookupNamespaceURI, GeoGlobe.Format.XML.prototype), GeoGlobe.Format.XML.document = null, GeoGlobe.Format.XML.VersionedOGC = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        defaultVersion: null,
        version: null,
        profile: null,
        allowFallback: !1,
        name: null,
        stringifyOutput: !1,
        parser: null,
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
          var t = this.CLASS_NAME;
          this.name = t.substring(t.lastIndexOf(".") + 1);
        },
        getVersion: function getVersion(e, t) {
          var i;
          return e ? (i = this.version) || (i = e.getAttribute("version")) || (i = this.defaultVersion) : i = t && t.version || this.version || this.defaultVersion, i;
        },
        getParser: function getParser(e) {
          e = e || this.defaultVersion;
          var t = this.profile ? "_" + this.profile : "";

          if (!this.parser || this.parser.VERSION != e) {
            var i = GeoGlobe.Format[this.name]["v" + e.replace(/\./g, "_") + t];
            if (!i && ("" !== t && this.allowFallback && (t = "", i = GeoGlobe.Format[this.name]["v" + e.replace(/\./g, "_")]), !i)) throw "Can't find a " + this.name + " parser for version " + e + t;
            this.parser = new i(this.options);
          }

          return this.parser;
        },
        write: function write(e, t) {
          var i = this.getVersion(null, t);
          this.parser = this.getParser(i);
          var r = this.parser.write(e, t);
          return !1 === this.stringifyOutput ? r : GeoGlobe.Format.XML.prototype.write.apply(this, [r]);
        },
        read: function read(e, t) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));
          var i = e.documentElement,
              r = this.getVersion(i);
          this.parser = this.getParser(r);
          var n = this.parser.read(e, t),
              o = this.parser.errorProperty || null;

          if (null !== o && void 0 === n[o]) {
            var a = new GeoGlobe.Format.OGCExceptionReport();
            n.error = a.read(e);
          }

          return n.version = r, n;
        },
        CLASS_NAME: "GeoGlobe.Format.XML.VersionedOGC"
      }), GeoGlobe.Format.GML = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        featureNS: "http://mapserver.gis.umn.edu/mapserver",
        featurePrefix: "feature",
        featureName: "featureMember",
        layerName: "features",
        geometryName: "geometry",
        collectionName: "FeatureCollection",
        gmlns: "http://www.opengis.net/gml",
        extractAttributes: !0,
        xy: !0,
        initialize: function initialize(e) {
          this.regExes = {
            trimSpace: /^\s*|\s*$/g,
            removeSpace: /\s*/g,
            splitSpace: /\s+/,
            trimComma: /\s*,\s*/g
          }, GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));

          for (var t = this.getElementsByTagNameNS(e.documentElement, this.gmlns, this.featureName), i = [], r = 0; r < t.length; r++) {
            var n = this.parseFeature(t[r]);
            n && i.push(n);
          }

          return i;
        },
        parseFeature: function parseFeature(e) {
          for (var t, i, r, n, o, a = ["MultiPolygon", "Polygon", "MultiLineString", "LineString", "MultiPoint", "Point", "Envelope"], s = 0; s < a.length; ++s) {
            if (t = a[s], (i = this.getElementsByTagNameNS(e, this.gmlns, t)).length > 0) {
              if (!(n = this.parseGeometry[t.toLowerCase()])) throw new TypeError("Unsupported geometry type: " + t);
              r = n.apply(this, [i[0]]), this.internalProjection && this.externalProjection && r.transform(this.externalProjection, this.internalProjection);
              break;
            }
          }

          var x,
              l = this.getElementsByTagNameNS(e, this.gmlns, "Box");

          for (s = 0; s < l.length; ++s) {
            var c = l[s],
                u = this.parseGeometry.box.apply(this, [c]),
                h = c.parentNode;
            "boundedBy" === (h.localName || h.nodeName.split(":").pop()) ? o = u : r = u.toGeometry();
          }

          this.extractAttributes && (x = this.parseAttributes(e));
          var f = new GeoGlobe.Feature(r, x);
          f.bounds = o, f.gml = {
            featureType: e.firstChild.nodeName.split(":")[1],
            featureNS: e.firstChild.namespaceURI,
            featureNSPrefix: e.firstChild.prefix
          };

          for (var d, g = e.firstChild; g && (1 != g.nodeType || !(d = g.getAttribute("fid") || g.getAttribute("id")));) {
            g = g.nextSibling;
          }

          return f.fid = d, f;
        },
        parseGeometry: {
          point: function point(e) {
            var t,
                i = [];

            if ((t = this.getElementsByTagNameNS(e, this.gmlns, "pos")).length > 0 && (i = t[0].firstChild.nodeValue.replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace)), 0 == i.length && (t = this.getElementsByTagNameNS(e, this.gmlns, "coordinates")).length > 0 && (i = t[0].firstChild.nodeValue.replace(this.regExes.removeSpace, "").split(",")), 0 == i.length && (t = this.getElementsByTagNameNS(e, this.gmlns, "coord")).length > 0) {
              var r = this.getElementsByTagNameNS(t[0], this.gmlns, "X"),
                  n = this.getElementsByTagNameNS(t[0], this.gmlns, "Y");
              r.length > 0 && n.length > 0 && (i = [r[0].firstChild.nodeValue, n[0].firstChild.nodeValue]);
            }

            return 2 == i.length && (i[2] = null), this.xy ? new GeoGlobe.Geometry.Point(i[0], i[1], i[2]) : new GeoGlobe.Geometry.Point(i[1], i[0], i[2]);
          },
          multipoint: function multipoint(e) {
            var t = this.getElementsByTagNameNS(e, this.gmlns, "Point"),
                i = [];
            if (t.length > 0) for (var r, n = 0; n < t.length; ++n) {
              (r = this.parseGeometry.point.apply(this, [t[n]])) && i.push(r);
            }
            return new GeoGlobe.Geometry.MultiPoint(i);
          },
          linestring: function linestring(e, t) {
            var i,
                r = [],
                n = [];

            if ((i = this.getElementsByTagNameNS(e, this.gmlns, "posList")).length > 0) {
              r = this.getChildValue(i[0]).replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace);

              for (var o, a, s, x, l = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[0].getAttribute("dimension")), c = 0; c < r.length / l; ++c) {
                a = r[o = c * l], s = r[o + 1], x = 2 == l ? null : r[o + 2], this.xy ? n.push(new GeoGlobe.Geometry.Point(a, s, x)) : n.push(new GeoGlobe.Geometry.Point(s, a, x));
              }
            }

            if (0 == r.length && (i = this.getElementsByTagNameNS(e, this.gmlns, "coordinates")).length > 0) {
              var u = this.getChildValue(i[0]).replace(this.regExes.trimSpace, "").replace(this.regExes.trimComma, ",").split(this.regExes.splitSpace);

              for (c = 0; c < u.length; ++c) {
                2 == (r = u[c].split(",")).length && (r[2] = null), this.xy ? n.push(new GeoGlobe.Geometry.Point(r[0], r[1], r[2])) : n.push(new GeoGlobe.Geometry.Point(r[1], r[0], r[2]));
              }
            }

            var h = null;
            return 0 != n.length && (h = t ? new GeoGlobe.Geometry.LinearRing(n) : new GeoGlobe.Geometry.LineString(n)), h;
          },
          multilinestring: function multilinestring(e) {
            var t = this.getElementsByTagNameNS(e, this.gmlns, "LineString"),
                i = [];
            if (t.length > 0) for (var r, n = 0; n < t.length; ++n) {
              (r = this.parseGeometry.linestring.apply(this, [t[n]])) && i.push(r);
            }
            return new GeoGlobe.Geometry.MultiLineString(i);
          },
          polygon: function polygon(e) {
            var t = this.getElementsByTagNameNS(e, this.gmlns, "LinearRing"),
                i = [];
            if (t.length > 0) for (var r, n = 0; n < t.length; ++n) {
              (r = this.parseGeometry.linestring.apply(this, [t[n], !0])) && i.push(r);
            }
            return new GeoGlobe.Geometry.Polygon(i);
          },
          multipolygon: function multipolygon(e) {
            var t = this.getElementsByTagNameNS(e, this.gmlns, "Polygon"),
                i = [];
            if (t.length > 0) for (var r, n = 0; n < t.length; ++n) {
              (r = this.parseGeometry.polygon.apply(this, [t[n]])) && i.push(r);
            }
            return new GeoGlobe.Geometry.MultiPolygon(i);
          },
          envelope: function envelope(e) {
            var t,
                i = [],
                r = this.getElementsByTagNameNS(e, this.gmlns, "lowerCorner");

            if (r.length > 0) {
              var n = [];
              if (r.length > 0 && (n = r[0].firstChild.nodeValue.replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace)), 2 == n.length && (n[2] = null), this.xy) var o = new GeoGlobe.Geometry.Point(n[0], n[1], n[2]);else o = new GeoGlobe.Geometry.Point(n[1], n[0], n[2]);
            }

            var a = this.getElementsByTagNameNS(e, this.gmlns, "upperCorner");
            if (a.length > 0) if (n = [], a.length > 0 && (n = a[0].firstChild.nodeValue.replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace)), 2 == n.length && (n[2] = null), this.xy) var s = new GeoGlobe.Geometry.Point(n[0], n[1], n[2]);else s = new GeoGlobe.Geometry.Point(n[1], n[0], n[2]);

            if (o && s) {
              i.push(new GeoGlobe.Geometry.Point(o.x, o.y)), i.push(new GeoGlobe.Geometry.Point(s.x, o.y)), i.push(new GeoGlobe.Geometry.Point(s.x, s.y)), i.push(new GeoGlobe.Geometry.Point(o.x, s.y)), i.push(new GeoGlobe.Geometry.Point(o.x, o.y));
              var x = new GeoGlobe.Geometry.LinearRing(i);
              t = new GeoGlobe.Geometry.Polygon([x]);
            }

            return t;
          },
          box: function box(e) {
            var t,
                i = this.getElementsByTagNameNS(e, this.gmlns, "coordinates"),
                r = null,
                n = null;

            if (i.length > 0 && 2 == (t = i[0].firstChild.nodeValue.split(" ")).length && (r = t[0].split(","), n = t[1].split(",")), null !== r && null !== n) {
              var o = new GeoGlobe.LngLat(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(r[0]), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(r[1])),
                  a = new GeoGlobe.LngLat(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(n[0]), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(n[1]));
              return new GeoGlobe.LngLatBounds(o, a);
            }
          }
        },
        parseAttributes: function parseAttributes(e) {
          for (var t, i, r, n, o, a, s, x = {}, l = e.firstChild; l;) {
            if (1 == l.nodeType) {
              for (t = l.childNodes, i = 0; i < t.length; ++i) {
                1 == (r = t[i]).nodeType && (1 == (n = r.childNodes).length ? 3 != (o = n[0]).nodeType && 4 != o.nodeType || (a = r.prefix ? r.nodeName.split(":")[1] : r.nodeName, s = o.nodeValue.replace(this.regExes.trimSpace, ""), x[a] = s) : x[r.nodeName.split(":").pop()] = null);
              }

              break;
            }

            l = l.nextSibling;
          }

          return x;
        },
        write: function write(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = this.createElementNS("http://www.opengis.net/wfs", "wfs:" + this.collectionName), i = 0; i < e.length; i++) {
            t.appendChild(this.createFeatureXML(e[i]));
          }

          return GeoGlobe.Format.XML.prototype.write.apply(this, [t]);
        },
        createFeatureXML: function createFeatureXML(e) {
          var t = e.geometry,
              i = this.buildGeometryNode(t),
              r = this.createElementNS(this.featureNS, this.featurePrefix + ":" + this.geometryName);
          r.appendChild(i);
          var n = this.createElementNS(this.gmlns, "gml:" + this.featureName),
              o = this.createElementNS(this.featureNS, this.featurePrefix + ":" + this.layerName),
              a = e.fid || e.id;

          for (var s in o.setAttribute("fid", a), o.appendChild(r), e.attributes) {
            var x = this.createTextNode(e.attributes[s]),
                l = s.substring(s.lastIndexOf(":") + 1),
                c = this.createElementNS(this.featureNS, this.featurePrefix + ":" + l);
            c.appendChild(x), o.appendChild(c);
          }

          return n.appendChild(o), n;
        },
        buildGeometryNode: function buildGeometryNode(e) {
          this.externalProjection && this.internalProjection && (e = e.clone()).transform(this.internalProjection, this.externalProjection);
          var t = e.CLASS_NAME,
              i = t.substring(t.lastIndexOf(".") + 1);
          return this.buildGeometry[i.toLowerCase()].apply(this, [e]);
        },
        buildGeometry: {
          point: function point(e) {
            var t = this.createElementNS(this.gmlns, "gml:Point");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          multipoint: function multipoint(e) {
            for (var t, i, r = this.createElementNS(this.gmlns, "gml:MultiPoint"), n = e.components, o = 0; o < n.length; o++) {
              t = this.createElementNS(this.gmlns, "gml:pointMember"), i = this.buildGeometry.point.apply(this, [n[o]]), t.appendChild(i), r.appendChild(t);
            }

            return r;
          },
          linestring: function linestring(e) {
            var t = this.createElementNS(this.gmlns, "gml:LineString");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          multilinestring: function multilinestring(e) {
            for (var t, i, r = this.createElementNS(this.gmlns, "gml:MultiLineString"), n = e.components, o = 0; o < n.length; ++o) {
              t = this.createElementNS(this.gmlns, "gml:lineStringMember"), i = this.buildGeometry.linestring.apply(this, [n[o]]), t.appendChild(i), r.appendChild(t);
            }

            return r;
          },
          linearring: function linearring(e) {
            var t = this.createElementNS(this.gmlns, "gml:LinearRing");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          polygon: function polygon(e) {
            for (var t, i, r, n = this.createElementNS(this.gmlns, "gml:Polygon"), o = e.components, a = 0; a < o.length; ++a) {
              r = 0 == a ? "outerBoundaryIs" : "innerBoundaryIs", t = this.createElementNS(this.gmlns, "gml:" + r), i = this.buildGeometry.linearring.apply(this, [o[a]]), t.appendChild(i), n.appendChild(t);
            }

            return n;
          },
          multipolygon: function multipolygon(e) {
            for (var t, i, r = this.createElementNS(this.gmlns, "gml:MultiPolygon"), n = e.components, o = 0; o < n.length; ++o) {
              t = this.createElementNS(this.gmlns, "gml:polygonMember"), i = this.buildGeometry.polygon.apply(this, [n[o]]), t.appendChild(i), r.appendChild(t);
            }

            return r;
          },
          lnglatbounds: function lnglatbounds(e) {
            var t = this.createElementNS(this.gmlns, "gml:Box");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          }
        },
        buildCoordinatesNode: function buildCoordinatesNode(e) {
          var t = this.createElementNS(this.gmlns, "gml:coordinates");
          t.setAttribute("decimal", "."), t.setAttribute("cs", ","), t.setAttribute("ts", " ");
          var i = [];
          if (e instanceof GeoGlobe.LngLatBounds) i.push(e.getWest() + "," + e.getSouth()), i.push(e.getEast() + "," + e.getNorth());else for (var r = e.components ? e.components : [e], n = 0; n < r.length; n++) {
            i.push(r[n].x + "," + r[n].y);
          }
          var o = this.createTextNode(i.join(" "));
          return t.appendChild(o), t;
        },
        CLASS_NAME: "GeoGlobe.Format.GML"
      }), GeoGlobe.Format.GML || (GeoGlobe.Format.GML = {}), GeoGlobe.Format.GML.Base = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          gml: "http://www.opengis.net/gml",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance",
          wfs: "http://www.opengis.net/wfs"
        },
        defaultPrefix: "gml",
        schemaLocation: null,
        featureType: null,
        featureNS: null,
        geometryName: "geometry",
        extractAttributes: !0,
        srsName: null,
        xy: !0,
        geometryTypes: null,
        singleFeatureType: null,
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g,
          featureMember: /^(.*:)?featureMembers?$/
        },
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]), this.setGeometryTypes(), e && e.featureNS && this.setNamespace("feature", e.featureNS), this.singleFeatureType = !e || "string" == typeof e.featureType;
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t,
              i = [];
          if (this.readNode(e, {
            features: i
          }, !0), 0 == i.length) if ((t = this.getElementsByTagNameNS(e, this.namespaces.gml, "featureMember")).length) for (var r = 0, n = t.length; r < n; ++r) {
            this.readNode(t[r], {
              features: i
            }, !0);
          } else (t = this.getElementsByTagNameNS(e, this.namespaces.gml, "featureMembers")).length && this.readNode(t[0], {
            features: i
          }, !0);
          return i;
        },
        readNode: function readNode(e, t, i) {
          return !0 === i && !0 === this.autoConfig && (this.featureType = null, delete this.namespaceAlias[this.featureNS], delete this.namespaces.feature, this.featureNS = null), this.featureNS || e.prefix in this.namespaces || e.parentNode.namespaceURI != this.namespaces.gml || !this.regExes.featureMember.test(e.parentNode.nodeName) || (this.featureType = e.nodeName.split(":").pop(), this.setNamespace("feature", e.namespaceURI), this.featureNS = e.namespaceURI, this.autoConfig = !0), GeoGlobe.Format.XML.prototype.readNode.apply(this, [e, t]);
        },
        readers: {
          gml: {
            _inherit: function _inherit(e, t, i) {},
            featureMember: function featureMember(e, t) {
              this.readChildNodes(e, t);
            },
            featureMembers: function featureMembers(e, t) {
              this.readChildNodes(e, t);
            },
            name: function name(e, t) {
              t.name = this.getChildValue(e);
            },
            boundedBy: function boundedBy(e, t) {
              var i = {};
              this.readChildNodes(e, i), i.components && i.components.length > 0 && (t.bounds = i.components[0]);
            },
            Point: function Point(e, t) {
              var i = {
                points: []
              };
              this.readChildNodes(e, i), t.components || (t.components = []), t.components.push(i.points[0]);
            },
            coordinates: function coordinates(e, t) {
              for (var i, r = this.getChildValue(e).replace(this.regExes.trimSpace, ""), n = (r = r.replace(this.regExes.trimComma, ",")).split(this.regExes.splitSpace), o = n.length, a = new Array(o), s = 0; s < o; ++s) {
                i = n[s].split(","), this.xy ? a[s] = new GeoGlobe.Geometry.Point(i[0], i[1], i[2]) : a[s] = new GeoGlobe.Geometry.Point(i[1], i[0], i[2]);
              }

              t.points = a;
            },
            coord: function coord(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.points || (t.points = []), t.points.push(new GeoGlobe.Geometry.Point(i.x, i.y, i.z));
            },
            X: function X(e, t) {
              t.x = this.getChildValue(e);
            },
            Y: function Y(e, t) {
              t.y = this.getChildValue(e);
            },
            Z: function Z(e, t) {
              t.z = this.getChildValue(e);
            },
            MultiPoint: function MultiPoint(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components = [new GeoGlobe.Geometry.MultiPoint(i.components)];
            },
            pointMember: function pointMember(e, t) {
              this.readChildNodes(e, t);
            },
            LineString: function LineString(e, t) {
              var i = {};
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components || (t.components = []), t.components.push(new GeoGlobe.Geometry.LineString(i.points));
            },
            MultiLineString: function MultiLineString(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components = [new GeoGlobe.Geometry.MultiLineString(i.components)];
            },
            lineStringMember: function lineStringMember(e, t) {
              this.readChildNodes(e, t);
            },
            Polygon: function Polygon(e, t) {
              var i = {
                outer: null,
                inner: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), i.inner.unshift(i.outer), t.components || (t.components = []), t.components.push(new GeoGlobe.Geometry.Polygon(i.inner));
            },
            LinearRing: function LinearRing(e, t) {
              var i = {};
              this.readers.gml._inherit.apply(this, [e, i]), this.readChildNodes(e, i), t.components = [new GeoGlobe.Geometry.LinearRing(i.points)];
            },
            MultiPolygon: function MultiPolygon(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components = [new GeoGlobe.Geometry.MultiPolygon(i.components)];
            },
            polygonMember: function polygonMember(e, t) {
              this.readChildNodes(e, t);
            },
            GeometryCollection: function GeometryCollection(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components = [new GeoGlobe.Geometry.Collection(i.components)];
            },
            geometryMember: function geometryMember(e, t) {
              this.readChildNodes(e, t);
            }
          },
          feature: {
            "*": function _(e, t) {
              var i,
                  r = e.localName || e.nodeName.split(":").pop();
              if (t.features) {
                if (this.singleFeatureType || -1 === GeoGlobe.Util.indexOf(this.featureType, r)) {
                  if (r === this.featureType) i = "_typeName";else if (GeoGlobe.Util.isArray(this.featureType_)) for (var n = 0; n < this.featureType_.length; n++) {
                    if (this.featureType_[n] === r) {
                      i = "_typeName";
                      break;
                    }
                  }
                } else i = "_typeName";
              } else 0 == e.childNodes.length || 1 == e.childNodes.length && 3 == e.firstChild.nodeType ? this.extractAttributes && (i = "_attribute") : i = "_geometry";
              i && this.readers.feature[i].apply(this, [e, t]);
            },
            _typeName: function _typeName(e, t) {
              var i = {
                components: [],
                attributes: {}
              };
              this.readChildNodes(e, i), i.name && (i.attributes.name = i.name);
              var r = new GeoGlobe.Feature(i.components[0], i.attributes);
              this.singleFeatureType || (r.type = e.nodeName.split(":").pop(), r.namespace = e.namespaceURI);
              var n = e.getAttribute("fid") || this.getAttributeNS(e, this.namespaces.gml, "id");
              n && (r.fid = n), this.internalProjection && this.externalProjection && r.geometry && r.geometry.transform(this.externalProjection, this.internalProjection), i.bounds && (r.bounds = i.bounds), t.features.push(r);
            },
            _geometry: function _geometry(e, t) {
              this.geometryName || (this.geometryName = e.nodeName.split(":").pop()), this.readChildNodes(e, t);
            },
            _attribute: function _attribute(e, t) {
              var i = e.localName || e.nodeName.split(":").pop(),
                  r = this.getChildValue(e);
              t.attributes[i] = r;
            }
          },
          wfs: {
            FeatureCollection: function FeatureCollection(e, t) {
              this.readChildNodes(e, t);
            }
          }
        },
        write: function write(e) {
          var t;
          t = GeoGlobe.Util.isArray(e) ? "featureMembers" : "featureMember";
          var i = this.writeNode("gml:" + t, e);
          return this.setAttributeNS(i, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation), GeoGlobe.Format.XML.prototype.write.apply(this, [i]);
        },
        writers: {
          gml: {
            featureMember: function featureMember(e) {
              var t = this.createElementNSPlus("gml:featureMember");
              return this.writeNode("feature:_typeName", e, t), t;
            },
            MultiPoint: function MultiPoint(e) {
              for (var t = this.createElementNSPlus("gml:MultiPoint"), i = e.components || [e], r = 0, n = i.length; r < n; ++r) {
                this.writeNode("pointMember", i[r], t);
              }

              return t;
            },
            pointMember: function pointMember(e) {
              var t = this.createElementNSPlus("gml:pointMember");
              return this.writeNode("Point", e, t), t;
            },
            MultiLineString: function MultiLineString(e) {
              for (var t = this.createElementNSPlus("gml:MultiLineString"), i = e.components || [e], r = 0, n = i.length; r < n; ++r) {
                this.writeNode("lineStringMember", i[r], t);
              }

              return t;
            },
            lineStringMember: function lineStringMember(e) {
              var t = this.createElementNSPlus("gml:lineStringMember");
              return this.writeNode("LineString", e, t), t;
            },
            MultiPolygon: function MultiPolygon(e) {
              for (var t = this.createElementNSPlus("gml:MultiPolygon"), i = e.components || [e], r = 0, n = i.length; r < n; ++r) {
                this.writeNode("polygonMember", i[r], t);
              }

              return t;
            },
            polygonMember: function polygonMember(e) {
              var t = this.createElementNSPlus("gml:polygonMember");
              return this.writeNode("Polygon", e, t), t;
            },
            GeometryCollection: function GeometryCollection(e) {
              for (var t = this.createElementNSPlus("gml:GeometryCollection"), i = 0, r = e.components.length; i < r; ++i) {
                this.writeNode("geometryMember", e.components[i], t);
              }

              return t;
            },
            geometryMember: function geometryMember(e) {
              var t = this.createElementNSPlus("gml:geometryMember"),
                  i = this.writeNode("feature:_geometry", e);
              return t.appendChild(i.firstChild), t;
            }
          },
          feature: {
            _typeName: function _typeName(e) {
              var t = this.createElementNSPlus("feature:" + this.featureType, {
                attributes: {
                  fid: e.fid
                }
              });

              for (var i in e.geometry && this.writeNode("feature:_geometry", e.geometry, t), e.attributes) {
                var r = e.attributes[i];
                null != r && this.writeNode("feature:_attribute", {
                  name: i,
                  value: r
                }, t);
              }

              return t;
            },
            _geometry: function _geometry(e) {
              this.externalProjection && this.internalProjection && (e = e.clone().transform(this.internalProjection, this.externalProjection));
              var t = this.createElementNSPlus("feature:" + this.geometryName),
                  i = this.geometryTypes[e.CLASS_NAME],
                  r = this.writeNode("gml:" + i, e, t);
              return this.srsName && r.setAttribute("srsName", this.srsName), t;
            },
            _attribute: function _attribute(e) {
              return this.createElementNSPlus("feature:" + e.name, {
                value: e.value
              });
            }
          },
          wfs: {
            FeatureCollection: function FeatureCollection(e) {
              for (var t = this.createElementNSPlus("wfs:FeatureCollection"), i = 0, r = e.length; i < r; ++i) {
                this.writeNode("gml:featureMember", e[i], t);
              }

              return t;
            }
          }
        },
        setGeometryTypes: function setGeometryTypes() {
          this.geometryTypes = {
            "GeoGlobe.Geometry.Point": "Point",
            "GeoGlobe.Geometry.MultiPoint": "MultiPoint",
            "GeoGlobe.Geometry.LineString": "LineString",
            "GeoGlobe.Geometry.MultiLineString": "MultiLineString",
            "GeoGlobe.Geometry.Polygon": "Polygon",
            "GeoGlobe.Geometry.MultiPolygon": "MultiPolygon",
            "GeoGlobe.Geometry.Collection": "GeometryCollection"
          };
        },
        setFeatureType_: function setFeatureType_(e) {
          this.featureType_ = e;
        },
        CLASS_NAME: "GeoGlobe.Format.GML.Base"
      }), GeoGlobe.Format.GML.v2 = GeoGlobe.Class4OL(GeoGlobe.Format.GML.Base, {
        schemaLocation: "http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd",
        initialize: function initialize(e) {
          GeoGlobe.Format.GML.Base.prototype.initialize.apply(this, [e]);
        },
        readers: {
          gml: GeoGlobe.Util.applyDefaults({
            outerBoundaryIs: function outerBoundaryIs(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.outer = i.components[0];
            },
            innerBoundaryIs: function innerBoundaryIs(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.inner.push(i.components[0]);
            },
            Box: function Box(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.components || (t.components = []);
              var r = i.points[0],
                  n = i.points[1],
                  o = new GeoGlobe.LngLat(r.x, r.y),
                  a = new GeoGlobe.LngLat(n.x, n.y);
              t.components.push(new GeoGlobe.LngLatBounds(o, a));
            }
          }, GeoGlobe.Format.GML.Base.prototype.readers.gml),
          feature: GeoGlobe.Format.GML.Base.prototype.readers.feature,
          wfs: GeoGlobe.Format.GML.Base.prototype.readers.wfs
        },
        write: function write(e) {
          var t;
          t = GeoGlobe.Util.isArray(e) ? "wfs:FeatureCollection" : "gml:featureMember";
          var i = this.writeNode(t, e);
          return this.setAttributeNS(i, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation), GeoGlobe.Format.XML.prototype.write.apply(this, [i]);
        },
        writers: {
          gml: GeoGlobe.Util.applyDefaults({
            Point: function Point(e) {
              var t = this.createElementNSPlus("gml:Point");
              return this.writeNode("coordinates", [e], t), t;
            },
            coordinates: function coordinates(e) {
              for (var t, i = e.length, r = new Array(i), n = 0; n < i; ++n) {
                t = e[n], this.xy ? r[n] = t.x + "," + t.y : r[n] = t.y + "," + t.x, null != t.z && (r[n] += "," + t.z);
              }

              return this.createElementNSPlus("gml:coordinates", {
                attributes: {
                  decimal: ".",
                  cs: ",",
                  ts: " "
                },
                value: 1 == i ? r[0] : r.join(" ")
              });
            },
            LineString: function LineString(e) {
              var t = this.createElementNSPlus("gml:LineString");
              return this.writeNode("coordinates", e.components, t), t;
            },
            Polygon: function Polygon(e) {
              var t = this.createElementNSPlus("gml:Polygon");
              this.writeNode("outerBoundaryIs", e.components[0], t);

              for (var i = 1; i < e.components.length; ++i) {
                this.writeNode("innerBoundaryIs", e.components[i], t);
              }

              return t;
            },
            outerBoundaryIs: function outerBoundaryIs(e) {
              var t = this.createElementNSPlus("gml:outerBoundaryIs");
              return this.writeNode("LinearRing", e, t), t;
            },
            innerBoundaryIs: function innerBoundaryIs(e) {
              var t = this.createElementNSPlus("gml:innerBoundaryIs");
              return this.writeNode("LinearRing", e, t), t;
            },
            LinearRing: function LinearRing(e) {
              var t = this.createElementNSPlus("gml:LinearRing");
              return this.writeNode("coordinates", e.components, t), t;
            },
            Box: function Box(e) {
              var t = this.createElementNSPlus("gml:Box");
              return this.writeNode("coordinates", [{
                x: e._sw.lng,
                y: e._sw.lat
              }, {
                x: e._ne.lng,
                y: e._ne.lat
              }], t), this.srsName && t.setAttribute("srsName", this.srsName), t;
            }
          }, GeoGlobe.Format.GML.Base.prototype.writers.gml),
          feature: GeoGlobe.Format.GML.Base.prototype.writers.feature,
          wfs: GeoGlobe.Format.GML.Base.prototype.writers.wfs
        },
        CLASS_NAME: "GeoGlobe.Format.GML.v2"
      }), GeoGlobe.Format.GML.v3 = GeoGlobe.Class4OL(GeoGlobe.Format.GML.Base, {
        schemaLocation: "http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd",
        curve: !1,
        multiCurve: !0,
        surface: !1,
        multiSurface: !0,
        initialize: function initialize(e) {
          GeoGlobe.Format.GML.Base.prototype.initialize.apply(this, [e]);
        },
        readers: {
          gml: GeoGlobe.Util.applyDefaults({
            _inherit: function _inherit(e, t, i) {
              var r = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("srsDimension"), 10) || i && i.srsDimension;
              r && (t.srsDimension = r);
            },
            featureMembers: function featureMembers(e, t) {
              this.readChildNodes(e, t);
            },
            Curve: function Curve(e, t) {
              var i = {
                points: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), t.components || (t.components = []), t.components.push(new GeoGlobe.Geometry.LineString(i.points));
            },
            segments: function segments(e, t) {
              this.readChildNodes(e, t);
            },
            LineStringSegment: function LineStringSegment(e, t) {
              var i = {};
              this.readChildNodes(e, i), i.points && Array.prototype.push.apply(t.points, i.points);
            },
            pos: function pos(e, t) {
              var i,
                  r = this.getChildValue(e).replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace);
              i = this.xy ? new GeoGlobe.Geometry.Point(r[0], r[1], r[2]) : new GeoGlobe.Geometry.Point(r[1], r[0], r[2]), t.points = [i];
            },
            posList: function posList(e, t) {
              for (var i, r, n, o = this.getChildValue(e).replace(this.regExes.trimSpace, "").split(this.regExes.splitSpace), a = t.srsDimension || _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("srsDimension") || e.getAttribute("dimension"), 10) || 2, s = o.length / a, x = new Array(s), l = 0, c = o.length; l < c; l += a) {
                i = o[l], r = o[l + 1], n = 2 == a ? void 0 : o[l + 2], this.xy ? x[l / a] = new GeoGlobe.Geometry.Point(i, r, n) : x[l / a] = new GeoGlobe.Geometry.Point(r, i, n);
              }

              t.points = x;
            },
            Surface: function Surface(e, t) {
              this.readChildNodes(e, t);
            },
            patches: function patches(e, t) {
              this.readChildNodes(e, t);
            },
            PolygonPatch: function PolygonPatch(e, t) {
              this.readers.gml.Polygon.apply(this, [e, t]);
            },
            exterior: function exterior(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.outer = i.components[0];
            },
            interior: function interior(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.inner.push(i.components[0]);
            },
            MultiCurve: function MultiCurve(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), i.components.length > 0 && (t.components = [new GeoGlobe.Geometry.MultiLineString(i.components)]);
            },
            curveMember: function curveMember(e, t) {
              this.readChildNodes(e, t);
            },
            MultiSurface: function MultiSurface(e, t) {
              var i = {
                components: []
              };
              this.readers.gml._inherit.apply(this, [e, i, t]), this.readChildNodes(e, i), i.components.length > 0 && (t.components = [new GeoGlobe.Geometry.MultiPolygon(i.components)]);
            },
            surfaceMember: function surfaceMember(e, t) {
              this.readChildNodes(e, t);
            },
            surfaceMembers: function surfaceMembers(e, t) {
              this.readChildNodes(e, t);
            },
            pointMembers: function pointMembers(e, t) {
              this.readChildNodes(e, t);
            },
            lineStringMembers: function lineStringMembers(e, t) {
              this.readChildNodes(e, t);
            },
            polygonMembers: function polygonMembers(e, t) {
              this.readChildNodes(e, t);
            },
            geometryMembers: function geometryMembers(e, t) {
              this.readChildNodes(e, t);
            },
            Envelope: function Envelope(e, t) {
              var i = {
                points: new Array(2)
              };
              this.readChildNodes(e, i), t.components || (t.components = []);
              var r = i.points[0],
                  n = i.points[1],
                  o = new GeoGlobe.LngLat(r.x, r.y),
                  a = new GeoGlobe.LngLat(n.x, n.y);
              t.components.push(new GeoGlobe.LngLatBounds(o, a));
            },
            lowerCorner: function lowerCorner(e, t) {
              var i = {};
              this.readers.gml.pos.apply(this, [e, i]), t.points[0] = i.points[0];
            },
            upperCorner: function upperCorner(e, t) {
              var i = {};
              this.readers.gml.pos.apply(this, [e, i]), t.points[1] = i.points[0];
            }
          }, GeoGlobe.Format.GML.Base.prototype.readers.gml),
          feature: GeoGlobe.Format.GML.Base.prototype.readers.feature,
          wfs: GeoGlobe.Format.GML.Base.prototype.readers.wfs
        },
        write: function write(e) {
          var t;
          t = GeoGlobe.Util.isArray(e) ? "featureMembers" : "featureMember";
          var i = this.writeNode("gml:" + t, e);
          return this.setAttributeNS(i, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation), GeoGlobe.Format.XML.prototype.write.apply(this, [i]);
        },
        writers: {
          gml: GeoGlobe.Util.applyDefaults({
            featureMembers: function featureMembers(e) {
              for (var t = this.createElementNSPlus("gml:featureMembers"), i = 0, r = e.length; i < r; ++i) {
                this.writeNode("feature:_typeName", e[i], t);
              }

              return t;
            },
            Point: function Point(e) {
              var t = this.createElementNSPlus("gml:Point");
              return this.writeNode("pos", e, t), t;
            },
            pos: function pos(e) {
              var t = this.xy ? e.x + " " + e.y : e.y + " " + e.x;
              return this.createElementNSPlus("gml:pos", {
                value: t
              });
            },
            LineString: function LineString(e) {
              var t = this.createElementNSPlus("gml:LineString");
              return this.writeNode("posList", e.components, t), t;
            },
            Curve: function Curve(e) {
              var t = this.createElementNSPlus("gml:Curve");
              return this.writeNode("segments", e, t), t;
            },
            segments: function segments(e) {
              var t = this.createElementNSPlus("gml:segments");
              return this.writeNode("LineStringSegment", e, t), t;
            },
            LineStringSegment: function LineStringSegment(e) {
              var t = this.createElementNSPlus("gml:LineStringSegment");
              return this.writeNode("posList", e.components, t), t;
            },
            posList: function posList(e) {
              for (var t, i = e.length, r = new Array(i), n = 0; n < i; ++n) {
                t = e[n], this.xy ? r[n] = t.x + " " + t.y : r[n] = t.y + " " + t.x;
              }

              return this.createElementNSPlus("gml:posList", {
                value: r.join(" ")
              });
            },
            Surface: function Surface(e) {
              var t = this.createElementNSPlus("gml:Surface");
              return this.writeNode("patches", e, t), t;
            },
            patches: function patches(e) {
              var t = this.createElementNSPlus("gml:patches");
              return this.writeNode("PolygonPatch", e, t), t;
            },
            PolygonPatch: function PolygonPatch(e) {
              var t = this.createElementNSPlus("gml:PolygonPatch", {
                attributes: {
                  interpolation: "planar"
                }
              });
              this.writeNode("exterior", e.components[0], t);

              for (var i = 1, r = e.components.length; i < r; ++i) {
                this.writeNode("interior", e.components[i], t);
              }

              return t;
            },
            Polygon: function Polygon(e) {
              var t = this.createElementNSPlus("gml:Polygon");
              this.writeNode("exterior", e.components[0], t);

              for (var i = 1, r = e.components.length; i < r; ++i) {
                this.writeNode("interior", e.components[i], t);
              }

              return t;
            },
            exterior: function exterior(e) {
              var t = this.createElementNSPlus("gml:exterior");
              return this.writeNode("LinearRing", e, t), t;
            },
            interior: function interior(e) {
              var t = this.createElementNSPlus("gml:interior");
              return this.writeNode("LinearRing", e, t), t;
            },
            LinearRing: function LinearRing(e) {
              var t = this.createElementNSPlus("gml:LinearRing");
              return this.writeNode("posList", e.components, t), t;
            },
            MultiCurve: function MultiCurve(e) {
              for (var t = this.createElementNSPlus("gml:MultiCurve"), i = e.components || [e], r = 0, n = i.length; r < n; ++r) {
                this.writeNode("curveMember", i[r], t);
              }

              return t;
            },
            curveMember: function curveMember(e) {
              var t = this.createElementNSPlus("gml:curveMember");
              return this.curve ? this.writeNode("Curve", e, t) : this.writeNode("LineString", e, t), t;
            },
            MultiSurface: function MultiSurface(e) {
              for (var t = this.createElementNSPlus("gml:MultiSurface"), i = e.components || [e], r = 0, n = i.length; r < n; ++r) {
                this.writeNode("surfaceMember", i[r], t);
              }

              return t;
            },
            surfaceMember: function surfaceMember(e) {
              var t = this.createElementNSPlus("gml:surfaceMember");
              return this.surface ? this.writeNode("Surface", e, t) : this.writeNode("Polygon", e, t), t;
            },
            Envelope: function Envelope(e) {
              var t = this.createElementNSPlus("gml:Envelope");
              return this.writeNode("lowerCorner", e, t), this.writeNode("upperCorner", e, t), this.srsName && t.setAttribute("srsName", this.srsName), t;
            },
            lowerCorner: function lowerCorner(e) {
              var t = this.xy ? e._sw.lng + " " + e._sw.lat : e._sw.lat + " " + e._sw.lng;
              return this.createElementNSPlus("gml:lowerCorner", {
                value: t
              });
            },
            upperCorner: function upperCorner(e) {
              var t = this.xy ? e._ne.lng + " " + e._ne.lat : e._ne.lat + " " + e._ne.lng;
              return this.createElementNSPlus("gml:upperCorner", {
                value: t
              });
            }
          }, GeoGlobe.Format.GML.Base.prototype.writers.gml),
          feature: GeoGlobe.Format.GML.Base.prototype.writers.feature,
          wfs: GeoGlobe.Format.GML.Base.prototype.writers.wfs
        },
        setGeometryTypes: function setGeometryTypes() {
          this.geometryTypes = {
            "GeoGlobe.Geometry.Point": "Point",
            "GeoGlobe.Geometry.MultiPoint": "MultiPoint",
            "GeoGlobe.Geometry.LineString": !0 === this.curve ? "Curve" : "LineString",
            "GeoGlobe.Geometry.MultiLineString": !1 === this.multiCurve ? "MultiLineString" : "MultiCurve",
            "GeoGlobe.Geometry.Polygon": !0 === this.surface ? "Surface" : "Polygon",
            "GeoGlobe.Geometry.MultiPolygon": !1 === this.multiSurface ? "MultiPolygon" : "MultiSurface",
            "GeoGlobe.Geometry.Collection": "GeometryCollection"
          };
        },
        CLASS_NAME: "GeoGlobe.Format.GML.v3"
      }), GeoGlobe.Format.KML = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          kml: "http://www.opengis.net/kml/2.2",
          gx: "http://www.google.com/kml/ext/2.2"
        },
        kmlns: "http://earth.google.com/kml/2.0",
        placemarksDesc: "No description available",
        foldersName: "GeoGlobe export",
        foldersDesc: "Exported on " + new Date(),
        extractAttributes: !0,
        kvpAttributes: !1,
        extractStyles: !1,
        extractTracks: !1,
        trackAttributes: null,
        internalns: null,
        features: null,
        styles: null,
        styleBaseUrl: "",
        fetched: null,
        maxDepth: 0,
        initialize: function initialize(e) {
          this.regExes = {
            trimSpace: /^\s*|\s*$/g,
            removeSpace: /\s*/g,
            splitSpace: /\s+/,
            trimComma: /\s*,\s*/g,
            kmlColor: /(\w{2})(\w{2})(\w{2})(\w{2})/,
            kmlIconPalette: /root:\/\/icons\/palette-(\d+)(\.\w+)/,
            straightBracket: /\$\[(.*?)\]/g
          }, this.externalProjection = new GeoGlobe.SpatialReference("EPSG:4326"), GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          this.features = [], this.styles = {}, this.fetched = {};
          var t = {
            depth: 0,
            styleBaseUrl: this.styleBaseUrl
          };
          return this.parseData(e, t);
        },
        parseData: function parseData(e, t) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));

          for (var i = ["Link", "NetworkLink", "Style", "StyleMap", "Placemark"], r = 0, n = i.length; r < n; ++r) {
            var o = i[r],
                a = this.getElementsByTagNameNS(e, "*", o);
            if (0 != a.length) switch (o.toLowerCase()) {
              case "link":
              case "networklink":
                this.parseLinks(a, t);
                break;

              case "style":
                this.extractStyles && this.parseStyles(a, t);
                break;

              case "stylemap":
                this.extractStyles && this.parseStyleMaps(a, t);
                break;

              case "placemark":
                this.parseFeatures(a, t);
            }
          }

          return this.features;
        },
        parseLinks: function parseLinks(e, t) {
          if (t.depth >= this.maxDepth) return !1;
          var i = GeoGlobe.Util.extend({}, t);
          i.depth++;

          for (var r = 0, n = e.length; r < n; r++) {
            var o = this.parseProperty(e[r], "*", "href");

            if (o && !this.fetched[o]) {
              this.fetched[o] = !0;
              var a = this.fetchLink(o);
              a && this.parseData(a, i);
            }
          }
        },
        fetchLink: function fetchLink(e) {
          var t = GeoGlobe.Request.GET({
            url: e,
            async: !1
          });
          if (t) return t.responseText;
        },
        parseStyles: function parseStyles(e, t) {
          for (var i = 0, r = e.length; i < r; i++) {
            var n = this.parseStyle(e[i]);

            if (n) {
              var o = (t.styleBaseUrl || "") + "#" + n.id;
              this.styles[o] = n;
            }
          }
        },
        parseKmlColor: function parseKmlColor(e) {
          var t = null;

          if (e) {
            var i = e.match(this.regExes.kmlColor);
            i && (t = {
              color: "#" + i[4] + i[3] + i[2],
              opacity: _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[1], 16) / 255
            });
          }

          return t;
        },
        parseStyle: function parseStyle(e) {
          for (var t, i, r = {}, n = ["LineStyle", "PolyStyle", "IconStyle", "BalloonStyle", "LabelStyle"], o = 0, a = n.length; o < a; ++o) {
            if (t = n[o], i = this.getElementsByTagNameNS(e, "*", t)[0]) switch (t.toLowerCase()) {
              case "linestyle":
                var s = this.parseProperty(i, "*", "color");
                (I = this.parseKmlColor(s)) && (r.strokeColor = I.color, r.strokeOpacity = I.opacity), (l = this.parseProperty(i, "*", "width")) && (r.strokeWidth = l);
                break;

              case "polystyle":
                s = this.parseProperty(i, "*", "color"), (I = this.parseKmlColor(s)) && (r.fillOpacity = I.opacity, r.fillColor = I.color), "0" == this.parseProperty(i, "*", "fill") && (r.fillColor = "none"), "0" == this.parseProperty(i, "*", "outline") && (r.strokeWidth = "0");
                break;

              case "iconstyle":
                var x = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.parseProperty(i, "*", "scale") || 1),
                    l = 32 * x,
                    c = 32 * x,
                    u = this.getElementsByTagNameNS(i, "*", "Icon")[0];

                if (u) {
                  var h = this.parseProperty(u, "*", "href");

                  if (h) {
                    var f = this.parseProperty(u, "*", "w"),
                        d = this.parseProperty(u, "*", "h");
                    !GeoGlobe.String.startsWith(h, "http://maps.google.com/mapfiles/kml") || f || d || (f = 64, d = 64, x /= 2), f = f || d, d = d || f, f && (l = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(f) * x), d && (c = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(d) * x);
                    var g = h.match(this.regExes.kmlIconPalette);

                    if (g) {
                      var p = g[1],
                          m = g[2],
                          b = this.parseProperty(u, "*", "x");
                      h = "http://maps.google.com/mapfiles/kml/pal" + p + "/icon" + (8 * ((C = this.parseProperty(u, "*", "y")) ? 7 - C / 32 : 7) + (b ? b / 32 : 0)) + m;
                    }

                    r.graphicOpacity = 1, r.externalGraphic = h;
                  }
                }

                var v = this.getElementsByTagNameNS(i, "*", "hotSpot")[0];

                if (v) {
                  b = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(v.getAttribute("x"));

                  var C = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(v.getAttribute("y")),
                      y = v.getAttribute("xunits");

                  "pixels" == y ? r.graphicXOffset = -b * x : "insetPixels" == y ? r.graphicXOffset = b * x - l : "fraction" == y && (r.graphicXOffset = -l * b);

                  var _ = v.getAttribute("yunits");

                  "pixels" == _ ? r.graphicYOffset = C * x - c + 1 : "insetPixels" == _ ? r.graphicYOffset = -C * x + 1 : "fraction" == _ && (r.graphicYOffset = -c * (1 - C) + 1);
                }

                r.graphicWidth = l, r.graphicHeight = c;
                break;

              case "balloonstyle":
                var A = GeoGlobe.Util.getXmlNodeValue(i);
                A && (r.balloonStyle = A.replace(this.regExes.straightBracket, "${$1}"));
                break;

              case "labelstyle":
                var I;
                s = this.parseProperty(i, "*", "color"), (I = this.parseKmlColor(s)) && (r.fontColor = I.color, r.fontOpacity = I.opacity);
            }
          }

          !r.strokeColor && r.fillColor && (r.strokeColor = r.fillColor);
          var w = e.getAttribute("id");
          return w && r && (r.id = w), r;
        },
        parseStyleMaps: function parseStyleMaps(e, t) {
          for (var i = 0, r = e.length; i < r; i++) {
            for (var n = e[i], o = this.getElementsByTagNameNS(n, "*", "Pair"), a = n.getAttribute("id"), s = 0, x = o.length; s < x; s++) {
              var l = o[s],
                  c = this.parseProperty(l, "*", "key"),
                  u = this.parseProperty(l, "*", "styleUrl");
              u && "normal" == c && (this.styles[(t.styleBaseUrl || "") + "#" + a] = this.styles[(t.styleBaseUrl || "") + u]);
            }
          }
        },
        parseFeatures: function parseFeatures(e, t) {
          for (var i = [], r = 0, n = e.length; r < n; r++) {
            var o = e[r],
                a = this.parseFeature.apply(this, [o]);
            if (!a) throw "Bad Placemark: " + r;

            if (this.extractStyles && a.attributes && a.attributes.styleUrl && (a.style = this.getStyle(a.attributes.styleUrl, t)), this.extractStyles) {
              var s = this.getElementsByTagNameNS(o, "*", "Style")[0];

              if (s) {
                var x = this.parseStyle(s);
                x && (a.style = GeoGlobe.Util.extend(a.style, x));
              }
            }

            if (this.extractTracks) {
              var l = this.getElementsByTagNameNS(o, this.namespaces.gx, "Track");

              if (l && l.length > 0) {
                var c = l[0],
                    u = {
                  features: [],
                  feature: a
                };
                this.readNode(c, u), u.features.length > 0 && i.push.apply(i, u.features);
              }
            } else i.push(a);
          }

          this.features = this.features.concat(i);
        },
        readers: {
          kml: {
            when: function when(e, t) {
              t.whens.push(GeoGlobe.Date.parse(this.getChildValue(e)));
            },
            _trackPointAttribute: function _trackPointAttribute(e, t) {
              var i = e.nodeName.split(":").pop();
              t.attributes[i].push(this.getChildValue(e));
            }
          },
          gx: {
            Track: function Track(e, t) {
              var i = {
                whens: [],
                points: [],
                angles: []
              };

              if (this.trackAttributes) {
                i.attributes = {};

                for (var r = 0, n = this.trackAttributes.length; r < n; ++r) {
                  u = this.trackAttributes[r], i.attributes[u] = [], u in this.readers.kml || (this.readers.kml[u] = this.readers.kml._trackPointAttribute);
                }
              }

              if (this.readChildNodes(e, i), i.whens.length !== i.points.length) throw new Error("gx:Track with unequal number of when (" + i.whens.length + ") and gx:coord (" + i.points.length + ") elements.");
              var o,
                  a,
                  s,
                  x = i.angles.length > 0;
              if (x && i.whens.length !== i.angles.length) throw new Error("gx:Track with unequal number of when (" + i.whens.length + ") and gx:angles (" + i.angles.length + ") elements.");

              for (r = 0, n = i.whens.length; r < n; ++r) {
                if ((o = t.feature.clone()).fid = t.feature.fid || t.feature.id, a = i.points[r], o.geometry = a, "z" in a && (o.attributes.altitude = a.z), this.internalProjection && this.externalProjection && o.geometry.transform(this.externalProjection, this.internalProjection), this.trackAttributes) for (var l = 0, c = this.trackAttributes.length; l < c; ++l) {
                  var u = this.trackAttributes[l];
                  o.attributes[u] = i.attributes[u][r];
                }
                o.attributes.when = i.whens[r], o.attributes.trackId = t.feature.id, x && (s = i.angles[r], o.attributes.heading = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(s[0]), o.attributes.tilt = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(s[1]), o.attributes.roll = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(s[2])), t.features.push(o);
              }
            },
            coord: function coord(e, t) {
              var i = this.getChildValue(e).replace(this.regExes.trimSpace, "").split(/\s+/),
                  r = new GeoGlobe.Geometry.Point(i[0], i[1]);
              i.length > 2 && (r.z = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(i[2])), t.points.push(r);
            },
            angles: function angles(e, t) {
              var i = this.getChildValue(e).replace(this.regExes.trimSpace, "").split(/\s+/);
              t.angles.push(i);
            }
          }
        },
        parseFeature: function parseFeature(e) {
          for (var t, i, r, n, o = ["MultiGeometry", "Polygon", "LineString", "Point"], a = 0, s = o.length; a < s; ++a) {
            if (t = o[a], this.internalns = e.namespaceURI ? e.namespaceURI : this.kmlns, (i = this.getElementsByTagNameNS(e, this.internalns, t)).length > 0) {
              var x;
              if (!(x = this.parseGeometry[t.toLowerCase()])) throw new TypeError("Unsupported geometry type: " + t);
              r = x.apply(this, [i[0]]), this.internalProjection && this.externalProjection && r.transform(this.externalProjection, this.internalProjection);
              break;
            }
          }

          this.extractAttributes && (n = this.parseAttributes(e));
          var l = new GeoGlobe.Feature(r, n),
              c = e.getAttribute("id") || e.getAttribute("name");
          return null != c && (l.fid = c), l;
        },
        getStyle: function getStyle(e, t) {
          var i = GeoGlobe.Util.removeTail(e),
              r = GeoGlobe.Util.extend({}, t);

          if (r.depth++, r.styleBaseUrl = i, !this.styles[e] && !GeoGlobe.String.startsWith(e, "#") && r.depth <= this.maxDepth && !this.fetched[i]) {
            var n = this.fetchLink(i);
            n && this.parseData(n, r);
          }

          return GeoGlobe.Util.extend({}, this.styles[e]);
        },
        parseGeometry: {
          point: function point(e) {
            var t = this.getElementsByTagNameNS(e, this.internalns, "coordinates"),
                i = [];

            if (t.length > 0) {
              var r = t[0].firstChild.nodeValue;
              i = (r = r.replace(this.regExes.removeSpace, "")).split(",");
            }

            if (!(i.length > 1)) throw "Bad coordinate string: " + r;
            return 2 == i.length && (i[2] = null), new GeoGlobe.Geometry.Point(i[0], i[1], i[2]);
          },
          linestring: function linestring(e, t) {
            var i = this.getElementsByTagNameNS(e, this.internalns, "coordinates"),
                r = null;

            if (i.length > 0) {
              for (var n, o = this.getChildValue(i[0]), a = (o = (o = o.replace(this.regExes.trimSpace, "")).replace(this.regExes.trimComma, ",")).split(this.regExes.splitSpace), s = a.length, x = new Array(s), l = 0; l < s; ++l) {
                if (!((n = a[l].split(",")).length > 1)) throw "Bad LineString point coordinates: " + a[l];
                2 == n.length && (n[2] = null), x[l] = new GeoGlobe.Geometry.Point(n[0], n[1], n[2]);
              }

              if (!s) throw "Bad LineString coordinates: " + o;
              r = t ? new GeoGlobe.Geometry.LinearRing(x) : new GeoGlobe.Geometry.LineString(x);
            }

            return r;
          },
          polygon: function polygon(e) {
            var t = this.getElementsByTagNameNS(e, this.internalns, "LinearRing"),
                i = t.length,
                r = new Array(i);
            if (i > 0) for (var n, o = 0, a = t.length; o < a; ++o) {
              if (!(n = this.parseGeometry.linestring.apply(this, [t[o], !0]))) throw "Bad LinearRing geometry: " + o;
              r[o] = n;
            }
            return new GeoGlobe.Geometry.Polygon(r);
          },
          multigeometry: function multigeometry(e) {
            for (var t, i = [], r = e.childNodes, n = 0, o = r.length; n < o; ++n) {
              if (1 == (t = r[n]).nodeType) {
                var a,
                    s = t.prefix ? t.nodeName.split(":")[1] : t.nodeName;
                (a = this.parseGeometry[s.toLowerCase()]) && i.push(a.apply(this, [t]));
              }
            }

            return new GeoGlobe.Geometry.Collection(i);
          }
        },
        parseAttributes: function parseAttributes(e) {
          var t,
              i,
              r = {},
              n = e.getElementsByTagName("ExtendedData");
          n.length && (r = this.parseExtendedData(n[0]));

          for (var o = e.childNodes, a = 0, s = o.length; a < s; ++a) {
            if (1 == (t = o[a]).nodeType && (i = t.childNodes).length >= 1 && i.length <= 3) {
              var x;

              switch (i.length) {
                case 1:
                  x = i[0];
                  break;

                case 2:
                  var l = i[0],
                      c = i[1];
                  x = 3 == l.nodeType || 4 == l.nodeType ? l : c;
                  break;

                case 3:
                default:
                  x = i[1];
              }

              if (3 == x.nodeType || 4 == x.nodeType) {
                var u = t.prefix ? t.nodeName.split(":")[1] : t.nodeName,
                    h = GeoGlobe.Util.getXmlNodeValue(x);
                h && (h = h.replace(this.regExes.trimSpace, ""), r[u] = h);
              }
            }
          }

          return r;
        },
        parseExtendedData: function parseExtendedData(e) {
          var t,
              i,
              r,
              n,
              o = {},
              a = e.getElementsByTagName("Data");

          for (t = 0, i = a.length; t < i; t++) {
            n = (r = a[t]).getAttribute("name");
            var s = {},
                x = r.getElementsByTagName("value");
            if (x.length && (s.value = this.getChildValue(x[0])), this.kvpAttributes) o[n] = s.value;else {
              var l = r.getElementsByTagName("displayName");
              l.length && (s.displayName = this.getChildValue(l[0])), o[n] = s;
            }
          }

          var c = e.getElementsByTagName("SimpleData");

          for (t = 0, i = c.length; t < i; t++) {
            s = {}, n = (r = c[t]).getAttribute("name"), s.value = this.getChildValue(r), this.kvpAttributes ? o[n] = s.value : (s.displayName = n, o[n] = s);
          }

          return o;
        },
        parseProperty: function parseProperty(e, t, i) {
          var r,
              n = this.getElementsByTagNameNS(e, t, i);

          try {
            r = GeoGlobe.Util.getXmlNodeValue(n[0]);
          } catch (e) {
            r = null;
          }

          return r;
        },
        write: function write(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = this.createElementNS(this.kmlns, "kml"), i = this.createFolderXML(), r = 0, n = e.length; r < n; ++r) {
            i.appendChild(this.createPlacemarkXML(e[r]));
          }

          return t.appendChild(i), GeoGlobe.Format.XML.prototype.write.apply(this, [t]);
        },
        createFolderXML: function createFolderXML() {
          var e = this.createElementNS(this.kmlns, "Folder");

          if (this.foldersName) {
            var t = this.createElementNS(this.kmlns, "name"),
                i = this.createTextNode(this.foldersName);
            t.appendChild(i), e.appendChild(t);
          }

          if (this.foldersDesc) {
            var r = this.createElementNS(this.kmlns, "description"),
                n = this.createTextNode(this.foldersDesc);
            r.appendChild(n), e.appendChild(r);
          }

          return e;
        },
        createPlacemarkXML: function createPlacemarkXML(e) {
          var t = this.createElementNS(this.kmlns, "name"),
              i = e.style && e.style.label ? e.style.label : e.id,
              r = e.attributes.name || i;
          t.appendChild(this.createTextNode(r));
          var n = this.createElementNS(this.kmlns, "description"),
              o = e.attributes.description || this.placemarksDesc;
          n.appendChild(this.createTextNode(o));
          var a = this.createElementNS(this.kmlns, "Placemark");
          null != e.fid && a.setAttribute("id", e.fid), a.appendChild(t), a.appendChild(n);
          var s = this.buildGeometryNode(e.geometry);

          if (a.appendChild(s), e.attributes) {
            var x = this.buildExtendedData(e.attributes);
            x && a.appendChild(x);
          }

          return a;
        },
        buildGeometryNode: function buildGeometryNode(e) {
          var t = e.CLASS_NAME,
              i = t.substring(t.lastIndexOf(".") + 1),
              r = this.buildGeometry[i.toLowerCase()],
              n = null;
          return r && (n = r.apply(this, [e])), n;
        },
        buildGeometry: {
          point: function point(e) {
            var t = this.createElementNS(this.kmlns, "Point");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          multipoint: function multipoint(e) {
            return this.buildGeometry.collection.apply(this, [e]);
          },
          linestring: function linestring(e) {
            var t = this.createElementNS(this.kmlns, "LineString");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          multilinestring: function multilinestring(e) {
            return this.buildGeometry.collection.apply(this, [e]);
          },
          linearring: function linearring(e) {
            var t = this.createElementNS(this.kmlns, "LinearRing");
            return t.appendChild(this.buildCoordinatesNode(e)), t;
          },
          polygon: function polygon(e) {
            for (var t, i, r, n = this.createElementNS(this.kmlns, "Polygon"), o = e.components, a = 0, s = o.length; a < s; ++a) {
              r = 0 == a ? "outerBoundaryIs" : "innerBoundaryIs", t = this.createElementNS(this.kmlns, r), i = this.buildGeometry.linearring.apply(this, [o[a]]), t.appendChild(i), n.appendChild(t);
            }

            return n;
          },
          multipolygon: function multipolygon(e) {
            return this.buildGeometry.collection.apply(this, [e]);
          },
          collection: function collection(e) {
            for (var t, i = this.createElementNS(this.kmlns, "MultiGeometry"), r = 0, n = e.components.length; r < n; ++r) {
              (t = this.buildGeometryNode.apply(this, [e.components[r]])) && i.appendChild(t);
            }

            return i;
          }
        },
        buildCoordinatesNode: function buildCoordinatesNode(e) {
          var t,
              i = this.createElementNS(this.kmlns, "coordinates"),
              r = e.components;

          if (r) {
            for (var n, o = r.length, a = new Array(o), s = 0; s < o; ++s) {
              n = r[s], a[s] = this.buildCoordinates(n);
            }

            t = a.join(" ");
          } else t = this.buildCoordinates(e);

          var x = this.createTextNode(t);
          return i.appendChild(x), i;
        },
        buildCoordinates: function buildCoordinates(e) {
          return this.internalProjection && this.externalProjection && (e = e.clone()).transform(this.internalProjection, this.externalProjection), e.x + "," + e.y;
        },
        buildExtendedData: function buildExtendedData(e) {
          var t = this.createElementNS(this.kmlns, "ExtendedData");

          for (var i in e) {
            if (e[i] && "name" != i && "description" != i && "styleUrl" != i) {
              var r = this.createElementNS(this.kmlns, "Data");
              r.setAttribute("name", i);
              var n = this.createElementNS(this.kmlns, "value");

              if ("object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(e[i])) {
                if (e[i].value && n.appendChild(this.createTextNode(e[i].value)), e[i].displayName) {
                  var o = this.createElementNS(this.kmlns, "displayName");
                  o.appendChild(this.getXMLDoc().createCDATASection(e[i].displayName)), r.appendChild(o);
                }
              } else n.appendChild(this.createTextNode(e[i]));

              r.appendChild(n), t.appendChild(r);
            }
          }

          return this.isSimpleContent(t) ? null : t;
        },
        CLASS_NAME: "GeoGlobe.Format.KML"
      }), GeoGlobe.Format.OWSCommon = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.0.0",
        getVersion: function getVersion(e, t) {
          var i = this.version;

          if (!i) {
            var r = e.getAttribute("xmlns:ows");
            r && "1.1" === r.substring(r.lastIndexOf("/") + 1) && (i = "1.1.0"), i || (i = this.defaultVersion);
          }

          return i;
        },
        CLASS_NAME: "GeoGlobe.Format.OWSCommon"
      }), GeoGlobe.Format.OWSCommon.v1 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        read: function read(e, t) {
          t = GeoGlobe.Util.applyDefaults(t, this.options);
          var i = {};
          return this.readChildNodes(e, i), i;
        },
        readers: {
          ows: {
            Exception: function Exception(e, t) {
              var i = {
                code: e.getAttribute("exceptionCode"),
                locator: e.getAttribute("locator"),
                texts: []
              };
              t.exceptions.push(i), this.readChildNodes(e, i);
            },
            ExceptionText: function ExceptionText(e, t) {
              var i = this.getChildValue(e);
              t.texts.push(i);
            },
            ServiceIdentification: function ServiceIdentification(e, t) {
              t.serviceIdentification = {}, this.readChildNodes(e, t.serviceIdentification);
            },
            Title: function Title(e, t) {
              t.title = this.getChildValue(e);
            },
            Abstract: function Abstract(e, t) {
              t["abstract"] = this.getChildValue(e);
            },
            Keywords: function Keywords(e, t) {
              t.keywords = {}, this.readChildNodes(e, t.keywords);
            },
            Keyword: function Keyword(e, t) {
              t[this.getChildValue(e)] = !0;
            },
            ServiceType: function ServiceType(e, t) {
              t.serviceType = {
                codeSpace: e.getAttribute("codeSpace"),
                value: this.getChildValue(e)
              };
            },
            ServiceTypeVersion: function ServiceTypeVersion(e, t) {
              t.serviceTypeVersion = this.getChildValue(e);
            },
            Fees: function Fees(e, t) {
              t.fees = this.getChildValue(e);
            },
            AccessConstraints: function AccessConstraints(e, t) {
              t.accessConstraints = this.getChildValue(e);
            },
            ServiceProvider: function ServiceProvider(e, t) {
              t.serviceProvider = {}, this.readChildNodes(e, t.serviceProvider);
            },
            ProviderName: function ProviderName(e, t) {
              t.providerName = this.getChildValue(e);
            },
            ProviderSite: function ProviderSite(e, t) {
              t.providerSite = this.getAttributeNS(e, this.namespaces.xlink, "href");
            },
            ServiceContact: function ServiceContact(e, t) {
              t.serviceContact = {}, this.readChildNodes(e, t.serviceContact);
            },
            IndividualName: function IndividualName(e, t) {
              t.individualName = this.getChildValue(e);
            },
            PositionName: function PositionName(e, t) {
              t.positionName = this.getChildValue(e);
            },
            ContactInfo: function ContactInfo(e, t) {
              t.contactInfo = {}, this.readChildNodes(e, t.contactInfo);
            },
            Phone: function Phone(e, t) {
              t.phone = {}, this.readChildNodes(e, t.phone);
            },
            Voice: function Voice(e, t) {
              t.voice = this.getChildValue(e);
            },
            Address: function Address(e, t) {
              t.address = {}, this.readChildNodes(e, t.address);
            },
            DeliveryPoint: function DeliveryPoint(e, t) {
              t.deliveryPoint = this.getChildValue(e);
            },
            City: function City(e, t) {
              t.city = this.getChildValue(e);
            },
            AdministrativeArea: function AdministrativeArea(e, t) {
              t.administrativeArea = this.getChildValue(e);
            },
            PostalCode: function PostalCode(e, t) {
              t.postalCode = this.getChildValue(e);
            },
            Country: function Country(e, t) {
              t.country = this.getChildValue(e);
            },
            ElectronicMailAddress: function ElectronicMailAddress(e, t) {
              t.electronicMailAddress = this.getChildValue(e);
            },
            Role: function Role(e, t) {
              t.role = this.getChildValue(e);
            },
            OperationsMetadata: function OperationsMetadata(e, t) {
              t.operationsMetadata = {}, this.readChildNodes(e, t.operationsMetadata);
            },
            Operation: function Operation(e, t) {
              var i = e.getAttribute("name");
              t[i] = {}, this.readChildNodes(e, t[i]);
            },
            DCP: function DCP(e, t) {
              t.dcp = {}, this.readChildNodes(e, t.dcp);
            },
            HTTP: function HTTP(e, t) {
              t.http = {}, this.readChildNodes(e, t.http);
            },
            Get: function Get(e, t) {
              t.get || (t.get = []);
              var i = {
                url: this.getAttributeNS(e, this.namespaces.xlink, "href")
              };
              this.readChildNodes(e, i), t.get.push(i);
            },
            Post: function Post(e, t) {
              t.post || (t.post = []);
              var i = {
                url: this.getAttributeNS(e, this.namespaces.xlink, "href")
              };
              this.readChildNodes(e, i), t.post.push(i);
            },
            Parameter: function Parameter(e, t) {
              t.parameters || (t.parameters = {});
              var i = e.getAttribute("name");
              t.parameters[i] = {}, this.readChildNodes(e, t.parameters[i]);
            },
            Constraint: function Constraint(e, t) {
              t.constraints || (t.constraints = {});
              var i = e.getAttribute("name");
              t.constraints[i] = {}, this.readChildNodes(e, t.constraints[i]);
            },
            Value: function Value(e, t) {
              t[this.getChildValue(e)] = !0;
            },
            OutputFormat: function OutputFormat(e, t) {
              t.formats.push({
                value: this.getChildValue(e)
              }), this.readChildNodes(e, t);
            },
            WGS84BoundingBox: function WGS84BoundingBox(e, t) {
              var i = {};
              i.crs = e.getAttribute("crs"), t.BoundingBox ? t.BoundingBox.push(i) : (t.projection = i.crs, i = t), this.readChildNodes(e, i);
            },
            BoundingBox: function BoundingBox(e, t) {
              this.readers.ows.WGS84BoundingBox.apply(this, [e, t]);
            },
            LowerCorner: function LowerCorner(e, t) {
              var i = this.getChildValue(e).replace(this.regExes.trimSpace, ""),
                  r = (i = i.replace(this.regExes.trimComma, ",")).split(this.regExes.splitSpace);
              t.left = r[0], t.bottom = r[1];
            },
            UpperCorner: function UpperCorner(e, t) {
              var i = this.getChildValue(e).replace(this.regExes.trimSpace, ""),
                  r = (i = i.replace(this.regExes.trimComma, ",")).split(this.regExes.splitSpace);
              t.right = r[0], t.top = r[1], t.bounds = new GeoGlobe.LngLatBounds(new GeoGlobe.LngLat(t.left, t.bottom), new GeoGlobe.LngLat(t.right, t.top)), delete t.left, delete t.bottom, delete t.right, delete t.top;
            },
            Language: function Language(e, t) {
              t.language = this.getChildValue(e);
            }
          }
        },
        writers: {
          ows: {
            BoundingBox: function BoundingBox(e, t) {
              var i = this.createElementNSPlus(t || "ows:BoundingBox", {
                attributes: {
                  crs: e.projection
                }
              });
              return this.writeNode("ows:LowerCorner", e, i), this.writeNode("ows:UpperCorner", e, i), i;
            },
            LowerCorner: function LowerCorner(e) {
              return this.createElementNSPlus("ows:LowerCorner", {
                value: e.bounds._sw.lng + " " + e.bounds._sw.lat
              });
            },
            UpperCorner: function UpperCorner(e) {
              return this.createElementNSPlus("ows:UpperCorner", {
                value: e.bounds._ne.lng + " " + e.bounds._ne.lat
              });
            },
            Identifier: function Identifier(e) {
              return this.createElementNSPlus("ows:Identifier", {
                value: e
              });
            },
            Title: function Title(e) {
              return this.createElementNSPlus("ows:Title", {
                value: e
              });
            },
            Abstract: function Abstract(e) {
              return this.createElementNSPlus("ows:Abstract", {
                value: e
              });
            },
            OutputFormat: function OutputFormat(e) {
              return this.createElementNSPlus("ows:OutputFormat", {
                value: e
              });
            }
          }
        },
        CLASS_NAME: "GeoGlobe.Format.OWSCommon.v1"
      }), GeoGlobe.Format.OWSCommon.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.OWSCommon.v1, {
        namespaces: {
          ows: "http://www.opengis.net/ows",
          xlink: "http://www.w3.org/1999/xlink"
        },
        readers: {
          ows: GeoGlobe.Util.applyDefaults({
            ExceptionReport: function ExceptionReport(e, t) {
              t.success = !1, t.exceptionReport = {
                version: e.getAttribute("version"),
                language: e.getAttribute("language"),
                exceptions: []
              }, this.readChildNodes(e, t.exceptionReport);
            }
          }, GeoGlobe.Format.OWSCommon.v1.prototype.readers.ows)
        },
        writers: {
          ows: GeoGlobe.Format.OWSCommon.v1.prototype.writers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.OWSCommon.v1_0_0"
      }), GeoGlobe.Format.OWSCommon.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Format.OWSCommon.v1, {
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          xlink: "http://www.w3.org/1999/xlink"
        },
        readers: {
          ows: GeoGlobe.Util.applyDefaults({
            ExceptionReport: function ExceptionReport(e, t) {
              t.exceptionReport = {
                version: e.getAttribute("version"),
                language: e.getAttribute("xml:lang"),
                exceptions: []
              }, this.readChildNodes(e, t.exceptionReport);
            },
            AllowedValues: function AllowedValues(e, t) {
              t.allowedValues = {}, this.readChildNodes(e, t.allowedValues);
            },
            AnyValue: function AnyValue(e, t) {
              t.anyValue = !0;
            },
            DataType: function DataType(e, t) {
              t.dataType = this.getChildValue(e);
            },
            Range: function Range(e, t) {
              t.range = {}, this.readChildNodes(e, t.range);
            },
            MinimumValue: function MinimumValue(e, t) {
              t.minValue = this.getChildValue(e);
            },
            MaximumValue: function MaximumValue(e, t) {
              t.maxValue = this.getChildValue(e);
            },
            Identifier: function Identifier(e, t) {
              t.identifier = this.getChildValue(e);
            },
            SupportedCRS: function SupportedCRS(e, t) {
              t.supportedCRS = this.getChildValue(e);
            }
          }, GeoGlobe.Format.OWSCommon.v1.prototype.readers.ows)
        },
        writers: {
          ows: GeoGlobe.Util.applyDefaults({
            Range: function Range(e) {
              var t = this.createElementNSPlus("ows:Range", {
                attributes: {
                  "ows:rangeClosure": e.closure
                }
              });
              return this.writeNode("ows:MinimumValue", e.minValue, t), this.writeNode("ows:MaximumValue", e.maxValue, t), t;
            },
            MinimumValue: function MinimumValue(e) {
              return this.createElementNSPlus("ows:MinimumValue", {
                value: e
              });
            },
            MaximumValue: function MaximumValue(e) {
              return this.createElementNSPlus("ows:MaximumValue", {
                value: e
              });
            },
            Value: function Value(e) {
              return this.createElementNSPlus("ows:Value", {
                value: e
              });
            }
          }, GeoGlobe.Format.OWSCommon.v1.prototype.writers.ows)
        },
        CLASS_NAME: "GeoGlobe.Format.OWSCommon.v1_1_0"
      }), GeoGlobe.Format.WFSCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.1.0",
        CLASS_NAME: "GeoGlobe.Format.WFSCapabilities"
      }), GeoGlobe.Format.WFSCapabilities.v1 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          wfs: "http://www.opengis.net/wfs",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance",
          ows: "http://www.opengis.net/ows"
        },
        errorProperty: "featureTypeList",
        defaultPrefix: "wfs",
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t;
        },
        readers: {
          wfs: {
            WFS_Capabilities: function WFS_Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            FeatureTypeList: function FeatureTypeList(e, t) {
              t.featureTypeList = {
                featureTypes: []
              }, this.readChildNodes(e, t.featureTypeList);
            },
            FeatureType: function FeatureType(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.featureTypes.push(i);
            },
            Name: function Name(e, t) {
              var i = this.getChildValue(e);

              if (i) {
                var r = i.split(":");
                t.name = r.pop(), r.length > 0 && (t.featureNS = this.lookupNamespaceURI(e, r[0]));
              }
            },
            Title: function Title(e, t) {
              var i = this.getChildValue(e);
              i && (t.title = i);
            },
            Abstract: function Abstract(e, t) {
              var i = this.getChildValue(e);
              i && (t["abstract"] = i);
            }
          }
        },
        CLASS_NAME: "GeoGlobe.Format.WFSCapabilities.v1"
      }), GeoGlobe.Format.WFSCapabilities.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.WFSCapabilities.v1, {
        readers: {
          wfs: GeoGlobe.Util.applyDefaults({
            Service: function Service(e, t) {
              t.service = {}, this.readChildNodes(e, t.service);
            },
            Fees: function Fees(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.fees = i);
            },
            AccessConstraints: function AccessConstraints(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.accessConstraints = i);
            },
            OnlineResource: function OnlineResource(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.onlineResource = i);
            },
            Keywords: function Keywords(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.keywords = i.split(", "));
            },
            Capability: function Capability(e, t) {
              t.capability = {}, this.readChildNodes(e, t.capability);
            },
            Request: function Request(e, t) {
              t.request = {}, this.readChildNodes(e, t.request);
            },
            GetFeature: function GetFeature(e, t) {
              t.getfeature = {
                href: {},
                formats: []
              }, this.readChildNodes(e, t.getfeature);
            },
            ResultFormat: function ResultFormat(e, t) {
              for (var i, r = e.childNodes, n = 0; n < r.length; n++) {
                1 == (i = r[n]).nodeType && t.formats.push(i.nodeName);
              }
            },
            DCPType: function DCPType(e, t) {
              this.readChildNodes(e, t);
            },
            HTTP: function HTTP(e, t) {
              this.readChildNodes(e, t.href);
            },
            Get: function Get(e, t) {
              t.get = e.getAttribute("onlineResource");
            },
            Post: function Post(e, t) {
              t.post = e.getAttribute("onlineResource");
            },
            SRS: function SRS(e, t) {
              var i = this.getChildValue(e);
              i && (t.srs = i);
            },
            LatLongBoundingBox: function LatLongBoundingBox(e, t) {
              var i = e.getAttribute("minx"),
                  r = e.getAttribute("miny"),
                  n = e.getAttribute("maxx"),
                  o = e.getAttribute("maxy");
              t.bbox = i + "," + r + "," + n + "," + o;
            },
            TemporalFeatureLayer: function TemporalFeatureLayer(e, t) {
              t.temporalFeatureLayers = [];
              var i = {};
              this.readChildNodes(e, i), t.temporalFeatureLayers.push(i);
            },
            Extent: function Extent(e, t) {
              t.defaultTime = e.getAttribute("default");
              var i = this.getChildValue(e).split("/");
              t.time = i;
            },
            Dimension: function Dimension(e, t) {
              t.defaultTime = e.getAttribute("default");
              var i = this.getChildValue(e).split("/");
              t.time = i;
            }
          }, GeoGlobe.Format.WFSCapabilities.v1.prototype.readers.wfs)
        },
        CLASS_NAME: "GeoGlobe.Format.WFSCapabilities.v1_0_0"
      }), GeoGlobe.Format.WFSCapabilities.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Format.WFSCapabilities.v1, {
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        readers: {
          wfs: GeoGlobe.Util.applyDefaults({
            DefaultSRS: function DefaultSRS(e, t) {
              var i = this.getChildValue(e);
              i && (t.srs = i);
            },
            WGS84BoundingBox: function WGS84BoundingBox(e, t) {
              var i = e.getElementsByTagName("ows:LowerCorner"),
                  r = this.getChildValue(i[0]).split(" "),
                  n = e.getElementsByTagName("ows:UpperCorner"),
                  o = this.getChildValue(n[0]).split(" ");
              t.bbox = r[0] + "," + r[1] + "," + o[0] + "," + o[1];
            },
            TemporalFeatureLayer: function TemporalFeatureLayer(e, t) {
              t.temporalFeatureLayers = [];
              var i = {};
              this.readChildNodes(e, i), t.temporalFeatureLayers.push(i);
            },
            Extent: function Extent(e, t) {
              t.defaultTime = e.getAttribute("default");
              var i = this.getChildValue(e).split("/");
              t.time = i;
            },
            Dimension: function Dimension(e, t) {
              t.defaultTime = e.getAttribute("default");
              var i = this.getChildValue(e).split("/");
              t.time = i;
            }
          }, GeoGlobe.Format.WFSCapabilities.v1.prototype.readers.wfs),
          ows: GeoGlobe.Format.OWSCommon.v1.prototype.readers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.WFSCapabilities.v1_1_0"
      }), GeoGlobe.Format.WFSDescribeFeatureType = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        regExes: {
          trimSpace: /^\s*|\s*$/g
        },
        namespaces: {
          xsd: "http://www.w3.org/2001/XMLSchema"
        },
        readers: {
          xsd: {
            schema: function schema(e, t) {
              var i,
                  r,
                  n = [],
                  o = {},
                  a = {
                complexTypes: n,
                customTypes: o
              };
              this.readChildNodes(e, a);
              var s,
                  x,
                  l,
                  c,
                  u = e.attributes;

              for (i = 0, r = u.length; i < r; ++i) {
                0 === (x = (s = u[i]).name).indexOf("xmlns") ? this.setNamespace(x.split(":")[1] || "", s.value) : t[x] = s.value;
              }

              for (t.featureTypes = n, t.targetPrefix = this.namespaceAlias[t.targetNamespace], i = 0, r = n.length; i < r; ++i) {
                c = o[(l = n[i]).typeName], o[l.typeName] && (l.typeName = c.name);
              }
            },
            complexType: function complexType(e, t) {
              var i = {
                typeName: e.getAttribute("name")
              };
              this.readChildNodes(e, i), t.complexTypes.push(i);
            },
            complexContent: function complexContent(e, t) {
              this.readChildNodes(e, t);
            },
            extension: function extension(e, t) {
              this.readChildNodes(e, t);
            },
            sequence: function sequence(e, t) {
              var i = {
                elements: []
              };
              this.readChildNodes(e, i), t.properties = i.elements;
            },
            element: function element(e, t) {
              var i;

              if (t.elements) {
                for (var r, n = {}, o = e.attributes, a = 0, s = o.length; a < s; ++a) {
                  n[(r = o[a]).name] = r.value;
                }

                (i = n.type || n.ref) || (i = {}, this.readChildNodes(e, i), n.restriction = i, n.type = i.base);
                var x = i.base || i;
                n.localType = x.split(":").pop(), t.elements.push(n), this.readChildNodes(e, n);
              }

              if (t.complexTypes) {
                var l = (i = e.getAttribute("type")).split(":").pop();
                t.customTypes[l] = {
                  name: e.getAttribute("name"),
                  type: i
                };
              }
            },
            annotation: function annotation(e, t) {
              t.annotation = {}, this.readChildNodes(e, t.annotation);
            },
            appinfo: function appinfo(e, t) {
              t.appinfo || (t.appinfo = []), t.appinfo.push(this.getChildValue(e));
            },
            documentation: function documentation(e, t) {
              t.documentation || (t.documentation = []);
              var i = this.getChildValue(e);
              t.documentation.push({
                lang: e.getAttribute("xml:lang"),
                textContent: i.replace(this.regExes.trimSpace, "")
              });
            },
            simpleType: function simpleType(e, t) {
              this.readChildNodes(e, t);
            },
            restriction: function restriction(e, t) {
              t.base = e.getAttribute("base"), this.readRestriction(e, t);
            }
          }
        },
        readRestriction: function readRestriction(e, t) {
          for (var i, r, n, o = e.childNodes, a = 0, s = o.length; a < s; ++a) {
            1 == (i = o[a]).nodeType && (r = i.nodeName.split(":").pop(), n = i.getAttribute("value"), t[r] ? ("string" == typeof t[r] && (t[r] = [t[r]]), t[r].push(n)) : t[r] = n);
          }
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};

          if ("ExceptionReport" === e.nodeName.split(":").pop()) {
            var i = new GeoGlobe.Format.OGCExceptionReport();
            t.error = i.read(e);
          } else this.readNode(e, t);

          return t;
        },
        CLASS_NAME: "GeoGlobe.Format.WFSDescribeFeatureType"
      }), GeoGlobe.Format.WKT = GeoGlobe.Class4OL(GeoGlobe.Format, {
        initialize: function initialize(e) {
          this.regExes = {
            typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
            spaces: /\s+/,
            parenComma: /\)\s*,\s*\(/,
            doubleParenComma: /\)\s*\)\s*,\s*\(\s*\(/,
            trimParens: /^\s*\(?(.*?)\)?\s*$/
          }, GeoGlobe.Format.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          var t, i, r;
          e = e.replace(/[\n\r]/g, " ");
          var n = this.regExes.typeStr.exec(e);
          if (n && (i = n[1].toLowerCase(), r = n[2], this.parse[i] && (t = this.parse[i].apply(this, [r])), this.internalProjection && this.externalProjection)) if (t && "GeoGlobe.Feature" == t.CLASS_NAME) t.geometry.transform(this.externalProjection, this.internalProjection);else if (t && "geometrycollection" != i && "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(t)) for (var o = 0, a = t.length; o < a; o++) {
            t[o].geometry.transform(this.externalProjection, this.internalProjection);
          }
          return t;
        },
        write: function write(e) {
          var t, i, r;
          e.constructor == Array ? (t = e, r = !0) : (t = [e], r = !1);
          var n = [];
          r && n.push("GEOMETRYCOLLECTION(");

          for (var o = 0, a = t.length; o < a; ++o) {
            r && o > 0 && n.push(","), i = t[o].geometry, n.push(this.extractGeometry(i));
          }

          return r && n.push(")"), n.join("");
        },
        extractGeometry: function extractGeometry(e) {
          var t = e.CLASS_NAME.split(".")[2].toLowerCase();
          return this.extract[t] ? (this.internalProjection && this.externalProjection && (e = e.clone()).transform(this.internalProjection, this.externalProjection), ("collection" == t ? "GEOMETRYCOLLECTION" : t.toUpperCase()) + "(" + this.extract[t].apply(this, [e]) + ")") : null;
        },
        extract: {
          point: function point(e) {
            return e.x + " " + e.y;
          },
          multipoint: function multipoint(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push("(" + this.extract.point.apply(this, [e.components[i]]) + ")");
            }

            return t.join(",");
          },
          linestring: function linestring(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.point.apply(this, [e.components[i]]));
            }

            return t.join(",");
          },
          multilinestring: function multilinestring(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push("(" + this.extract.linestring.apply(this, [e.components[i]]) + ")");
            }

            return t.join(",");
          },
          polygon: function polygon(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push("(" + this.extract.linestring.apply(this, [e.components[i]]) + ")");
            }

            return t.join(",");
          },
          multipolygon: function multipolygon(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push("(" + this.extract.polygon.apply(this, [e.components[i]]) + ")");
            }

            return t.join(",");
          },
          collection: function collection(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extractGeometry.apply(this, [e.components[i]]));
            }

            return t.join(",");
          }
        },
        parse: {
          point: function point(e) {
            var t = GeoGlobe.String.trim(e).split(this.regExes.spaces);
            return new GeoGlobe.Feature(new GeoGlobe.Geometry.Point(t[0], t[1]));
          },
          multipoint: function multipoint(e) {
            for (var t, i = GeoGlobe.String.trim(e).split(","), r = [], n = 0, o = i.length; n < o; ++n) {
              t = i[n].replace(this.regExes.trimParens, "$1"), r.push(this.parse.point.apply(this, [t]).geometry);
            }

            return new GeoGlobe.Feature(new GeoGlobe.Geometry.MultiPoint(r));
          },
          linestring: function linestring(e) {
            for (var t = GeoGlobe.String.trim(e).split(","), i = [], r = 0, n = t.length; r < n; ++r) {
              i.push(this.parse.point.apply(this, [t[r]]).geometry);
            }

            return new GeoGlobe.Feature(new GeoGlobe.Geometry.LineString(i));
          },
          multilinestring: function multilinestring(e) {
            for (var t, i = GeoGlobe.String.trim(e).split(this.regExes.parenComma), r = [], n = 0, o = i.length; n < o; ++n) {
              t = i[n].replace(this.regExes.trimParens, "$1"), r.push(this.parse.linestring.apply(this, [t]).geometry);
            }

            return new GeoGlobe.Feature(new GeoGlobe.Geometry.MultiLineString(r));
          },
          polygon: function polygon(e) {
            for (var t, i, r, n = GeoGlobe.String.trim(e).split(this.regExes.parenComma), o = [], a = 0, s = n.length; a < s; ++a) {
              t = n[a].replace(this.regExes.trimParens, "$1"), i = this.parse.linestring.apply(this, [t]).geometry, r = new GeoGlobe.Geometry.LinearRing(i.components), o.push(r);
            }

            return new GeoGlobe.Feature(new GeoGlobe.Geometry.Polygon(o));
          },
          multipolygon: function multipolygon(e) {
            for (var t, i = GeoGlobe.String.trim(e).split(this.regExes.doubleParenComma), r = [], n = 0, o = i.length; n < o; ++n) {
              t = i[n].replace(this.regExes.trimParens, "$1"), r.push(this.parse.polygon.apply(this, [t]).geometry);
            }

            return new GeoGlobe.Feature(new GeoGlobe.Geometry.MultiPolygon(r));
          },
          geometrycollection: function geometrycollection(e) {
            e = e.replace(/,\s*([A-Za-z])/g, "|$1");

            for (var t = GeoGlobe.String.trim(e).split("|"), i = [], r = 0, n = t.length; r < n; ++r) {
              i.push(GeoGlobe.Format.WKT.prototype.read.apply(this, [t[r]]));
            }

            return i;
          }
        },
        CLASS_NAME: "GeoGlobe.Format.WKT"
      }), GeoGlobe.Format.CQL = function () {
        var e,
            t = {
          PROPERTY: /^[_a-zA-Z]\w*/,
          COMPARISON: /^(=|<>|<=|<|>=|>|LIKE)/i,
          IS_NULL: /^IS NULL/i,
          COMMA: /^,/,
          LOGICAL: /^(AND|OR)/i,
          VALUE: /^('([^']|'')*'|\d+(\.\d*)?|\.\d+)/,
          LPAREN: /^\(/,
          RPAREN: /^\)/,
          SPATIAL: /^(BBOX|INTERSECTS|DWITHIN|WITHIN|CONTAINS)/i,
          NOT: /^NOT/i,
          BETWEEN: /^BETWEEN/i,
          GEOMETRY: function GEOMETRY(e) {
            var t = /^(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)/.exec(e);

            if (t) {
              var i = e.length,
                  r = e.indexOf("(", t[0].length);
              if (r > -1) for (var n = 1; r < i && n > 0;) {
                switch (r++, e.charAt(r)) {
                  case "(":
                    n++;
                    break;

                  case ")":
                    n--;
                }
              }
              return [e.substr(0, r + 1)];
            }
          },
          END: /^$/
        },
            i = {
          LPAREN: ["GEOMETRY", "SPATIAL", "PROPERTY", "VALUE", "LPAREN"],
          RPAREN: ["NOT", "LOGICAL", "END", "RPAREN"],
          PROPERTY: ["COMPARISON", "BETWEEN", "COMMA", "IS_NULL"],
          BETWEEN: ["VALUE"],
          IS_NULL: ["END"],
          COMPARISON: ["VALUE"],
          COMMA: ["GEOMETRY", "VALUE", "PROPERTY"],
          VALUE: ["LOGICAL", "COMMA", "RPAREN", "END"],
          SPATIAL: ["LPAREN"],
          LOGICAL: ["NOT", "VALUE", "SPATIAL", "PROPERTY", "LPAREN"],
          NOT: ["PROPERTY", "LPAREN"],
          GEOMETRY: ["COMMA", "RPAREN"]
        },
            r = {
          "=": GeoGlobe.Filter.Comparison.EQUAL_TO,
          "<>": GeoGlobe.Filter.Comparison.NOT_EQUAL_TO,
          "<": GeoGlobe.Filter.Comparison.LESS_THAN,
          "<=": GeoGlobe.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
          ">": GeoGlobe.Filter.Comparison.GREATER_THAN,
          ">=": GeoGlobe.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
          LIKE: GeoGlobe.Filter.Comparison.LIKE,
          BETWEEN: GeoGlobe.Filter.Comparison.BETWEEN,
          "IS NULL": GeoGlobe.Filter.Comparison.IS_NULL
        },
            n = {},
            o = {
          AND: GeoGlobe.Filter.Logical.AND,
          OR: GeoGlobe.Filter.Logical.OR
        },
            a = {},
            s = {
          RPAREN: 3,
          LOGICAL: 2,
          COMPARISON: 1
        };

        for (e in r) {
          r.hasOwnProperty(e) && (n[r[e]] = e);
        }

        for (e in o) {
          o.hasOwnProperty(e) && (a[o[e]] = e);
        }

        function x(e, i) {
          var r,
              n,
              o,
              a,
              s = i.length;

          for (r = 0; r < s; r++) {
            n = i[r];
            var x = (o = e, (a = t[n]) instanceof RegExp ? a.exec(o) : a(o));

            if (x) {
              var l = x[0];
              return {
                type: n,
                text: l,
                remainder: e.substr(l.length).replace(/^\s*/, "")
              };
            }
          }

          var c = "ERROR: In parsing: [" + e + "], expected one of: ";

          for (r = 0; r < s; r++) {
            c += "\n    " + (n = i[r]) + ": " + t[n];
          }

          throw new Error(c);
        }

        return GeoGlobe.Class4OL(GeoGlobe.Format, {
          read: function read(e) {
            var t = function (e) {
              for (var t = [], i = []; e.length;) {
                var n = e.shift();

                switch (n.type) {
                  case "PROPERTY":
                  case "GEOMETRY":
                  case "VALUE":
                    i.push(n);
                    break;

                  case "COMPARISON":
                  case "BETWEEN":
                  case "IS_NULL":
                  case "LOGICAL":
                    for (var a = s[n.type]; t.length > 0 && s[t[t.length - 1].type] <= a;) {
                      i.push(t.pop());
                    }

                    t.push(n);
                    break;

                  case "SPATIAL":
                  case "NOT":
                  case "LPAREN":
                    t.push(n);
                    break;

                  case "RPAREN":
                    for (; t.length > 0 && "LPAREN" != t[t.length - 1].type;) {
                      i.push(t.pop());
                    }

                    t.pop(), t.length > 0 && "SPATIAL" == t[t.length - 1].type && i.push(t.pop());

                  case "COMMA":
                  case "END":
                    break;

                  default:
                    throw new Error("Unknown token type " + n.type);
                }
              }

              for (; t.length > 0;) {
                i.push(t.pop());
              }

              var x = function e() {
                var t = i.pop();

                switch (t.type) {
                  case "LOGICAL":
                    var n = e(),
                        a = e();
                    return new GeoGlobe.Filter.Logical({
                      filters: [a, n],
                      type: o[t.text.toUpperCase()]
                    });

                  case "NOT":
                    var s = e();
                    return new GeoGlobe.Filter.Logical({
                      filters: [s],
                      type: GeoGlobe.Filter.Logical.NOT
                    });

                  case "BETWEEN":
                    var x, l;
                    return i.pop(), l = e(), x = e(), u = e(), new GeoGlobe.Filter.Comparison({
                      property: u,
                      lowerBoundary: x,
                      upperBoundary: l,
                      type: GeoGlobe.Filter.Comparison.BETWEEN
                    });

                  case "COMPARISON":
                    var c = e(),
                        u = e();
                    return new GeoGlobe.Filter.Comparison({
                      property: u,
                      value: c,
                      type: r[t.text.toUpperCase()]
                    });

                  case "IS_NULL":
                    return u = e(), new GeoGlobe.Filter.Comparison({
                      property: u,
                      type: r[t.text.toUpperCase()]
                    });

                  case "VALUE":
                    var h = t.text.match(/^'(.*)'$/);
                    return h ? h[1].replace(/''/g, "'") : Number(t.text);

                  case "SPATIAL":
                    switch (t.text.toUpperCase()) {
                      case "BBOX":
                        var f = e(),
                            d = e(),
                            g = e(),
                            p = e(),
                            m = e();
                        return new GeoGlobe.Filter.Spatial({
                          type: GeoGlobe.Filter.Spatial.BBOX,
                          property: m,
                          value: GeoGlobe.LngLatBounds.fromArray([p, g, d, f])
                        });

                      case "INTERSECTS":
                        return c = e(), u = e(), new GeoGlobe.Filter.Spatial({
                          type: GeoGlobe.Filter.Spatial.INTERSECTS,
                          property: u,
                          value: c
                        });

                      case "WITHIN":
                        return c = e(), u = e(), new GeoGlobe.Filter.Spatial({
                          type: GeoGlobe.Filter.Spatial.WITHIN,
                          property: u,
                          value: c
                        });

                      case "CONTAINS":
                        return c = e(), u = e(), new GeoGlobe.Filter.Spatial({
                          type: GeoGlobe.Filter.Spatial.CONTAINS,
                          property: u,
                          value: c
                        });

                      case "DWITHIN":
                        var b = e();
                        return c = e(), u = e(), new GeoGlobe.Filter.Spatial({
                          type: GeoGlobe.Filter.Spatial.DWITHIN,
                          value: c,
                          property: u,
                          distance: Number(b)
                        });
                    }

                  case "GEOMETRY":
                    return GeoGlobe.Geometry.fromWKT(t.text);

                  default:
                    return t.text;
                }
              }();

              if (i.length > 0) {
                for (var l = "Remaining tokens after building AST: \n", c = i.length - 1; c >= 0; c--) {
                  l += i[c].type + ": " + i[c].text + "\n";
                }

                throw new Error(l);
              }

              return x;
            }(function (e) {
              var t,
                  r = [],
                  n = ["NOT", "GEOMETRY", "SPATIAL", "PROPERTY", "LPAREN"];

              do {
                if (e = (t = x(e, n)).remainder, n = i[t.type], "END" != t.type && !n) throw new Error("No follows list for " + t.type);
                r.push(t);
              } while ("END" != t.type);

              return r;
            }(e));

            return this.keepData && (this.data = t), t;
          },
          write: function write(e) {
            if (e instanceof GeoGlobe.Geometry) return e.toString();

            switch (e.CLASS_NAME) {
              case "GeoGlobe.Filter.Spatial":
                switch (e.type) {
                  case GeoGlobe.Filter.Spatial.BBOX:
                    return "BBOX(" + e.property + "," + e.value.toBBOX() + ")";

                  case GeoGlobe.Filter.Spatial.DWITHIN:
                    return "DWITHIN(" + e.property + ", " + this.write(e.value) + ", " + e.distance + ")";

                  case GeoGlobe.Filter.Spatial.WITHIN:
                    return "WITHIN(" + e.property + ", " + this.write(e.value) + ")";

                  case GeoGlobe.Filter.Spatial.INTERSECTS:
                    return "INTERSECTS(" + e.property + ", " + this.write(e.value) + ")";

                  case GeoGlobe.Filter.Spatial.CONTAINS:
                    return "CONTAINS(" + e.property + ", " + this.write(e.value) + ")";

                  default:
                    throw new Error("Unknown spatial filter type: " + e.type);
                }

              case "GeoGlobe.Filter.Logical":
                if (e.type == GeoGlobe.Filter.Logical.NOT) return "NOT (" + this.write(e.filters[0]) + ")";

                for (var t = "(", i = !0, r = 0; r < e.filters.length; r++) {
                  i ? i = !1 : t += ") " + a[e.type] + " (", t += this.write(e.filters[r]);
                }

                return t + ")";

              case "GeoGlobe.Filter.Comparison":
                return e.type == GeoGlobe.Filter.Comparison.BETWEEN ? e.property + " BETWEEN " + this.write(e.lowerBoundary) + " AND " + this.write(e.upperBoundary) : null !== e.value ? e.property + " " + n[e.type] + " " + this.write(e.value) : e.property + " " + n[e.type];

              case void 0:
                if ("string" == typeof e) return "'" + e.replace(/'/g, "''") + "'";
                if ("number" == typeof e) return String(e);

              default:
                throw new Error("Can't encode: " + e.CLASS_NAME + " " + e);
            }
          },
          CLASS_NAME: "GeoGlobe.Format.CQL"
        });
      }(), GeoGlobe.Format.Filter = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.0.0",
        CLASS_NAME: "GeoGlobe.Format.Filter"
      }), GeoGlobe.Format.Filter.v1 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          ogc: "http://www.opengis.net/ogc",
          gml: "http://www.opengis.net/gml",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance"
        },
        defaultPrefix: "ogc",
        schemaLocation: null,
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          var t = {};
          return this.readers.ogc.Filter.apply(this, [e, t]), t.filter;
        },
        readers: {
          ogc: {
            _expression: function _expression(e) {
              for (var t, i = "", r = e.firstChild; r; r = r.nextSibling) {
                switch (r.nodeType) {
                  case 1:
                    (t = this.readNode(r)).property ? i += "${" + t.property + "}" : void 0 !== t.value && (i += t.value);
                    break;

                  case 3:
                  case 4:
                    i += r.nodeValue;
                }
              }

              return i;
            },
            Filter: function Filter(e, t) {
              var i = {
                fids: [],
                filters: []
              };
              this.readChildNodes(e, i), i.fids.length > 0 ? t.filter = new GeoGlobe.Filter.FeatureId({
                fids: i.fids
              }) : i.filters.length > 0 && (t.filter = i.filters[0]);
            },
            FeatureId: function FeatureId(e, t) {
              var i = e.getAttribute("fid");
              i && t.fids.push(i);
            },
            And: function And(e, t) {
              var i = new GeoGlobe.Filter.Logical({
                type: GeoGlobe.Filter.Logical.AND
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            Or: function Or(e, t) {
              var i = new GeoGlobe.Filter.Logical({
                type: GeoGlobe.Filter.Logical.OR
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            Not: function Not(e, t) {
              var i = new GeoGlobe.Filter.Logical({
                type: GeoGlobe.Filter.Logical.NOT
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsLessThan: function PropertyIsLessThan(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.LESS_THAN
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsGreaterThan: function PropertyIsGreaterThan(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.GREATER_THAN
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsLessThanOrEqualTo: function PropertyIsLessThanOrEqualTo(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.LESS_THAN_OR_EQUAL_TO
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsGreaterThanOrEqualTo: function PropertyIsGreaterThanOrEqualTo(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsBetween: function PropertyIsBetween(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.BETWEEN
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            Literal: function Literal(e, t) {
              t.value = GeoGlobe.String.numericIf(this.getChildValue(e), !0);
            },
            PropertyName: function PropertyName(e, t) {
              t.property = this.getChildValue(e);
            },
            LowerBoundary: function LowerBoundary(e, t) {
              t.lowerBoundary = GeoGlobe.String.numericIf(this.readers.ogc._expression.call(this, e), !0);
            },
            UpperBoundary: function UpperBoundary(e, t) {
              t.upperBoundary = GeoGlobe.String.numericIf(this.readers.ogc._expression.call(this, e), !0);
            },
            Intersects: function Intersects(e, t) {
              this.readSpatial(e, t, GeoGlobe.Filter.Spatial.INTERSECTS);
            },
            Within: function Within(e, t) {
              this.readSpatial(e, t, GeoGlobe.Filter.Spatial.WITHIN);
            },
            Contains: function Contains(e, t) {
              this.readSpatial(e, t, GeoGlobe.Filter.Spatial.CONTAINS);
            },
            DWithin: function DWithin(e, t) {
              this.readSpatial(e, t, GeoGlobe.Filter.Spatial.DWITHIN);
            },
            Distance: function Distance(e, t) {
              t.distance = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e)), t.distanceUnits = e.getAttribute("units");
            },
            Function: function Function(e, t) {},
            PropertyIsNull: function PropertyIsNull(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.IS_NULL
              });
              this.readChildNodes(e, i), t.filters.push(i);
            }
          }
        },
        readSpatial: function readSpatial(e, t, i) {
          var r = new GeoGlobe.Filter.Spatial({
            type: i
          });
          this.readChildNodes(e, r), r.value = r.components[0], delete r.components, t.filters.push(r);
        },
        encodeLiteral: function encodeLiteral(e) {
          return e instanceof Date && (e = GeoGlobe.Date.toISOString(e)), e;
        },
        writeOgcExpression: function writeOgcExpression(e, t) {
          return e instanceof GeoGlobe.Filter.Function ? this.writeNode("Function", e, t) : this.writeNode("Literal", e, t), t;
        },
        write: function write(e) {
          return this.writers.ogc.Filter.apply(this, [e]);
        },
        writers: {
          ogc: {
            Filter: function Filter(e) {
              var t = this.createElementNSPlus("ogc:Filter");
              return this.writeNode(this.getFilterType(e), e, t), t;
            },
            _featureIds: function _featureIds(e) {
              for (var t = this.createDocumentFragment(), i = 0, r = e.fids.length; i < r; ++i) {
                this.writeNode("ogc:FeatureId", e.fids[i], t);
              }

              return t;
            },
            FeatureId: function FeatureId(e) {
              return this.createElementNSPlus("ogc:FeatureId", {
                attributes: {
                  fid: e
                }
              });
            },
            And: function And(e) {
              for (var t, i = this.createElementNSPlus("ogc:And"), r = 0, n = e.filters.length; r < n; ++r) {
                t = e.filters[r], this.writeNode(this.getFilterType(t), t, i);
              }

              return i;
            },
            Or: function Or(e) {
              for (var t, i = this.createElementNSPlus("ogc:Or"), r = 0, n = e.filters.length; r < n; ++r) {
                t = e.filters[r], this.writeNode(this.getFilterType(t), t, i);
              }

              return i;
            },
            Not: function Not(e) {
              var t = this.createElementNSPlus("ogc:Not"),
                  i = e.filters[0];
              return this.writeNode(this.getFilterType(i), i, t), t;
            },
            PropertyIsLessThan: function PropertyIsLessThan(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsLessThan");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsGreaterThan: function PropertyIsGreaterThan(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsGreaterThan");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsLessThanOrEqualTo: function PropertyIsLessThanOrEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsLessThanOrEqualTo");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsGreaterThanOrEqualTo: function PropertyIsGreaterThanOrEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsGreaterThanOrEqualTo");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsBetween: function PropertyIsBetween(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsBetween");
              return this.writeNode("PropertyName", e, t), this.writeNode("LowerBoundary", e, t), this.writeNode("UpperBoundary", e, t), t;
            },
            PropertyName: function PropertyName(e) {
              return this.createElementNSPlus("ogc:PropertyName", {
                value: e.property
              });
            },
            Literal: function Literal(e) {
              var t = this.encodeLiteral || GeoGlobe.Format.Filter.v1.prototype.encodeLiteral;
              return this.createElementNSPlus("ogc:Literal", {
                value: t(e)
              });
            },
            LowerBoundary: function LowerBoundary(e) {
              var t = this.createElementNSPlus("ogc:LowerBoundary");
              return this.writeOgcExpression(e.lowerBoundary, t), t;
            },
            UpperBoundary: function UpperBoundary(e) {
              var t = this.createElementNSPlus("ogc:UpperBoundary");
              return this.writeNode("Literal", e.upperBoundary, t), t;
            },
            INTERSECTS: function INTERSECTS(e) {
              return this.writeSpatial(e, "Intersects");
            },
            WITHIN: function WITHIN(e) {
              return this.writeSpatial(e, "Within");
            },
            CONTAINS: function CONTAINS(e) {
              return this.writeSpatial(e, "Contains");
            },
            DWITHIN: function DWITHIN(e) {
              var t = this.writeSpatial(e, "DWithin");
              return this.writeNode("Distance", e, t), t;
            },
            Distance: function Distance(e) {
              return this.createElementNSPlus("ogc:Distance", {
                attributes: {
                  units: e.distanceUnits
                },
                value: e.distance
              });
            },
            Function: function Function(e) {
              for (var t = this.createElementNSPlus("ogc:Function", {
                attributes: {
                  name: e.name
                }
              }), i = e.params, r = 0, n = i.length; r < n; r++) {
                this.writeOgcExpression(i[r], t);
              }

              return t;
            },
            PropertyIsNull: function PropertyIsNull(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsNull");
              return this.writeNode("PropertyName", e, t), t;
            },
            SortBy: function SortBy(e) {
              for (var t = this.createElementNSPlus("ogc:SortBy"), i = 0, r = e.length; i < r; i++) {
                this.writeNode("ogc:SortProperty", e[i], t);
              }

              return t;
            },
            SortProperty: function SortProperty(e) {
              var t = this.createElementNSPlus("ogc:SortProperty");
              return this.writeNode("ogc:PropertyName", e, t), this.writeNode("ogc:SortOrder", "DESC" == e.order ? "DESC" : "ASC", t), t;
            },
            SortOrder: function SortOrder(e) {
              return this.createElementNSPlus("ogc:SortOrder", {
                value: e
              });
            }
          }
        },
        getFilterType: function getFilterType(e) {
          var t = this.filterMap[e.type];
          if (!t) throw "Filter writing not supported for rule type: " + e.type;
          return t;
        },
        filterMap: {
          "&&": "And",
          "||": "Or",
          "!": "Not",
          "==": "PropertyIsEqualTo",
          "!=": "PropertyIsNotEqualTo",
          "<": "PropertyIsLessThan",
          ">": "PropertyIsGreaterThan",
          "<=": "PropertyIsLessThanOrEqualTo",
          ">=": "PropertyIsGreaterThanOrEqualTo",
          "..": "PropertyIsBetween",
          "~": "PropertyIsLike",
          NULL: "PropertyIsNull",
          BBOX: "BBOX",
          DWITHIN: "DWITHIN",
          WITHIN: "WITHIN",
          CONTAINS: "CONTAINS",
          INTERSECTS: "INTERSECTS",
          FID: "_featureIds"
        },
        CLASS_NAME: "GeoGlobe.Format.Filter.v1"
      }), GeoGlobe.Format.Filter.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.GML.v2, GeoGlobe.Format.Filter.v1, {
        VERSION: "1.0.0",
        schemaLocation: "http://www.opengis.net/ogc/filter/1.0.0/filter.xsd",
        initialize: function initialize(e) {
          GeoGlobe.Format.GML.v2.prototype.initialize.apply(this, [e]);
        },
        readers: {
          ogc: GeoGlobe.Util.applyDefaults({
            PropertyIsEqualTo: function PropertyIsEqualTo(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.EQUAL_TO
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsNotEqualTo: function PropertyIsNotEqualTo(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.NOT_EQUAL_TO
              });
              this.readChildNodes(e, i), t.filters.push(i);
            },
            PropertyIsLike: function PropertyIsLike(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.LIKE
              });
              this.readChildNodes(e, i);
              var r = e.getAttribute("wildCard"),
                  n = e.getAttribute("singleChar"),
                  o = e.getAttribute("escape");
              i.value2regex(r, n, o), t.filters.push(i);
            }
          }, GeoGlobe.Format.Filter.v1.prototype.readers.ogc),
          gml: GeoGlobe.Format.GML.v2.prototype.readers.gml,
          feature: GeoGlobe.Format.GML.v2.prototype.readers.feature
        },
        writers: {
          ogc: GeoGlobe.Util.applyDefaults({
            PropertyIsEqualTo: function PropertyIsEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsEqualTo");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsNotEqualTo: function PropertyIsNotEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsNotEqualTo");
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsLike: function PropertyIsLike(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsLike", {
                attributes: {
                  wildCard: "*",
                  singleChar: ".",
                  escape: "!"
                }
              });
              return this.writeNode("PropertyName", e, t), this.writeNode("Literal", e.regex2value(), t), t;
            },
            BBOX: function BBOX(e) {
              var t = this.createElementNSPlus("ogc:BBOX");
              e.property && this.writeNode("PropertyName", e, t);
              var i = this.writeNode("gml:Box", e.value, t);
              return e.projection && i.setAttribute("srsName", e.projection), t;
            }
          }, GeoGlobe.Format.Filter.v1.prototype.writers.ogc),
          gml: GeoGlobe.Format.GML.v2.prototype.writers.gml,
          feature: GeoGlobe.Format.GML.v2.prototype.writers.feature
        },
        writeSpatial: function writeSpatial(e, t) {
          var i,
              r = this.createElementNSPlus("ogc:" + t);
          return this.writeNode("PropertyName", e, r), e.value instanceof GeoGlobe.Filter.Function ? this.writeNode("Function", e.value, r) : (i = e.value instanceof GeoGlobe.Geometry ? this.writeNode("feature:_geometry", e.value).firstChild : this.writeNode("gml:Box", e.value), e.projection && i.setAttribute("srsName", e.projection), r.appendChild(i)), r;
        },
        CLASS_NAME: "GeoGlobe.Format.Filter.v1_0_0"
      }), GeoGlobe.Format.Filter.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Format.GML.v3, GeoGlobe.Format.Filter.v1, {
        VERSION: "1.1.0",
        schemaLocation: "http://www.opengis.net/ogc/filter/1.1.0/filter.xsd",
        initialize: function initialize(e) {
          GeoGlobe.Format.GML.v3.prototype.initialize.apply(this, [e]);
        },
        readers: {
          ogc: GeoGlobe.Util.applyDefaults({
            PropertyIsEqualTo: function PropertyIsEqualTo(e, t) {
              var i = e.getAttribute("matchCase"),
                  r = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.EQUAL_TO,
                matchCase: !("false" === i || "0" === i)
              });
              this.readChildNodes(e, r), t.filters.push(r);
            },
            PropertyIsNotEqualTo: function PropertyIsNotEqualTo(e, t) {
              var i = e.getAttribute("matchCase"),
                  r = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.NOT_EQUAL_TO,
                matchCase: !("false" === i || "0" === i)
              });
              this.readChildNodes(e, r), t.filters.push(r);
            },
            PropertyIsLike: function PropertyIsLike(e, t) {
              var i = new GeoGlobe.Filter.Comparison({
                type: GeoGlobe.Filter.Comparison.LIKE
              });
              this.readChildNodes(e, i);
              var r = e.getAttribute("wildCard"),
                  n = e.getAttribute("singleChar"),
                  o = e.getAttribute("escapeChar");
              i.value2regex(r, n, o), t.filters.push(i);
            }
          }, GeoGlobe.Format.Filter.v1.prototype.readers.ogc),
          gml: GeoGlobe.Format.GML.v3.prototype.readers.gml,
          feature: GeoGlobe.Format.GML.v3.prototype.readers.feature
        },
        writers: {
          ogc: GeoGlobe.Util.applyDefaults({
            PropertyIsEqualTo: function PropertyIsEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsEqualTo", {
                attributes: {
                  matchCase: e.matchCase
                }
              });
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsNotEqualTo: function PropertyIsNotEqualTo(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsNotEqualTo", {
                attributes: {
                  matchCase: e.matchCase
                }
              });
              return this.writeNode("PropertyName", e, t), this.writeOgcExpression(e.value, t), t;
            },
            PropertyIsLike: function PropertyIsLike(e) {
              var t = this.createElementNSPlus("ogc:PropertyIsLike", {
                attributes: {
                  matchCase: e.matchCase,
                  wildCard: "*",
                  singleChar: ".",
                  escapeChar: "!"
                }
              });
              return this.writeNode("PropertyName", e, t), this.writeNode("Literal", e.regex2value(), t), t;
            },
            BBOX: function BBOX(e) {
              var t = this.createElementNSPlus("ogc:BBOX");
              e.property && this.writeNode("PropertyName", e, t);
              var i = this.writeNode("gml:Envelope", e.value);
              return e.projection && i.setAttribute("srsName", e.projection), t.appendChild(i), t;
            },
            SortBy: function SortBy(e) {
              for (var t = this.createElementNSPlus("ogc:SortBy"), i = 0, r = e.length; i < r; i++) {
                this.writeNode("ogc:SortProperty", e[i], t);
              }

              return t;
            },
            SortProperty: function SortProperty(e) {
              var t = this.createElementNSPlus("ogc:SortProperty");
              return this.writeNode("ogc:PropertyName", e, t), this.writeNode("ogc:SortOrder", "DESC" == e.order ? "DESC" : "ASC", t), t;
            },
            SortOrder: function SortOrder(e) {
              return this.createElementNSPlus("ogc:SortOrder", {
                value: e
              });
            }
          }, GeoGlobe.Format.Filter.v1.prototype.writers.ogc),
          gml: GeoGlobe.Format.GML.v3.prototype.writers.gml,
          feature: GeoGlobe.Format.GML.v3.prototype.writers.feature
        },
        writeSpatial: function writeSpatial(e, t) {
          var i,
              r = this.createElementNSPlus("ogc:" + t);
          return this.writeNode("PropertyName", e, r), e.value instanceof GeoGlobe.Filter.Function ? this.writeNode("Function", e.value, r) : (i = e.value instanceof GeoGlobe.Geometry ? this.writeNode("feature:_geometry", e.value).firstChild : this.writeNode("gml:Envelope", e.value), e.projection && i.setAttribute("srsName", e.projection), r.appendChild(i)), r;
        },
        CLASS_NAME: "GeoGlobe.Format.Filter.v1_1_0"
      }), GeoGlobe.Format.WFST = function (e) {
        e = GeoGlobe.Util.applyDefaults(e, GeoGlobe.Format.WFST.DEFAULTS);
        var t = GeoGlobe.Format.WFST["v" + e.version.replace(/\./g, "_")];
        if (!t) throw "Unsupported WFST version: " + e.version;
        return new t(e);
      }, GeoGlobe.Format.WFST.DEFAULTS = {
        version: "1.0.0"
      }, GeoGlobe.Format.WFST.v1 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance",
          wfs: "http://www.opengis.net/wfs",
          gml: "http://www.opengis.net/gml",
          ogc: "http://www.opengis.net/ogc",
          ows: "http://www.opengis.net/ows"
        },
        defaultPrefix: "wfs",
        version: null,
        schemaLocations: null,
        srsName: null,
        extractAttributes: !0,
        xy: !0,
        stateName: null,
        initialize: function initialize(e) {
          this.stateName = {}, this.stateName[GeoGlobe.State.INSERT] = "wfs:Insert", this.stateName[GeoGlobe.State.UPDATE] = "wfs:Update", this.stateName[GeoGlobe.State.DELETE] = "wfs:Delete", GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        getSrsName: function getSrsName(e, t) {
          var i = t && t.srsName;
          return i || (i = e && e.layer ? e.layer.projection.getCode() : this.srsName), i;
        },
        read: function read(e, t) {
          t = t || {}, GeoGlobe.Util.applyDefaults(t, {
            output: "features"
          }), "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var i = {};
          return e && this.readNode(e, i, !0), i.features && "features" === t.output && (i = i.features), i;
        },
        readers: {
          wfs: {
            FeatureCollection: function FeatureCollection(e, t) {
              t.features = [], this.readChildNodes(e, t);
            }
          }
        },
        write: function write(e, t) {
          var i = this.writeNode("wfs:Transaction", {
            features: e,
            options: t
          }),
              r = this.schemaLocationAttr();
          return r && this.setAttributeNS(i, this.namespaces.xsi, "xsi:schemaLocation", r), GeoGlobe.Format.XML.prototype.write.apply(this, [i]);
        },
        writers: {
          wfs: {
            GetFeature: function GetFeature(e) {
              var t = this.createElementNSPlus("wfs:GetFeature", {
                attributes: {
                  service: "WFS",
                  version: this.version,
                  outputFormat: e && e.outputFormat,
                  maxFeatures: e && e.maxFeatures,
                  resultType: e && e.resultType,
                  startPosition: e && e.startPosition,
                  "xsi:schemaLocation": this.schemaLocationAttr(e)
                }
              });
              if ("string" == typeof this.featureType) this.writeNode("Query", e, t);else for (var i = 0, r = this.featureType.length; i < r; i++) {
                e.featureType = this.featureType[i], this.writeNode("Query", e, t);
              }
              return t;
            },
            Transaction: function Transaction(e) {
              var t,
                  i,
                  r = (e = e || {}).options || {},
                  n = this.createElementNSPlus("wfs:Transaction", {
                attributes: {
                  service: "WFS",
                  version: this.version,
                  handle: r.handle
                }
              }),
                  o = e.features;

              if (o) {
                var a, s;

                for (!0 === r.multi && GeoGlobe.Util.extend(this.geometryTypes, {
                  "GeoGlobe.Geometry.Point": "MultiPoint",
                  "GeoGlobe.Geometry.LineString": !0 === this.multiCurve ? "MultiCurve" : "MultiLineString",
                  "GeoGlobe.Geometry.Polygon": !0 === this.multiSurface ? "MultiSurface" : "MultiPolygon"
                }), t = 0, i = o.length; t < i; ++t) {
                  s = o[t], (a = this.stateName[s.state]) && this.writeNode(a, {
                    feature: s,
                    options: r
                  }, n);
                }

                !0 === r.multi && this.setGeometryTypes();
              }

              if (r.nativeElements) for (t = 0, i = r.nativeElements.length; t < i; ++t) {
                this.writeNode("wfs:Native", r.nativeElements[t], n);
              }
              return n;
            },
            Native: function Native(e) {
              return this.createElementNSPlus("wfs:Native", {
                attributes: {
                  vendorId: e.vendorId,
                  safeToIgnore: e.safeToIgnore
                },
                value: e.value
              });
            },
            Insert: function Insert(e) {
              var t = e.feature,
                  i = e.options,
                  r = this.createElementNSPlus("wfs:Insert", {
                attributes: {
                  handle: i && i.handle
                }
              });
              return this.srsName = this.getSrsName(t), this.writeNode("feature:_typeName", t, r), r;
            },
            Update: function Update(e) {
              var t = e.feature,
                  i = e.options,
                  r = this.createElementNSPlus("wfs:Update", {
                attributes: {
                  handle: i && i.handle,
                  typeName: (this.featureNS ? this.featurePrefix + ":" : "") + this.featureType
                }
              });
              this.featureNS && r.setAttribute("xmlns:" + this.featurePrefix, this.featureNS);
              var n = t.modified;

              for (var o in null === this.geometryName || n && void 0 === n.geometry || (this.srsName = this.getSrsName(t), this.writeNode("Property", {
                name: this.geometryName,
                value: t.geometry
              }, r)), t.attributes) {
                void 0 === t.attributes[o] || n && n.attributes && (!n.attributes || void 0 === n.attributes[o]) || this.writeNode("Property", {
                  name: o,
                  value: t.attributes[o]
                }, r);
              }

              return this.writeNode("ogc:Filter", new GeoGlobe.Filter.FeatureId({
                fids: [t.fid]
              }), r), r;
            },
            Property: function Property(e) {
              var t = this.createElementNSPlus("wfs:Property");
              return this.writeNode("Name", e.name, t), null !== e.value && this.writeNode("Value", e.value, t), t;
            },
            Name: function Name(e) {
              return this.createElementNSPlus("wfs:Name", {
                value: e
              });
            },
            Value: function Value(e) {
              var t;

              if (e instanceof GeoGlobe.Geometry) {
                t = this.createElementNSPlus("wfs:Value");
                var i = this.writeNode("feature:_geometry", e).firstChild;
                t.appendChild(i);
              } else t = this.createElementNSPlus("wfs:Value", {
                value: e
              });

              return t;
            },
            Delete: function Delete(e) {
              var t = e.feature,
                  i = e.options,
                  r = this.createElementNSPlus("wfs:Delete", {
                attributes: {
                  handle: i && i.handle,
                  typeName: (this.featureNS ? this.featurePrefix + ":" : "") + this.featureType
                }
              });
              return this.featureNS && r.setAttribute("xmlns:" + this.featurePrefix, this.featureNS), this.writeNode("ogc:Filter", new GeoGlobe.Filter.FeatureId({
                fids: [t.fid]
              }), r), r;
            }
          }
        },
        schemaLocationAttr: function schemaLocationAttr(e) {
          e = GeoGlobe.Util.extend({
            featurePrefix: this.featurePrefix,
            schema: this.schema
          }, e);
          var t = GeoGlobe.Util.extend({}, this.schemaLocations);
          e.schema && (t[e.featurePrefix] = e.schema);
          var i,
              r = [];

          for (var n in t) {
            (i = this.namespaces[n]) && r.push(i + " " + t[n]);
          }

          return r.join(" ") || void 0;
        },
        setFilterProperty: function setFilterProperty(e) {
          if (e.filters) for (var t = 0, i = e.filters.length; t < i; ++t) {
            GeoGlobe.Format.WFST.v1.prototype.setFilterProperty.call(this, e.filters[t]);
          } else e instanceof GeoGlobe.Filter.Spatial && !e.property && (e.property = this.geometryName);
        },
        CLASS_NAME: "GeoGlobe.Format.WFST.v1"
      }), GeoGlobe.Format.WFST.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.Filter.v1_0_0, GeoGlobe.Format.WFST.v1, {
        version: "1.0.0",
        srsNameInQuery: !1,
        schemaLocations: {
          wfs: "http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"
        },
        initialize: function initialize(e) {
          GeoGlobe.Format.Filter.v1_0_0.prototype.initialize.apply(this, [e]), GeoGlobe.Format.WFST.v1.prototype.initialize.apply(this, [e]);
        },
        readNode: function readNode(e, t, i) {
          return GeoGlobe.Format.GML.v2.prototype.readNode.apply(this, arguments);
        },
        readers: {
          wfs: GeoGlobe.Util.applyDefaults({
            WFS_TransactionResponse: function WFS_TransactionResponse(e, t) {
              t.insertIds = [], t.success = !1, this.readChildNodes(e, t);
            },
            InsertResult: function InsertResult(e, t) {
              var i = {
                fids: []
              };
              this.readChildNodes(e, i), t.insertIds = t.insertIds.concat(i.fids);
            },
            TransactionResult: function TransactionResult(e, t) {
              this.readChildNodes(e, t);
            },
            Status: function Status(e, t) {
              this.readChildNodes(e, t);
            },
            SUCCESS: function SUCCESS(e, t) {
              t.success = !0;
            }
          }, GeoGlobe.Format.WFST.v1.prototype.readers.wfs),
          gml: GeoGlobe.Format.GML.v2.prototype.readers.gml,
          feature: GeoGlobe.Format.GML.v2.prototype.readers.feature,
          ogc: GeoGlobe.Format.Filter.v1_0_0.prototype.readers.ogc
        },
        writers: {
          wfs: GeoGlobe.Util.applyDefaults({
            Query: function Query(e) {
              var t = (e = GeoGlobe.Util.extend({
                featureNS: this.featureNS,
                featurePrefix: this.featurePrefix,
                featureType: this.featureType,
                srsName: this.srsName,
                srsNameInQuery: this.srsNameInQuery
              }, e)).featurePrefix,
                  i = this.createElementNSPlus("wfs:Query", {
                attributes: {
                  typeName: (e.featureNS ? t + ":" : "") + e.featureType,
                  time: e && e.time,
                  userecent: e && e.userecent
                }
              });
              if (e.srsNameInQuery && e.srsName && i.setAttribute("srsName", e.srsName), e.featureNS && i.setAttribute("xmlns:" + t, e.featureNS), e.propertyNames) for (var r = 0, n = e.propertyNames.length; r < n; r++) {
                this.writeNode("ogc:PropertyName", {
                  property: e.propertyNames[r]
                }, i);
              }
              return e.filter && (this.setFilterProperty(e.filter), this.writeNode("ogc:Filter", e.filter, i)), e.sortBy && this.writeNode("ogc:SortBy", e.sortBy, i), e.groupBy && this.writeNode("ogc:GroupBy", e.groupBy, i), i;
            }
          }, GeoGlobe.Format.WFST.v1.prototype.writers.wfs),
          gml: GeoGlobe.Format.GML.v2.prototype.writers.gml,
          feature: GeoGlobe.Format.GML.v2.prototype.writers.feature,
          ogc: GeoGlobe.Format.Filter.v1_0_0.prototype.writers.ogc
        },
        CLASS_NAME: "GeoGlobe.Format.WFST.v1_0_0"
      }), GeoGlobe.Format.WFST.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Format.Filter.v1_1_0, GeoGlobe.Format.WFST.v1, {
        version: "1.1.0",
        schemaLocations: {
          wfs: "http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
        },
        initialize: function initialize(e) {
          GeoGlobe.Format.Filter.v1_1_0.prototype.initialize.apply(this, [e]), GeoGlobe.Format.WFST.v1.prototype.initialize.apply(this, [e]);
        },
        readNode: function readNode(e, t, i) {
          return GeoGlobe.Format.GML.v3.prototype.readNode.apply(this, arguments);
        },
        readers: {
          wfs: GeoGlobe.Util.applyDefaults({
            FeatureCollection: function FeatureCollection(e, t) {
              t.numberOfFeatures = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("numberOfFeatures")), GeoGlobe.Format.WFST.v1.prototype.readers.wfs.FeatureCollection.apply(this, arguments);
            },
            TransactionResponse: function TransactionResponse(e, t) {
              t.insertIds = [], t.success = !1, this.readChildNodes(e, t);
            },
            TransactionSummary: function TransactionSummary(e, t) {
              t.success = !0;
            },
            InsertResults: function InsertResults(e, t) {
              this.readChildNodes(e, t);
            },
            Feature: function Feature(e, t) {
              var i = {
                fids: []
              };
              this.readChildNodes(e, i), t.insertIds.push(i.fids[0]);
            }
          }, GeoGlobe.Format.WFST.v1.prototype.readers.wfs),
          gml: GeoGlobe.Format.GML.v3.prototype.readers.gml,
          feature: GeoGlobe.Format.GML.v3.prototype.readers.feature,
          ogc: GeoGlobe.Format.Filter.v1_1_0.prototype.readers.ogc,
          ows: GeoGlobe.Format.OWSCommon.v1_0_0.prototype.readers.ows
        },
        writers: {
          wfs: GeoGlobe.Util.applyDefaults({
            GetFeature: function GetFeature(e) {
              var t = GeoGlobe.Format.WFST.v1.prototype.writers.wfs.GetFeature.apply(this, arguments);
              return e && this.setAttributes(t, {
                resultType: e.resultType,
                startIndex: e.startIndex,
                count: e.count
              }), t;
            },
            Query: function Query(e) {
              var t = (e = GeoGlobe.Util.extend({
                featureNS: this.featureNS,
                featurePrefix: this.featurePrefix,
                featureType: this.featureType,
                srsName: this.srsName
              }, e)).featurePrefix,
                  i = this.createElementNSPlus("wfs:Query", {
                attributes: {
                  typeName: (e.featureNS ? t + ":" : "") + e.featureType,
                  srsName: e.srsName,
                  time: e && e.time,
                  userecent: e && e.userecent
                }
              });
              if (e.featureNS && i.setAttribute("xmlns:" + t, e.featureNS), e.propertyNames) for (var r = 0, n = e.propertyNames.length; r < n; r++) {
                this.writeNode("wfs:PropertyName", {
                  property: e.propertyNames[r]
                }, i);
              }
              return e.filter && (GeoGlobe.Format.WFST.v1_1_0.prototype.setFilterProperty.call(this, e.filter), this.writeNode("ogc:Filter", e.filter, i)), e.sortBy && this.writeNode("ogc:SortBy", e.sortBy, i), e.groupBy && this.writeNode("ogc:GroupBy", e.groupBy, i), i;
            },
            PropertyName: function PropertyName(e) {
              return this.createElementNSPlus("wfs:PropertyName", {
                value: e.property
              });
            }
          }, GeoGlobe.Format.WFST.v1.prototype.writers.wfs),
          gml: GeoGlobe.Format.GML.v3.prototype.writers.gml,
          feature: GeoGlobe.Format.GML.v3.prototype.writers.feature,
          ogc: GeoGlobe.Format.Filter.v1_1_0.prototype.writers.ogc
        },
        CLASS_NAME: "GeoGlobe.Format.WFST.v1_1_0"
      }), GeoGlobe.Format.JSON = GeoGlobe.Class4OL(GeoGlobe.Format, {
        indent: "    ",
        space: " ",
        newline: "\n",
        level: 0,
        pretty: !1,
        nativeJSON: !(!window.JSON || "function" != typeof JSON.parse || "function" != typeof _babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_2___default.a),
        read: function read(json, filter) {
          var object;
          if (this.nativeJSON) object = JSON.parse(json, filter);else try {
            if (/^[\],:{}\s]*$/.test(json.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, "")) && (object = eval("(" + json + ")"), "function" == typeof filter)) {
              var walk = function walk(e, t) {
                if (t && "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(t)) for (var i in t) {
                  t.hasOwnProperty(i) && (t[i] = walk(i, t[i]));
                }
                return filter(e, t);
              };

              object = walk("", object);
            }
          } catch (e) {}
          return this.keepData && (this.data = object), object;
        },
        write: function write(e, t) {
          this.pretty = !!t;

          var i = null,
              r = _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(e);

          if (this.serialize[r]) try {
            i = !this.pretty && this.nativeJSON ? _babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_2___default()(e) : this.serialize[r].apply(this, [e]);
          } catch (e) {
            GeoGlobe.Console.error("Trouble serializing: " + e);
          }
          return i;
        },
        writeIndent: function writeIndent() {
          var e = [];
          if (this.pretty) for (var t = 0; t < this.level; ++t) {
            e.push(this.indent);
          }
          return e.join("");
        },
        writeNewline: function writeNewline() {
          return this.pretty ? this.newline : "";
        },
        writeSpace: function writeSpace() {
          return this.pretty ? this.space : "";
        },
        serialize: {
          object: function object(e) {
            if (null == e) return "null";
            if (e.constructor == Date) return this.serialize.date.apply(this, [e]);
            if (e.constructor == Array) return this.serialize.array.apply(this, [e]);
            var t,
                i,
                r,
                n = ["{"];
            this.level += 1;
            var o = !1;

            for (t in e) {
              e.hasOwnProperty(t) && (i = GeoGlobe.Format.JSON.prototype.write.apply(this, [t, this.pretty]), r = GeoGlobe.Format.JSON.prototype.write.apply(this, [e[t], this.pretty]), null != i && null != r && (o && n.push(","), n.push(this.writeNewline(), this.writeIndent(), i, ":", this.writeSpace(), r), o = !0));
            }

            return this.level -= 1, n.push(this.writeNewline(), this.writeIndent(), "}"), n.join("");
          },
          array: function array(e) {
            var t,
                i = ["["];
            this.level += 1;

            for (var r = 0, n = e.length; r < n; ++r) {
              null != (t = GeoGlobe.Format.JSON.prototype.write.apply(this, [e[r], this.pretty])) && (r > 0 && i.push(","), i.push(this.writeNewline(), this.writeIndent(), t));
            }

            return this.level -= 1, i.push(this.writeNewline(), this.writeIndent(), "]"), i.join("");
          },
          string: function string(e) {
            var t = {
              "\b": "\\b",
              "\t": "\\t",
              "\n": "\\n",
              "\f": "\\f",
              "\r": "\\r",
              '"': '\\"',
              "\\": "\\\\"
            };
            return /["\\\x00-\x1f]/.test(e) ? '"' + e.replace(/([\x00-\x1f\\"])/g, function (e, i) {
              var r = t[i];
              return r || (r = i.charCodeAt(), "\\u00" + Math.floor(r / 16).toString(16) + (r % 16).toString(16));
            }) + '"' : '"' + e + '"';
          },
          number: function number(e) {
            return isFinite(e) ? String(e) : "null";
          },
          "boolean": function boolean(e) {
            return String(e);
          },
          date: function date(e) {
            function t(e) {
              return e < 10 ? "0" + e : e;
            }

            return '"' + e.getFullYear() + "-" + t(e.getMonth() + 1) + "-" + t(e.getDate()) + "T" + t(e.getHours()) + ":" + t(e.getMinutes()) + ":" + t(e.getSeconds()) + '"';
          }
        },
        CLASS_NAME: "GeoGlobe.Format.JSON"
      }), GeoGlobe.Format.GeoJSON = GeoGlobe.Class4OL(GeoGlobe.Format.JSON, {
        ignoreExtraDims: !1,
        read: function read(e, t, i) {
          t = t || "FeatureCollection";
          var r,
              n = null;

          if (r = "string" == typeof e ? GeoGlobe.Format.JSON.prototype.read.apply(this, [e, i]) : e) {
            if ("string" != typeof r.type) GeoGlobe.Console.error("Bad GeoJSON - no type: " + e);else if (this.isValidType(r, t)) switch (t) {
              case "Geometry":
                try {
                  n = this.parseGeometry(r);
                } catch (e) {
                  GeoGlobe.Console.error(e);
                }

                break;

              case "Feature":
                try {
                  (n = this.parseFeature(r)).type = "Feature";
                } catch (e) {
                  GeoGlobe.Console.error(e);
                }

                break;

              case "FeatureCollection":
                switch (n = [], r.type) {
                  case "Feature":
                    try {
                      n.push(this.parseFeature(r));
                    } catch (e) {
                      n = null, GeoGlobe.Console.error(e);
                    }

                    break;

                  case "FeatureCollection":
                    for (var o = 0, a = r.features.length; o < a; ++o) {
                      try {
                        n.push(this.parseFeature(r.features[o]));
                      } catch (e) {
                        n = null, GeoGlobe.Console.error(e);
                      }
                    }

                    break;

                  default:
                    try {
                      var s = this.parseGeometry(r);
                      n.push(new GeoGlobe.Feature(s));
                    } catch (e) {
                      n = null, GeoGlobe.Console.error(e);
                    }

                }

            }
          } else GeoGlobe.Console.error("Bad JSON: " + e);

          return n;
        },
        isValidType: function isValidType(e, t) {
          var i = !1;

          switch (t) {
            case "Geometry":
              -1 == GeoGlobe.Util.indexOf(["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "Box", "GeometryCollection"], e.type) ? GeoGlobe.Console.error("Unsupported geometry type: " + e.type) : i = !0;
              break;

            case "FeatureCollection":
              i = !0;
              break;

            default:
              e.type == t ? i = !0 : GeoGlobe.Console.error("Cannot convert types from " + e.type + " to " + t);
          }

          return i;
        },
        parseFeature: function parseFeature(e) {
          var t, i, r, n;
          r = e.properties ? e.properties : {}, n = e.geometry && e.geometry.bbox || e.bbox;

          try {
            i = this.parseGeometry(e.geometry);
          } catch (e) {
            throw e;
          }

          return t = new GeoGlobe.Feature(i, r), n && (t.bounds = GeoGlobe.LngLatBounds.fromArray(n)), e.id && (t.fid = e.id), t;
        },
        parseGeometry: function parseGeometry(e) {
          if (null == e) return null;
          var t,
              i = !1;

          if ("GeometryCollection" == e.type) {
            if (!GeoGlobe.Util.isArray(e.geometries)) throw "GeometryCollection must have geometries array: " + e;

            for (var r = e.geometries.length, n = new Array(r), o = 0; o < r; ++o) {
              n[o] = this.parseGeometry.apply(this, [e.geometries[o]]);
            }

            t = new GeoGlobe.Geometry.Collection(n), i = !0;
          } else {
            if (!GeoGlobe.Util.isArray(e.coordinates)) throw "Geometry must have coordinates array: " + e;
            if (!this.parseCoords[e.type.toLowerCase()]) throw "Unsupported geometry type: " + e.type;

            try {
              t = this.parseCoords[e.type.toLowerCase()].apply(this, [e.coordinates]);
            } catch (e) {
              throw e;
            }
          }

          return this.internalProjection && this.externalProjection && !i && t.transform(this.externalProjection, this.internalProjection), t;
        },
        parseCoords: {
          point: function point(e) {
            if (0 == this.ignoreExtraDims && 2 != e.length) throw "Only 2D points are supported: " + e;
            return new GeoGlobe.Geometry.Point(e[0], e[1]);
          },
          multipoint: function multipoint(e) {
            for (var t = [], i = null, r = 0, n = e.length; r < n; ++r) {
              try {
                i = this.parseCoords.point.apply(this, [e[r]]);
              } catch (e) {
                throw e;
              }

              t.push(i);
            }

            return new GeoGlobe.Geometry.MultiPoint(t);
          },
          linestring: function linestring(e) {
            for (var t = [], i = null, r = 0, n = e.length; r < n; ++r) {
              try {
                i = this.parseCoords.point.apply(this, [e[r]]);
              } catch (e) {
                throw e;
              }

              t.push(i);
            }

            return new GeoGlobe.Geometry.LineString(t);
          },
          multilinestring: function multilinestring(e) {
            for (var t = [], i = null, r = 0, n = e.length; r < n; ++r) {
              try {
                i = this.parseCoords.linestring.apply(this, [e[r]]);
              } catch (e) {
                throw e;
              }

              t.push(i);
            }

            return new GeoGlobe.Geometry.MultiLineString(t);
          },
          polygon: function polygon(e) {
            for (var t, i, r = [], n = 0, o = e.length; n < o; ++n) {
              try {
                i = this.parseCoords.linestring.apply(this, [e[n]]);
              } catch (e) {
                throw e;
              }

              t = new GeoGlobe.Geometry.LinearRing(i.components), r.push(t);
            }

            return new GeoGlobe.Geometry.Polygon(r);
          },
          multipolygon: function multipolygon(e) {
            for (var t = [], i = null, r = 0, n = e.length; r < n; ++r) {
              try {
                i = this.parseCoords.polygon.apply(this, [e[r]]);
              } catch (e) {
                throw e;
              }

              t.push(i);
            }

            return new GeoGlobe.Geometry.MultiPolygon(t);
          },
          box: function box(e) {
            if (2 != e.length) throw "GeoJSON box coordinates must have 2 elements";
            return new GeoGlobe.Geometry.Polygon([new GeoGlobe.Geometry.LinearRing([new GeoGlobe.Geometry.Point(e[0][0], e[0][1]), new GeoGlobe.Geometry.Point(e[1][0], e[0][1]), new GeoGlobe.Geometry.Point(e[1][0], e[1][1]), new GeoGlobe.Geometry.Point(e[0][0], e[1][1]), new GeoGlobe.Geometry.Point(e[0][0], e[0][1])])]);
          }
        },
        write: function write(e, t) {
          var i = {
            type: null
          };

          if (GeoGlobe.Util.isArray(e)) {
            i.type = "FeatureCollection";
            var r = e.length;
            i.features = new Array(r);

            for (var n = 0; n < r; ++n) {
              var o = e[n];
              if (!o instanceof GeoGlobe.Feature) throw "FeatureCollection only supports collections of features: " + o;
              i.features[n] = this.extract.feature.apply(this, [o]);
            }
          } else 0 == e.CLASS_NAME.indexOf("GeoGlobe.Geometry") ? i = this.extract.geometry.apply(this, [e]) : e instanceof GeoGlobe.Feature && (i = this.extract.feature.apply(this, [e]), e.layer && e.layer.projection && (i.crs = this.createCRSObject(e)));

          return GeoGlobe.Format.JSON.prototype.write.apply(this, [i, t]);
        },
        createCRSObject: function createCRSObject(e) {
          var t = e.layer.projection.toString(),
              i = {};

          if (t.match(/epsg:/i)) {
            var r = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(t.substring(t.indexOf(":") + 1));

            i = 4326 == r ? {
              type: "name",
              properties: {
                name: "urn:ogc:def:crs:OGC:1.3:CRS84"
              }
            } : {
              type: "name",
              properties: {
                name: "EPSG:" + r
              }
            };
          }

          return i;
        },
        extract: {
          feature: function feature(e) {
            var t = this.extract.geometry.apply(this, [e.geometry]),
                i = {
              type: "Feature",
              properties: e.attributes,
              geometry: t
            };
            return null != e.fid && (i.id = e.fid), i;
          },
          geometry: function geometry(e) {
            if (null == e) return null;
            this.internalProjection && this.externalProjection && (e = e.clone()).transform(this.internalProjection, this.externalProjection);
            var t = e.CLASS_NAME.split(".")[2],
                i = this.extract[t.toLowerCase()].apply(this, [e]);
            return "Collection" == t ? {
              type: "GeometryCollection",
              geometries: i
            } : {
              type: t,
              coordinates: i
            };
          },
          point: function point(e) {
            return [e.x, e.y];
          },
          multipoint: function multipoint(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.point.apply(this, [e.components[i]]));
            }

            return t;
          },
          linestring: function linestring(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.point.apply(this, [e.components[i]]));
            }

            return t;
          },
          multilinestring: function multilinestring(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.linestring.apply(this, [e.components[i]]));
            }

            return t;
          },
          polygon: function polygon(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.linestring.apply(this, [e.components[i]]));
            }

            return t;
          },
          multipolygon: function multipolygon(e) {
            for (var t = [], i = 0, r = e.components.length; i < r; ++i) {
              t.push(this.extract.polygon.apply(this, [e.components[i]]));
            }

            return t;
          },
          collection: function collection(e) {
            for (var t = e.components.length, i = new Array(t), r = 0; r < t; ++r) {
              i[r] = this.extract.geometry.apply(this, [e.components[r]]);
            }

            return i;
          }
        },
        CLASS_NAME: "GeoGlobe.Format.GeoJSON"
      }), GeoGlobe.Format.WMTS = GeoGlobe.Class4OL({
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e);
        },
        getWMTSCapabilities: function getWMTSCapabilities(e) {
          var t = null;
          return this.getCapabilities(e, function (e) {
            var i = e.responseXML;
            i && i.documentElement || (i = e.responseText);
            var r = new GeoGlobe.Format.WMTSCapabilities.v1_0_0();
            t = r.read(i);
          }, function () {
            alert("WMTS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), t;
        },
        getCapabilities: function getCapabilities(e, t, i) {
          "function" != typeof i && (i = function i() {
            alert("WMTS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), GeoGlobe.Request.GET({
            url: e,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WMTS"
            },
            scope: this,
            async: !1,
            success: function success(e) {
              "function" == typeof t && t(e);
            },
            failure: i
          });
        },
        createLayerOption: function createLayerOption(e, t, i) {
          if (!("layer" in i)) throw new Error("Missing property 'layer' in configuration.");

          for (var r, n = t.contents, o = (n.layers, 0), a = n.layers.length; o < a; ++o) {
            if (n.layers[o].identifier === i.layer) {
              r = n.layers[o];
              break;
            }
          }

          if (!r) throw new Error("Layer not found");
          var s,
              x,
              l = i.format;
          if (!l && r.formats && r.formats.length && (l = r.formats[0]), i.matrixSet) s = n.tileMatrixSets[i.matrixSet];else if (i.projection) {
            o = 0;

            for (var c = r.tileMatrixSetLinks.length; o < c; o++) {
              if (n.tileMatrixSets[r.tileMatrixSetLinks[o].tileMatrixSet].supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3") === i.projection) {
                s = n.tileMatrixSets[r.tileMatrixSetLinks[o].tileMatrixSet];
                break;
              }
            }
          } else r.tileMatrixSetLinks.length >= 1 && (s = n.tileMatrixSets[r.tileMatrixSetLinks[0].tileMatrixSet]);
          if (!s) throw new Error("matrixSet not found");

          for (o = 0, a = r.styles.length; o < a && !(x = r.styles[o]).isDefault; ++o) {
            ;
          }

          var u = i.requestEncoding;
          u || (u = "KVP", t.operationsMetadata.GetTile.dcp.http);
          var h = [],
              f = i.params || {};
          delete i.params;

          for (var d = 0, g = r.dimensions.length; d < g; d++) {
            var p = r.dimensions[d];
            h.push(p.identifier), f.hasOwnProperty(p.identifier) || (f[p.identifier] = p["default"]);
          }

          var m,
              b,
              v,
              C = i.projection || s.supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3"),
              y = i.units || ("EPSG:4326" === C ? "degrees" : "m"),
              _ = [],
              A = [],
              I = r.tileMatrixSetLinks,
              w = function w(e) {
            _.push(28e-5 * e / GeoGlobe.METERS_PER_INCH / GeoGlobe.INCHES_PER_UNIT[y]), (!m || m > e) && (m = e), (!b || b < e) && (b = e);
          },
              G = 0;

          for (c = I.length; G < c; G++) {
            if ((v = I[G]).tileMatrixSet === s.identifier) {
              if (v.tileMatrixSetLimits) {
                for (var E, S = {}, T = 0, P = s.matrixIds.length; T < P; T++) {
                  S[s.matrixIds[T].identifier] = s.matrixIds[T];
                }

                for (T = 0, P = v.tileMatrixSetLimits.length; T < P; T++) {
                  E = S[v.tileMatrixSetLimits[T].tileMatrix], A.push(E), w(E.scaleDenominator);
                }
              } else for (T = 0, P = s.matrixIds.length; T < P; T++) {
                w(s.matrixIds[T].scaleDenominator);
              }

              break;
            }
          }

          _.sort(function (e, t) {
            return t - e;
          });

          var M,
              N = this.getParameterString({
            SERVICE: "WMTS",
            REQUEST: "GetTile",
            VERSION: t.version,
            LAYER: r.identifier,
            STYLE: x.identifier,
            TILEMATRIXSET: s.identifier,
            FORMAT: l,
            TILEMATRIX: "{z}",
            TILEROW: "{y}",
            TILECOL: "{x}"
          });
          M = e.endsWith("?") ? GeoGlobe.ProxyHost + e + N : GeoGlobe.ProxyHost + e + "?" + N;
          var L = GeoGlobe.Util.randomStr(10);
          if (r.bounds) var R = [r.bounds._sw.lng, r.bounds._sw.lat, r.bounds._ne.lng, r.bounds._ne.lat];else r.BoundingBox && (R = r.BoundingBox[0].bounds.toBBOX());
          var O = r.tileMatrixSetLinks[0].tileMatrixSet,
              F = n.tileMatrixSets[O].matrixIds[0].identifier,
              D = {
            name: r.identifier,
            srs: C,
            bbox: R,
            format: r.formats,
            zoomoffset: F
          };
          return {
            id: "layer_" + r.identifier + "_" + L,
            type: "raster",
            source: {
              type: "raster",
              tiles: [M],
              tileSize: 256
            },
            metadata: D,
            paint: {
              "raster-opacity": 1
            }
          };
        },
        createLayer: function createLayer(e, t) {
          var i = this.getWMTSCapabilities(e);
          if (t) var r = {
            layer: t.layer
          };else r = {
            layer: i.contents.layers[0].identifier
          };
          return this.createLayerOption(e, i, r);
        },
        createLayers: function createLayers(e) {
          for (var t = this.getWMTSCapabilities(e), i = t.contents.layers, r = [], n = 0; n < i.length; n++) {
            var o = {
              layer: i[n].identifier
            },
                a = this.createLayerOption(e, t, o);
            r.push(a);
          }

          return r;
        },
        getParameterString: function getParameterString(e) {
          var t = [];

          for (var i in e) {
            var r = e[i];
            null != r && "function" != typeof r && t.push(i + "=" + r);
          }

          return t.join("&");
        },
        CLASS_NAME: "GeoGlobe.Format.WMTS"
      }), GeoGlobe.Format.WMS = GeoGlobe.Class4OL({
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e);
        },
        getWMSCapabilities: function getWMSCapabilities(e) {
          var t = null;
          return this.getCapabilities(e, function (e) {
            var i = e.responseXML;
            i && i.documentElement || (i = e.responseText);
            var r = new GeoGlobe.Format.WMSCapabilities.v1_1_1();
            t = r.read(i);
          }, function () {
            alert("WMS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), t;
        },
        getCapabilities: function getCapabilities(e, t, i) {
          "function" != typeof i && (i = function i() {
            alert("WMS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), GeoGlobe.Request.GET({
            url: e,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WMS",
              VERSION: "1.1.1"
            },
            scope: this,
            async: !1,
            success: function success(e) {
              "function" == typeof t && t(e);
            },
            failure: i
          });
        },
        createLayerOption: function createLayerOption(url, capabilities, config) {
          var layer;
          if (!("layer" in config)) throw new Error("Missing property 'layer' in configuration.");

          for (var contents = capabilities.capability, layers = contents.layers, layerDef, i = 0, ii = contents.layers.length; i < ii; ++i) {
            if (contents.layers[i].name === config.layer) {
              layerDef = contents.layers[i];
              break;
            }
          }

          if (!layerDef) throw new Error("Layer not found");
          var format = config.format;

          if (!format && layerDef.formats && layerDef.formats.length) {
            for (var f = 0; f < layerDef.formats.length; f++) {
              "image/png" == layerDef.formats[f] && (format = layerDef.formats[f]);
            }

            "image/png" != format && (format = layerDef.formats[0]);
          }

          var styles = config.styles;
          !styles && layerDef.styles && layerDef.styles.length && (styles = layerDef.styles[0].name);
          var srs = eval(layerDef.srs),
              SRS;

          for (var o in srs) {
            SRS = o;
          }

          var wms_url = "",
              transparent = config.transparent;

          if (config.isTile) {
            var param = this.getParameterString({
              SERVICE: "WMS",
              REQUEST: "GetMap",
              VERSION: "1.1.1",
              LAYERS: layerDef.name,
              styles: styles,
              FORMAT: format,
              TRANSPARENT: transparent,
              BBOX: "{bbox-epsg-3857}",
              WIDTH: "256",
              HEIGHT: "256",
              SRS: SRS
            });
            wms_url = url.endsWith("?") ? url + param : url + "?" + param, wms_url = GeoGlobe.appendToProxy(wms_url);
            var randomNum = GeoGlobe.Util.randomStr(10),
                metadata = {
              name: layerDef.name,
              srs: SRS,
              bbox: layerDef.bbox,
              format: format
            },
                layerOption = {
              id: "layer_" + layerDef.name + "_" + randomNum,
              type: "raster",
              source: {
                type: "raster",
                tiles: [wms_url],
                tileSize: 256
              },
              metadata: metadata,
              paint: {
                "raster-opacity": 1
              }
            };
            return layerOption;
          }

          return layerOption = new GeoGlobe.Layer.WMS({
            url: url,
            layer: layerDef.name,
            format: format,
            version: "1.1.1",
            SRS: SRS,
            styles: styles,
            bbox: layerDef.bbox,
            isTile: !1
          }), layerOption;
        },
        createLayer: function createLayer(e, t, i) {
          this.url = e, i = !(void 0 !== i && !i);
          var r = !!(t && void 0 === t.transparent || t.transparent),
              n = this.getWMSCapabilities(e),
              o = {
            layer: t && t.layer ? t.layer : n.capability.layers[0].name,
            transparent: r,
            isTile: i
          };
          return this.createLayerOption(e, n, o);
        },
        createLayers: function createLayers(e, t, i) {
          i = !(void 0 !== i && !i);

          for (var r = !!(t && void 0 === t.transparent || t.transparent), n = this.getWMSCapabilities(e), o = n.capability.layers, a = [], s = 0; s < o.length; s++) {
            var x = {
              layer: o[s].name,
              transparent: r,
              isTile: i
            },
                l = this.createLayerOption(e, n, x);
            a.push(l);
          }

          return a;
        },
        getParameterString: function getParameterString(e) {
          var t = [];

          for (var i in e) {
            var r = e[i];
            null != r && "function" != typeof r && t.push(i + "=" + r);
          }

          return t.join("&");
        },
        CLASS_NAME: "GeoGlobe.Format.WMS"
      }), GeoGlobe.Format.VTS = GeoGlobe.Class4OL({
        initialize: function initialize(e) {
          GeoGlobe.Util.extend(this, e);
        },
        getVTSCapabilities: function getVTSCapabilities(e) {
          this.url = e;
          var t = null;
          return this.getCapabilities(e, function (e) {
            var i = e.responseXML;
            i && i.documentElement || (i = e.responseText);
            var r = new GeoGlobe.Format.VTSCapabilities.v1_0_0();
            t = r.read(i);
          }, function () {
            alert("VTS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), t;
        },
        getCapabilities: function getCapabilities(e, t, i) {
          "function" != typeof i && (i = function i() {
            alert("VTS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), GeoGlobe.Request.GET({
            url: e,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WMTS"
            },
            scope: this,
            async: !1,
            success: function success(e) {
              "function" == typeof t && t(e);
            },
            failure: i
          });
        },
        createLayerOption: function createLayerOption(e, t, i) {
          if (!("layer" in i)) throw new Error("Missing property 'layer' in configuration.");

          for (var r, n = t.contents, o = (n.layers, 0), a = n.layers.length; o < a; ++o) {
            if (n.layers[o].identifier === i.layer) {
              r = n.layers[o];
              break;
            }
          }

          if (!r) throw new Error("Layer not found");
          var s,
              x = i.format;
          if (!x && r.formats && r.formats.length && (x = r.formats[0]), i.matrixSet) s = n.tileMatrixSets[i.matrixSet];else if (i.projection) {
            o = 0;

            for (var l = r.tileMatrixSetLinks.length; o < l; o++) {
              if (n.tileMatrixSets[r.tileMatrixSetLinks[o].tileMatrixSet].supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3") === i.projection) {
                s = n.tileMatrixSets[r.tileMatrixSetLinks[o].tileMatrixSet];
                break;
              }
            }
          } else r.tileMatrixSetLinks.length >= 1 && (s = n.tileMatrixSets[r.tileMatrixSetLinks[0].tileMatrixSet]);
          if (!s) throw new Error("matrixSet not found");
          var c = [];
          i.styleName && "" != i.styleName ? c[0] = i.styleName : this.GetStyleName(function (e) {
            c = e;
          });
          var u = i.requestEncoding;
          u || (u = "KVP", t.operationsMetadata.GetTile.dcp.http);
          var h = [],
              f = i.params || {};
          delete i.params;

          for (var d = 0, g = r.dimensions.length; d < g; d++) {
            var p = r.dimensions[d];
            h.push(p.identifier), f.hasOwnProperty(p.identifier) || (f[p.identifier] = p["default"]);
          }

          var m,
              b,
              v,
              C = i.projection || s.supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3"),
              y = i.units || ("EPSG:4326" === C ? "degrees" : "m"),
              _ = [],
              A = [],
              I = r.tileMatrixSetLinks,
              w = function w(e) {
            _.push(28e-5 * e / GeoGlobe.METERS_PER_INCH / GeoGlobe.INCHES_PER_UNIT[y]), (!m || m > e) && (m = e), (!b || b < e) && (b = e);
          },
              G = 0;

          for (l = I.length; G < l; G++) {
            if ((v = I[G]).tileMatrixSet === s.identifier) {
              if (v.tileMatrixSetLimits) {
                for (var E, S = {}, T = 0, P = s.matrixIds.length; T < P; T++) {
                  S[s.matrixIds[T].identifier] = s.matrixIds[T];
                }

                for (T = 0, P = v.tileMatrixSetLimits.length; T < P; T++) {
                  E = S[v.tileMatrixSetLimits[T].tileMatrix], A.push(E), w(E.scaleDenominator);
                }
              } else for (T = 0, P = s.matrixIds.length; T < P; T++) {
                w(s.matrixIds[T].scaleDenominator);
              }

              break;
            }
          }

          _.sort(function (e, t) {
            return t - e;
          });

          var M,
              N = {
            layers: [],
            source: {},
            source_id: "",
            url: "",
            url_tmpl: "",
            layerType: "VTS"
          },
              L = this.getParameterString({
            SERVICE: "WMTS",
            REQUEST: "GetTile",
            VERSION: t.version,
            LAYER: r.identifier,
            TILEMATRIXSET: s.identifier,
            FORMAT: "protobuf",
            TILEMATRIX: "{z}",
            TILEROW: "{y}",
            TILECOL: "{x}"
          });
          if (N.url = e, M = e.endsWith("?") ? GeoGlobe.ProxyHost + e + L : GeoGlobe.ProxyHost + e + "?" + L, N.url_tmpl = M, GeoGlobe.Util.randomStr(10), r.bounds) var R = [r.bounds._sw.lng, r.bounds._sw.lat, r.bounds._ne.lng, r.bounds._ne.lat];else r.BoundingBox && (R = r.BoundingBox[0].bounds.toBBOX());
          var O = r.tileMatrixSetLinks[0].tileMatrixSet,
              F = n.tileMatrixSets[O].matrixIds[0].identifier;
          return this.GetStyle(c[0], function (e) {
            if (e.sprite) var t = GeoGlobe.ProxyHost + e.sprite;else t = "";
            if (e.glyphs) var i = GeoGlobe.ProxyHost + e.glyphs;else i = "";
            var n = {
              name: r.identifier,
              sprite: t,
              glyphs: i,
              styleName: e.styleName,
              srs: C,
              bbox: R,
              format: r.formats,
              zoomoffset: F
            },
                o = "source_vts_" + GeoGlobe.Util.randomStr(6);
            if (N.source_id = o, N.source = {
              type: "vector",
              tiles: [M]
            }, e.styleData) for (var a = 0; a < e.styleData.layers.length; a++) {
              e.styleData.layers[a].metadata = n, e.styleData.layers[a].source = o, N.layers[a] = e.styleData.layers[a];
            } else for (a = 0; a < e.layers.length; a++) {
              e.layers[a].metadata = n, e.layers[a].source = o, N.layers[a] = e.layers[a];
            }
          }, function () {
            alert("WMTS服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + e + "\n操作类型：GetCapabilities");
          }), N;
        },
        createLayer: function createLayer(e, t) {
          var i = this.getVTSCapabilities(e);
          return (t = t || {}).layer = t.layer ? t.layer : i.contents.layers[0].identifier, t.styleName = t.styleName ? t.styleName : "", this.createLayerOption(e, i, t);
        },
        createLayers: function createLayers(e) {
          for (var t = this.getVTSCapabilities(e), i = t.contents.layers, r = [], n = 0; n < i.length; n++) {
            var o = {
              layer: i[n].identifier
            },
                a = this.createLayerOption(e, t, o);
            r.push(a);
          }

          return r;
        },
        GetStyleName: function GetStyleName(e, t) {
          var i = this.url,
              r = {
            REQUEST: "GetStyle",
            SERVICE: "WMTS",
            VERSION: "1.0.0"
          };
          t || (t = function t() {
            this.failFn(r.REQUEST);
          }), GeoGlobe.Request.GET({
            url: i,
            params: r,
            scope: this,
            async: !1,
            success: function success(i) {
              var r = i.responseText;
              if (!r) return t(), !1;
              var n = new GeoGlobe.Format.JSON().read(r),
                  o = [];
              if (n.style) for (var a = 0; a < n.style.length; a++) {
                o.push(n.style[a].styleName);
              } else if (n.styleName) for (var s = 0; s < n.styleName.length; s++) {
                o.push(n.styleName[s]);
              }
              e(o);
            },
            failure: t
          });
        },
        GetStyle: function GetStyle(e, t, i) {
          var r = this.url;

          if ("" != e && null != e) {
            var n = {
              REQUEST: "GetStyle",
              SERVICE: "WMTS",
              VERSION: "1.0.0",
              STYLENAME: e
            };
            i || (i = function i() {
              this.failFn(n.REQUEST);
            }), GeoGlobe.Request.GET({
              url: r,
              params: n,
              scope: this,
              async: !1,
              success: function success(e) {
                var r = e.responseText;
                if (!r) return i(), !1;
                var n = new GeoGlobe.Format.JSON().read(r);
                t(n);
              },
              failure: i
            });
          } else alert("请查看样式名称是否存在");
        },
        getParameterString: function getParameterString(e) {
          var t = [];

          for (var i in e) {
            var r = e[i];
            null != r && "function" != typeof r && t.push(i + "=" + r);
          }

          return t.join("&");
        },
        CLASS_NAME: "GeoGlobe.Format.VTS"
      }), GeoGlobe.Format.WMSCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.1.1",
        profile: null,
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities"
      }), GeoGlobe.Format.WMSCapabilities.v1 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          wms: "http://www.opengis.net/wms",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance"
        },
        defaultPrefix: "wms",
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));
          var t = e;
          e && 9 == e.nodeType && (e = e.documentElement);
          var i = {};

          if (this.readNode(e, i), void 0 === i.service) {
            var r = new GeoGlobe.Format.OGCExceptionReport();
            i.error = r.read(t);
          }

          return i;
        },
        readers: {
          wms: {
            Service: function Service(e, t) {
              t.service = {}, this.readChildNodes(e, t.service);
            },
            Name: function Name(e, t) {
              t.name = this.getChildValue(e);
            },
            Title: function Title(e, t) {
              t.title = this.getChildValue(e);
            },
            Abstract: function Abstract(e, t) {
              t["abstract"] = this.getChildValue(e);
            },
            BoundingBox: function BoundingBox(e, t) {
              var i = {};
              i.bbox = [_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("minx")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("miny")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("maxx")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("maxy"))];
              var r = {
                x: _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("resx")),
                y: _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("resy"))
              };
              return isNaN(r.x) && isNaN(r.y) || (i.res = r), i;
            },
            OnlineResource: function OnlineResource(e, t) {
              t.href = this.getAttributeNS(e, this.namespaces.xlink, "href");
            },
            ContactInformation: function ContactInformation(e, t) {
              t.contactInformation = {}, this.readChildNodes(e, t.contactInformation);
            },
            ContactPersonPrimary: function ContactPersonPrimary(e, t) {
              t.personPrimary = {}, this.readChildNodes(e, t.personPrimary);
            },
            ContactPerson: function ContactPerson(e, t) {
              t.person = this.getChildValue(e);
            },
            ContactOrganization: function ContactOrganization(e, t) {
              t.organization = this.getChildValue(e);
            },
            ContactPosition: function ContactPosition(e, t) {
              t.position = this.getChildValue(e);
            },
            ContactAddress: function ContactAddress(e, t) {
              t.contactAddress = {}, this.readChildNodes(e, t.contactAddress);
            },
            AddressType: function AddressType(e, t) {
              t.type = this.getChildValue(e);
            },
            Address: function Address(e, t) {
              t.address = this.getChildValue(e);
            },
            City: function City(e, t) {
              t.city = this.getChildValue(e);
            },
            StateOrProvince: function StateOrProvince(e, t) {
              t.stateOrProvince = this.getChildValue(e);
            },
            PostCode: function PostCode(e, t) {
              t.postcode = this.getChildValue(e);
            },
            Country: function Country(e, t) {
              t.country = this.getChildValue(e);
            },
            ContactVoiceTelephone: function ContactVoiceTelephone(e, t) {
              t.phone = this.getChildValue(e);
            },
            ContactFacsimileTelephone: function ContactFacsimileTelephone(e, t) {
              t.fax = this.getChildValue(e);
            },
            ContactElectronicMailAddress: function ContactElectronicMailAddress(e, t) {
              t.email = this.getChildValue(e);
            },
            Fees: function Fees(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.fees = i);
            },
            AccessConstraints: function AccessConstraints(e, t) {
              var i = this.getChildValue(e);
              i && "none" != i.toLowerCase() && (t.accessConstraints = i);
            },
            Capability: function Capability(e, t) {
              t.capability = {
                nestedLayers: [],
                layers: []
              }, this.readChildNodes(e, t.capability);
            },
            Request: function Request(e, t) {
              t.request = {}, this.readChildNodes(e, t.request);
            },
            GetCapabilities: function GetCapabilities(e, t) {
              t.getcapabilities = {
                formats: []
              }, this.readChildNodes(e, t.getcapabilities);
            },
            Format: function Format(e, t) {
              GeoGlobe.Util.isArray(t.formats) ? t.formats.push(this.getChildValue(e)) : t.format = this.getChildValue(e);
            },
            DCPType: function DCPType(e, t) {
              this.readChildNodes(e, t);
            },
            HTTP: function HTTP(e, t) {
              this.readChildNodes(e, t);
            },
            Get: function Get(e, t) {
              t.get = {}, this.readChildNodes(e, t.get), t.href || (t.href = t.get.href);
            },
            Post: function Post(e, t) {
              t.post = {}, this.readChildNodes(e, t.post), t.href || (t.href = t.get.href);
            },
            GetMap: function GetMap(e, t) {
              t.getmap = {
                formats: []
              }, this.readChildNodes(e, t.getmap);
            },
            GetFeatureInfo: function GetFeatureInfo(e, t) {
              t.getfeatureinfo = {
                formats: []
              }, this.readChildNodes(e, t.getfeatureinfo);
            },
            Exception: function Exception(e, t) {
              t.exception = {
                formats: []
              }, this.readChildNodes(e, t.exception);
            },
            Layer: function Layer(e, t) {
              var i, r;
              t.capability ? (r = t.capability, i = t) : r = t;
              var n = e.getAttributeNode("queryable"),
                  o = n && n.specified ? e.getAttribute("queryable") : null,
                  a = (n = e.getAttributeNode("cascaded")) && n.specified ? e.getAttribute("cascaded") : null,
                  s = (n = e.getAttributeNode("opaque")) && n.specified ? e.getAttribute("opaque") : null,
                  x = e.getAttribute("noSubsets"),
                  l = e.getAttribute("fixedWidth"),
                  c = e.getAttribute("fixedHeight"),
                  u = i || {},
                  h = GeoGlobe.Util.extend,
                  f = {
                nestedLayers: [],
                styles: i ? [].concat(i.styles) : [],
                srs: i ? h({}, u.srs) : {},
                metadataURLs: [],
                bbox: i ? h({}, u.bbox) : {},
                llbbox: u.llbbox,
                dimensions: i ? h({}, u.dimensions) : {},
                authorityURLs: i ? h({}, u.authorityURLs) : {},
                identifiers: {},
                keywords: [],
                queryable: o && "" !== o ? "1" === o || "true" === o : u.queryable || !1,
                cascaded: null !== a ? _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(a) : u.cascaded || 0,
                opaque: s ? "1" === s || "true" === s : u.opaque || !1,
                noSubsets: null !== x ? "1" === x || "true" === x : u.noSubsets || !1,
                fixedWidth: null != l ? _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(l) : u.fixedWidth || 0,
                fixedHeight: null != c ? _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(c) : u.fixedHeight || 0,
                minScale: u.minScale,
                maxScale: u.maxScale,
                attribution: u.attribution
              };

              if (t.nestedLayers.push(f), f.capability = r, this.readChildNodes(e, f), delete f.capability, f.name) {
                var d = f.name.split(":"),
                    g = r.request,
                    p = g.getfeatureinfo;
                d.length > 0 && (f.prefix = d[0]), r.layers.push(f), void 0 === f.formats && (f.formats = g.getmap.formats), void 0 === f.infoFormats && p && (f.infoFormats = p.formats);
              }
            },
            Attribution: function Attribution(e, t) {
              t.attribution = {}, this.readChildNodes(e, t.attribution);
            },
            LogoURL: function LogoURL(e, t) {
              t.logo = {
                width: e.getAttribute("width"),
                height: e.getAttribute("height")
              }, this.readChildNodes(e, t.logo);
            },
            Style: function Style(e, t) {
              var i = {};
              t.styles.push(i), this.readChildNodes(e, i);
            },
            LegendURL: function LegendURL(e, t) {
              var i = {
                width: e.getAttribute("width"),
                height: e.getAttribute("height")
              };
              t.legend = i, this.readChildNodes(e, i);
            },
            MetadataURL: function MetadataURL(e, t) {
              var i = {
                type: e.getAttribute("type")
              };
              t.metadataURLs.push(i), this.readChildNodes(e, i);
            },
            DataURL: function DataURL(e, t) {
              t.dataURL = {}, this.readChildNodes(e, t.dataURL);
            },
            FeatureListURL: function FeatureListURL(e, t) {
              t.featureListURL = {}, this.readChildNodes(e, t.featureListURL);
            },
            AuthorityURL: function AuthorityURL(e, t) {
              var i = e.getAttribute("name"),
                  r = {};
              this.readChildNodes(e, r), t.authorityURLs[i] = r.href;
            },
            Identifier: function Identifier(e, t) {
              var i = e.getAttribute("authority");
              t.identifiers[i] = this.getChildValue(e);
            },
            KeywordList: function KeywordList(e, t) {
              this.readChildNodes(e, t);
            },
            SRS: function SRS(e, t) {
              t.srs[this.getChildValue(e)] = !0;
            }
          }
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1"
      }), GeoGlobe.Format.WMSCapabilities.v1_1 = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1, {
        readers: {
          wms: GeoGlobe.Util.applyDefaults({
            WMT_MS_Capabilities: function WMT_MS_Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            Keyword: function Keyword(e, t) {
              t.keywords && t.keywords.push(this.getChildValue(e));
            },
            DescribeLayer: function DescribeLayer(e, t) {
              t.describelayer = {
                formats: []
              }, this.readChildNodes(e, t.describelayer);
            },
            GetLegendGraphic: function GetLegendGraphic(e, t) {
              t.getlegendgraphic = {
                formats: []
              }, this.readChildNodes(e, t.getlegendgraphic);
            },
            GetStyles: function GetStyles(e, t) {
              t.getstyles = {
                formats: []
              }, this.readChildNodes(e, t.getstyles);
            },
            PutStyles: function PutStyles(e, t) {
              t.putstyles = {
                formats: []
              }, this.readChildNodes(e, t.putstyles);
            },
            UserDefinedSymbolization: function UserDefinedSymbolization(e, t) {
              var i = {
                supportSLD: 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("SupportSLD")),
                userLayer: 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("UserLayer")),
                userStyle: 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("UserStyle")),
                remoteWFS: 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("RemoteWFS"))
              };
              t.userSymbols = i;
            },
            LatLonBoundingBox: function LatLonBoundingBox(e, t) {
              t.llbbox = [_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("minx")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("miny")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("maxx")), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(e.getAttribute("maxy"))];
            },
            BoundingBox: function BoundingBox(e, t) {
              var i = GeoGlobe.Format.WMSCapabilities.v1.prototype.readers.wms.BoundingBox.apply(this, [e, t]);
              i.srs = e.getAttribute("SRS"), t.bbox[i.srs] = i;
            },
            ScaleHint: function ScaleHint(e, t) {
              var i = e.getAttribute("min"),
                  r = e.getAttribute("max"),
                  n = Math.pow(2, 0.5),
                  o = GeoGlobe.INCHES_PER_UNIT.m;
              0 != i && (t.maxScale = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()((i / n * o * GeoGlobe.DOTS_PER_INCH).toPrecision(13))), r != Number.POSITIVE_INFINITY && (t.minScale = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()((r / n * o * GeoGlobe.DOTS_PER_INCH).toPrecision(13)));
            },
            Dimension: function Dimension(e, t) {
              var i = {
                name: e.getAttribute("name").toLowerCase(),
                units: e.getAttribute("units"),
                unitsymbol: e.getAttribute("unitSymbol")
              };
              t.dimensions[i.name] = i;
            },
            Extent: function Extent(e, t) {
              var i = e.getAttribute("name").toLowerCase();

              if (i in t.dimensions) {
                var r = t.dimensions[i];
                r.nearestVal = "1" === e.getAttribute("nearestValue"), r.multipleVal = "1" === e.getAttribute("multipleValues"), r.current = "1" === e.getAttribute("current"), r["default"] = e.getAttribute("default") || "";
                var n = this.getChildValue(e);
                r.values = n.split(",");
              }
            }
          }, GeoGlobe.Format.WMSCapabilities.v1.prototype.readers.wms)
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_1"
      }), GeoGlobe.Format.WMSCapabilities.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1_1, {
        version: "1.1.0",
        readers: {
          wms: GeoGlobe.Util.applyDefaults({
            SRS: function SRS(e, t) {
              for (var i = this.getChildValue(e).split(/ +/), r = 0, n = i.length; r < n; r++) {
                t.srs[i[r]] = !0;
              }
            }
          }, GeoGlobe.Format.WMSCapabilities.v1_1.prototype.readers.wms)
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_1_0"
      }), GeoGlobe.Format.WMSCapabilities.v1_1_1 = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1_1, {
        version: "1.1.1",
        readers: {
          wms: GeoGlobe.Util.applyDefaults({
            SRS: function SRS(e, t) {
              t.srs[this.getChildValue(e)] = !0;
            }
          }, GeoGlobe.Format.WMSCapabilities.v1_1.prototype.readers.wms)
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_1_1"
      }), GeoGlobe.Format.WMSCapabilities.v1_1_1_WMSC = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1_1_1, {
        version: "1.1.1",
        profile: "WMSC",
        readers: {
          wms: GeoGlobe.Util.applyDefaults({
            VendorSpecificCapabilities: function VendorSpecificCapabilities(e, t) {
              t.vendorSpecific = {
                tileSets: []
              }, this.readChildNodes(e, t.vendorSpecific);
            },
            TileSet: function TileSet(e, t) {
              var i = {
                srs: {},
                bbox: {},
                resolutions: []
              };
              this.readChildNodes(e, i), t.tileSets.push(i);
            },
            Resolutions: function Resolutions(e, t) {
              for (var i = this.getChildValue(e).split(" "), r = 0, n = i.length; r < n; r++) {
                "" != i[r] && t.resolutions.push(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(i[r]));
              }
            },
            Width: function Width(e, t) {
              t.width = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            Height: function Height(e, t) {
              t.height = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            Layers: function Layers(e, t) {
              t.layers = this.getChildValue(e);
            },
            Styles: function Styles(e, t) {
              t.styles = this.getChildValue(e);
            }
          }, GeoGlobe.Format.WMSCapabilities.v1_1_1.prototype.readers.wms)
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_1_1_WMSC"
      }), GeoGlobe.Format.WMSCapabilities.v1_3 = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1, {
        readers: {
          wms: GeoGlobe.Util.applyDefaults({
            WMS_Capabilities: function WMS_Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            LayerLimit: function LayerLimit(e, t) {
              t.layerLimit = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxWidth: function MaxWidth(e, t) {
              t.maxWidth = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxHeight: function MaxHeight(e, t) {
              t.maxHeight = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            BoundingBox: function BoundingBox(e, t) {
              var i = GeoGlobe.Format.WMSCapabilities.v1.prototype.readers.wms.BoundingBox.apply(this, [e, t]);
              i.srs = e.getAttribute("CRS"), t.bbox[i.srs] = i;
            },
            CRS: function CRS(e, t) {
              this.readers.wms.SRS.apply(this, [e, t]);
            },
            EX_GeographicBoundingBox: function EX_GeographicBoundingBox(e, t) {
              t.llbbox = [], this.readChildNodes(e, t.llbbox);
            },
            westBoundLongitude: function westBoundLongitude(e, t) {
              t[0] = this.getChildValue(e);
            },
            eastBoundLongitude: function eastBoundLongitude(e, t) {
              t[2] = this.getChildValue(e);
            },
            southBoundLatitude: function southBoundLatitude(e, t) {
              t[1] = this.getChildValue(e);
            },
            northBoundLatitude: function northBoundLatitude(e, t) {
              t[3] = this.getChildValue(e);
            },
            MinScaleDenominator: function MinScaleDenominator(e, t) {
              t.maxScale = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.getChildValue(e)).toPrecision(16);
            },
            MaxScaleDenominator: function MaxScaleDenominator(e, t) {
              t.minScale = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.getChildValue(e)).toPrecision(16);
            },
            Dimension: function Dimension(e, t) {
              var i = {
                name: e.getAttribute("name").toLowerCase(),
                units: e.getAttribute("units"),
                unitsymbol: e.getAttribute("unitSymbol"),
                nearestVal: "1" === e.getAttribute("nearestValue"),
                multipleVal: "1" === e.getAttribute("multipleValues"),
                "default": e.getAttribute("default") || "",
                current: "1" === e.getAttribute("current"),
                values: this.getChildValue(e).split(",")
              };
              t.dimensions[i.name] = i;
            },
            Keyword: function Keyword(e, t) {
              var i = {
                value: this.getChildValue(e),
                vocabulary: e.getAttribute("vocabulary")
              };
              t.keywords && t.keywords.push(i);
            }
          }, GeoGlobe.Format.WMSCapabilities.v1.prototype.readers.wms),
          sld: {
            UserDefinedSymbolization: function UserDefinedSymbolization(e, t) {
              this.readers.wms.UserDefinedSymbolization.apply(this, [e, t]), t.userSymbols.inlineFeature = 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("InlineFeature")), t.userSymbols.remoteWCS = 1 == _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e.getAttribute("RemoteWCS"));
            },
            DescribeLayer: function DescribeLayer(e, t) {
              this.readers.wms.DescribeLayer.apply(this, [e, t]);
            },
            GetLegendGraphic: function GetLegendGraphic(e, t) {
              this.readers.wms.GetLegendGraphic.apply(this, [e, t]);
            }
          }
        },
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_3"
      }), GeoGlobe.Format.WMSCapabilities.v1_3_0 = GeoGlobe.Class4OL(GeoGlobe.Format.WMSCapabilities.v1_3, {
        version: "1.3.0",
        CLASS_NAME: "GeoGlobe.Format.WMSCapabilities.v1_3_0"
      }), GeoGlobe.Format.WMTSCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.0.0",
        yx: {
          "urn:ogc:def:crs:EPSG::4326": !0
        },
        createLayer: function createLayer(e, t) {
          if (!("layer" in t)) throw new Error("Missing property 'layer' in configuration.");

          for (var i, r = e.contents, n = (r.layers, 0), o = r.layers.length; n < o; ++n) {
            if (r.layers[n].identifier === t.layer) {
              i = r.layers[n];
              break;
            }
          }

          if (!i) throw new Error("Layer not found");
          var a,
              s,
              x = t.format;
          if (!x && i.formats && i.formats.length && (x = i.formats[0]), t.matrixSet) a = r.tileMatrixSets[t.matrixSet];else if (t.projection) {
            n = 0;

            for (var l = i.tileMatrixSetLinks.length; n < l; n++) {
              if (r.tileMatrixSets[i.tileMatrixSetLinks[n].tileMatrixSet].supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3") === t.projection) {
                a = r.tileMatrixSets[i.tileMatrixSetLinks[n].tileMatrixSet];
                break;
              }
            }
          } else i.tileMatrixSetLinks.length >= 1 && (a = r.tileMatrixSets[i.tileMatrixSetLinks[0].tileMatrixSet]);
          if (!a) throw new Error("matrixSet not found");

          for (n = 0, o = i.styles.length; n < o && !(s = i.styles[n]).isDefault; ++n) {
            ;
          }

          var c = t.requestEncoding;
          c || (c = "KVP", e.operationsMetadata.GetTile.dcp.http);
          var u = [],
              h = t.params || {};
          delete t.params;

          for (var f = 0, d = i.dimensions.length; f < d; f++) {
            var g = i.dimensions[f];
            u.push(g.identifier), h.hasOwnProperty(g.identifier) || (h[g.identifier] = g["default"]);
          }

          var p,
              m,
              b,
              v,
              C = t.projection || a.supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3"),
              y = t.units || ("EPSG:4326" === C ? "degrees" : "m"),
              _ = [],
              A = [],
              I = i.tileMatrixSetLinks,
              w = function w(e) {
            _.push(28e-5 * e / GeoGlobe.METERS_PER_INCH / GeoGlobe.INCHES_PER_UNIT[y]), (!p || p > e) && (p = e), (!m || m < e) && (m = e);
          },
              G = 0;

          for (l = I.length; G < l; G++) {
            if ((b = I[G]).tileMatrixSet === a.identifier) {
              if (b.tileMatrixSetLimits) {
                for (var E, S = {}, T = 0, P = a.matrixIds.length; T < P; T++) {
                  S[a.matrixIds[T].identifier] = a.matrixIds[T];
                }

                for (T = 0, P = b.tileMatrixSetLimits.length; T < P; T++) {
                  E = S[b.tileMatrixSetLimits[T].tileMatrix], A.push(E), w(E.scaleDenominator);
                }
              } else for (T = 0, P = a.matrixIds.length; T < P; T++) {
                w(a.matrixIds[T].scaleDenominator);
              }

              break;
            }
          }

          if ("REST" === c && i.resourceUrls) {
            v = [], i.resourceUrls;

            for (var M, N = 0, L = i.resourceUrls.length; N < L; ++N) {
              (M = i.resourceUrls[N]).format === x && "tile" === M.resourceType && v.push(M.template);
            }
          } else {
            var R,
                O = e.operationsMetadata.GetTile.dcp.http.get;

            for (v = [], n = 0, o = O.length; n < o; n++) {
              (!(R = O[n].constraints) || R && R.GetEncoding.allowedValues[c]) && v.push(O[n].url);
            }
          }

          _.sort(function (e, t) {
            return t - e;
          });

          var F,
              D = "SERVICE=WMTS&REQUEST=GetTile&VERSION=" + e.version + "&LAYER=" + i.identifier + "&STYLE=" + s.identifier + "&TILEMATRIXSET=" + a.identifier + "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=" + x;
          F = v[0].endsWith("?") ? v[0] + D : v[0] + "?" + D;
          var U = GeoGlobe.Util.applyDefaults(t, {
            id: i.identifier,
            url: [F]
          }),
              k = {
            id: U.id,
            layer: {
              id: U.id,
              type: "raster",
              source: U.id
            },
            source: {
              type: "raster",
              tiles: U.url,
              tileSize: 256
            }
          };
          return k.matrixSet = a, k.identifier = i.identifier, k.bounds = i.bounds, k;
        },
        CLASS_NAME: "GeoGlobe.Format.WMTSCapabilities"
      }), GeoGlobe.Format.WMTSCapabilities.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.OWSCommon.v1_1_0, {
        version: "1.0.0",
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          wmts: "http://www.opengis.net/wmts/1.0",
          xlink: "http://www.w3.org/1999/xlink"
        },
        yx: null,
        defaultPrefix: "wmts",
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]), this.options = e;
          var t = GeoGlobe.Util.extend({}, GeoGlobe.Format.WMTSCapabilities.prototype.yx);
          this.yx = GeoGlobe.Util.extend(t, this.yx);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t.version = this.version, t;
        },
        readers: {
          wmts: {
            Capabilities: function Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            Contents: function Contents(e, t) {
              t.contents = {}, t.contents.layers = [], t.contents.tileMatrixSets = {}, this.readChildNodes(e, t.contents);
            },
            Layer: function Layer(e, t) {
              var i = {
                styles: [],
                formats: [],
                dimensions: [],
                tileMatrixSetLinks: []
              };
              this.readChildNodes(e, i), t.layers.push(i);
            },
            Style: function Style(e, t) {
              var i = {};
              i.isDefault = "true" === e.getAttribute("isDefault"), this.readChildNodes(e, i), t.styles.push(i);
            },
            Format: function Format(e, t) {
              t.formats.push(this.getChildValue(e));
            },
            TileMatrixSetLink: function TileMatrixSetLink(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.tileMatrixSetLinks.push(i);
            },
            TileMatrixSet: function TileMatrixSet(e, t) {
              if (t.layers) {
                var i = {
                  matrixIds: []
                };
                this.readChildNodes(e, i), t.tileMatrixSets[i.identifier] = i;
              } else t.tileMatrixSet = this.getChildValue(e);
            },
            TileMatrixSetLimits: function TileMatrixSetLimits(e, t) {
              t.tileMatrixSetLimits = [], this.readChildNodes(e, t);
            },
            TileMatrixLimits: function TileMatrixLimits(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.tileMatrixSetLimits.push(i);
            },
            MinTileRow: function MinTileRow(e, t) {
              t.minTileRow = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxTileRow: function MaxTileRow(e, t) {
              t.maxTileRow = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MinTileCol: function MinTileCol(e, t) {
              t.minTileCol = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxTileCol: function MaxTileCol(e, t) {
              t.maxTileCol = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            TileMatrix: function TileMatrix(e, t) {
              if (t.identifier) {
                var i = {
                  supportedCRS: t.supportedCRS
                };
                this.readChildNodes(e, i), t.matrixIds.push(i);
              } else t.tileMatrix = this.getChildValue(e);
            },
            ScaleDenominator: function ScaleDenominator(e, t) {
              t.scaleDenominator = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.getChildValue(e));
            },
            TopLeftCorner: function TopLeftCorner(e, t) {
              var i,
                  r = this.getChildValue(e).split(" ");

              if (t.supportedCRS) {
                var n = t.supportedCRS.replace(/urn:ogc:def:crs:(\w+):.+:(\w+)$/, "urn:ogc:def:crs:$1::$2");
                i = !!this.yx[n];
              }

              t.topLeftCorner = i ? new GeoGlobe.LngLat(r[1], r[0]) : new GeoGlobe.LngLat(r[0], r[1]);
            },
            TileWidth: function TileWidth(e, t) {
              t.tileWidth = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            TileHeight: function TileHeight(e, t) {
              t.tileHeight = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MatrixWidth: function MatrixWidth(e, t) {
              t.matrixWidth = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MatrixHeight: function MatrixHeight(e, t) {
              t.matrixHeight = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            ResourceURL: function ResourceURL(e, t) {
              t.resourceUrl = t.resourceUrl || {};
              var i = e.getAttribute("resourceType");
              t.resourceUrls || (t.resourceUrls = []);
              var r = t.resourceUrl[i] = {
                format: e.getAttribute("format"),
                template: e.getAttribute("template"),
                resourceType: i
              };
              t.resourceUrls.push(r);
            },
            LegendURL: function LegendURL(e, t) {
              t.legends = t.legends || [];
              var i = {
                format: e.getAttribute("format"),
                href: e.getAttribute("xlink:href")
              },
                  r = e.getAttribute("width"),
                  n = e.getAttribute("height"),
                  o = e.getAttribute("minScaleDenominator"),
                  a = e.getAttribute("maxScaleDenominator");
              null !== r && (i.width = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(r)), null !== n && (i.height = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(n)), null !== o && (i.minScaleDenominator = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(o)), null !== a && (i.maxScaleDenominator = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(a)), t.legends.push(i);
            },
            InfoFormat: function InfoFormat(e, t) {
              t.infoFormats = t.infoFormats || [], t.infoFormats.push(this.getChildValue(e));
            },
            WSDL: function WSDL(e, t) {
              t.wsdl = {}, t.wsdl.href = e.getAttribute("xlink:href");
            },
            ServiceMetadataURL: function ServiceMetadataURL(e, t) {
              t.serviceMetadataUrl = {}, t.serviceMetadataUrl.href = e.getAttribute("xlink:href");
            },
            Dimension: function Dimension(e, t) {
              var i = {
                values: []
              };
              this.readChildNodes(e, i), t.dimensions.push(i);
            },
            Default: function Default(e, t) {
              t["default"] = this.getChildValue(e);
            },
            Value: function Value(e, t) {
              t.values.push(this.getChildValue(e));
            }
          },
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.readers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.WMTSCapabilities.v1_0_0"
      }), GeoGlobe.Format.VTSCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.0.0",
        yx: {
          "urn:ogc:def:crs:EPSG::4326": !0
        },
        createLayer: function createLayer(e, t) {
          if (!("layer" in t)) throw new Error("Missing property 'layer' in configuration.");

          for (var i, r = e.contents, n = (r.layers, 0), o = r.layers.length; n < o; ++n) {
            if (r.layers[n].identifier === t.layer) {
              i = r.layers[n];
              break;
            }
          }

          if (!i) throw new Error("Layer not found");
          var a,
              s,
              x = t.format;
          if (!x && i.formats && i.formats.length && (x = i.formats[0]), t.matrixSet) a = r.tileMatrixSets[t.matrixSet];else if (t.projection) {
            n = 0;

            for (var l = i.tileMatrixSetLinks.length; n < l; n++) {
              if (r.tileMatrixSets[i.tileMatrixSetLinks[n].tileMatrixSet].supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3") === t.projection) {
                a = r.tileMatrixSets[i.tileMatrixSetLinks[n].tileMatrixSet];
                break;
              }
            }
          } else i.tileMatrixSetLinks.length >= 1 && (a = r.tileMatrixSets[i.tileMatrixSetLinks[0].tileMatrixSet]);
          if (!a) throw new Error("matrixSet not found");

          for (n = 0, o = i.styles.length; n < o && !(s = i.styles[n]).isDefault; ++n) {
            ;
          }

          var c = t.requestEncoding;
          c || (c = "KVP", e.operationsMetadata.GetTile.dcp.http);
          var u = [],
              h = t.params || {};
          delete t.params;

          for (var f = 0, d = i.dimensions.length; f < d; f++) {
            var g = i.dimensions[f];
            u.push(g.identifier), h.hasOwnProperty(g.identifier) || (h[g.identifier] = g["default"]);
          }

          var p,
              m,
              b,
              v,
              C = t.projection || a.supportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3"),
              y = t.units || ("EPSG:4326" === C ? "degrees" : "m"),
              _ = [],
              A = [],
              I = i.tileMatrixSetLinks,
              w = function w(e) {
            _.push(28e-5 * e / GeoGlobe.METERS_PER_INCH / GeoGlobe.INCHES_PER_UNIT[y]), (!p || p > e) && (p = e), (!m || m < e) && (m = e);
          },
              G = 0;

          for (l = I.length; G < l; G++) {
            if ((b = I[G]).tileMatrixSet === a.identifier) {
              if (b.tileMatrixSetLimits) {
                for (var E, S = {}, T = 0, P = a.matrixIds.length; T < P; T++) {
                  S[a.matrixIds[T].identifier] = a.matrixIds[T];
                }

                for (T = 0, P = b.tileMatrixSetLimits.length; T < P; T++) {
                  E = S[b.tileMatrixSetLimits[T].tileMatrix], A.push(E), w(E.scaleDenominator);
                }
              } else for (T = 0, P = a.matrixIds.length; T < P; T++) {
                w(a.matrixIds[T].scaleDenominator);
              }

              break;
            }
          }

          if ("REST" === c && i.resourceUrls) {
            v = [], i.resourceUrls;

            for (var M, N = 0, L = i.resourceUrls.length; N < L; ++N) {
              (M = i.resourceUrls[N]).format === x && "tile" === M.resourceType && v.push(M.template);
            }
          } else {
            var R,
                O = e.operationsMetadata.GetTile.dcp.http.get;

            for (v = [], n = 0, o = O.length; n < o; n++) {
              (!(R = O[n].constraints) || R && R.GetEncoding.allowedValues[c]) && v.push(O[n].url);
            }
          }

          _.sort(function (e, t) {
            return t - e;
          });

          var F,
              D = "SERVICE=WMTS&REQUEST=GetTile&VERSION=" + e.version + "&LAYER=" + i.identifier + "&STYLE=" + s.identifier + "&TILEMATRIXSET=" + a.identifier + "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=" + x;
          F = v[0].endsWith("?") ? v[0] + D : v[0] + "?" + D;
          var U = GeoGlobe.Util.applyDefaults(t, {
            id: i.identifier,
            url: [F]
          }),
              k = new GeoGlobe.Layer.VTS(U);
          return k.matrixSet = a, k.identifier = i.identifier, k.bounds = i.bounds, k;
        },
        CLASS_NAME: "GeoGlobe.Format.VTSCapabilities"
      }), GeoGlobe.Format.VTSCapabilities.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.OWSCommon.v1_1_0, {
        version: "1.0.0",
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          wmts: "http://www.opengis.net/wmts/1.0",
          xlink: "http://www.w3.org/1999/xlink"
        },
        yx: null,
        defaultPrefix: "wmts",
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]), this.options = e;
          var t = GeoGlobe.Util.extend({}, GeoGlobe.Format.VTSCapabilities.prototype.yx);
          this.yx = GeoGlobe.Util.extend(t, this.yx);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t.version = this.version, t;
        },
        readers: {
          wmts: {
            Capabilities: function Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            Contents: function Contents(e, t) {
              t.contents = {}, t.contents.layers = [], t.contents.tileMatrixSets = {}, this.readChildNodes(e, t.contents);
            },
            Layer: function Layer(e, t) {
              var i = {
                styles: [],
                formats: [],
                dimensions: [],
                tileMatrixSetLinks: []
              };
              this.readChildNodes(e, i), t.layers.push(i);
            },
            Style: function Style(e, t) {
              var i = {};
              i.isDefault = "true" === e.getAttribute("isDefault"), this.readChildNodes(e, i), t.styles.push(i);
            },
            Format: function Format(e, t) {
              t.formats.push(this.getChildValue(e));
            },
            TileMatrixSetLink: function TileMatrixSetLink(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.tileMatrixSetLinks.push(i);
            },
            TileMatrixSet: function TileMatrixSet(e, t) {
              if (t.layers) {
                var i = {
                  matrixIds: []
                };
                this.readChildNodes(e, i), t.tileMatrixSets[i.identifier] = i;
              } else t.tileMatrixSet = this.getChildValue(e);
            },
            TileMatrixSetLimits: function TileMatrixSetLimits(e, t) {
              t.tileMatrixSetLimits = [], this.readChildNodes(e, t);
            },
            TileMatrixLimits: function TileMatrixLimits(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.tileMatrixSetLimits.push(i);
            },
            MinTileRow: function MinTileRow(e, t) {
              t.minTileRow = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxTileRow: function MaxTileRow(e, t) {
              t.maxTileRow = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MinTileCol: function MinTileCol(e, t) {
              t.minTileCol = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MaxTileCol: function MaxTileCol(e, t) {
              t.maxTileCol = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            TileMatrix: function TileMatrix(e, t) {
              if (t.identifier) {
                var i = {
                  supportedCRS: t.supportedCRS
                };
                this.readChildNodes(e, i), t.matrixIds.push(i);
              } else t.tileMatrix = this.getChildValue(e);
            },
            ScaleDenominator: function ScaleDenominator(e, t) {
              t.scaleDenominator = _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(this.getChildValue(e));
            },
            TopLeftCorner: function TopLeftCorner(e, t) {
              var i,
                  r = this.getChildValue(e).split(" ");

              if (t.supportedCRS) {
                var n = t.supportedCRS.replace(/urn:ogc:def:crs:(\w+):.+:(\w+)$/, "urn:ogc:def:crs:$1::$2");
                i = !!this.yx[n];
              }

              t.topLeftCorner = i ? new GeoGlobe.LngLat(r[1], r[0]) : new GeoGlobe.LngLat(r[0], r[1]);
            },
            TileWidth: function TileWidth(e, t) {
              t.tileWidth = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            TileHeight: function TileHeight(e, t) {
              t.tileHeight = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MatrixWidth: function MatrixWidth(e, t) {
              t.matrixWidth = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            MatrixHeight: function MatrixHeight(e, t) {
              t.matrixHeight = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(this.getChildValue(e));
            },
            ResourceURL: function ResourceURL(e, t) {
              t.resourceUrl = t.resourceUrl || {};
              var i = e.getAttribute("resourceType");
              t.resourceUrls || (t.resourceUrls = []);
              var r = t.resourceUrl[i] = {
                format: e.getAttribute("format"),
                template: e.getAttribute("template"),
                resourceType: i
              };
              t.resourceUrls.push(r);
            },
            LegendURL: function LegendURL(e, t) {
              t.legends = t.legends || [];
              var i = {
                format: e.getAttribute("format"),
                href: e.getAttribute("xlink:href")
              },
                  r = e.getAttribute("width"),
                  n = e.getAttribute("height"),
                  o = e.getAttribute("minScaleDenominator"),
                  a = e.getAttribute("maxScaleDenominator");
              null !== r && (i.width = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(r)), null !== n && (i.height = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(n)), null !== o && (i.minScaleDenominator = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(o)), null !== a && (i.maxScaleDenominator = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(a)), t.legends.push(i);
            },
            InfoFormat: function InfoFormat(e, t) {
              t.infoFormats = t.infoFormats || [], t.infoFormats.push(this.getChildValue(e));
            },
            WSDL: function WSDL(e, t) {
              t.wsdl = {}, t.wsdl.href = e.getAttribute("xlink:href");
            },
            ServiceMetadataURL: function ServiceMetadataURL(e, t) {
              t.serviceMetadataUrl = {}, t.serviceMetadataUrl.href = e.getAttribute("xlink:href");
            },
            Dimension: function Dimension(e, t) {
              var i = {
                values: []
              };
              this.readChildNodes(e, i), t.dimensions.push(i);
            },
            Default: function Default(e, t) {
              t["default"] = this.getChildValue(e);
            },
            Value: function Value(e, t) {
              t.values.push(this.getChildValue(e));
            }
          },
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.readers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.VTSCapabilities.v1_0_0"
      }), GeoGlobe.Format.WPSCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML.VersionedOGC, {
        defaultVersion: "1.0.0",
        CLASS_NAME: "GeoGlobe.Format.WPSCapabilities"
      }), GeoGlobe.Format.WPSCapabilities.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          wps: "http://www.opengis.net/wps/1.0.0",
          xlink: "http://www.w3.org/1999/xlink"
        },
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t;
        },
        readers: {
          wps: {
            Capabilities: function Capabilities(e, t) {
              this.readChildNodes(e, t);
            },
            ProcessOfferings: function ProcessOfferings(e, t) {
              t.processOfferings = {}, this.readChildNodes(e, t.processOfferings);
            },
            Process: function Process(e, t) {
              var i = {
                processVersion: this.getAttributeNS(e, this.namespaces.wps, "processVersion")
              };
              this.readChildNodes(e, i), t[i.identifier] = i;
            },
            Languages: function Languages(e, t) {
              t.languages = [], this.readChildNodes(e, t.languages);
            },
            Default: function Default(e, t) {
              var i = {
                isDefault: !0
              };
              this.readChildNodes(e, i), t.push(i);
            },
            Supported: function Supported(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.push(i);
            }
          },
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.readers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.WPSCapabilities.v1_0_0"
      }), GeoGlobe.Format.WCSGetCoverage = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          wcs: "http://www.opengis.net/wcs/1.1",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance"
        },
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        VERSION: "1.1.2",
        schemaLocation: "http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd",
        write: function write(e) {
          var t = this.writeNode("wcs:GetCoverage", e);
          return this.setAttributeNS(t, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation), GeoGlobe.Format.XML.prototype.write.apply(this, [t]);
        },
        writers: {
          wcs: {
            GetCoverage: function GetCoverage(e) {
              var t = this.createElementNSPlus("wcs:GetCoverage", {
                attributes: {
                  version: e.version || this.VERSION,
                  service: "WCS"
                }
              });
              return this.writeNode("ows:Identifier", e.identifier, t), this.writeNode("wcs:DomainSubset", e.domainSubset, t), this.writeNode("wcs:Output", e.output, t), t;
            },
            DomainSubset: function DomainSubset(e) {
              var t = this.createElementNSPlus("wcs:DomainSubset", {});
              return this.writeNode("ows:BoundingBox", e.boundingBox, t), e.temporalSubset && this.writeNode("wcs:TemporalSubset", e.temporalSubset, t), t;
            },
            TemporalSubset: function TemporalSubset(e) {
              for (var t = this.createElementNSPlus("wcs:TemporalSubset", {}), i = 0, r = e.timePeriods.length; i < r; ++i) {
                this.writeNode("wcs:TimePeriod", e.timePeriods[i], t);
              }

              return t;
            },
            TimePeriod: function TimePeriod(e) {
              var t = this.createElementNSPlus("wcs:TimePeriod", {});
              return this.writeNode("wcs:BeginPosition", e.begin, t), this.writeNode("wcs:EndPosition", e.end, t), e.resolution && this.writeNode("wcs:TimeResolution", e.resolution, t), t;
            },
            BeginPosition: function BeginPosition(e) {
              return this.createElementNSPlus("wcs:BeginPosition", {
                value: e
              });
            },
            EndPosition: function EndPosition(e) {
              return this.createElementNSPlus("wcs:EndPosition", {
                value: e
              });
            },
            TimeResolution: function TimeResolution(e) {
              return this.createElementNSPlus("wcs:TimeResolution", {
                value: e
              });
            },
            Output: function Output(e) {
              var t = this.createElementNSPlus("wcs:Output", {
                attributes: {
                  format: e.format,
                  store: e.store
                }
              });
              return e.gridCRS && this.writeNode("wcs:GridCRS", e.gridCRS, t), t;
            },
            GridCRS: function GridCRS(e) {
              var t = this.createElementNSPlus("wcs:GridCRS", {});
              return this.writeNode("wcs:GridBaseCRS", e.baseCRS, t), e.type && this.writeNode("wcs:GridType", e.type, t), e.origin && this.writeNode("wcs:GridOrigin", e.origin, t), this.writeNode("wcs:GridOffsets", e.offsets, t), e.CS && this.writeNode("wcs:GridCS", e.CS, t), t;
            },
            GridBaseCRS: function GridBaseCRS(e) {
              return this.createElementNSPlus("wcs:GridBaseCRS", {
                value: e
              });
            },
            GridOrigin: function GridOrigin(e) {
              return this.createElementNSPlus("wcs:GridOrigin", {
                value: e
              });
            },
            GridType: function GridType(e) {
              return this.createElementNSPlus("wcs:GridType", {
                value: e
              });
            },
            GridOffsets: function GridOffsets(e) {
              return this.createElementNSPlus("wcs:GridOffsets", {
                value: e
              });
            },
            GridCS: function GridCS(e) {
              return this.createElementNSPlus("wcs:GridCS", {
                value: e
              });
            }
          },
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.writers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.WCSGetCoverage"
      }), GeoGlobe.Format.WPSExecute = GeoGlobe.Class4OL(GeoGlobe.Format.XML, GeoGlobe.Format.Filter.v1_1_0, {
        namespaces: {
          ows: "http://www.opengis.net/ows/1.1",
          gml: "http://www.opengis.net/gml",
          wps: "http://www.opengis.net/wps/1.0.0",
          wfs: "http://www.opengis.net/wfs",
          ogc: "http://www.opengis.net/ogc",
          wcs: "http://www.opengis.net/wcs",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance"
        },
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        VERSION: "1.0.0",
        schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",
        schemaLocationAttr: function schemaLocationAttr(e) {},
        write: function write(e) {
          var t;
          GeoGlobe.Format.XML.supportActiveX ? (t = new ActiveXObject("Microsoft.XMLDOM"), this.xmldom = t) : t = document.implementation.createDocument("", "", null);
          var i = this.writeNode("wps:Execute", e, t);
          return this.setAttributeNS(i, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation), GeoGlobe.Format.XML.prototype.write.apply(this, [i]);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t;
        },
        writers: {
          wps: {
            Execute: function Execute(e) {
              var t = this.createElementNSPlus("wps:Execute", {
                attributes: {
                  version: this.VERSION,
                  service: "WPS"
                }
              });
              return this.writeNode("ows:Identifier", e.identifier, t), this.writeNode("wps:DataInputs", e.dataInputs, t), this.writeNode("wps:ResponseForm", e.responseForm, t), t;
            },
            ResponseForm: function ResponseForm(e) {
              var t = this.createElementNSPlus("wps:ResponseForm", {});
              return e.rawDataOutput && this.writeNode("wps:RawDataOutput", e.rawDataOutput, t), e.responseDocument && this.writeNode("wps:ResponseDocument", e.responseDocument, t), t;
            },
            ResponseDocument: function ResponseDocument(e) {
              var t = this.createElementNSPlus("wps:ResponseDocument", {
                attributes: {
                  storeExecuteResponse: e.storeExecuteResponse,
                  lineage: e.lineage,
                  status: e.status
                }
              });
              if (e.outputs) for (var i = 0, r = e.outputs.length; i < r; i++) {
                this.writeNode("wps:Output", e.outputs[i], t);
              }
              return t;
            },
            Output: function Output(e) {
              var t = this.createElementNSPlus("wps:Output", {
                attributes: {
                  asReference: e.asReference,
                  mimeType: e.mimeType,
                  encoding: e.encoding,
                  schema: e.schema
                }
              });
              return this.writeNode("ows:Identifier", e.identifier, t), this.writeNode("ows:Title", e.title, t), this.writeNode("ows:Abstract", e["abstract"], t), t;
            },
            RawDataOutput: function RawDataOutput(e) {
              var t = this.createElementNSPlus("wps:RawDataOutput", {
                attributes: {
                  mimeType: e.mimeType,
                  encoding: e.encoding,
                  schema: e.schema
                }
              });
              return this.writeNode("ows:Identifier", e.identifier, t), t;
            },
            DataInputs: function DataInputs(e) {
              for (var t = this.createElementNSPlus("wps:DataInputs", {}), i = 0, r = e.length; i < r; ++i) {
                this.writeNode("wps:Input", e[i], t);
              }

              return t;
            },
            Input: function Input(e) {
              var t = this.createElementNSPlus("wps:Input", {});
              return this.writeNode("ows:Identifier", e.identifier, t), e.title && this.writeNode("ows:Title", e.title, t), e.data && this.writeNode("wps:Data", e.data, t), e.reference && this.writeNode("wps:Reference", e.reference, t), e.boundingBoxData && this.writeNode("wps:BoundingBoxData", e.boundingBoxData, t), t;
            },
            Data: function Data(e) {
              var t = this.createElementNSPlus("wps:Data", {});
              return e.literalData ? this.writeNode("wps:LiteralData", e.literalData, t) : e.complexData ? this.writeNode("wps:ComplexData", e.complexData, t) : e.boundingBoxData && this.writeNode("ows:BoundingBox", e.boundingBoxData, t), t;
            },
            LiteralData: function LiteralData(e) {
              return this.createElementNSPlus("wps:LiteralData", {
                attributes: {
                  uom: e.uom
                },
                value: e.value
              });
            },
            ComplexData: function ComplexData(e) {
              var t = this.createElementNSPlus("wps:ComplexData", {
                attributes: {
                  mimeType: e.mimeType,
                  encoding: e.encoding,
                  schema: e.schema
                }
              }),
                  i = e.value;
              return "string" == typeof i ? t.appendChild(this.getXMLDoc().createCDATASection(e.value)) : t.appendChild(i), t;
            },
            Reference: function Reference(e) {
              var t = this.createElementNSPlus("wps:Reference", {
                attributes: {
                  mimeType: e.mimeType,
                  "xlink:href": e.href,
                  method: e.method,
                  encoding: e.encoding,
                  schema: e.schema
                }
              });
              return e.body && this.writeNode("wps:Body", e.body, t), t;
            },
            BoundingBoxData: function BoundingBoxData(e, t) {
              this.writers.ows.BoundingBox.apply(this, [e, t, "wps:BoundingBoxData"]);
            },
            Body: function Body(e) {
              var t = this.createElementNSPlus("wps:Body", {});
              return e.wcs ? this.writeNode("wcs:GetCoverage", e.wcs, t) : e.wfs ? (this.featureType = e.wfs.featureType, this.version = e.wfs.version, this.writeNode("wfs:GetFeature", e.wfs, t)) : this.writeNode("wps:Execute", e, t), t;
            }
          },
          wcs: GeoGlobe.Format.WCSGetCoverage.prototype.writers.wcs,
          wfs: GeoGlobe.Format.WFST.v1_1_0.prototype.writers.wfs,
          ogc: GeoGlobe.Format.Filter.v1_1_0.prototype.writers.ogc,
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.writers.ows
        },
        readers: {
          wps: {
            ExecuteResponse: function ExecuteResponse(e, t) {
              t.executeResponse = {
                lang: e.getAttribute("lang"),
                statusLocation: e.getAttribute("statusLocation"),
                serviceInstance: e.getAttribute("serviceInstance"),
                service: e.getAttribute("service")
              }, this.readChildNodes(e, t.executeResponse);
            },
            Process: function Process(e, t) {
              t.process = {}, this.readChildNodes(e, t.process);
            },
            Status: function Status(e, t) {
              t.status = {
                creationTime: e.getAttribute("creationTime")
              }, this.readChildNodes(e, t.status);
            },
            ProcessSucceeded: function ProcessSucceeded(e, t) {
              t.processSucceeded = !0;
            },
            ProcessOutputs: function ProcessOutputs(e, t) {
              t.processOutputs = [], this.readChildNodes(e, t.processOutputs);
            },
            Output: function Output(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.push(i);
            },
            Reference: function Reference(e, t) {
              t.reference = {
                href: e.getAttribute("href"),
                mimeType: e.getAttribute("mimeType"),
                encoding: e.getAttribute("encoding"),
                schema: e.getAttribute("schema")
              };
            },
            Data: function Data(e, t) {
              t.data = {}, this.readChildNodes(e, t);
            },
            LiteralData: function LiteralData(e, t) {
              t.literalData = {
                dataType: e.getAttribute("dataType"),
                uom: e.getAttribute("uom"),
                value: this.getChildValue(e)
              };
            },
            ComplexData: function ComplexData(e, t) {
              var i;
              if (t.complexData = {
                mimeType: e.getAttribute("mimeType"),
                schema: e.getAttribute("schema"),
                encoding: e.getAttribute("encoding"),
                value: ""
              }, this.isSimpleContent(e)) for (i = e.firstChild; i; i = i.nextSibling) {
                switch (i.nodeType) {
                  case 3:
                  case 4:
                    t.complexData.value += i.nodeValue;
                }
              } else for (i = e.firstChild; i; i = i.nextSibling) {
                1 == i.nodeType && (t.complexData.value = i);
              }
            },
            BoundingBox: function BoundingBox(e, t) {
              t.boundingBoxData = {
                dimensions: e.getAttribute("dimensions"),
                crs: e.getAttribute("crs")
              }, this.readChildNodes(e, t.boundingBoxData);
            }
          },
          ows: GeoGlobe.Format.OWSCommon.v1_1_0.prototype.readers.ows
        },
        CLASS_NAME: "GeoGlobe.Format.WPSExecute"
      }), GeoGlobe.Format.OGCExceptionReport = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          ogc: "http://www.opengis.net/ogc"
        },
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        defaultPrefix: "ogc",
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));
          var t = {
            exceptionReport: null
          };
          return e.documentElement && (this.readChildNodes(e, t), null === t.exceptionReport && (t = new GeoGlobe.Format.OWSCommon().read(e))), t;
        },
        readers: {
          ogc: {
            ServiceExceptionReport: function ServiceExceptionReport(e, t) {
              t.exceptionReport = {
                exceptions: []
              }, this.readChildNodes(e, t.exceptionReport);
            },
            ServiceException: function ServiceException(e, t) {
              var i = {
                code: e.getAttribute("code"),
                locator: e.getAttribute("locator"),
                text: this.getChildValue(e)
              };
              t.exceptions.push(i);
            }
          }
        },
        CLASS_NAME: "GeoGlobe.Format.OGCExceptionReport"
      }), GeoGlobe.Format.QueryStringFilter = function () {
        var e = {};
        return e[GeoGlobe.Filter.Comparison.EQUAL_TO] = "eq", e[GeoGlobe.Filter.Comparison.NOT_EQUAL_TO] = "ne", e[GeoGlobe.Filter.Comparison.LESS_THAN] = "lt", e[GeoGlobe.Filter.Comparison.LESS_THAN_OR_EQUAL_TO] = "lte", e[GeoGlobe.Filter.Comparison.GREATER_THAN] = "gt", e[GeoGlobe.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO] = "gte", e[GeoGlobe.Filter.Comparison.LIKE] = "ilike", GeoGlobe.Class4OL(GeoGlobe.Format, {
          wildcarded: !1,
          srsInBBOX: !1,
          write: function write(t, i) {
            i = i || {};
            var r = t.CLASS_NAME,
                n = r.substring(r.lastIndexOf(".") + 1);

            switch (n) {
              case "Spatial":
                switch (t.type) {
                  case GeoGlobe.Filter.Spatial.BBOX:
                    i.bbox = t.value.toArray(), this.srsInBBOX && t.projection && i.bbox.push(t.projection.getCode());
                    break;

                  case GeoGlobe.Filter.Spatial.DWITHIN:
                    i.tolerance = t.distance;

                  case GeoGlobe.Filter.Spatial.WITHIN:
                    i.lon = t.value.x, i.lat = t.value.y;
                    break;

                  default:
                    GeoGlobe.Console.warn("Unknown spatial filter type " + t.type);
                }

                break;

              case "Comparison":
                var o = e[t.type];

                if (void 0 !== o) {
                  var a = t.value;
                  t.type == GeoGlobe.Filter.Comparison.LIKE && (a = a.replace(/%/g, "\\%").replace(/\\\\\.(\*)?/g, function (e, t) {
                    return t ? e : "\\\\_";
                  }).replace(/\\\\\.\*/g, "\\\\%").replace(/(\\)?\.(\*)?/g, function (e, t, i) {
                    return t || i ? e : "_";
                  }).replace(/(\\)?\.\*/g, function (e, t) {
                    return t ? e : "%";
                  }).replace(/\\\./g, ".").replace(/(\\)?\\\*/g, function (e, t) {
                    return t ? e : "*";
                  }), this.wildcarded && (a = "%" + a + "%")), i[t.property + "__" + o] = a, i.queryable = i.queryable || [], i.queryable.push(t.property);
                } else GeoGlobe.Console.warn("Unknown comparison filter type " + t.type);

                break;

              case "Logical":
                if (t.type === GeoGlobe.Filter.Logical.AND) for (var s = 0, x = t.filters.length; s < x; s++) {
                  i = this.write(t.filters[s], i);
                } else GeoGlobe.Console.warn("Unsupported logical filter type " + t.type);
                break;

              default:
                GeoGlobe.Console.warn("Unknown filter type " + n);
            }

            return i;
          },
          CLASS_NAME: "GeoGolobe.Format.QueryStringFilter"
        });
      }(), GeoGlobe.Format.BusCapabilities = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        tagName: "NETWORK_Capabilities",
        read: function read(e) {
          var t;
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));
          var i = {};
          return (t = e.nodeName != this.tagName ? e.getElementsByTagName(this.tagName) : [e]).length > 0 && this.runChildNodes(i, t[0]), i;
        },
        runChildNodes: function runChildNodes(e, t, i) {
          for (var r, n, o = t.childNodes, a = 0; a < o.length; ++a) {
            1 == (r = o[a]).nodeType && (n = i ? this["read_" + i + "_" + r.nodeName] : this["read_" + r.nodeName]) && n.apply(this, [e, r]);
          }
        },
        read_Service: function read_Service(e, t) {
          var i = {};
          this.runChildNodes(i, t, "Service"), e.service = i;
        },
        read_Service_Name: function read_Service_Name(e, t) {
          var i = this.getChildValue(t);
          i && (e.name = i);
        },
        read_Service_Title: function read_Service_Title(e, t) {
          var i = this.getChildValue(t);
          i && (e.title = i);
        },
        read_Service_Abstract: function read_Service_Abstract(e, t) {
          var i = this.getChildValue(t);
          i && (e.serviceAbstract = i);
        },
        read_Service_KeywordList: function read_Service_KeywordList(e, t) {},
        read_Service_OnlineResource: function read_Service_OnlineResource(e, t) {
          var i = this.getChildValue(t);
          e && (e.onlineResource = i);
        },
        read_Capability: function read_Capability(e, t) {
          var i = {};
          this.runChildNodes(i, t, "Capability"), e.capability = i;
        },
        read_Capability_Request: function read_Capability_Request(e, t) {
          var i = {};
          this.runChildNodes(i, t, "Capability_Request"), e.request = i;
        },
        read_Capability_Request_GetCapabilities: function read_Capability_Request_GetCapabilities(e, t) {
          var i = t.getElementsByTagName("HTTP"),
              r = {};
          i[0] && this.runChildNodes(r, i[0], "Capability_Request_GetCapabilities_DCPType_HTTP"), e.getCapabilities = r;
        },
        read_Capability_Request_GetCapabilities_DCPType_HTTP_Get: function read_Capability_Request_GetCapabilities_DCPType_HTTP_Get(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.getUrl = i);
        },
        read_Capability_Request_GetCapabilities_DCPType_HTTP_Post: function read_Capability_Request_GetCapabilities_DCPType_HTTP_Post(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.postUrl = i);
        },
        read_Capability_Request_queryStation: function read_Capability_Request_queryStation(e, t) {
          var i = t.getElementsByTagName("HTTP"),
              r = {};
          i[0] && this.runChildNodes(r, i[0], "Capability_Request_queryStation_DCPType_HTTP"), e.queryStation = r;
        },
        read_Capability_Request_queryStation_DCPType_HTTP_Get: function read_Capability_Request_queryStation_DCPType_HTTP_Get(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.getUrl = i);
        },
        read_Capability_Request_queryStation_DCPType_HTTP_Post: function read_Capability_Request_queryStation_DCPType_HTTP_Post(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.postUrl = i);
        },
        read_Capability_Request_queryLine: function read_Capability_Request_queryLine(e, t) {
          var i = t.getElementsByTagName("HTTP"),
              r = {};
          i[0] && this.runChildNodes(r, i[0], "Capability_Request_queryLine_DCPType_HTTP"), e.queryLine = r;
        },
        read_Capability_Request_queryLine_DCPType_HTTP_Get: function read_Capability_Request_queryLine_DCPType_HTTP_Get(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.getUrl = i);
        },
        read_Capability_Request_queryLine_DCPType_HTTP_Post: function read_Capability_Request_queryLine_DCPType_HTTP_Post(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.postUrl = i);
        },
        read_Capability_Request_queryChange: function read_Capability_Request_queryChange(e, t) {
          var i = t.getElementsByTagName("HTTP");
          i[0] && this.runChildNodes({}, i[0], "Capability_Request_queryChange_DCPType_HTTP");
        },
        read_Capability_Request_queryChange_DCPType_HTTP_Get: function read_Capability_Request_queryChange_DCPType_HTTP_Get(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.getUrl = i);
        },
        read_Capability_Request_queryChange_DCPType_HTTP_Post: function read_Capability_Request_queryChange_DCPType_HTTP_Post(e, t) {
          var i = t.getAttribute("onlineResource");
          i && (e.postUrl = i);
        },
        read_Capability_Networks: function read_Capability_Networks(e, t) {
          for (var i = t.getElementsByTagName("Name"), r = [], n = 0; n < i.length; n++) {
            var o = this.getChildValue(i[n]);
            o && r.push(o);
          }

          e.networks = r;
        },
        CLASS_NAME: "GeoGlobe.Format.BusCapabilities"
      }), GeoGlobe.Format.XML2JSON = GeoGlobe.Class4OL({
        initialize: function initialize() {},
        read: function read(e, t, i) {
          t || (t = ""), e = (e = e.replace(/\s*\/>/g, "/>")).replace(/<\?[^>]*>/g, "").replace(/<\![^>]*>/g, ""), t.sort || (t = t.split(","));
          var r = this.no_fast_endings(e);
          r = this.attris_to_tags(r), r = (r = escape(r)).split("%3C").join("<").split("%3E").join(">").split("%3D").join("=").split("%22").join('"');

          for (var n = 0; n < t.length; n++) {
            r = (r = r.replace(new RegExp("<" + t[n] + ">", "g"), "*$**" + t[n] + "**$*")).replace(new RegExp("</" + t[n] + ">", "g"), "*$***" + t[n] + "**$*");
          }

          r = "<JSONTAGWRAPPER>" + r + "</JSONTAGWRAPPER>", this.xmlobject = {};
          var o = this.xml_to_object(r).JSONTAGWRAPPER;
          return i && (o = this.show_json_structure(o, i)), o;
        },
        xml_to_object: function xml_to_object(xmlcode) {
          var x = xmlcode.replace(/<\//g, "?");
          x = x.split("<");

          for (var y = [], level = 0, opentags = [], i = 1; i < x.length; i++) {
            var tagname = x[i].split(">")[0];

            for (opentags.push(tagname), level++, y.push(level + "<" + x[i].split("?")[0]); x[i].indexOf("?" + opentags[opentags.length - 1] + ">") >= 0;) {
              level--, opentags.pop();
            }
          }

          for (var oldniva = -1, objname = "this.xmlobject", i = 0; i < y.length; i++) {
            var preeval = "",
                niva = y[i].split("<")[0],
                tagnamn = y[i].split("<")[1].split(">")[0];
            tagnamn = tagnamn.replace(/%3A/, "_");
            var rest = y[i].split(">")[1];
            if (niva <= oldniva) for (var tabort = oldniva - niva + 1, j = 0; j < tabort; j++) {
              objname = objname.substring(0, objname.lastIndexOf("."));
            }
            objname += "." + tagnamn;
            var pobject = objname.substring(0, objname.lastIndexOf("."));
            "object" != eval("typeof " + pobject) && (preeval += pobject + "={value:" + pobject + "};\n");
            var objlast = objname.substring(objname.lastIndexOf(".") + 1),
                already = !1;

            for (k in eval(pobject)) {
              k == objlast && (already = !0);
            }

            for (var onlywhites = !0, s = 0; s < rest.length; s += 3) {
              "%" != rest.charAt(s) && (onlywhites = !1);
            }

            "" == rest || onlywhites ? rest = "{}" : rest / 1 != rest && (rest = "'" + rest.replace(/\'/g, "\\'") + "'", rest = rest.replace(/\*\$\*\*\*/g, "</"), rest = rest.replace(/\*\$\*\*/g, "<"), rest = rest.replace(/\*\*\$\*/g, ">")), "'" == rest.charAt(0) && (rest = "unescape(" + rest + ")"), already && !eval(objname + ".sort") && (preeval += objname + "=[" + objname + "];\n");
            var before = "=";
            after = "", already && (before = ".push(", after = ")");
            var toeval = preeval + objname + before + rest + after;
            eval(toeval), eval(objname + ".sort") && (objname += "[" + eval(objname + ".length-1") + "]"), oldniva = niva;
          }

          return this.xmlobject;
        },
        show_json_structure: function show_json_structure(e, t, i) {
          var r = "";

          for (var n in e.sort ? r += "[\n" : r += "{\n", e) {
            e.sort || (r += n + ":"), "object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(e[n]) ? r += this.show_json_structure(e[n], !1, 1) : "function" == typeof e[n] ? r += e[n] + "" : "string" != typeof e[n] ? r += e[n] + ",\n" : r += "'" + e[n].replace(/\'/g, "\\'").replace(/\n/g, "\\n").replace(/\t/g, "\\t").replace(/\r/g, "\\r") + "',\n";
          }

          if (e.sort ? r += "],\n" : r += "},\n", !i) {
            var o = (r = (r = (r = r.substring(0, r.lastIndexOf(","))).replace(new RegExp(",\n}", "g"), "\n}")).replace(new RegExp(",\n]", "g"), "\n]")).split("\n");
            r = "";
            var a = 0;

            for (n = 0; n < o.length; n++) {
              (o[n].indexOf("}") >= 0 || o[n].indexOf("]") >= 0) && a--, tabs = "";

              for (var s = 0; s < a; s++) {
                tabs += "\t";
              }

              r += tabs + o[n] + "\n", (o[n].indexOf("{") >= 0 || o[n].indexOf("[") >= 0) && a++;
            }

            "html" == t && (r = (r = r.replace(/</g, "&lt;").replace(/>/g, "&gt;")).replace(/\n/g, "<BR>").replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;")), "compact" == t && (r = r.replace(/\n/g, "").replace(/\t/g, ""));
          }

          return r;
        },
        no_fast_endings: function no_fast_endings(e) {
          e = e.split("/>");

          for (var t = 1; t < e.length; t++) {
            var i = e[t - 1].substring(e[t - 1].lastIndexOf("<") + 1).split(" ")[0];
            e[t] = "></" + i + ">" + e[t];
          }

          return e.join("");
        },
        attris_to_tags: function attris_to_tags(e) {
          var t = " =\"'".split("");
          e = e.split(">");

          for (var i = 0; i < e.length; i++) {
            for (var r = e[i].split("<"), n = 0; n < 4; n++) {
              r[0] = r[0].replace(new RegExp(t[n], "g"), "_jsonconvtemp" + n + "_");
            }

            if (r[1]) {
              r[1] = r[1].replace(/'/g, '"'), r[1] = r[1].split('"');

              for (var o = 1; o < r[1].length; o += 2) {
                for (n = 0; n < 4; n++) {
                  r[1][o] = r[1][o].replace(new RegExp(t[n], "g"), "_jsonconvtemp" + n + "_");
                }
              }

              r[1] = r[1].join('"');
            }

            e[i] = r.join("<");
          }

          for (e = (e = (e = e.join(">")).replace(/ ([^=]*)=([^ |>]*)/g, "><$1>$2</$1")).replace(/>"/g, ">").replace(/"</g, "<"), n = 0; n < 4; n++) {
            e = e.replace(new RegExp("_jsonconvtemp" + n + "_", "g"), t[n]);
          }

          return e;
        },
        CLASS_NAME: "GeoGlobe.Format.XML2JSON"
      }), GeoGlobe.Format.CSWGetRecords = function (e) {
        e = GeoGlobe.Util.applyDefaults(e, GeoGlobe.Format.CSWGetRecords.DEFAULTS);
        var t = GeoGlobe.Format.CSWGetRecords["v" + e.version.replace(/\./g, "_")];
        if (!t) throw "Unsupported CSWGetRecords version: " + e.version;
        return new t(e);
      }, GeoGlobe.Format.CSWGetRecords.DEFAULTS = {
        version: "2.0.2"
      }, GeoGlobe.Format.CSWGetRecords.v2_0_2 = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        namespaces: {
          csw: "http://www.opengis.net/cat/csw/2.0.2",
          dc: "http://purl.org/dc/elements/1.1/",
          dct: "http://purl.org/dc/terms/",
          gmd: "http://www.isotc211.org/2005/gmd",
          geonet: "http://www.fao.org/geonetwork",
          ogc: "http://www.opengis.net/ogc",
          ows: "http://www.opengis.net/ows",
          xlink: "http://www.w3.org/1999/xlink",
          xsi: "http://www.w3.org/2001/XMLSchema-instance"
        },
        defaultPrefix: "csw",
        version: "2.0.2",
        schemaLocation: "http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
        requestId: null,
        resultType: null,
        outputFormat: null,
        outputSchema: null,
        startPosition: null,
        maxRecords: null,
        DistributedSearch: null,
        ResponseHandler: null,
        Query: null,
        regExes: {
          trimSpace: /^\s*|\s*$/g,
          removeSpace: /\s*/g,
          splitSpace: /\s+/,
          trimComma: /\s*,\s*/g
        },
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType && (e = e.documentElement);
          var t = {};
          return this.readNode(e, t), t;
        },
        readers: {
          csw: {
            GetRecordsResponse: function GetRecordsResponse(e, t) {
              t.records = [], this.readChildNodes(e, t);
              var i = this.getAttributeNS(e, "", "version");
              "" != i && (t.version = i);
            },
            RequestId: function RequestId(e, t) {
              t.RequestId = this.getChildValue(e);
            },
            SearchStatus: function SearchStatus(e, t) {
              t.SearchStatus = {};
              var i = this.getAttributeNS(e, "", "timestamp");
              "" != i && (t.SearchStatus.timestamp = i);
            },
            SearchResults: function SearchResults(e, t) {
              this.readChildNodes(e, t);

              for (var i = e.attributes, r = {}, n = 0, o = i.length; n < o; ++n) {
                "numberOfRecordsMatched" == i[n].name || "numberOfRecordsReturned" == i[n].name || "nextRecord" == i[n].name ? r[i[n].name] = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(i[n].nodeValue) : r[i[n].name] = i[n].nodeValue;
              }

              t.SearchResults = r;
            },
            SummaryRecord: function SummaryRecord(e, t) {
              var i = {
                type: "SummaryRecord"
              };
              this.readChildNodes(e, i), t.records.push(i);
            },
            BriefRecord: function BriefRecord(e, t) {
              var i = {
                type: "BriefRecord"
              };
              this.readChildNodes(e, i), t.records.push(i);
            },
            DCMIRecord: function DCMIRecord(e, t) {
              var i = {
                type: "DCMIRecord"
              };
              this.readChildNodes(e, i), t.records.push(i);
            },
            Record: function Record(e, t) {
              var i = {
                type: "Record"
              };
              this.readChildNodes(e, i), t.records.push(i);
            },
            "*": function _(e, t) {
              t[e.localName || e.nodeName.split(":").pop()] = this.getChildValue(e);
            }
          },
          geonet: {
            info: function info(e, t) {
              var i = {};
              this.readChildNodes(e, i), t.gninfo = i;
            }
          },
          dc: {
            "*": function _(e, t) {
              var i = e.localName || e.nodeName.split(":").pop();
              GeoGlobe.Util.isArray(t[i]) || (t[i] = []);

              for (var r = {}, n = e.attributes, o = 0, a = n.length; o < a; ++o) {
                r[n[o].name] = n[o].nodeValue;
              }

              r.value = this.getChildValue(e), "" != r.value && t[i].push(r);
            }
          },
          dct: {
            "*": function _(e, t) {
              var i = e.localName || e.nodeName.split(":").pop();
              GeoGlobe.Util.isArray(t[i]) || (t[i] = []), t[i].push(this.getChildValue(e));
            }
          },
          ows: GeoGlobe.Util.applyDefaults({
            BoundingBox: function BoundingBox(e, t) {
              t.bounds && (t.BoundingBox = [{
                crs: t.projection,
                value: [t.bounds._sw.lng, t.bounds._sw.lat, t.bounds._ne.lng, t.bounds._ne.lat]
              }], delete t.projection, delete t.bounds), GeoGlobe.Format.OWSCommon.v1_0_0.prototype.readers.ows.BoundingBox.apply(this, arguments);
            }
          }, GeoGlobe.Format.OWSCommon.v1_0_0.prototype.readers.ows)
        },
        write: function write(e) {
          var t = this.writeNode("csw:GetRecords", e);
          return t.setAttribute("xmlns:gmd", this.namespaces.gmd), GeoGlobe.Format.XML.prototype.write.apply(this, [t]);
        },
        writers: {
          csw: {
            GetRecords: function GetRecords(e) {
              e || (e = {});
              var t = this.createElementNSPlus("csw:GetRecords", {
                attributes: {
                  service: "CSW",
                  version: this.version,
                  requestId: e.requestId || this.requestId,
                  resultType: e.resultType || this.resultType,
                  outputFormat: e.outputFormat || this.outputFormat,
                  outputSchema: e.outputSchema || this.outputSchema,
                  startPosition: e.startPosition || this.startPosition,
                  maxRecords: e.maxRecords || this.maxRecords
                }
              });
              (e.DistributedSearch || this.DistributedSearch) && this.writeNode("csw:DistributedSearch", e.DistributedSearch || this.DistributedSearch, t);
              var i = e.ResponseHandler || this.ResponseHandler;
              if (GeoGlobe.Util.isArray(i) && i.length > 0) for (var r = 0, n = i.length; r < n; r++) {
                this.writeNode("csw:ResponseHandler", i[r], t);
              }
              return this.writeNode("Query", e.Query || this.Query, t), t;
            },
            DistributedSearch: function DistributedSearch(e) {
              return this.createElementNSPlus("csw:DistributedSearch", {
                attributes: {
                  hopCount: e.hopCount
                }
              });
            },
            ResponseHandler: function ResponseHandler(e) {
              return this.createElementNSPlus("csw:ResponseHandler", {
                value: e.value
              });
            },
            Query: function Query(e) {
              e || (e = {});
              var t = this.createElementNSPlus("csw:Query", {
                attributes: {
                  typeNames: e.typeNames || "csw:Record"
                }
              }),
                  i = e.ElementName;
              if (GeoGlobe.Util.isArray(i) && i.length > 0) for (var r = 0, n = i.length; r < n; r++) {
                this.writeNode("csw:ElementName", i[r], t);
              } else this.writeNode("csw:ElementSetName", e.ElementSetName || {
                value: "summary"
              }, t);
              return e.Constraint && this.writeNode("csw:Constraint", e.Constraint, t), e.SortBy && this.writeNode("ogc:SortBy", e.SortBy, t), t;
            },
            ElementName: function ElementName(e) {
              return this.createElementNSPlus("csw:ElementName", {
                value: e.value
              });
            },
            ElementSetName: function ElementSetName(e) {
              return this.createElementNSPlus("csw:ElementSetName", {
                attributes: {
                  typeNames: e.typeNames
                },
                value: e.value
              });
            },
            Constraint: function Constraint(e) {
              var t = this.createElementNSPlus("csw:Constraint", {
                attributes: {
                  version: e.version
                }
              });

              if (e.Filter) {
                var i = new GeoGlobe.Format.Filter({
                  version: e.version
                });
                t.appendChild(i.write(e.Filter));
              } else if (e.CqlText) {
                var r = this.createElementNSPlus("CqlText", {
                  value: e.CqlText.value
                });
                t.appendChild(r);
              }

              return t;
            }
          },
          ogc: GeoGlobe.Format.Filter.v1_1_0.prototype.writers.ogc
        },
        CLASS_NAME: "GeoGlobe.Format.CSWGetRecords.v2_0_2"
      }), function (e, t) {
        e.GeoGlobe.Format.X2JS = function (e) {
          void 0 === (e = e || {}).escapeMode && (e.escapeMode = !0), e.attributePrefix = e.attributePrefix || "_", e.arrayAccessForm = e.arrayAccessForm || "none", e.emptyNodeForm = e.emptyNodeForm || "text", void 0 === e.enableToStringFunc && (e.enableToStringFunc = !0), e.arrayAccessFormPaths = e.arrayAccessFormPaths || [], void 0 === e.skipEmptyTextNodesForObj && (e.skipEmptyTextNodesForObj = !0), void 0 === e.stripWhitespaces && (e.stripWhitespaces = !0), e.datetimeAccessFormPaths = e.datetimeAccessFormPaths || [], void 0 === e.useDoubleQuotes && (e.useDoubleQuotes = !1), e.xmlElementsFilter = e.xmlElementsFilter || [], e.jsonPropertiesFilter = e.jsonPropertiesFilter || [], void 0 === e.keepCData && (e.keepCData = !1);
          var t = 1,
              i = 3,
              r = 4,
              n = 8,
              o = 9;

          function a(e) {
            var t = e.localName;
            return null == t && (t = e.baseName), null != t && "" != t || (t = e.nodeName), t;
          }

          function s(e) {
            return "string" == typeof e ? e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;") : e;
          }

          function x(e, t, i, r) {
            for (var n = 0; n < e.length; n++) {
              var o = e[n];

              if ("string" == typeof o) {
                if (o == r) break;
              } else if (o instanceof RegExp) {
                if (o.test(r)) break;
              } else if ("function" == typeof o && o(t, i, r)) break;
            }

            return n != e.length;
          }

          function l(t, i, r) {
            switch (e.arrayAccessForm) {
              case "property":
                t[i] instanceof Array ? t[i + "_asArray"] = t[i] : t[i + "_asArray"] = [t[i]];
            }

            !(t[i] instanceof Array) && e.arrayAccessFormPaths.length > 0 && x(e.arrayAccessFormPaths, t, i, r) && (t[i] = [t[i]]);
          }

          function c(e) {
            var t = e.split(/[-T:+Z]/g),
                i = new Date(t[0], t[1] - 1, t[2]),
                r = t[5].split(".");

            if (i.setHours(t[3], t[4], r[0]), r.length > 1 && i.setMilliseconds(r[1]), t[6] && t[7]) {
              var n = 60 * t[6] + Number(t[7]);
              n = 0 + ("-" == (/\d\d-\d\d:\d\d$/.test(e) ? "-" : "+") ? -1 * n : n), i.setMinutes(i.getMinutes() - n - i.getTimezoneOffset());
            } else -1 !== e.indexOf("Z", e.length - 1) && (i = new Date(Date.UTC(i.getFullYear(), i.getMonth(), i.getDate(), i.getHours(), i.getMinutes(), i.getSeconds(), i.getMilliseconds())));

            return i;
          }

          function u(i, r, n, o) {
            return !(r == t && e.xmlElementsFilter.length > 0) || x(e.xmlElementsFilter, i, n, o);
          }

          function h(s, f) {
            if (s.nodeType == o) {
              for (var d = new Object(), g = s.childNodes, p = 0; p < g.length; p++) {
                if ((m = g.item(p)).nodeType == t) d[b = a(m)] = h(m, b);
              }

              return d;
            }

            if (s.nodeType == t) {
              (d = new Object()).__cnt = 0;

              for (g = s.childNodes, p = 0; p < g.length; p++) {
                var m,
                    b = a(m = g.item(p));

                if (m.nodeType != n) {
                  var v = f + "." + b;
                  u(d, m.nodeType, b, v) && (d.__cnt++, null == d[b] ? (d[b] = h(m, v), l(d, b, v)) : (null != d[b] && (d[b] instanceof Array || (d[b] = [d[b]], l(d, b, v))), d[b][d[b].length] = h(m, v)));
                }
              }

              for (var C = 0; C < s.attributes.length; C++) {
                var y = s.attributes.item(C);
                d.__cnt++, d[e.attributePrefix + y.name] = y.value;
              }

              var _ = s.prefix;
              return null != _ && "" != _ && (d.__cnt++, d.__prefix = _), null != d["#text"] && (d.__text = d["#text"], d.__text instanceof Array && (d.__text = d.__text.join("\n")), e.stripWhitespaces && (d.__text = d.__text.trim()), delete d["#text"], "property" == e.arrayAccessForm && delete d["#text_asArray"], d.__text = function (t, i, r) {
                if (e.datetimeAccessFormPaths.length > 0) {
                  var n = r.split(".#")[0];
                  return x(e.datetimeAccessFormPaths, t, i, n) ? c(t) : t;
                }

                return t;
              }(d.__text, b, f + "." + b)), null != d["#cdata-section"] && (d.__cdata = d["#cdata-section"], delete d["#cdata-section"], "property" == e.arrayAccessForm && delete d["#cdata-section_asArray"]), 0 == d.__cnt && "text" == e.emptyNodeForm ? d = "" : 1 == d.__cnt && null != d.__text ? d = d.__text : 1 != d.__cnt || null == d.__cdata || e.keepCData ? d.__cnt > 1 && null != d.__text && e.skipEmptyTextNodesForObj && (e.stripWhitespaces && "" == d.__text || "" == d.__text.trim()) && delete d.__text : d = d.__cdata, delete d.__cnt, !e.enableToStringFunc || null == d.__text && null == d.__cdata || (d.toString = function () {
                return (null != this.__text ? this.__text : "") + (null != this.__cdata ? this.__cdata : "");
              }), d;
            }

            if (s.nodeType == i || s.nodeType == r) return s.nodeValue;
          }

          function f(t, i, r, n) {
            var o = "<" + (null != t && null != t.__prefix ? t.__prefix + ":" : "") + i;
            if (null != r) for (var a = 0; a < r.length; a++) {
              var x = r[a],
                  l = t[x];
              e.escapeMode && (l = s(l)), o += " " + x.substr(e.attributePrefix.length) + "=", e.useDoubleQuotes ? o += '"' + l + '"' : o += "'" + l + "'";
            }
            return o + (n ? "/>" : ">");
          }

          function d(e, t) {
            return "</" + (null != e.__prefix ? e.__prefix + ":" : "") + t + ">";
          }

          function g(t, i) {
            return "property" == e.arrayAccessForm && (n = "_asArray", -1 !== (r = i.toString()).indexOf(n, r.length - n.length)) || 0 == i.toString().indexOf(e.attributePrefix) || 0 == i.toString().indexOf("__") || t[i] instanceof Function;
            var r, n;
          }

          function p(e) {
            var t = 0;
            if (e instanceof Object) for (var i in e) {
              g(e, i) || t++;
            }
            return t;
          }

          function m(t) {
            var i = [];
            if (t instanceof Object) for (var r in t) {
              -1 == r.toString().indexOf("__") && 0 == r.toString().indexOf(e.attributePrefix) && i.push(r);
            }
            return i;
          }

          function b(t) {
            var i,
                r,
                n = "";
            return t instanceof Object ? n += (r = "", null != (i = t).__cdata && (r += "<![CDATA[" + i.__cdata + "]]>"), null != i.__text && (e.escapeMode ? r += s(i.__text) : r += i.__text), r) : null != t && (e.escapeMode ? n += s(t) : n += t), n;
          }

          function v(e, t) {
            return "" === e ? t : e + "." + t;
          }

          function C(e, t, i, r) {
            var n = "";
            if (0 == e.length) n += f(e, t, i, !0);else for (var o = 0; o < e.length; o++) {
              n += f(e[o], t, m(e[o]), !1), n += y(e[o], v(r, t)), n += d(e[o], t);
            }
            return n;
          }

          function y(t, i) {
            var r,
                n,
                o,
                a = "";
            if (p(t) > 0) for (var s in t) {
              if (!g(t, s) && ("" == i || (r = t, n = s, o = v(i, s), 0 == e.jsonPropertiesFilter.length || "" == o || x(e.jsonPropertiesFilter, r, n, o)))) {
                var l = t[s],
                    c = m(l);
                if (null == l || null == l) a += f(l, s, c, !0);else if (l instanceof Object) {
                  if (l instanceof Array) a += C(l, s, c, i);else if (l instanceof Date) a += f(l, s, c, !1), a += l.toISOString(), a += d(l, s);else {
                    p(l) > 0 || null != l.__text || null != l.__cdata ? (a += f(l, s, c, !1), a += y(l, v(i, s)), a += d(l, s)) : a += f(l, s, c, !0);
                  }
                } else a += f(l, s, c, !1), a += b(l), a += d(l, s);
              }
            }
            return a + b(t);
          }

          this.parseXmlString = function (e) {
            var t,
                i = window.ActiveXObject || "ActiveXObject" in window;
            if (void 0 === e) return null;

            if (window.DOMParser) {
              var r = new window.DOMParser(),
                  n = null;
              if (!i) try {
                n = r.parseFromString("INVALID", "text/xml").getElementsByTagName("parsererror")[0].namespaceURI;
              } catch (e) {
                n = null;
              }

              try {
                t = r.parseFromString(e, "text/xml"), null != n && t.getElementsByTagNameNS(n, "parsererror").length > 0 && (t = null);
              } catch (e) {
                t = null;
              }
            } else 0 == e.indexOf("<?") && (e = e.substr(e.indexOf("?>") + 2)), (t = new ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(e);

            return t;
          }, this.asArray = function (e) {
            return void 0 === e || null == e ? [] : e instanceof Array ? e : [e];
          }, this.toXmlDateTime = function (e) {
            return e instanceof Date ? e.toISOString() : "number" == typeof e ? new Date(e).toISOString() : null;
          }, this.asDateTime = function (e) {
            return "string" == typeof e ? c(e) : e;
          }, this.xml2json = function (e) {
            return h(e);
          }, this.xml_str2json = function (e) {
            var t = this.parseXmlString(e);
            return null != t ? this.xml2json(t) : null;
          }, this.json2xml_str = function (e) {
            return y(e, "");
          }, this.json2xml = function (e) {
            var t = this.json2xml_str(e);
            return this.parseXmlString(t);
          }, this.getVersion = function () {
            return "1.2.0";
          };
        }, e.GeoGlobe.Format.X2JS.CLASS_NAME = "GeoGlobe.Format.X2JS";
      }(window), GeoGlobe.Query.Service = GeoGlobe.Class4OL({
        name: null,
        url: null,
        version: null,
        userid: "test@liferay.com",
        initialize: function initialize(e, t, i) {
          this.name = e, this.url = t, GeoGlobe.Util.extend(this, i);
        },
        getCapabilities: function getCapabilities(e, t) {},
        isExist: function isExist() {},
        failFn: function failFn(e) {
          alert("服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + this.url + "\n操作类型：" + e);
        },
        _parseToXML: function _parseToXML(e) {
          var t = e.responseXML;
          return t && t.documentElement || (t = e.responseText), new GeoGlobe.Format.XML().read(t);
        },
        _checkIsError: function _checkIsError(e) {
          return new GeoGlobe.Format.XML().read(e).selectNodes("ServiceExceptionReport").length > 0 ? this._parseToJSON(e) : null;
        },
        _isException: function _isException(e) {
          return !(!e || !e.ServiceExceptionReport);
        },
        _parseToJSON: function _parseToJSON(e) {
          return new GeoGlobe.Util.Format.XML2JSON().read(e);
        },
        CLASS_NAME: "GeoGlobe.Query.Service"
      }), GeoGlobe.Query.RouteQuery = GeoGlobe.Class4OL(GeoGlobe.Query.Service, {
        _format: null,
        initialize: function initialize(e, t, i) {
          this.name = e, this.url = t, this._format = new GeoGlobe.Format.RouteQuery(), GeoGlobe.Util.extend(this, i);
        },
        getCapabilities: function getCapabilities(e, t) {
          var i = this.url;
          GeoGlobe.loadURL(i, {
            REQUEST: "GetCapabilities"
          }, this, e, t);
        },
        findRoute: function findRoute(e, t, i) {
          var r = {
            REQUEST: "FindRoute",
            SERVICE: "ROUTE",
            VERSION: "1.0.0"
          };

          for (var n in {
            data: !0,
            orig: !0,
            dest: !0
          }) {
            if (!(n in e)) throw new Error("Missing property '" + n + "'");
          }

          r.DATA = e.data, r.ORIG = e.orig, r.DEST = e.dest, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.radius && void 0 !== e.radius && (r.RADIUS = e.radius), null !== e.queryType && void 0 !== e.queryType && (r.QUERYTYPE = e.queryType), null !== e.midpos && void 0 !== e.midpos && (r.MIDPOS = e.midpos), null !== e.avoidPos && void 0 !== e.avoidPos && (r.AVOIDPOS = e.avoidPos), null !== e.filterRoute && void 0 !== e.filterRoute && (r.FILTERROUTE = e.filterRoute), null !== e.resultCount && void 0 !== e.resultCount && (r.RESULTCOUNT = e.resultCount), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            async: !1,
            scope: this,
            success: function success(e) {
              var i = this._format.read(e.responseText);

              if ("string" != typeof i.exceptionInfo) {
                var r = new GeoGlobe.Query.RoutesResult(i),
                    n = r.routes,
                    o = new GeoGlobe.Format.GeoJSON().write(n),
                    a = new GeoGlobe.Format.JSON();
                geojsonRoute = a.read(o), r.geojsonRoute = geojsonRoute, t(r);
              } else t(i);
            },
            failure: i
          });
        },
        getRouteInfo: function getRouteInfo(e, t, i) {
          var r = {
            REQUEST: "GetRouteInfo",
            SERVICE: "ROUTE",
            VERSION: "1.0.0"
          };
          if (!e.data || !e.id) throw "Error!Not data and id for bus query.";
          r.DATA = e.data, r.ID = e.id, GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              var i = this._format.read(e.responseText);

              "string" != typeof i.exceptionInfo ? (i = new GeoGlobe.Query.RouteInfoResult(i), t(i)) : t(i);
            },
            failure: i
          });
        },
        CLASS_NAME: "GeoGlobe.Query.RouteQuery"
      }), GeoGlobe.Format.RouteQuery = new GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        initialize: function initialize(e) {
          GeoGlobe.Format.XML.prototype.initialize.apply(this, [e]);
        },
        read: function read(e) {
          var t = {},
              i = [];

          if ("string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e])), e && 9 == e.nodeType) {
            i = [];
            var r = GeoGlobe.Format.XML.prototype.getChildEl.apply(this, [e]).nodeName;

            if ("ServiceExceptionReport" === r) {
              var n = GeoGlobe.Format.XML.prototype.getElementsByTagNameNS(e, "*", "ServiceException")[0];
              return {
                exceptionInfo: GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [n]),
                exceptionCode: n.getAttribute("code")
              };
            }

            for (var o = e.getElementsByTagName(r)[0].childNodes, a = 0; a < o.length; a++) {
              var s = o[a],
                  x = s.nodeName;
              this._resultPaser[r][x] && this._resultPaser[r][x].apply(this, [s, i]);
            }
          }

          return "routeinfo" === (r = r.toLowerCase()) ? t.items = i : t[r] = i, t;
        },
        _resultPaser: {
          RouteInfo: {
            Item: function Item(e, t) {
              var i = e.childNodes,
                  r = e.getAttribute("id"),
                  n = {};
              r && (n = {
                id: r
              });

              for (var o = 0; o < i.length; o++) {
                var a = (e = i[o]).nodeName;
                this._resultPaser.RouteInfo[a] && this._resultPaser.RouteInfo[a].apply(this, [e, n]);
              }

              t.push(n);
            },
            Name: function Name(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              i && (t.name = i);
            },
            Toll: function Toll(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.toll = i;
            },
            Level: function Level(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.level = i;
            },
            Length: function Length(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.length = i;
            },
            Geometry: function Geometry(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getElementsByTagNameNS(e, "*", "LineString")[0];

              if (i) {
                var r = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [i]);

                if ("string" == typeof r && r.length > 0) {
                  for (var n = r.split(" "), o = [], a = 0, s = n.length; a < s; a++) {
                    var x = n[a].split(",");
                    o.push(new GeoGlobe.Geometry.Point(new Number(x[0]), new Number(x[1])));
                  }

                  var l = new GeoGlobe.Geometry.LineString(o);
                  t.geometry = l;
                }
              }
            },
            Directions: function Directions(e, t) {
              t.directions = [];

              for (var i = e.childNodes, r = 0; r < i.length; r++) {
                var n = (e = i[r]).nodeName;
                this._resultPaser.RouteInfo[n] && this._resultPaser.RouteInfo[n](e, t.directions);
              }
            },
            Direction: function Direction(e, t) {
              var i = {},
                  r = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              i.direction = r, i.nextID = e.getAttribute("nextID"), i.nextItem = e.getAttribute("nextItem"), t.push(i);
            }
          },
          Routes: {
            Route: function Route(e, t) {
              for (var i = e.childNodes, r = {}, n = 0; n < i.length; n++) {
                var o = (e = i[n]).nodeName;
                this._resultPaser.Routes[o] && this._resultPaser.Routes[o].apply(this, [e, r]);
              }

              t.push(r);
            },
            Item: function Item(e, t) {
              GeoGlobe.Util.isArray(t.items) || (t.items = []);
              var i = e.childNodes,
                  r = e.getAttribute("id"),
                  n = {};
              r && (n = {
                id: r
              });

              for (var o = 0; o < i.length; o++) {
                var a = (e = i[o]).nodeName;
                this._resultPaser.Routes[a] && this._resultPaser.Routes[a].apply(this, [e, n]);
              }

              t.items.push(n);
            },
            Distance: function Distance(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.distance = i;
            },
            Name: function Name(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              i && (t.name = i);
            },
            Length: function Length(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.length = i;
            },
            Direction: function Direction(e, t) {
              var i = {},
                  r = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              i.direction = r, i.nextID = e.getAttribute("nextID"), i.nextItem = e.getAttribute("nextItem"), t.direction = i;
            },
            Geometry: function Geometry(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getElementsByTagNameNS(e, "*", "LineString")[0];

              if (i) {
                var r = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [i]);

                if ("string" == typeof r && r.length > 0) {
                  for (var n = r.split(" "), o = [], a = 0, s = n.length; a < s; a++) {
                    var x = n[a].split(",");
                    o.push(new GeoGlobe.Geometry.Point(new Number(x[0]), new Number(x[1])));
                  }

                  var l = new GeoGlobe.Geometry.LineString(o);
                  t.geometry = l;
                }
              }
            },
            Duration: function Duration(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.duration = i;
            },
            BoundingBox: function BoundingBox(e, t) {
              for (var i = e.childNodes, r = 0; r < i.length; r++) {
                var n = (e = i[r]).nodeName;
                this._resultPaser.Routes[n] && this._resultPaser.Routes[n].apply(this, [e, t]);
              }
            },
            LowerCorner: function LowerCorner(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]).replace(/^\s*|\s*$/g, ""),
                  r = (i = i.replace(/\s*,\s*/g, ",")).split(",");
              t.left = r[0], t.bottom = r[1];
            },
            UpperCorner: function UpperCorner(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]).replace(/^\s*|\s*$/g, ""),
                  r = (i = i.replace(/\s*,\s*/g, ",")).split(",");
              t.right = r[0], t.top = r[1], t.bounds = new GeoGlobe.LngLatBounds(new GeoGlobe.LngLat(t.left, t.bottom), new GeoGlobe.LngLat(t.right, t.top)), delete t.left, delete t.bottom, delete t.right, delete t.top;
            },
            Count: function Count(e, t) {
              var i = GeoGlobe.Format.XML.prototype.getChildValue.apply(this, [e]);
              t.count = i;
            }
          }
        }
      }), GeoGlobe.Query.RoutesResult = GeoGlobe.Class4OL({
        data: null,
        routes: null,
        initialize: function initialize(e) {
          this.routes = [];
          var t = null;
          if (e && e.routes && (this.data = e, t = e.routes), GeoGlobe.Util.isArray(t)) for (var i = 0, r = t.length; i < r; i++) {
            var n = new GeoGlobe.Query.RouteResult();

            for (var o in t[i]) {
              n[o] = t[i][o];
            }

            this.routes.push(n);
          }
        },
        CLASS_NAME: "GeoGlobe.Query.RoutesResult"
      }), GeoGlobe.Query.RouteResult = GeoGlobe.Class4OL({
        bounds: null,
        count: null,
        distance: null,
        duration: null,
        geometry: null,
        items: null,
        initialize: function initialize() {},
        CLASS_NAME: "GeoGlobe.Query.RouteResult"
      }), GeoGlobe.Query.RouteInfoResult = GeoGlobe.Class4OL({
        data: null,
        items: null,
        initialize: function initialize(e) {
          if (this.items = [], e && e.items) {
            this.data = e;
            var t = e.items;
          }

          if (GeoGlobe.Util.isArray(t)) for (var i = 0, r = t.length; i < r; i++) {
            var n = new GeoGlobe.Query.RouteInfoItem();

            for (var o in t[i]) {
              n[o] = t[i][o];
            }

            this.items.push(n);
          }
        },
        CLASS_NAME: "GeoGlobe.Query.RouteInfoResult"
      }), GeoGlobe.Query.RouteInfoItem = GeoGlobe.Class4OL({
        id: null,
        name: null,
        toll: null,
        length: null,
        geometry: null,
        level: null,
        directions: null,
        initialize: function initialize() {},
        CLASS_NAME: "GeoGlobe.Query.RouteInfoItem"
      }), GeoGlobe.Query.BusQuery = GeoGlobe.Class4OL(GeoGlobe.Query.Service, {
        networkName: null,
        transferScheme: null,
        initialize: function initialize(e, t, i) {
          this.name = e, this.url = t, GeoGlobe.Util.extend(this, i);
        },
        getCapabilities: function getCapabilities(e, t) {
          "function" != typeof t && (t = function t() {
            alert("公交服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + this.url + "\n操作类型：GetCapabilities");
          }), GeoGlobe.Request.GET({
            url: this.url,
            params: {
              REQUEST: "GetCapabilities"
            },
            scope: this,
            async: !1,
            success: function success(t) {
              "function" == typeof e && e(t);
            },
            failure: t
          });
        },
        isExist: function isExist() {
          var e = !1,
              t = this.url;
          return GeoGlobe.Request.GET({
            url: t,
            scope: this,
            async: !1,
            success: function success() {
              e = !0;
            }
          }), e;
        },
        queryStation: function queryStation(e, t, i) {
          var r = {
            REQUEST: "QueryStation"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.stationId && void 0 !== e.stationId && (r.STATIONID = e.stationId), null !== e.stationName && void 0 !== e.stationName && (r.STATIONNAME = e.stationName), null !== e.lineId && void 0 !== e.lineId && (r.LINEID = e.lineId), null !== e.lineName && void 0 !== e.lineName && (r.LINENAME = e.lineName), null !== e.coordinate && void 0 !== e.coordinate && (r.COORDINATE = e.coordinate), null !== e.bbox && void 0 !== e.bbox && (r.BOX = e.bbox), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              var i = this._parserFeatures(e.responseText);

              t(i);
            },
            failure: i
          });
        },
        queryLine: function queryLine(e, t, i) {
          var r = {
            REQUEST: "QueryLine"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.lineName && void 0 !== e.lineName && (r.LINENAME = e.lineName), null !== e.lineId && void 0 !== e.lineId && (r.LINEID = e.lineId), null !== e.stationName && void 0 !== e.stationName && (r.STATIONNAME = e.stationName), null !== e.stationId && void 0 !== e.stationId && (r.STATIONID = e.stationId), null !== e.coordinate && void 0 !== e.coordinate && (r.COORDINATE = e.coordinate), null !== e.bbox && void 0 !== e.bbox && (r.BOX = e.bbox), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              var i = this._parserFeatures(e.responseText);

              t(i);
            },
            failure: i
          });
        },
        queryChange: function queryChange(e, t, i) {
          var r = {
            REQUEST: "QueryChange"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.startStationId && void 0 !== e.startStationId && (r.STARTSTATIONID = e.startStationId), null !== e.endStationId && void 0 !== e.endStationId && (r.ENDSTATIONID = e.endStationId), null !== e.orderType && void 0 !== e.orderType && (r.ORDERTYPE = e.orderType), null !== e.startCoordinate && void 0 !== e.startCoordinate && (r.STARTCOORDINATE = e.startCoordinate), null !== e.endCoordinate && void 0 !== e.endCoordinate && (r.ENDCOORDINATE = e.endCoordinate), null !== e.maxDepth && void 0 !== e.maxDepth && (r.MAXDEPTH = e.maxDepth), null !== e.maxCost && void 0 !== e.maxCost && (r.MAXCOST = e.maxCost), null !== e.maxSolutions && void 0 !== e.maxSolutions && (r.MAXSOLUTIONS = e.maxSolutions), null !== e.ChangeCount && void 0 !== e.ChangeCount && (r.CHANGECOUNT = e.ChangeCount), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              for (var i = [], r = (e.responseXML.documentElement ? e.responseXML : format.read(e.responseText)).selectNodes("/Features/FeatureCollection"), n = new GeoGlobe.Format.XML(), o = 0; o < r.length; o++) {
                var a = r[o],
                    s = this._getAttibutionOfNode(a, ["cost", "price", "walkingDistance", "transferTimes"]),
                    x = n.write(r[o]),
                    l = this._parserFeatures(x);

                l.attributes = s;

                for (var c = a.selectNodes("featureMember"), u = 0; u < c.length; u++) {
                  var h = c[u].selectNodes("Road");
                  l[u].isOnFoot = h[0].getAttribute("isOnFoot");
                }

                i.push(l);
              }

              t(i);
            },
            failure: i
          });
        },
        _getAttibutionOfNode: function _getAttibutionOfNode(e, t) {
          var i = {};
          if (e.tagName) for (var r = 0; r < t.length; r++) {
            i[t[r]] = e.getAttribute(t[r]);
          }
          return i;
        },
        _getGeometryType: function _getGeometryType(e) {
          return "polygon";
        },
        _pagingToString: function _pagingToString(e, t) {
          return "<numPerPage>" + (t = t || this.maxPerPage) + "</numPerPage><curPage>" + (e = e || 1) + "</curPage>";
        },
        _orderByToString: function _orderByToString(e, t) {
          return e ? "<orderBy><PropertyName>" + e + "</PropertyName></orderBy>" : "";
        },
        _geometryToString: function _geometryToString(e) {
          return '<geometry><Polygon><outerBoundaryIs><LinearRing><coordinates decimal="." cs="," ts=" ">20,30 21,41 52,42 53,33 20,30</coordinates></LinearRing></outerBoundaryIs></Polygon></geometry>';
        },
        _stringToGeometry: function _stringToGeometry(e) {
          return GeoGlobe.Geometry.Polygon.createRegularPolygon(new GeoGlobe.Geometry.Point(360 * Math.random() - 160, 90 * Math.random() - 70), Math.round(20 * Math.random()), Math.round(10 * Math.random()));
        },
        _parserFeatures: function _parserFeatures(e) {
          var t = new GeoGlobe.Format.GML();
          return t.gmlns = "*", t.read(e);
        },
        _parserResponseText: function _parserResponseText(e, t) {
          if (t) {
            var i = new RegExp("<" + t + ">", ["g"]),
                r = new RegExp("</" + t + ">", ["g"]);
            e = (e = e.replace(i, "<featureMember><" + t + ">")).replace(r, "</" + t + "></featureMember>");
          }

          return (e = (e = (e = e.replace(/<gml:LineString>/g, "<gml:LineString><gml:coordinates>")).replace(/<\/gml:LineString>/g, "</gml:coordinates></gml:LineString>")).replace(/<gml:Point>/g, "<gml:Point><gml:coordinates>")).replace(/<\/gml:Point>/g, "</gml:coordinates></gml:Point>");
        },
        _parserFeaturesNew: function _parserFeaturesNew(e, t) {
          var i = new GeoGlobe.Format.GML();
          return i.gmlns = "*", t && (i.featureName = t), i.read(e);
        },
        _parserSuccessResult: function _parserSuccessResult(e) {
          return new GeoGlobe.Util.Format.XML2JSON().read(e);
        },
        _parseToXML: function _parseToXML(e) {
          var t = e.responseXML;
          return t && t.documentElement || (t = e.responseText), new GeoGlobe.Format.XML().read(t);
        },
        _parseToJSON: function _parseToJSON(e) {
          return new GeoGlobe.Format.XML2JSON().read(e);
        },
        queryTransferScheme: function queryTransferScheme(e, t, i) {
          var r = {
            request: "QueryTransferScheme",
            SERVICE: "BUS",
            VERSION: "1.0.0"
          };

          for (var n in {
            networkName: !0,
            transferMode: !0,
            startInput: !0,
            endInput: !0
          }) {
            if (!(n in e)) throw new Error("缺少必选属性：'" + n + "'。");
          }

          r.networkName = e.networkName, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.transferMode && void 0 !== e.transferMode && (r.TRANSFERMODE = e.transferMode), null !== e.startInput && void 0 !== e.startInput && (r.STARTINPUT = e.startInput), null !== e.endInput && void 0 !== e.endInput && (r.ENDINPUT = e.endInput), null !== e.inputMode && void 0 !== e.inputMode && (r.INPUTMODEL = e.inputMode), null !== e.ExistGoTime && void 0 !== e.ExistGoTime && (r.EXISTGOTIME = e.ExistGoTime), null !== e.StartTime && void 0 !== e.StartTime && (r.STARTTIME = e.StartTime), null !== e.MaxSearchDistance && void 0 !== e.MaxSearchDistance && (r.MAXSEARCHDISTANCE = e.MaxSearchDistance), null !== e.PrioritySubset && void 0 !== e.PrioritySubset && (r.PRIORITYSUBSET = e.PrioritySubset), null !== e.ExistAbsolutePriority && void 0 !== e.ExistAbsolutePriority && (r.EXISTABSOLUTEPRIORITY = e.ExistAbsolutePriority), null !== e.LagSubset && void 0 !== e.LagSubset && (r.LAGSUBSET = e.LagSubset), null !== e.OutputPage && void 0 !== e.OutputPage && (r.OUTPUTPAGE = e.OutputPage), null !== e.PageSize && void 0 !== e.PageSize && (r.PAGESIZE = e.PageSize), null !== e.ChangeCount && void 0 !== e.ChangeCount && (r.CHANGECOUNT = e.ChangeCount), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            async: !1,
            scope: this,
            success: GeoGlobe.Function.bind(function (e) {
              var i = e.responseXML,
                  r = {
                startPoint: [],
                transferScheme: [],
                endPoint: []
              };
              if (!i) return t(r), r;
              var n = new GeoGlobe.Format.XML(),
                  o = i.selectNodes("/ServiceExceptionReport/ServiceExceptionMessage");
              if (o && o.length > 0) return t(r), r;

              var a = i.selectNodes("/QueryTransferSchemeResponse"),
                  s = n.write(a[0]),
                  x = this._parseToJSON(s),
                  l = x.QueryTransferSchemeResponse.StartPoint;

              GeoGlobe.Util.isArray(l) || (l = [l]);
              var c = x.QueryTransferSchemeResponse.EndPoint;
              GeoGlobe.Util.isArray(c) || (c = [c]);

              var u = x.QueryTransferSchemeResponse.TransferScheme,
                  h = this._getPointGeometryByGMLPointStr(l[0].Geometry.gml_Point),
                  f = new GeoGlobe.Feature(h),
                  d = this._getPointGeometryByGMLPointStr(c[0].Geometry.gml_Point),
                  g = new GeoGlobe.Feature(d),
                  p = this._parserTransferScheme(u);

              t(r = {
                startPoint: f,
                transferScheme: p,
                endPoint: g
              });
            }, this),
            failure: i
          });
        },
        _parserTransferScheme: function _parserTransferScheme(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = new Array(), i = 0; i < e.length; i++) {
            var r = e[i],
                n = this._parserSectionInfo(r.SectionInfo),
                o = this._parserSectionRouting(r.SectionRouting),
                a = {
              Cost: e[i].Cost,
              SectionInfo: n,
              SectionRouting: o,
              TotalDistance: e[i].TotalDistance,
              TransferCount: e[i].TransferCount
            };

            t.push(a);
          }

          return t;
        },
        _parserSectionInfo: function _parserSectionInfo(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = new Array(), i = 0; i < e.length; i++) {
            var r = this._getPointFeatureByObj(e[i].FromStation);

            e[i].FromStation.PassagewayRouting && ((n = this._getPointFeatureByObj(e[i].FromStation.PassagewayRouting)).SectionRouting && (n.attributes.SectionRouting = n.data.SectionRouting = this._parserSectionRouting(n.SectionRouting)), r.attributes.PassagewayRouting = r.data.PassagewayRouting = n);

            var n,
                o = this._getPointFeatureByObj(e[i].ToStation);

            e[i].ToStation.PassagewayRouting && ((n = this._getPointFeatureByObj(e[i].ToStation.PassagewayRouting)).SectionRouting && (n.attributes.SectionRouting = n.data.SectionRouting = this._parserSectionRouting(n.SectionRouting)), o.attributes.PassagewayRouting = o.data.PassagewayRouting = n);

            var a = this._parserSectionLines(e[i].SectionLines.SectionLine),
                s = this._parserSectionRouting(e[i].SectionRouting);

            t.push({
              FromStation: r,
              SectionLine: a,
              ToStation: o,
              SectionRouting: s
            });
          }

          return t;
        },
        _parserSectionLines: function _parserSectionLines(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = new Array(), i = 0; i < e.length; i++) {
            var r = new GeoGlobe.Feature(null, e[i]);
            t.push(r);
          }

          return t;
        },
        _parserSectionRouting: function _parserSectionRouting(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);

          for (var t = new Array(), i = 0; i < e.length; i++) {
            t.push(e[i]);
          }

          return t;
        },
        _getPointGeometryByGMLPointStr: function _getPointGeometryByGMLPointStr(e) {
          var t = e.split(",");
          return new GeoGlobe.Geometry.Point(_babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(t[0]), _babel_runtime_corejs2_core_js_parse_float__WEBPACK_IMPORTED_MODULE_12___default()(t[1]));
        },
        _getPointFeatureByObj: function _getPointFeatureByObj(e) {
          var t = null;
          return e.Geometry && e.Geometry.gml_Point && (t = this._getPointGeometryByGMLPointStr(e.Geometry.gml_Point)), new GeoGlobe.Feature(t, e);
        },
        _getLineGeometryByGMLLineStr: function _getLineGeometryByGMLLineStr(e) {
          if (!e) return null;

          for (var t = e.split(" "), i = [], r = 0, n = t.length; r < n; r++) {
            var o = this._getPointGeometryByGMLPointStr(t[r]);

            i.push(o);
          }

          return new GeoGlobe.Geometry.LineString(i);
        },
        queryTransferGeometry: function queryTransferGeometry(e, t, i) {
          var r = {
            request: "QueryTransferGeometry",
            SERVICE: "BUS",
            VERSION: "1.0.0"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          if (null === e.parameterInfo || void 0 === e.parameterInfo || "" === e.parameterInfo) throw "Error!Not parameterInfo for bus query.";
          r.networkName = e.networkName, r.PARAMETERINFO = "";

          for (var n = 0; n < e.parameterInfo.length; n++) {
            r.PARAMETERINFO += e.parameterInfo[n].toString(), n != e.parameterInfo.length - 1 && (r.PARAMETERINFO += "_");
          }

          null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            async: !1,
            success: GeoGlobe.Function.bind(function (e) {
              var i = this._parseQueryTransferGeometryResult(e);

              t(i);
            }, this),
            failure: i
          });
        },
        _parseQueryTransferGeometryResult: function _parseQueryTransferGeometryResult(e) {
          resXML = e.responseXML;
          var t = [];
          if (!resXML) return t;
          var i = new GeoGlobe.Format.XML(),
              r = resXML.selectNodes("/QueryTransferGeometryResponse");
          if (r && r.length <= 0) return t;

          var n = i.write(r[0]),
              o = this._parseToJSON(n).QueryTransferGeometryResponse.SectionGeometry;

          if (o) {
            GeoGlobe.Util.isArray(o) || (o = [o]);

            for (var a = 0; a < o.length; a++) {
              var s = this._getLineGeometryByGMLLineStr(o[a].Geometry.gml_LineString),
                  x = new GeoGlobe.Feature(s, {
                ID: o[a].ID
              });

              t.push(x);
            }
          }

          return t;
        },
        queryKeyWord: function queryKeyWord(e, t, i) {
          var r = {
            REQUEST: "QueryKeyWord",
            SERVICE: "BUS",
            VERSION: "1.0.0",
            SEARCHTYPE: 2
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          if (null === e.keyWord || void 0 === e.keyWord || "" === e.keyWord) throw "Error!Not keyWord for bus query.";
          r.NETWORKNAME = e.networkName, r.KEYWORD = e.keyWord, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.searchType && void 0 !== e.searchType && (r.SEARCHTYPE = e.searchType), null !== e.keyWordType && void 0 !== e.keyWordType && (r.KEYWORDTYPE = e.keyWordType), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            async: !1,
            scope: this,
            success: GeoGlobe.Function.bind(function (i) {
              var r = this._parserQueryKeyWordResult(i, e.keyWordType);

              t(r);
            }, this),
            failure: i
          });
        },
        _parserQueryKeyWordResult: function _parserQueryKeyWordResult(e, t) {
          var i = e.responseXML,
              r = [];
          if (!i) return r;
          var n = new GeoGlobe.Format.XML(),
              o = i.selectNodes("/ServiceExceptionReport/ServiceExceptionMessage");
          if (o && o.length > 0) return r;

          var a = i.selectNodes("/QueryKeyWordResponse"),
              s = n.write(a[0]),
              x = this._parseToJSON(s);

          if (1 === t) {
            var l = x.QueryKeyWordResponse.Stations.Station;
            l && !GeoGlobe.Util.isArray(l) && (l = [l]);

            for (var c = 0; c < l.length; c++) {
              var u = this._getPointFeatureByObj(l[c]);

              r.push(u);
            }
          } else if (2 === t) {
            var h = x.QueryKeyWordResponse.Passageways.Passageway;

            for (h && !GeoGlobe.Util.isArray(h) && (h = [h]), c = 0; c < h.length; c++) {
              u = this._getPointFeatureByObj(h[c]), r.push(u);
            }
          } else {
            var f = x.QueryKeyWordResponse.Lines.Line;

            for (f && !GeoGlobe.Util.isArray(f) && (f = [f]), c = 0; c < f.length; c++) {
              var d = new GeoGlobe.Feature(null, f[c]);
              r.push(d);
            }
          }

          return r;
        },
        queryStationInfo: function queryStationInfo(e, t, i) {
          var r = {
            REQUEST: "QueryStationInfo",
            SERVICE: "BUS",
            VERSION: "1.0.0"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          if (null === e.stationId || void 0 === e.stationId || "" === e.stationId) throw "Error!Not stationId for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.stationId && void 0 !== e.stationId && (r.STATIONID = e.stationId), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              if (resXML = e.responseXML, resXML) {
                for (var i = new GeoGlobe.Format.XML(), r = this._parserQueryStationInfoNode("Lines", i, resXML), n = this._parserQueryStationInfoNode("Passageways", i, resXML), o = new Array(), a = 0; a < n.length; a++) {
                  var s = this._getPointFeatureByObj(n[a]);

                  o.push(s);
                }

                t({
                  lines: r,
                  passageways: o
                });
              } else t({
                lines: [],
                passageways: []
              });
            },
            failure: i
          });
        },
        _parserQueryStationInfoNode: function _parserQueryStationInfoNode(e, t, i) {
          switch (e) {
            case "Lines":
              var r = i.selectNodes("/QueryStationInfoResponse/StationInfo/Lines"),
                  n = new Array();

              if (r.length > 0) {
                var o = t.write(r[0]);
                n = this._parseToJSON(o).Lines.Line, GeoGlobe.Util.isArray(n) || (n = [n]);
              }

              return n;

            case "Passageways":
              r = i.selectNodes("/QueryStationInfoResponse");
              var a = new Array();

              if (r.length > 0) {
                o = t.write(r[0]);

                var s = this._parseToJSON(o).QueryStationInfoResponse.StationInfo.Passageways;

                s && (a = s.Passageway, GeoGlobe.Util.isArray(a) || (a = [a]));
              }

              return a;

            default:
              return [];
          }
        },
        queryLineInfo: function queryLineInfo(e, t, i) {
          var r = {
            REQUEST: "QueryLineInfo",
            SERVICE: "BUS",
            VERSION: "1.0.0"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          if (null === e.lineId || void 0 === e.lineId || "" === e.lineId) throw "Error!Not lineId for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.lineId && void 0 !== e.lineId && (r.LINEID = e.lineId), null !== e.startNodeNumber && void 0 !== e.startNodeNumber && (r.STARTNODENUMBER = e.startNodeNumber), null !== e.endNodeNumber && void 0 !== e.endNodeNumber && (r.ENDNODENUMBER = e.endNodeNumber), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              var i = [],
                  r = null;

              if (e.responseXML) {
                var n = (r = e.responseXML).selectNodes("/ServiceExceptionReport/ServiceExceptionMessage");
                if (n && n.length > 0) return void t(i);

                for (var o = new GeoGlobe.Format.XML(), a = this._parserQueryLineInfoNode("Line", o, r), s = new Array(), x = 0; x < a.length; x++) {
                  for (var l = new Array(), c = 0; c < a[x].VIAStations.Station.length; c++) {
                    var u = this._getPointFeatureByObj(a[x].VIAStations.Station[c]);

                    l.push(u);
                  }

                  a[x].Stations = l;

                  var h = this._getLineGeometryByGMLLineStr(a[x].Geometry.gml_LineString),
                      f = new GeoGlobe.Feature(h, a[x]);

                  s.push(f);
                }

                i = s;
              }

              t(i);
            },
            failure: i
          });
        },
        _parserQueryLineInfoNode: function _parserQueryLineInfoNode(e, t, i) {
          switch (e) {
            case "Line":
              var r = i.selectNodes("/QueryLineInfoResponse"),
                  n = t.write(r[0]),
                  o = this._parseToJSON(n).QueryLineInfoResponse.Line;

              return new Array(), o && !GeoGlobe.Util.isArray(o) ? [o] : o;

            default:
              return [];
          }
        },
        queryPassagewayInfo: function queryPassagewayInfo(e, t, i) {
          var r = {
            REQUEST: "QueryPassagewayInfo",
            SERVICE: "BUS",
            VERSION: "1.0.0"
          };
          if (!e.networkName) throw "Error!Not network name for bus query.";
          if (null === e.passagewayId || void 0 === e.passagewayId || "" === e.passagewayId) throw "Error!Not passagewayId for bus query.";
          r.NETWORKNAME = e.networkName, null !== e.service && void 0 !== e.service && (r.SERVICE = e.service), null !== e.version && void 0 !== e.version && (r.VERSION = e.version), null !== e.passagewayId && void 0 !== e.passagewayId && (r.PASSAGEWAYID = e.passagewayId), GeoGlobe.Request.GET({
            url: this.url,
            params: r,
            scope: this,
            success: function success(e) {
              var i = e.responseXML,
                  r = [];
              if (!i) return t(r), r;
              new GeoGlobe.Format.XML();
              var n = i.selectNodes("/ServiceExceptionReport/ServiceExceptionMessage");
              if (n && n.length > 0) return t(r), r;

              var o = this._parserResponseText(e.responseText);

              r = this._parserFeaturesNew(o, "Stations"), t(r);
            }
          });
        },
        _queryByName: function _queryByName(e, t, i) {
          var r = this,
              n = null;
          return r.queryKeyWord({
            networkName: r.networkName,
            keyWord: e,
            keyWordType: 1,
            SEARCHTYPE: 2
          }, function (e) {
            if (0 != e.length) {
              var o = e[0].geometry.x + " " + e[0].geometry.y;
              r.queryKeyWord({
                networkName: r.networkName,
                keyWord: t,
                keyWordType: 1,
                SEARCHTYPE: 2
              }, function (e) {
                if (0 != e.length) {
                  var t = e[0].geometry.x + " " + e[0].geometry.y;
                  n = r._queryTransferScheme(o, t, i);
                } else alert("没有查询到终点");
              });
            } else alert("没有查询到起点");
          }), n;
        },
        queryBus: function queryBus(e, t, i) {
          var r = this,
              n = null;
          return r.getCapabilities(GeoGlobe.Function.bind(function (o) {
            var a = o.responseXML;
            a && a.documentElement || (a = o.responseText);
            var s = new GeoGlobe.Format.BusCapabilities().read(a);

            if (s.capability) {
              var x = s.capability.networks[0];
              if (r.networkName = x, "string" == typeof e && "string" == typeof t) n = r._queryByName(e, t, i);else {
                var l = e.lng + " " + e.lat,
                    c = t.lng + " " + t.lat;
                n = r._queryTransferScheme(l, c, i);
              }
            } else alert("公交服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + url + "\n操作类型：GetCapabilities");
          }, this), function () {
            alert("公交服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + url + "\n操作类型：GetCapabilities");
          }), {
            flag: !!n,
            featuresInfo: n
          };
        },
        failFn: function failFn() {
          alert("公交服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + url + "\n操作类型：GetCapabilities");
        },
        _queryTransferScheme: function _queryTransferScheme(e, t, i) {
          return this.queryTransferScheme({
            networkName: this.networkName,
            transferMode: i || 0,
            inputMode: 0,
            startInput: e,
            endInput: t
          }, function (e) {
            featuresInfo = e;
          }), this.transferScheme = featuresInfo.transferScheme, featuresInfo;
        },
        queryBusTransferSchemeByIndex: function queryBusTransferSchemeByIndex(e) {
          var t = null,
              r = _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(e),
              n = this.transferScheme[r].SectionInfo,
              o = new Array(),
              a = new Array();

          for (i = 0; i < n.length; i++) {
            var s = n[i].SectionLine[0],
                x = s.data.ID,
                l = s.data.FromOrdinal,
                c = s.data.ToOrdinal;
            o.push([0, x, l, c]), a.push(n[i].FromStation), a.push(n[i].ToStation);
          }

          return this.queryTransferGeometry({
            networkName: this.networkName,
            parameterInfo: o
          }, function (e) {
            var i = e,
                r = new GeoGlobe.Format.GeoJSON(),
                n = r.write(i),
                o = r.write(a),
                s = new GeoGlobe.Format.JSON(),
                x = s.read(n),
                l = s.read(o);
            t = {
              lineFeatures: i,
              geojsonRoute: x,
              stationFeatures: a,
              geojsonStation: l
            };
          }), t;
        },
        CLASS_NAME: "GeoGlobe.Query.BusQuery"
      }), document.implementation.hasFeature("XPath", "3.0") && (XMLDocument.prototype.selectNodes = function (e, t) {
        t || (t = this);

        for (var i = this.evaluate(e, t, function (e) {
          return {
            csw: "http://www.opengis.net/cat/csw",
            smmd: "http://data.sbsm.gov.cn/smmd/2007",
            wfs: "http://www.opengis.net/wfs",
            gml: "http://www.opengis.net/gml",
            geoglobe: "http://www.geostar.com.cn/geoglobe"
          }[e] || null;
        }, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null), r = [], n = 0; n < i.snapshotLength; n++) {
          r[n] = i.snapshotItem(n);
        }

        return r;
      }, Element.prototype.selectNodes = function (e) {
        if (this.ownerDocument.selectNodes) return this.ownerDocument.selectNodes(e, this);
        throw "For XML Elements Only";
      }), document.implementation.hasFeature("XPath", "3.0") && (XMLDocument.prototype.selectSingleNode = function (e, t) {
        t || (t = this);
        var i = this.selectNodes(e, t);
        return i.length > 0 ? i[0] : null;
      }, Element.prototype.selectSingleNode = function (e) {
        if (this.ownerDocument.selectSingleNode) return this.ownerDocument.selectSingleNode(e, this);
        throw "For XML Elements Only";
      }), GeoGlobe.Query.WFSQuery = GeoGlobe.Class4OL({
        url: null,
        version: "1.0.0",
        featureNS: null,
        isReverse: !1,
        featurePrefix: "",
        featureType: "",
        maxFeatures: 10,
        filter: null,
        geometryName: "the_geom",
        protocol: null,
        format: null,
        formatOptions: null,
        isSeparate: !1,
        srsName: "EPSG:4326",
        time: null,
        userecent: !0,
        sortBy: null,
        groupBy: null,
        resultType: "Results",
        startPosition: null,
        initialize: function initialize(e, t, i) {
          this.url = e, this.featureType = t;
          var r = null;
          i && (!0 === i.isReverse || !1 === i.isReverse ? (this.isReverse = i.isReverse, r = !i.isReverse) : r = !this.isReverse, i.format ? (i.format instanceof GeoGlobe.Format.GML.v2 || i.format instanceof GeoGlobe.Format.GML.v3) && i.format.setFeatureType_(t) : this.format = new GeoGlobe.Format.GML({
            xy: r
          })), GeoGlobe.Util.extend(this, i);
        },
        query: function query(e, t, i) {
          this.protocol = new GeoGlobe.Protocol.WFS({
            readFormat: this.format,
            formatOptions: this.formatOptions,
            propertyNames: this.propertyNames,
            maxFeatures: this.maxFeatures,
            featurePrefix: this.featurePrefix,
            featureNS: this.featureNS,
            url: this.url,
            version: this.version,
            geometryName: this.geometryName,
            featureType: this.featureType,
            time: this.time,
            userecent: this.userecent,
            srsName: this.srsName
          });
          var r = e || this.filter,
              n = t || this.successFn,
              o = i || this.failFn,
              a = GeoGlobe.Function.bind(function (e) {
            if (e.success()) {
              var t = e.features;
              this.isSeparate && (t = this._separateFeatures(t));

              var i = this._read_trueName(e);

              i && (t.trueNames = i);
              var r = new GeoGlobe.Format.GeoJSON().write(t),
                  a = new GeoGlobe.Format.JSON().read(r);
              n({
                features: t,
                geojson: a
              });
            } else o();
          }, this);
          this.response = this.protocol.read({
            sortBy: this.sortBy,
            filter: r,
            callback: a
          });
        },
        queryPage: function queryPage(e, t, i, r) {
          var n = r && r.perPageNumber || 15,
              o = ((r && r.pageNumber || 1) - 1) * n + 1;
          this.protocol = new GeoGlobe.Protocol.WFS({
            readFormat: this.format,
            multi: !0,
            formatOptions: this.formatOptions,
            propertyNames: this.propertyNames,
            maxFeatures: n,
            startPosition: o,
            featurePrefix: this.featurePrefix,
            url: this.url,
            featureNS: this.featureNS,
            version: this.version,
            geometryName: this.geometryName,
            featureType: this.featureType,
            time: this.time,
            userecent: this.userecent,
            srsName: this.srsName
          });
          var a = e || this.filter,
              s = t || this.successFn,
              x = i || this.failFn,
              l = GeoGlobe.Function.bind(function (e) {
            if (e.success()) {
              var t = e.features;
              this.isSeparate && (t = this._separateFeatures(t));

              var i = this._read_trueName(e);

              t.trueNames = i;
              var r = new GeoGlobe.Format.GeoJSON().write(t),
                  n = new GeoGlobe.Format.JSON().read(r);
              s({
                features: t,
                geojson: n
              });
            } else x();
          }, this);
          this.response = this.protocol.read({
            sortBy: this.sortBy,
            filter: a,
            callback: l
          });
        },
        queryTotalNumber: function queryTotalNumber(e, t, i) {
          var r = new GeoGlobe.Format.WFSHits();
          this.protocol = new GeoGlobe.Protocol.WFS({
            readFormat: r,
            propertyNames: this.propertyNames,
            resultType: "hits",
            maxFeatures: this.maxFeatures,
            featurePrefix: this.featurePrefix,
            featureNS: this.featureNS,
            url: this.url,
            version: this.version,
            geometryName: this.geometryName,
            featureType: this.featureType,
            time: this.time,
            userecent: this.userecent
          });
          var n = e || this.filter,
              o = t || this.successFn,
              a = i || this.failFn,
              s = GeoGlobe.Function.bind(function (e) {
            if (e.success()) {
              var t = e.features;
              o(t);
            } else a();
          }, this);
          this.response = this.protocol.read({
            filter: n,
            callback: s
          });
        },
        _read_trueName: function _read_trueName(e) {
          var t = [];

          if (e.priv && e.priv.responseText) {
            if (null == this.format) return null;
            var i = this.format.getXMLDoc().getElementsByTagName("trueName");
            if (null == i || 0 == i.length) return null;

            for (var r = 0; r < i.length; r++) {
              t.push(i[r].text);
            }

            return t;
          }

          return t;
        },
        getBufferRegion: function getBufferRegion(e, t, i) {
          var r = this._getFeaturesCenter(e);

          switch (i) {
            case "km":
              t *= 1e3;

            case "m":
              t = this._meterToDegree(t, r);
          }

          return GeoGlobe.Geometry.Polygon.createRegularPolygon(e.geometry, t, 40, 360);
        },
        _getFeaturesCenter: function _getFeaturesCenter(e) {
          return this._getFeaturesExtent(e).getCenterLonLat();
        },
        _getFeaturesExtent: function _getFeaturesExtent(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);
          var t = null;

          if (e && e.length > 0) {
            t = new GeoGlobe.LngLatBounds();

            for (var i = null, r = 0, n = e.length; r < n; r++) {
              (i = e[r].geometry) && t.extend(i.getBounds());
            }
          }

          return t;
        },
        _meterToDegree: function _meterToDegree(e, t) {
          var i = t.lat;
          return e * (899e-8 / Math.cos(GeoGlobe.Util.rad(i)));
        },
        pointQuery: function pointQuery(e, t, i, r, n) {
          t = t || 0, i = i || "degree";
          var o = new GeoGlobe.Filter.Spatial({
            type: GeoGlobe.Filter.Spatial.DWITHIN,
            property: this.geometryName,
            distance: t,
            distanceUnits: i,
            value: e
          });
          this.query(o, r, n);
        },
        pathQuery: function pathQuery(e, t, i, r, n) {
          t = t || 0, i = i || "degree";
          var o = new GeoGlobe.Filter.Spatial({
            type: GeoGlobe.Filter.Spatial.DWITHIN,
            property: this.geometryName,
            distance: t,
            distanceUnits: i,
            value: e
          });
          this.query(o, r, n);
        },
        polygonQuery: function polygonQuery(e, t, i, r) {
          var n = t ? GeoGlobe.Filter.Spatial.CONTAINS : GeoGlobe.Filter.Spatial.INTERSECTS,
              o = new GeoGlobe.Filter.Spatial({
            type: n,
            property: this.geometryName,
            value: e
          });
          this.query(o, i, r);
        },
        bboxQuery: function bboxQuery(e, t, i) {
          var r = new GeoGlobe.Filter.Spatial({
            type: GeoGlobe.Filter.Spatial.BBOX,
            property: this.geometryName,
            value: e
          });
          this.query(r, t, i);
        },
        attributeQuery: function attributeQuery(e, t, i, r, n, o) {
          var a = r && r.matchCase,
              s = r ? r.lowerBoundary : null,
              x = r ? r.upperBoundary : null,
              l = new GeoGlobe.Filter.Comparison({
            type: e,
            property: t,
            value: i,
            matchCase: a,
            lowerBoundary: s,
            upperBoundary: x
          });
          this.query(l, n, o);
        },
        statisticsQuery: function statisticsQuery(e, t, i) {
          this.protocol = new GeoGlobe.Protocol.WFS({
            readFormat: this.format,
            formatOptions: this.formatOptions,
            propertyNames: this.propertyNames,
            resultType: "statistics",
            maxFeatures: this.maxFeatures,
            featurePrefix: this.featurePrefix,
            featureNS: this.featureNS,
            url: this.url,
            version: this.version,
            geometryName: this.geometryName,
            featureType: this.featureType,
            time: this.time,
            userecent: this.userecent
          });
          var r = e || this.filter,
              n = t || this.successFn,
              o = i || this.failFn,
              a = GeoGlobe.Function.bind(function (e) {
            if (e.success()) {
              try {
                var t = e.priv.responseXML,
                    i = this._analysis_StatisticsResult(t);
              } catch (t) {
                return void n(e.priv.responseText);
              }

              n(i);
            } else o();
          }, this);
          this.response = this.protocol.read({
            sortBy: this.sortBy,
            groupBy: this.groupBy,
            filter: r,
            callback: a
          });
        },
        _analysis_StatisticsResult: function _analysis_StatisticsResult(e) {
          var t = {},
              i = e.documentElement.firstChild.childNodes;
          return 0 < i.length && (t.layers = this._analysis_StatisticsResult_results(i)), t;
        },
        _analysis_StatisticsResult_results: function _analysis_StatisticsResult_results(e) {
          for (var t = [], i = 0; i < e.length; i++) {
            for (var r = {}, n = [], o = e[i].childNodes, a = 0; a < o.length; a++) {
              var s = {};
              s.layerName = o[a].parentNode.nodeName, "Microsoft Internet Explorer" == navigator.appName ? s.result = this._analysis_StatisticsResult_results_result_IE(o[a]) : s.result = this._analysis_StatisticsResult_results_result_google(o[a]), n.push(s);
            }

            r.results = n, t.push(r);
          }

          return t;
        },
        _analysis_StatisticsResult_results_result_IE: function _analysis_StatisticsResult_results_result_IE(e) {
          var t = {},
              i = 0;
          "Key" == e.childNodes[0].nodeName && (t.Key = e.childNodes[0].text, i = 1);

          for (var r = [], n = []; i < e.childNodes.length; i++) {
            var o = {},
                a = {};
            o.name = e.childNodes[i].getAttribute("name"), a.Value = e.childNodes[i].text, r.push(o), n.push(a);
          }

          return t.name = r, t.values = n, t;
        },
        _analysis_StatisticsResult_results_result_google: function _analysis_StatisticsResult_results_result_google(e) {
          var t = {},
              i = 0;
          "Key" == e.childNodes[0].nodeName && (t.Key = e.childNodes[0].innerHTML, i = 1);

          for (var r = [], n = []; i < e.childNodes.length; i++) {
            var o = {},
                a = {};
            o.name = e.childNodes[i].getAttribute("name"), a.Value = e.childNodes[i].innerHTML, r.push(o), n.push(a);
          }

          return t.name = r, t.values = n, t;
        },
        successFn: function successFn(e) {},
        failFn: function failFn() {
          alert("对不起,查询失败,请查询服务是否正常。");
        },
        _separateFeatures: function _separateFeatures(e) {
          for (var t = {}, i = 0; i < e.length; i++) {
            var r,
                n = e[i];
            t[r = n.gml ? n.gml.featureType : n.type] || (t[r] = []), t[r].push(n);
          }

          return t;
        },
        setTime: function setTime(e) {
          this.time = e;
        },
        setUserecent: function setUserecent(e) {
          this.userecent = e;
        },
        CLASS_NAME: "GeoGlobe.Query.WFSQuery"
      }), GeoGlobe.Query.WFSQuery.reverseGeometryXY = function (e) {
        var t = {
          Point: function Point(e, t) {
            var i = e.x,
                r = e.y,
                n = e.clone(e);
            return n.x = r, n.y = i, n;
          },
          LineString: function LineString(e, t) {
            for (var i = e.clone(e), r = 0; r < i.components.length; r++) {
              var n = t.Point(i.components[r]);
              i.components[r] = n;
            }

            return i;
          },
          Polygon: function Polygon(e, t) {
            for (var i = e.clone(e), r = 0; r < i.components.length; r++) {
              for (var n = 0; n < i.components[r].components.length - 1; n++) {
                var o = t.Point(i.components[r].components[n]);
                i.components[r].components[n] = o;
              }
            }

            return i;
          }
        };
        return t[{
          "GeoGlobe.Geometry.Point": "Point",
          "GeoGlobe.Geometry.MultiPoint": "MultiPoint",
          "GeoGlobe.Geometry.LineString": "LineString",
          "GeoGlobe.Geometry.MultiLineString": "MultiLineString",
          "GeoGlobe.Geometry.Polygon": "Polygon",
          "GeoGlobe.Geometry.MultiPolygon": "MultiPolygon",
          "GeoGlobe.Geometry.Collection": "GeometryCollection"
        }[e.CLASS_NAME]](e, t);
      }, GeoGlobe.Format.WFSHits = GeoGlobe.Class4OL(GeoGlobe.Format.XML, {
        wfsns: "http://www.opengis.net/wfs",
        featureCollection: "FeatureCollection",
        read: function read(e) {
          "string" == typeof e && (e = GeoGlobe.Format.XML.prototype.read.apply(this, [e]));
          var t = e.documentElement;
          return {
            numberOfFeatures: _babel_runtime_corejs2_core_js_parse_int__WEBPACK_IMPORTED_MODULE_7___default()(t.getAttribute("numberOfFeatures"))
          };
        }
      }), GeoGlobe.Query.GeoCodingQuery = function (e, t) {
        t = GeoGlobe.Util.applyDefaults(t, GeoGlobe.Query.GeoCodingQuery.DEFAULTS);
        var i = GeoGlobe.Query.GeoCodingQuery["v" + t.version.replace(/\./g, "_")];
        if (!i) throw "不支持的地址匹配服务版本: " + t.version;
        return new i(e, t);
      }, GeoGlobe.Query.GeoCodingQuery.DEFAULTS = {
        version: "1.0.0"
      }, GeoGlobe.Query.GeoCodingQuery.v1 = GeoGlobe.Class4OL({
        version: "1.0.0",
        url: null,
        initialize: function initialize(e, t) {
          this.url = e, GeoGlobe.Util.extend(this, t), this.format = new GeoGlobe.Format.JSON();
        },
        getCommonParams: function getCommonParams(e) {
          var t = {
            request: "GetCategory",
            service: "GeoCoding",
            version: this.version,
            output: "json"
          };
          return GeoGlobe.Util.extend(t, e), t;
        },
        getCategoryByName: function getCategoryByName(e, t, i) {
          var r = this.getCommonParams();
          "string" == typeof e && 0 !== e.length && (r.categoryName = e), i = i || this.failFn, GeoGlobe.Function.bind(this._requestCategory, this)(r, t, i);
        },
        getCategoryByCode: function getCategoryByCode(e, t, i) {
          var r = this.getCommonParams();
          "number" == typeof e && (r.categoryCode = e), GeoGlobe.Function.bind(this._requestCategory, this)(r, t, i);
        },
        getAllCategory: function getAllCategory(e, t) {
          var i = this.getCommonParams();
          GeoGlobe.Function.bind(this._requestCategory, this)(i, e, t);
        },
        _requestCategory: function _requestCategory(e, t, i) {
          i = i || this.failFn, GeoGlobe.loadURL(this.url, e, this, function (e) {
            try {
              var i = this.format.read(e.responseText);
            } catch (i) {
              return void t(e.responseText);
            }

            t(i);
          }, i);
        },
        _analysis_GeoCodeResult: function _analysis_GeoCodeResult(e) {
          var t = {
            status: e.status
          };

          switch (e.status) {
            case "OK":
              (i = e.results) && (t.results = this._analysis_GeoCodeResult_results(i));
              break;

            case "INVALID_REQUEST":
            case "NO_RESULTS":
            case "UNKNOWN_ERROR":
              break;

            default:
              var i;
              t = {
                requestKeyWord: e.requestKeyWord,
                count: e.count,
                statisticsLevel: e.statisticsLevel,
                statisticsLevelName: e.statisticsLevelName
              }, e && e.count > 0 && (i = e.results) && (t.results = this._analysis_GeoCodeResult_statistics(i));
          }

          return t;
        },
        _analysis_GeoCodeResult_results: function _analysis_GeoCodeResult_results(e) {
          var t = [];

          if (GeoGlobe.Util.isArray(e)) {
            for (var i = 0, r = e.length; i < r; i++) {
              var n = {};
              n.requestKeyWord = e[i].requestKeyWord, e[i].errorCorrectionTips && (n.errorCorrectionTips = e[i].errorCorrectionTips), n.count = e[i].count, e[i].result && (n.result = this._analysis_GeoCodeResult_results_result(e[i].result)), t.push(n);
            }

            return t;
          }
        },
        _analysis_GeoCodeResult_statistics: function _analysis_GeoCodeResult_statistics(e) {
          var t = [];

          if (GeoGlobe.Util.isArray(e)) {
            for (var i = 0, r = e.length; i < r; i++) {
              var n = {};
              e[i].errorCorrectionTips && (n.errorCorrectionTips = e[i].errorCorrectionTips), e[i] && (n.name = e[i].name, n.value = e[i].value, n.remark = e[i].remark), t.push(n);
            }

            return t;
          }
        },
        _analysis_GeoCodeResult_results_result: function _analysis_GeoCodeResult_results_result(e) {
          for (var t = [], i = 0, r = e.length; i < r; i++) {
            var n = {},
                o = {};
            n.resultType = e[i].resultType, n.precise = e[i].precise, n.isBrief = e[i].isBrief, n.score = e[i].score, e[i].addressComponent.street && (o = e[i].addressComponent.street), 0 == n.isBrief && (n.addressComponent = this._analysis_GeoCodeResult_results_result_address(e[i].addressComponent, n.resultType)), n.poiArray = this._analysispoiArray(e[i].poiArray), e[i].location && (n.location = e[i].location), 0 == n.precise && (n.referenceAddressArray = e[i].referenceAddressArray), o && (n.street_path = o), t.push(n);
          }

          return t;
        },
        _analysis_GeoCodeResult_results_result_address: function _analysis_GeoCodeResult_results_result_address(e, t) {
          var i = {
            country: e.country
          };

          if (e.province && (i.province = e.province), e.city && (i.city = e.city), e.district && (i.district = e.district), e.town && (i.town = e.town), e.street && (i.street = {
            name: e.street.name
          }, "street" === t && e.street.geometry)) {
            var r = this.format.read(e.street.geometry),
                n = null;
            (r.paths || r.rings || r.x && r.y) && (n = this._getGeometry(r), i.street.geometry = n);
          }

          if (e.streetNumber && (i.streetNumber = e.streetNumber), e.buildingNumber && (i.buildingNumber = e.buildingNumber), "adminArea" === t) {
            if (e.geometry) {
              var o = this.format.read(e.geometry),
                  a = null;
              o.rings || o.paths ? (a = this._getGeometry(o), i.geometry = a) : "number" == typeof o.x && "number" == typeof o.y && (i.geometry = this._getGeometry(o));
            }

            e.subordinate && (i.subordinate = e.subordinate), e.zipCode && (i.zipCode = e.zipCode), e.callingCode && (i.callingCode = e.callingCode);
          }

          return i;
        },
        _analysispoiArray: function _analysispoiArray(e) {
          for (var t = [], i = 0, r = e.length; i < r; i++) {
            var n = {};

            for (var o in e[i]) {
              n[o] = e[i][o];
            }

            if ("" != n.geometry && null != n.geometry) {
              var a = this.format.read(n.geometry);
              n.geometry = this._getGeometry(a);
            }

            t.push(n);
          }

          return t;
        },
        _analysisLocation: function _analysisLocation(e) {},
        _getGeometry: function _getGeometry(e) {
          for (var t in e) {
            if ("spatialReference" == t) return;
            return e = e.hasOwnProperty("x") && e.hasOwnProperty("y") ? new GeoGlobe.Geometry.Point(e.x, e.y) : e.hasOwnProperty("xmin") && e.hasOwnProperty("ymin") && e.hasOwnProperty("xmax") && e.hasOwnProperty("ymax") ? new GeoGlobe.Bounds(e.xmin, e.ymin, e.xmax, e.ymax).toGeometry() : this._geometryType[t](e[t]);
          }
        },
        _geometryType: {
          points: function points(e) {
            var t = [];
            if (GeoGlobe.Util.isArray(e)) for (var i = 0, r = e.length; i < r; i++) {
              var n = new GeoGlobe.Geometry.Point(e[i][0], e[i][1]);
              t.push(n);
            }
            return t;
          },
          paths: function paths(e) {
            var t = [];

            if (GeoGlobe.Util.isArray(e)) {
              for (var i = 0, r = e.length; i < r; i++) {
                for (var n = [], o = 0, a = e[i].length; o < a; o++) {
                  n.push(new GeoGlobe.Geometry.Point(e[i][o][0], e[i][o][1]));
                }

                var s = new GeoGlobe.Geometry.LineString(n);
                t.push(s);
              }

              var x = new GeoGlobe.Geometry.MultiLineString(t);
            }

            return x;
          },
          rings: function rings(e) {
            var t = [];

            if (GeoGlobe.Util.isArray(e)) {
              for (var i = 0, r = e.length; i < r; i++) {
                for (var n = [], o = 0, a = e[i].length; o < a; o++) {
                  n.push(new GeoGlobe.Geometry.Point(e[i][o][0], e[i][o][1]));
                }

                var s = new GeoGlobe.Geometry.LinearRing(n);
                t.push(s);
              }

              var x = new GeoGlobe.Geometry.Polygon(t);
            }

            return x;
          }
        },
        failFn: function failFn(e) {
          "string" == typeof e && alert(e), alert("对不起，查询请求失败！请检查地址匹配服务是否正常运行。\n当前服务地址为：" + this.url);
        },
        CLASS_NAME: "GeoGlobe.Query.GeoCodingQuery.v1"
      }), GeoGlobe.Query.GeoCodingQuery.v1_0_0 = GeoGlobe.Class4OL(GeoGlobe.Query.GeoCodingQuery.v1, {
        addressesToLocations: function addressesToLocations(e, t, i) {
          var r = this.getCommonParams({
            request: "GeoCoder"
          });
          if ("string" == typeof e.address) r.address = e.address;else if (GeoGlobe.Util.isArray(e.address)) {
            for (var n = "", o = 0; o < e.address.length; o++) {
              n += e.address[o] + ",";
            }

            n = n.substr(0, n.length - 1), r.address = n;
          } else if (null == e.address || null == e.address) throw "address是必选参数！";
          if ("number" == typeof e.categoryCode && (r.categoryCode = e.categoryCode), e.extent instanceof GeoGlobe.LngLatBounds) r.bbox = e.extent.toBBOX(null, !0);else if (e.extent instanceof GeoGlobe.Geometry.Polygon) {
            for (var a = e.extent, s = [], x = (o = 0, a.components.length); o < x; o++) {
              for (var l = a.components[o].components, c = 0; c < l.length; c++) {
                s.push(l[c].toShortString());
              }
            }

            r.bbox = s.join(",");
          }
          "boolean" == typeof e.fuzzyMatch && (r.fuzzyMatch = e.fuzzyMatch), "string" == typeof e.resultType && (r.resultType = e.resultType), "number" == typeof e.maxCount && (r.maxCount = e.maxCount), "number" == typeof e.startPosition && (r.startPosition = e.startPosition), GeoGlobe.loadURL(this.url, r, this, function (e) {
            try {
              var i = this.format.read(e.responseText);
              if ("result" == r.resultType) var n = this._parseQueryResultToFeature(i);else n = this._analysis_GeoCodeResult(i);
            } catch (i) {
              return void t(e.responseText);
            }

            t(n);
          }, this.failFn);
        },
        locationToAddresses: function locationToAddresses(e, t, i) {
          var r = this.getCommonParams({
            request: "GeoCoder"
          });
          if (!e.lonlat) throw "address是必选参数！请填写正确的数据类型！";
          r.latlng = e.lonlat.lat + "," + e.lonlat.lng, "number" == typeof e.tolerance && (r.tolerance = e.tolerance), "string" == typeof e.unit && (r.unit = e.unit), "string" == typeof e.resultType && (r.resultType = e.resultType), "number" == typeof e.maxCount && (r.maxCount = e.maxCount), "number" == typeof e.startPosition && (r.startPosition = e.startPosition), GeoGlobe.loadURL(this.url, r, this, function (e) {
            try {
              var i = this.format.read(e.responseText);
              if ("result" == r.resultType) var n = this._parseQueryResultToFeature(i);else n = this._analysis_GeoCodeResult(i);
            } catch (i) {
              return void t(e.responseText);
            }

            t(n, i);
          }, this.failFn);
        },
        getLocations: function getLocations(e, t, i) {
          this.addressesToLocations(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e, total));
          }, this), i);
        },
        getLocationsByPage: function getLocationsByPage(e, t, i) {
          e.resultType = "hits", this.addressesToLocations(e, GeoGlobe.Function.bind(function (r) {
            if ("OK" == r.status) {
              e.resultType = "result";
              var n = r.results[0].count;
              null != e.maxCount && null != e.maxCount || (e.maxCount = 3), e.startPosition = (e.startPosition - 1) * e.maxCount + 1, this.addressesToLocations(e, GeoGlobe.Function.bind(function (e) {
                t(this._parseQueryResultToFeature(e, n));
              }, this), i);
            } else alert("没有查询到任何数据");
          }, this), i);
        },
        getAddresses: function getAddresses(e, t, i) {
          this.locationToAddresses(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e, total));
          }, this), i);
        },
        getAddressesByPage: function getAddressesByPage(e, t, i) {
          e.resultType = "hits", this.locationToAddresses(e, GeoGlobe.Function.bind(function (r) {
            if ("OK" == r.status) {
              e.resultType = "result";
              var n = r.results[0].count;
              null != e.maxCount && null != e.maxCount || (e.maxCount = 3), e.startPosition = (e.startPosition - 1) * e.maxCount + 1, this.locationToAddresses(e, GeoGlobe.Function.bind(function (e) {
                t(this._parseQueryResultToFeature(e, n));
              }, this), i);
            } else alert("没有查询到任何数据");
          }, this), i);
        },
        _parseQueryResultToFeature: function _parseQueryResultToFeature(e) {
          var t = [];
          if ("OK" == e.status && e.results) for (var i = 0; i < e.results.length; i++) {
            var r = e.results[i].result;
            if (r) for (var n = 0; n < r.length; n++) {
              var o = {},
                  a = null;
              if (o.requestKeyWord = e.results[i].requestKeyWord, GeoGlobe.Util.isArray(r[n].poiArray)) for (var s = 0; s < r[n].poiArray.length; s++) {
                o.CONTINENT = r[n].poiArray[s].CONTINENT, o.GBCODE = r[n].poiArray[s].GBCODE, o.STANDARDNAME = r[n].poiArray[s].STANDARDNAME, o.name = r[n].poiArray[s].name;
              }

              if (r[n].addressComponent) {
                var x = r[n].addressComponent;
                o.address = this._getAddress(x, o.name), o.country = r[n].addressComponent.country, o.province = r[n].addressComponent.province, o.city = r[n].addressComponent.city, o.district = r[n].addressComponent.district, r[n].addressComponent.street ? (o.streetName = r[n].addressComponent.street.name, o.streetgeometry = r[n].addressComponent.street.geometry) : o.streetName = "", o.streetNumber = r[n].addressComponent.streetNumber;
              }

              r[n].location && (r[n].location.lng && (o.lng = r[n].location.lng), r[n].location.lat && (o.lat = r[n].location.lat), a = new GeoGlobe.Geometry.Point(r[n].location.lng, r[n].location.lat)), o.isBrief = r[n].isBrief, o.precise = r[n].precise, o.resultType = r[n].resultType, o.score = r[n].score;
              var l = new GeoGlobe.Feature(a, o);
              t.push(l);
            }
          }
          var c = new GeoGlobe.Format.GeoJSON().write(t),
              u = new GeoGlobe.Format.JSON().read(c);
          return {
            status: e.status,
            features: t,
            geojsonFeatures: u
          };
        },
        _getAddress: function _getAddress(e, t) {
          var i = "";
          return e.country && (i += e.country), e.province && (i += e.province), e.city && (i += e.city), e.district && (i += e.district), e.street && (e.street.name && (i += e.street.name), e.streetNumber && (i += e.streetNumber + "号")), t && (i += t), i;
        },
        CLASS_NAME: "GeoGlobe.Query.GeoCodingQuery.v1_0_0"
      }), GeoGlobe.Query.GeoCodingQuery.v1_1_0 = GeoGlobe.Class4OL(GeoGlobe.Query.GeoCodingQuery.v1, {
        method: "get",
        initialize: function initialize(e, t) {
          GeoGlobe.Util.extend(this, t), this.filterFormat = new GeoGlobe.Format.Filter(), GeoGlobe.Query.GeoCodingQuery.v1.prototype.initialize.apply(this, arguments);
        },
        addressesToLocations: function addressesToLocations(e, t, i) {
          var r = this.getCommonParams({
            request: "GeoCoder"
          });
          if (r.reverseMatch = !1, "string" == typeof e.address && (r.keyword = e.address), "number" == typeof e.categoryCode && (r.categoryCode = e.categoryCode), !(null != e.address && null != e.address || null != e.categoryCode && null != e.categoryCode)) throw "address是必选参数！";
          if (e.extent instanceof GeoGlobe.LngLatBounds) r.bbox = e.extent.toBBOX(null, !0);else if (e.extent instanceof GeoGlobe.Geometry.Polygon) {
            for (var n = e.extent, o = [], a = 0, s = n.components.length; a < s; a++) {
              for (var x = n.components[a].components, l = 0; l < x.length; l++) {
                o.push(x[l].toShortString());
              }
            }

            r.bbox = o.join(",");
          }

          if (e.filter instanceof GeoGlobe.Filter) {
            var c = this.filterFormat.write(e.filter),
                u = GeoGlobe.Format.XML.prototype.write.apply(this.filterFormat, [c]);
            r.filter = u;
          }

          "string" == typeof e.resultType && (r.resultType = e.resultType), "statistics" == e.resultType && (r.statisticsLevel = e.statisticsLevel), "number" == typeof e.maxCount && (r.maxCount = e.maxCount), "number" == typeof e.startPosition && (r.startPosition = e.startPosition), "boolean" == typeof e.semanticAnalysis && (r.semanticAnalysis = e.semanticAnalysis), "boolean" == typeof e.customWeight && (r.customWeight = e.customWeight), this._setGeoCoderCommonProperty(r, e), this._getCodingRequest(r, t, i);
        },
        _getCodingRequest: function _getCodingRequest(e, t, i) {
          if ("get" == this.method) GeoGlobe.loadURL(this.url, e, this, function (i) {
            try {
              var r = this.format.read(i.responseText);
              if ("result" == e.resultType) var n = this._parseQueryResultToFeature(r);else n = this._analysis_GeoCodeResult(r);
            } catch (e) {
              return void t(i.responseText);
            }

            t(n);
          }, this.failFn);else {
            var r = GeoGlobe.Util.getParameterString(e);
            GeoGlobe.Request.POST({
              url: this.url,
              data: r,
              success: function success(e) {
                try {
                  var i = this.format.read(e.responseText),
                      r = this._analysis_GeoCodeResult(i);
                } catch (i) {
                  return void t(e.responseText);
                }

                t(r);
              },
              failure: this.failFn,
              scope: this
            });
          }
        },
        _setGeoCoderCommonProperty: function _setGeoCoderCommonProperty(e, t) {
          "string" == typeof t.sortFields && (e.sortFields = t.sortFields), "string" == typeof t.scoreFilter && (e.scoreFilter = t.scoreFilter);
        },
        locationToAddresses: function locationToAddresses(e, t, i) {
          var r = this.getCommonParams({
            request: "GeoCoder"
          });
          if (r.reverseMatch = !0, !e.lonlat) throw "address是必选参数！请填写正确的数据类型！";
          r.keyword = e.lonlat.lat + "," + e.lonlat.lng, "number" == typeof e.tolerance && (r.tolerance = e.tolerance), "string" == typeof e.unit && (r.unit = e.unit), "string" == typeof e.resultType && (r.resultType = e.resultType), "statistics" == e.resultType && (r.statisticsLevel = e.statisticsLevel), "number" == typeof e.maxCount && (r.maxCount = e.maxCount), "number" == typeof e.startPosition && (r.startPosition = e.startPosition), "boolean" == typeof e.customWeight && (r.customWeight = e.customWeight), this._setGeoCoderCommonProperty(r, e), this._getCodingRequest(r, t, i);
        },
        batchAddressesToLocations: function batchAddressesToLocations(e, t, i) {
          var r = this.getCommonParams({
            request: "BatchGeoCoder",
            service: "GeoCoding"
          });

          if (r.reverseMatch = !1, GeoGlobe.Util.isArray(e.address)) {
            for (var n = "", o = 0; o < e.address.length; o++) {
              n += e.address[o] + ",";
            }

            n = n.substr(0, n.length - 1), r.keywords = n;
          } else if (null == e.address || null == e.address) throw "address是必选参数！";

          if ("number" == typeof e.singleKeywordResultCount && (r.singleKeywordResultCount = e.singleKeywordResultCount), e.filter instanceof GeoGlobe.Filter) {
            var a = this.filterFormat.write(e.filter),
                s = GeoGlobe.Format.XML.prototype.write.apply(this.filterFormat, [a]);
            r.filter = s;
          }

          this._setGeoCoderCommonProperty(r, e), this._getCodingRequest(r, t, i);
        },
        batchLocationToAddresses: function batchLocationToAddresses(e, t, i) {
          var r = this.getCommonParams({
            request: "BatchGeoCoder",
            service: "GeoCoding"
          });
          if (r.reverseMatch = !0, e.lonlats instanceof GeoGlobe.LonLat) e.lonlats = [e.lonlats];else if (!GeoGlobe.Util.isArray(e.lonlats)) throw "address是必选参数！请填写正确的数据类型！";

          if (GeoGlobe.Util.isArray(e.lonlats)) {
            for (var n = "", o = 0; o < e.lonlats.length; o++) {
              n += e.lonlats[o].lat + "," + e.lonlats[o].lng + ";";
            }

            n = n.substr(0, n.length - 1), r.keywords = n;
          }

          "number" == typeof e.tolerance && (r.tolerance = e.tolerance), "string" == typeof e.unit && (r.unit = e.unit), "number" == typeof e.singleKeywordResultCount && (r.singleKeywordResultCount = e.singleKeywordResultCount), this._setGeoCoderCommonProperty(r, e), this._getCodingRequest(r, t, i);
        },
        _getAddress: function _getAddress(e, t) {
          var i = "";
          return e.country && (i += e.country), e.province && (i += e.province), e.city && (i += e.city), e.district && (i += e.district), e.street && (e.street.name && (i += e.street.name), e.streetNumber && (i += e.streetNumber + "号")), t && (i += t), i;
        },
        getLocations: function getLocations(e, t, i) {
          this.addressesToLocations(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e, total));
          }, this), i);
        },
        getLocationsByPage: function getLocationsByPage(e, t, i) {
          e.resultType = "hits", this.addressesToLocations(e, GeoGlobe.Function.bind(function (r) {
            if ("OK" == r.status) {
              e.resultType = "result";
              var n = r.results[0].count;
              null != e.maxCount && null != e.maxCount || (e.maxCount = 3), e.startPosition = (e.startPosition - 1) * e.maxCount + 1, this.addressesToLocations(e, GeoGlobe.Function.bind(function (e) {
                t(this._parseQueryResultToFeature(e, n));
              }, this), i);
            } else alert("没有查询到任何数据");
          }, this), i);
        },
        getAddresses: function getAddresses(e, t, i) {
          this.locationToAddresses(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e, total));
          }, this), i);
        },
        getAddressesByPage: function getAddressesByPage(e, t, i) {
          e.resultType = "hits", this.locationToAddresses(e, GeoGlobe.Function.bind(function (r) {
            if ("OK" == r.status) {
              e.resultType = "result";
              var n = r.results[0].count;
              null != e.maxCount && null != e.maxCount || (e.maxCount = 3), e.startPosition = (e.startPosition - 1) * e.maxCount + 1, this.locationToAddresses(e, GeoGlobe.Function.bind(function (e) {
                t(this._parseQueryResultToFeature(e, n));
              }, this), i);
            } else alert("没有查询到任何数据");
          }, this), i);
        },
        batchGetAddresses: function batchGetAddresses(e, t, i) {
          this.batchLocationToAddresses(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e));
          }, this), i);
        },
        batchGetLocations: function batchGetLocations(e, t, i) {
          this.batchAddressesToLocations(e, GeoGlobe.Function.bind(function (e) {
            t(this._parseQueryResultToFeature(e));
          }, this), i);
        },
        _parseQueryResultToFeature: function _parseQueryResultToFeature(e) {
          var t = [];
          if ("OK" == e.status && e.results) for (var i = 0; i < e.results.length; i++) {
            var r = e.results[i].result;
            if (r) for (var n = 0; n < r.length; n++) {
              var o = {},
                  a = null;
              if (o.requestKeyWord = e.results[i].requestKeyWord, GeoGlobe.Util.isArray(r[n].poiArray)) for (var s = 0; s < r[n].poiArray.length; s++) {
                o.CONTINENT = r[n].poiArray[s].CONTINENT, o.GBCODE = r[n].poiArray[s].GBCODE, o.STANDARDNAME = r[n].poiArray[s].STANDARDNAME, o.name = r[n].poiArray[s].name;
              }

              if (r[n].addressComponent) {
                var x = r[n].addressComponent;
                o.address = this._getAddress(x, o.name), o.country = r[n].addressComponent.country, o.province = r[n].addressComponent.province, o.city = r[n].addressComponent.city, o.district = r[n].addressComponent.district, r[n].addressComponent.street ? (o.streetName = r[n].addressComponent.street.name, o.streetgeometry = r[n].addressComponent.street.geometry) : o.streetName = "", o.streetNumber = r[n].addressComponent.streetNumber;
              }

              r[n].location && (r[n].location.lng && (o.lng = r[n].location.lng), r[n].location.lat && (o.lat = r[n].location.lat), a = new GeoGlobe.Geometry.Point(r[n].location.lng, r[n].location.lat)), o.isBrief = r[n].isBrief, o.precise = r[n].precise, o.resultType = r[n].resultType, o.score = r[n].score;
              var l = new GeoGlobe.Feature(a, o);
              t.push(l);
            }
          }
          var c = new GeoGlobe.Format.GeoJSON().write(t),
              u = new GeoGlobe.Format.JSON().read(c);
          return {
            status: e.status,
            features: t,
            geojsonFeatures: u
          };
        },
        CLASS_NAME: "GeoGlobe.Query.GeoCodingQuery.v1_1_0"
      }), GeoGlobe.Service = GeoGlobe.Class({
        name: null,
        url: null,
        version: null,
        userid: "test@liferay.com",
        initialize: function initialize(e, t, i) {
          this.name = e, this.url = t, GeoGlobe.Util.extend(this, i);
        },
        getCapabilities: function getCapabilities(e, t) {},
        isExist: function isExist() {},
        failFn: function failFn(e) {
          alert("服务请求失败，请检查服务是否正常运行或请求地址是否正确。\n请求地址：" + this.url + "\n操作类型：" + e);
        },
        _parseToXML: function _parseToXML(e) {
          var t = e.responseXML;
          return t && t.documentElement || (t = e.responseText), new GeoGlobe.Format.XML().read(t);
        },
        _checkIsError: function _checkIsError(e) {
          return new GeoGlobe.Format.XML().read(e).selectNodes("ServiceExceptionReport").length > 0 ? this._parseToJSON(e) : null;
        },
        _isException: function _isException(e) {
          return !(!e || !e.ServiceExceptionReport);
        },
        _parseToJSON: function _parseToJSON(e) {
          return new GeoGlobe.Util.Format.XML2JSON().read(e);
        },
        CLASS_NAME: "GeoGlobe.Service"
      }), GeoGlobe.Service.WFST = GeoGlobe.Class4OL(GeoGlobe.Service, {
        xy: !0,
        initialize: function initialize(e, t, i) {
          GeoGlobe.Service.prototype.initialize.apply(this, arguments);
        },
        getCapabilities: function getCapabilities(e, t) {
          var i = this.url,
              r = {
            REQUEST: "GetCapabilities",
            SERVICE: "WFS",
            VERSION: "1.0.0"
          };
          t || (t = function t() {
            this.failFn(r.REQUEST);
          }), GeoGlobe.loadURL(i, r, this, function (t) {
            e(t);
          }, t);
        },
        isExist: function isExist() {
          var e = !1,
              t = this.url;
          return GeoGlobe.Request.GET({
            url: t,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WFS"
            },
            scope: this,
            async: !1,
            success: function success() {
              e = !0;
            }
          }), e;
        },
        describeFeatureType: function describeFeatureType(e, t, i) {
          var r = this.url;
          GeoGlobe.Util.applyDefaults(e, {
            SERVICE: "WFS",
            VERSION: "1.0.0",
            REQUEST: "DescribeFeatureType"
          }), i || (i = function i() {
            this.failFn(e.REQUEST);
          }), GeoGlobe.loadURL(r, e, this, function (e) {
            t(e);
          }, i);
        },
        getFeature: function getFeature(e, t, i) {
          var r = this.url;
          GeoGlobe.Util.applyDefaults(e, {
            SERVICE: "WFS",
            VERSION: "1.0.0",
            REQUEST: "GetFeature"
          }), i || (i = function i() {
            this.failFn(e.REQUEST);
          }), GeoGlobe.loadURL(r, e, this, function (e) {
            t(e);
          }, i);
        },
        lockFeature: function lockFeature(e, t, i) {
          this.url, GeoGlobe.Util.applyDefaults(e, {
            service: "WFS",
            version: "1.0.0",
            request: "LockFeature",
            expiry: 1,
            lockAction: "ALL"
          });

          var r = this._parserFilterToString(e.filter),
              n = GeoGlobe.String.format('<?xml version="1.0" encoding="UTF-8"?><LockFeature version="${version}" service="${service}" lockAction="${lockAction}" expiry="${expiry}" xmlns:wfs=" http://www.opengis.net/wfs" xmlns:gml=" http://www.opengis.net/gml" xmlns:myns=" http://www.someserver.com/myns" xmlns:ogc=" http://www.opengis.net/ogc" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs ../wfs/1.1.0/WFS.xsd"><Lock typeName="${typeName}">${filterXMLString}</Lock></LockFeature>', {
            version: e.version,
            service: e.service,
            lockAction: e.lockAction,
            expiry: e.expiry,
            typeName: e.typeName,
            filterXMLString: r
          });

          i || (i = function i() {
            this.failFn(e.request);
          }), new GeoGlobe.Request.POST({
            url: this.url,
            data: n,
            scope: this,
            success: t,
            failure: i
          });
        },
        transaction: function transaction(e, t, i, r, n, o) {
          var a = this.url;
          GeoGlobe.Util.applyDefaults(e, {
            service: "WFS",
            version: "1.0.0",
            request: "Transaction",
            releaseAction: "ALL"
          });
          var s = e.lockId,
              x = "";
          s && (x += "<LockId>" + s + "</LockId>");
          var l = "";
          t && (l += this._getInsertString(t)), i && (l += this._getUpdateString(i)), r && (l += this._getDeleteString(r));
          var c = GeoGlobe.String.format('<?xml version="1.0" encoding="UTF-8"?><wfs:Transaction releaseAction="${releaseAction}" handle="Transaction 01" version="${version}" service="${service}" xmlns="http://www.someserver.com/myns" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">${lockIdString}${transactionString}</wfs:Transaction>', {
            releaseAction: e.releaseAction,
            version: e.version,
            service: e.service,
            lockIdString: x,
            transactionString: l
          });
          o || (o = function o() {
            this.failFn(e.request);
          }), new GeoGlobe.Request.POST({
            url: a,
            data: c,
            scope: this,
            success: n,
            failure: o
          });
        },
        parseTransactionResult: function parseTransactionResult(e) {
          var t = new GeoGlobe.Format.XML2JSON().read(e.responseText),
              i = new Array(),
              r = this._objToArray(t.wfs_WFS_TransactionResponse.wfs_TransactionResult.wfs_Status),
              n = this._objToArray(t.wfs_WFS_TransactionResponse.wfs_InsertResults);

          if (!r) return i;

          for (var o = 0; o < r.length; o++) {
            void 0 !== r[o].wfs_SUCCESS ? i.push({
              status: "SUCCESS",
              fid: n && n[o] ? n[o].ogc_FeatureId.fid : null
            }) : i.push({
              status: "FAILED",
              fid: null
            });
          }

          return i;
        },
        _objToArray: function _objToArray(e) {
          return !e || e instanceof Array || (e = [e]), e;
        },
        _getInsertString: function _getInsertString(e) {
          for (var t = e.features, i = e.typeName, r = "", n = 0; n < t.length; n++) {
            var o = t[n];
            r += '<wfs:Insert handle="Insert ' + n + '">' + this._getInsertFeatureString(o, i) + "</wfs:Insert>";
          }

          return r;
        },
        _getInsertFeatureString: function _getInsertFeatureString(e, t) {
          var i = "";

          for (var r in e.attributes) {
            "OID" != r && (i += GeoGlobe.String.format("<${tag}><![CDATA[${value}]]></${tag}>", {
              value: e.attributes[r] ? e.attributes[r] : "",
              tag: r
            }));
          }

          return i += GeoGlobe.String.format("<GEOMETRY>${geometry}</GEOMETRY>", {
            geometry: this._getGeometryStringByFeature(e)
          }), GeoGlobe.String.format("<${typeName}>${content}</${typeName}>", {
            typeName: t,
            content: i
          });
        },
        _getUpdateString: function _getUpdateString(e) {
          e.filter;

          for (var t = e.typeName, i = e.features, r = "", n = 0; n < i.length; n++) {
            if (i[n].geometry) {
              var o = this._getUpdatePropertyString(i[n]),
                  a = new GeoGlobe.Filter.FeatureId({
                fids: [t + "." + i[n].attributes.OID]
              });

              r += '<wfs:Update typeName="' + t + '" handle="Update ' + n + '">' + o + this._parserFilterToString(a) + "</wfs:Update>";
            }
          }

          return r;
        },
        _getUpdatePropertyString: function _getUpdatePropertyString(e) {
          var t = "";

          for (var i in e.data) {
            "OID" != i && e.data[i] && (t += "<wfs:Property><wfs:Name><![CDATA[" + i + "]]></wfs:Name><wfs:Value><![CDATA[" + (e.data[i] ? e.data[i] : "") + "]]></wfs:Value></wfs:Property>");
          }

          return t + "<wfs:Property><wfs:Name>Geometry</wfs:Name><wfs:Value>" + this._getGeometryStringByFeature(e) + "</wfs:Value></wfs:Property>";
        },
        _getGeometryStringByFeature: function _getGeometryStringByFeature(e) {
          var t = new GeoGlobe.Format.GML({
            xy: this.xy
          });
          t.buildCoordinatesNode = GeoGlobe.Function.bind(function (e) {
            var t = this.createElementNS(this.gmlns, "gml:coordinates");
            t.setAttribute("decimal", "."), t.setAttribute("cs", ","), t.setAttribute("ts", " ");
            var i = [];
            if (e instanceof GeoGlobe.LngLatBounds) this.xy ? (i.push(e.left + "," + e.bottom), i.push(e.right + "," + e.top)) : (i.push(e.bottom + "," + e.left), i.push(e.top + "," + e.right));else for (var r = e.components ? e.components : [e], n = 0; n < r.length; n++) {
              this.xy ? i.push(r[n].x + "," + r[n].y) : i.push(r[n].y + "," + r[n].x);
            }
            var o = this.createTextNode(i.join(" "));
            return t.appendChild(o), t;
          }, t);
          var i = t.buildGeometryNode(e.geometry);
          return new GeoGlobe.Format.XML().write(i);
        },
        _getDeleteString: function _getDeleteString(e) {
          for (var t = e.filter, i = e.typeName, r = "", n = 0; n < t.fids.length; n++) {
            r += '<wfs:Delete typeName="' + i + '" handle="Delete ' + n + '">';
            var o = new GeoGlobe.Filter.FeatureId({
              fids: [t.fids[n]]
            });
            r += this._parserFilterToString(o), r += "</wfs:Delete>";
          }

          return r;
        },
        _parserFilterToString: function _parserFilterToString(e) {
          var t = "";

          if (e) {
            var i = new GeoGlobe.Format.Filter.v1().write(e);
            return new GeoGlobe.Format.XML().write(i);
          }

          return t;
        },
        CLASS_NAME: "GeoGlobe.Service.WFST"
      }), GeoGlobe.Service.CTS = GeoGlobe.Class4OL(GeoGlobe.Service, {
        initialize: function initialize(e, t, i) {
          GeoGlobe.Service.prototype.initialize.apply(this, arguments);
        },
        getCapabilities: function getCapabilities(e, t) {
          var i = this.url,
              r = {
            REQUEST: "GetCapabilities",
            SERVICE: "CTS"
          };
          t || (t = function t() {
            this.failFn(r.REQUEST);
          }), GeoGlobe.loadURL(i, r, this, function (t) {
            e(t);
          }, t);
        },
        isExist: function isExist() {
          var e = !1,
              t = this.url;
          return GeoGlobe.Request.GET({
            url: t,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "CTS"
            },
            scope: this,
            async: !1,
            success: function success() {
              e = !0;
            }
          }), e;
        },
        TransCoords: function TransCoords(e, t, i) {
          var r = this.url;
          GeoGlobe.Util.applyDefaults(e, {
            SERVICE: "CTS",
            REQUEST: "TransCoords"
          }), i || (i = function i() {
            this.failFn(e.REQUEST);
          }), GeoGlobe.loadURL(r, e, this, function (i) {
            if ("xml" == e.FORMAT) {
              var r = {},
                  n = i.responseXML;
              GeoGlobe.Function.bind(this.xmltoJson, this);
              var o = this.xmltoJson(n);
              r.attributes = o.CTS_TransResult["cts:Coordinate"].attributes.dim;

              for (var a = o.CTS_TransResult["cts:Coordinate"].text.split(","), s = [], x = 0; x < a.length; x++) {
                s.push(a[x]);
              }

              r.coordvalue = s;
            } else if ("json" == e.FORMAT) {
              r = {}, o = i.responseText;
              var l = new GeoGlobe.Format.JSON().read(o);
              r.attributes = l.CTS_TransResult.dim, r.coordvalue = l.CTS_TransResult.Coordinate;
            }

            t(r);
          }, i);
        },
        xmltoJson: function xmltoJson(e) {
          var t = {};

          if (1 == e.nodeType) {
            if (e.attributes.length > 0) {
              t.attributes = {};

              for (var i = 0; i < e.attributes.length; i++) {
                var r = e.attributes.item(i);
                t.attributes[r.nodeName] = r.nodeValue;
              }
            }
          } else 3 == e.nodeType && (t = e.nodeValue);

          if (e.hasChildNodes()) for (var n = 0; n < e.childNodes.length; n++) {
            var o = e.childNodes.item(n),
                a = o.nodeName.replace("ows:", "");
            if (void 0 === t[a = a.replace("#", "")]) t[a] = this.xmltoJson(o);else {
              if (void 0 === t[a].push) {
                var s = t[a];
                t[a] = [], t[a].push(s);
              }

              t[a].push(this.xmltoJson(o));
            }
          }
          return t;
        },
        AffineTransform: function AffineTransform(e, t, i) {
          var r = this.url;
          GeoGlobe.Util.applyDefaults(e, {
            SERVICE: "CTS",
            REQUEST: "AffineTransform"
          }), i || (i = function i() {
            this.failFn(e.REQUEST);
          }), GeoGlobe.loadURL(r, e, this, function (i) {
            if ("xml" == e.FORMAT) {
              var r = {},
                  n = i.responseXML;
              GeoGlobe.Function.bind(this.xmltoJson, this);
              var o = this.xmltoJson(n);
              r.attributes = o.CTS_AffineTransResult["cts:Coordinate"].attributes.dim;

              for (var a = o.CTS_AffineTransResult["cts:Coordinate"].text.split(","), s = [], x = 0; x < a.length; x++) {
                s.push(a[x]);
              }

              r.coordvalue = s;
            } else if ("json" == e.FORMAT) {
              r = {}, o = i.responseText;
              var l = new GeoGlobe.Format.JSON().read(o);
              r.attributes = l.CTS_AffineTransResult.dim, r.coordvalue = l.CTS_AffineTransResult.Coordinate;
            }

            t(r);
          }, i);
        },
        CLASS_NAME: "GeoGlobe.Service.CTS"
      }), GeoGlobe.Service.WMS = GeoGlobe.Class4OL(GeoGlobe.Service, {
        initialize: function initialize(e, t, i) {
          GeoGlobe.Service.prototype.initialize.apply(this, arguments);
        },
        getCapabilities: function getCapabilities(e, t) {
          var i = this.url,
              r = {
            REQUEST: "GetCapabilities",
            SERVICE: "WMS"
          };
          t || (t = function t() {
            this.failFn(r.REQUEST);
          }), GeoGlobe.loadURL(i, r, this, function (t) {
            var i = t.responseXML;
            GeoGlobe.Function.bind(this.xmlToJson, this);
            var r,
                n = this.xmlToJson(i),
                o = {},
                a = n.WMT_MS_Capabilities,
                s = a.Capability.Layer.Layer,
                x = a.Capability.Request;
            r = s.length ? s[0] : s, o.version = a.attributes.version, o.format = x.GetMap.Format[1].text, o.layer = r.Title.text, o.bbox = r.BoundingBox.attributes.SRS, o.maxExtent = a.Capability.Layer.LatLonBoundingBox.attributes, e(o, n);
          }, t);
        },
        isExist: function isExist() {
          var e = !1,
              t = this.url;
          return GeoGlobe.Request.GET({
            url: t,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WMS"
            },
            scope: this,
            async: !1,
            success: function success() {
              e = !0;
            }
          }), e;
        },
        xmlToJson: function xmlToJson(e) {
          var t = {};

          if (1 == e.nodeType) {
            if (e.attributes.length > 0) {
              t.attributes = {};

              for (var i = 0; i < e.attributes.length; i++) {
                var r = e.attributes.item(i);
                t.attributes[r.nodeName] = r.nodeValue;
              }
            }
          } else 3 == e.nodeType && (t = e.nodeValue);

          if (e.hasChildNodes()) for (var n = 0; n < e.childNodes.length; n++) {
            var o = e.childNodes.item(n),
                a = o.nodeName.replace("ows:", "");
            if (void 0 === t[a = a.replace("#", "")]) t[a] = this.xmlToJson(o);else {
              if (void 0 === t[a].push) {
                var s = t[a];
                t[a] = [], t[a].push(s);
              }

              t[a].push(this.xmlToJson(o));
            }
          }
          return t;
        },
        getMap: function getMap(e) {
          this.url;
          var t = {};
          return e.layers && (t.LAYERS = e.layers), e.format && (t.FORMAT = e.format), e.bbox && (t.BBOX = "{bbox-epsg-3857}"), e.width && (t.WIDTH = e.width), e.height && (t.HEIGHT = e.height), e.version && (t.VERSION = e.version), e.SRS && (t.SRS = e.SRS), GeoGlobe.Util.applyDefaults(t, {
            service: "WMS",
            request: "GetMap",
            TRANSPARENT: !0
          }), this.urlAppend(this.url, this.getParameterString(t || {}));
        },
        getParameterString: function getParameterString(e) {
          var t = [];

          for (var i in e) {
            var r = e[i];

            if (null != r && "function" != typeof r) {
              var n;

              if ("object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(r) && r.constructor == Array) {
                for (var o, a = [], s = 0, x = r.length; s < x; s++) {
                  o = r[s], a.push(encodeURIComponent(null == o ? "" : o));
                }

                n = a.join(",");
              } else n = r;

              t.push(encodeURIComponent(i) + "=" + n);
            }
          }

          return t.join("&");
        },
        urlAppend: function urlAppend(e, t) {
          var i = e;

          if (t) {
            var r = (e + " ").split(/[?&]/);
            i += " " === r.pop() ? t : r.length ? "&" + t : "?" + t;
          }

          return i;
        },
        CLASS_NAME: "GeoGlobe.Service.WMS"
      }), GeoGlobe.Service.WMTS = GeoGlobe.Class4OL(GeoGlobe.Service, {
        initialize: function initialize(e, t, i) {
          GeoGlobe.Service.prototype.initialize.apply(this, arguments);
        },
        getCapabilities: function getCapabilities(e, t) {
          var i = this.url,
              r = {
            REQUEST: "GetCapabilities",
            SERVICE: "WMTS"
          };
          t || (t = function t() {
            this.failFn(r.REQUEST);
          }), GeoGlobe.loadURL(i, r, this, function (t) {
            var i = t.responseXML;
            GeoGlobe.Function.bind(this.xmlToJson, this);
            var r = this.xmlToJson(i),
                n = r.Capabilities,
                o = {},
                a = n.Contents.Layer;
            a = a.length ? a[0] : a, o.version = n.attributes.version;
            var s = n.Contents;
            o.layer = a.Title.text, o.LayerIdentifier = a.Identifier.text, o.StyleIdentifier = a.Style.Identifier.text, o.MatrixSet = a.TileMatrixSetLink[0].TileMatrixSet.text, o.Format = a.Format[1].text, o.Bounding = a.BoundingBox;
            var x = "",
                l = s.TileMatrixSet[0].TileMatrix;
            if (l.length > 0) for (var c = 0, u = l.length; c < u && c != u; c++) {
              x += l[c].ScaleDenominator.text + ",";
            }
            o.Scales = x.substr(0, x.length - 1), o.zoomOffset = l[0].Identifier.text, e(o, r);
          }, t);
        },
        xmlToJson: function xmlToJson(e) {
          var t = {};

          if (1 == e.nodeType) {
            if (e.attributes.length > 0) {
              t.attributes = {};

              for (var i = 0; i < e.attributes.length; i++) {
                var r = e.attributes.item(i);
                t.attributes[r.nodeName] = r.nodeValue;
              }
            }
          } else 3 == e.nodeType && (t = e.nodeValue);

          if (e.hasChildNodes()) for (var n = 0; n < e.childNodes.length; n++) {
            var o = e.childNodes.item(n),
                a = o.nodeName.replace("ows:", "");
            if (void 0 === t[a = a.replace("#", "")]) t[a] = this.xmlToJson(o);else {
              if (void 0 === t[a].push) {
                var s = t[a];
                t[a] = [], t[a].push(s);
              }

              t[a].push(this.xmlToJson(o));
            }
          }
          return t;
        },
        isExist: function isExist() {
          var e = !1,
              t = this.url;
          return GeoGlobe.Request.GET({
            url: t,
            params: {
              REQUEST: "GetCapabilities",
              SERVICE: "WMTS"
            },
            scope: this,
            async: !1,
            success: function success() {
              e = !0;
            }
          }), e;
        },
        getTile: function getTile(e) {
          var t = {};
          return e.layer && (t.LAYER = e.layer), e.format && (t.FORMAT = e.format), e.tileMatrixSet && (t.TILEMATRIXSET = e.tileMatrixSet), e.TILEMATRIX && (t.TILEMATRIX = e.TILEMATRIX), e.TILEROW && (t.TILEROW = e.TILEROW), e.TILECOL && (t.TILECOL = e.TILECOL), e.version && (t.VERSION = e.version), e.style && (t.STYLE = e.style), GeoGlobe.Util.applyDefaults(t, {
            service: "WMTS",
            request: "GetTile"
          }), this.urlAppend(this.url, this.getParameterString(t || {}));
        },
        getParameterString: function getParameterString(e) {
          var t = [];

          for (var i in e) {
            var r = e[i];

            if (null != r && "function" != typeof r) {
              var n;

              if ("object" == _babel_runtime_corejs2_helpers_typeof__WEBPACK_IMPORTED_MODULE_11___default()(r) && r.constructor == Array) {
                for (var o, a = [], s = 0, x = r.length; s < x; s++) {
                  o = r[s], a.push(encodeURIComponent(null == o ? "" : o));
                }

                n = a.join(",");
              } else n = r;

              t.push(encodeURIComponent(i) + "=" + n);
            }
          }

          return t.join("&");
        },
        urlAppend: function urlAppend(e, t) {
          var i = e;

          if (t) {
            var r = (e + " ").split(/[?&]/);
            i += " " === r.pop() ? t : r.length ? "&" + t : "?" + t;
          }

          return i;
        },
        getCapabilitiesForRest: function getCapabilitiesForRest(e, t) {
          var i = this.url;
          i.match(/\/$/) || (i += "/"), i += "1.0.0/WMTSCapabilities.xml", t || (t = function t() {
            this.failFn("GetCapabilities");
          }), GeoGlobe.loadURL(i, null, this, function (t) {
            e(t);
          }, t);
        },
        getTileForRest: function getTileForRest(e) {
          var t = e.layer,
              i = e.style,
              r = e.tileMatrixSet,
              n = e.tileMatrix,
              o = e.tileRow,
              a = e.tileCol,
              s = null,
              x = e.format ? e.format : "image/png";
          s || (s = {
            "image/png": "png",
            "image/png8": "png",
            "image/png24": "png",
            "image/png32": "png",
            png: "png",
            "image/jpeg": "jpg",
            "image/jpg": "jpg",
            jpeg: "jpg",
            jpg: "jpg"
          }[x] || x.split("/").pop());
          var l = t + "/" + i + "/" + r + "/" + n + "/" + o + "/" + a + "." + s,
              c = this.url;
          return c.match(/\/$/) || (c += "/"), c + l;
        },
        CLASS_NAME: "GeoGlobe.Service.WMTS"
      }), GeoGlobe.Analysis.BufferAnalysis = GeoGlobe.Class4OL({
        url: null,
        type: 1,
        accuracy: 32,
        initialize: function initialize(e, t) {
          this.url = e, GeoGlobe.Util.extend(this, t);
        },
        _buildPostXML: function _buildPostXML(e, t) {
          return '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><wps:Execute service="WPS" version="1.0.0" xmlns:gml="http://www.opengis.net/gml" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 ../wpsExecute_request.xsd"><ows:Identifier>Buffer</ows:Identifier><wps:DataInputs><wps:Input><ows:Identifier>InputPolygon</ows:Identifier><wps:Data><wps:ComplexData schema="http://foo.bar/MyComplexValueSchema.xsd" mimeType="text/xml" encoding="UTF-8">' + new GeoGlobe.Format.GML().write(e) + "</wps:ComplexData></wps:Data></wps:Input><wps:Input><ows:Identifier>BufferDistance</ows:Identifier><wps:Data><wps:LiteralData>" + t + "</wps:LiteralData></wps:Data></wps:Input><wps:Input><ows:Identifier>BufferType</ows:Identifier><wps:Data><wps:LiteralData>" + this.type + "</wps:LiteralData></wps:Data></wps:Input><wps:Input><ows:Identifier>BufferAccuracy</ows:Identifier><wps:Data><wps:LiteralData>" + this.accuracy + "</wps:LiteralData></wps:Data></wps:Input></wps:DataInputs><wps:ResponseForm><wps:RawDataOutput><ows:Identifier>BufferedPolygon</ows:Identifier></wps:RawDataOutput></wps:ResponseForm></wps:Execute>";
        },
        _getFeaturesCenter: function _getFeaturesCenter(e) {
          return this._getFeaturesExtent(e).getCenterLonLat();
        },
        _getFeaturesExtent: function _getFeaturesExtent(e) {
          GeoGlobe.Util.isArray(e) || (e = [e]);
          var t = null;

          if (e && e.length > 0) {
            t = new GeoGlobe.LngLatBounds();

            for (var i = null, r = 0, n = e.length; r < n; r++) {
              (i = e[r].geometry) && t.extend(i.getBounds());
            }
          }

          return t;
        },
        startAnalysis: function startAnalysis(e, t, i) {
          var r = new GeoGlobe.Format.GeoJSON().read(e),
              n = this._getFeaturesCenter(r);

          switch (i && -1 != GeoGlobe.Util.indexOf(["m", "km", "degree"], i) || (i = "m"), i) {
            case "km":
              t *= 1e3;

            case "m":
              t = this._meterToDegree(t, n);
          }

          var o = this._buildPostXML(r, t);

          new GeoGlobe.Request.POST({
            url: this.url,
            data: o,
            scope: this,
            success: function success(e) {
              if ("" != e.responseText && null != e.responseText) {
                var t = this._parserResult(e),
                    i = new GeoGlobe.Format.GeoJSON().write(t),
                    r = new GeoGlobe.Format.JSON().read(i);

                this.successFn(r);
              } else this.failFn();
            },
            failure: this.failFn
          });
        },
        _meterToDegree: function _meterToDegree(e, t) {
          var i = t.lat;
          return e * (899e-8 / Math.cos(GeoGlobe.Util.rad(i)));
        },
        successFn: function successFn(e) {},
        failFn: function failFn() {
          alert("缓冲分析操作失败，请检测服务是否正常运行。");
        },
        _parserResult: function _parserResult(e) {
          var t = new GeoGlobe.Format.XML();
          return e.responseXML || (e.responseXML = t.read(e.responseText)), new GeoGlobe.Format.GML().read(e.responseXML);
        },
        CLASS_NAME: "GeoGlobe.Analysis.BufferAnalysis"
      }), GeoGlobe.Analysis.BufferAnalysis.CAP_ROUND = 1, GeoGlobe.Analysis.BufferAnalysis.CAP_BUTT = 2, GeoGlobe.Analysis.BufferAnalysis.CAP_SQUARE = 3, GeoGlobe.Analysis.CoreBufferAnalysis = GeoGlobe.Class({
        url: null,
        type: "intersection",
        _requestStrTemplate: "{'BufferAnalysis': {'service': 'OverlapService','version': '1.0.0','layerName': '${layerName}','bufferRadius': '${bufferRadius}','bufferStyle':'${bufferStyle}','outPutFormat': 'JSON','bufferType': '${bufferType}','isSynchronization': 'true'}}",
        initialize: function initialize(e, t) {
          this.url = e, GeoGlobe.Util.extend(this, t);
        },
        _buildRequestStr: function _buildRequestStr() {
          return GeoGlobe.String.format(this._requestStrTemplate, {
            type: this.type,
            layerName: this.layerName,
            bufferRadius: this.bufferRadius,
            bufferStyle: this.bufferStyle,
            bufferType: this.bufferType
          });
        },
        startAnalysis: function startAnalysis(e) {
          if (this._checkSet()) return !1;

          var t = this._buildRequestStr();

          new GeoGlobe.Request.POST({
            url: this.url,
            data: t,
            scope: this,
            success: function success(t) {
              "" != t.responseText && null != t.responseText ? this.successFn(t, e) : this.failFn();
            },
            failure: this.failFn
          });
        },
        _checkSet: function _checkSet() {
          if (!this.url) return !1;
        },
        successFn: function successFn(e) {},
        failFn: function failFn() {
          alert("缓冲分析操作失败，请检测服务是否正常运行");
        },
        CLASS_NAME: "GeoGlobe.Analysis.CoreBufferAnalysis"
      }), GeoGlobe.Analysis.GetFeature = GeoGlobe.Class4OL({
        url: null,
        type: "intersection",
        _reqStrTemplate: "{'GetFeature': {'service': 'OverlapService','version': '1.0.0','dataSource':'${sourceInputs}','Query': [{'typeName':'${dataInputs}'}],'maxFeatures': '','startPosition': '','outPutFormat': 'GeoJSON','resultType': ''}}",
        initialize: function initialize(e, t) {
          this.url = e, GeoGlobe.Util.extend(this, t);
        },
        _buildReqStr: function _buildReqStr() {
          return GeoGlobe.String.format(this._reqStrTemplate, {
            type: this.type,
            dataInputs: this.typeName,
            sourceInputs: this.DataSource
          });
        },
        startAnalysis: function startAnalysis(e) {
          if (this._checkSet()) return !1;

          var t = this._buildReqStr();

          new GeoGlobe.Request.POST({
            url: this.url,
            data: t,
            scope: this,
            success: function success(e) {
              "" != e.responseText && null != e.responseText ? this.successFn(e) : this.failFn();
            },
            failure: this.failFn
          });
        },
        _checkSet: function _checkSet() {
          if (!this.url) return !1;
        },
        successFn: function successFn(e) {},
        failFn: function failFn() {
          alert("服务请求操作失败，请检测服务是否正常运行。");
        },
        CLASS_NAME: "GeoGlobe.Analysis.GetFeature"
      }), GeoGlobe.Analysis.SpatialAnalysis = GeoGlobe.Class({
        url: null,
        type: "intersection",
        _requestStrTemplate: "{'SpatialAnalysis': {'service': 'OverlapService','version': '1.0.0','origionLayerNames': ['${origionLayerNames}'],'targetLayerNames': ['${targetLayerNames}'],'outPutFormat': 'GeoJSON','operator': '${dataInputs}','isSynchronization': 'true','tolerance': '${tolerance}'}}",
        initialize: function initialize(e, t) {
          this.url = e, GeoGlobe.Util.extend(this, t);
        },
        _buildRequestStr: function _buildRequestStr() {
          return GeoGlobe.String.format(this._requestStrTemplate, {
            type: this.type,
            dataInputs: this.operator,
            origionLayerNames: this.origionLayerNames,
            targetLayerNames: this.targetLayerNames,
            tolerance: this.tolerance
          });
        },
        startAnalysis: function startAnalysis(e) {
          if (this._checkSet()) return !1;

          var t = this._buildRequestStr();

          new GeoGlobe.Request.POST({
            url: this.url,
            data: t,
            scope: this,
            success: function success(t) {
              "" != t.responseText && null != t.responseText ? this.successFn(t, e) : this.failFn();
            },
            failure: this.failFn
          });
        },
        _checkSet: function _checkSet() {
          if (!this.url) return !1;
        },
        successFn: function successFn(e) {},
        failFn: function failFn() {
          alert("叠置分析操作失败，请检测服务是否正常运行。");
        },
        CLASS_NAME: "GeoGlobe.Analysis.SpatialAnalysis"
      });
    }).call(this, __webpack_require__(96)(module), __webpack_require__(238));
  }, function (e, t) {
    var i;

    i = function () {
      return this;
    }();

    try {
      i = i || new Function("return this")();
    } catch (e) {
      "object" == (typeof window === "undefined" ? "undefined" : _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(window)) && (i = window);
    }

    e.exports = i;
  }, function (e, t, i) {
    "use strict";

    var r = i(17),
        n = i(240),
        o = i(62);
    i(65)("search", 1, function (e, t, i, a) {
      return [function (i) {
        var r = e(this),
            n = null == i ? void 0 : i[t];
        return void 0 !== n ? n.call(i, r) : new RegExp(i)[t](String(r));
      }, function (e) {
        var t = a(i, e, this);
        if (t.done) return t.value;
        var s = r(e),
            x = String(this),
            l = s.lastIndex;
        n(l, 0) || (s.lastIndex = 0);
        var c = o(s, x);
        return n(s.lastIndex, l) || (s.lastIndex = l), null === c ? -1 : c.index;
      }];
    });
  }, function (e, t) {
    e.exports = Object.is || function (e, t) {
      return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t;
    };
  }, function (e, t, i) {
    "use strict";

    var r = i(17),
        n = i(19),
        o = i(81),
        a = i(62);
    i(65)("match", 1, function (e, t, i, s) {
      return [function (i) {
        var r = e(this),
            n = null == i ? void 0 : i[t];
        return void 0 !== n ? n.call(i, r) : new RegExp(i)[t](String(r));
      }, function (e) {
        var t = s(i, e, this);
        if (t.done) return t.value;
        var x = r(e),
            l = String(this);
        if (!x.global) return a(x, l);
        var c = x.unicode;
        x.lastIndex = 0;

        for (var u, h = [], f = 0; null !== (u = a(x, l));) {
          var d = String(u[0]);
          h[f] = d, "" === d && (x.lastIndex = o(l, n(x.lastIndex), c)), f++;
        }

        return 0 === f ? null : h;
      }];
    });
  }, function (e, i, r) {
    "use strict";

    r.r(i);
    r(146);

    var n,
        o = r(144),
        a = r.n(o),
        s = (r(79), r(15)),
        x = r.n(s),
        l = (r(195), r(204), r(205), r(206), r(207), r(88), r(9)),
        c = r.n(l),
        u = (r(129), r(132), r(208), r(145)),
        h = r.n(u),
        f = r(8),
        d = r.n(f),
        g = (r(211), r(212), r(85), r(213), r(1)),
        p = r.n(g),
        m = r(2),
        b = r.n(m),
        v = r(68),
        C = r.n(v),
        _ = (r(69), r(42), r(86), r(229), r(230), r(6)),
        A = r.n(_),
        I = (r(84), r(141), r(143), r(0)),
        w = r.n(I),
        G = r(3),
        E = r.n(G),
        S = ["_latelyCollisionStamp", "collisionDetection", "boundBox", "minLevel", "{z}", "{x}", "CutString", "tile", "addCacheTile", "addLabelAndIco", "delaySynchronous", "send", "json", "LabelPoint", "Name", "initTDT", "pois", "createLabel", "_timer2", "coordinate", "font", "px ", "stringTable", "label", "sans-serif", "fontStyle", "bold ", "italic ", "fontColor", "shiningColor", "shiningSize", "backgroundPadding", "eyeOffset", "disableDepthTestDistance", "heightReference", "NONE", "symbolID", "billboard", "{id}", "displayHeight", "alignedAxis", "HeightReference", "priority", "xyz", "debug", "getElementsByClassName", "SceneTransforms", "getLabelReact", "class", "cssText", "position:absolute; top:", "px; left:", "px; width:", "px; height:", "collisionBox", "bindEvent", "moveEnd", "changed", "unbindEvent", "_roadTileset", "entity", "minX", "maxX", "maxY", "option optimize_for = LITE_RUNTIME;", "package GEOPOI;", "enum enumGeometryType {", "ePoint = 0;", "eMultiLineString = 1;", "ePolygon = 2;", "} ;", "message PBPOI{", "required uint64 OID = 1;", "required string Name =2;", "repeated double Coordinates =3 [packed=true];", "required enumGeometryType GeometryType = 4;", "optional int32 Interate = 5;", "optional int32 SymbolID = 10  [default = 0];", "optional double DisplayHeight = 11 [default = 32];", "optional uint32 ShiningColor=12 [default =0];", "optional uint32\tFontNameIndex=13 [default =0];", "optional int32\tFontSize=14 [default =18];", "optional uint32\tFontColor=15 [default =0];", "repeated string s = 1;", "message PBPOITile{", "required int64 Version = 1;", "required StringTable StringTable = 3;", "repeated PBPOI POIS = 4;", "ProtoBuf", "ProtoBuf.js is not present. Please see www/index.html for manual setup instructions.", "loadProto", "GeoPOI.proto", "GEOPOI", "PBPOITile", "enum enumZCoordType {eCloseGround = 0;eCloseSeaSurface = 1;eRelativelyGround = 2;eAbsolute = 3;};", "optional enumZCoordType ZCoordType = 16 [default = eAbsolute];", "message StringTable {", "required int64 TileKey = 2;", "GeoPOI2.proto", "optional int32 Priority = 5;", "repeated int32 Interates =6 [packed=true];", "optional int32 FontStyle=17;", "optional int32 ShiningSize=18;", "GeoPOI3.proto", "decode", "version", "Version", "titleKey", "TileKey", "StringTable", "POIS", "OID", "SymbolID", "DisplayHeight", "ShiningColor", "fontNameIndex", "FontNameIndex", "fontSize", "FontSize", "ZCoordType", "zCoordType", "geometryType", "Coordinates", "interates", "Interates", "FontStyle", "ShiningSize", "GeoWTFS", "hierarchy", "horizontalDistance", "verticalHeight", "spaceDistance", "MVTProvider", "_tileWidth", "tileWidth", "_tileHeight", "_mvtParser", "styleName", "_tileMatrixSetID", "_tileMatrixLabels", "protobuf", "maximumLevel", "_sourceMaxzoom", "sourceMaxzoom", "_symbolVisibility", "enablePickFeatures", "_pickedEvent", "_key", "https://a.tiles.mapbox.com/v4/mapbox.mapbox-streets-v6/{z}/{x}/{y}.vector.pbf?access_token={k}", "createForExtent", "getResolutions", "_pixelRatio", "Default", "Text", "_tileQueueForFeatures", "TileReplacementQueue", "_cacheSize", "getUrlTmpl", "_spriteUrl", "deferCache", "messageCache", "blankCanvas", "OffscreenCanvas", "_useWebWorker", "useWebWorker", "浏览器不支持OffscreenCanvas，无法使用WebWorker", "styleFunc", "getStyleUrl", "sources", "layers", "vector", "_styles", "sprite", "loadJson", ".json", "fetchJson", "stylefunction", ".png", "spriteData", "retry", "_initWorker", "_tileQueueForCanvas", "forEachLoadedTile", "imagery", "loadingImagery", "imageryLayer", "QuadtreeTileLoadState", "LOADING", "readyImagery", "addReference", "ImageryState", "setRequestHeader", "getTileCredits", "head", "yMvt", "zMvt", "replacementNext", "_lastBeforeStartOfFrame", "replacementPrevious", "tail", "\nvar sourceMaxZoom = ", ";\nvar resolutions = [", "];\nvar olmsUrl = '", "_olmsUrl", "';\nvar tileWidth = ", ";\nvar tileHeight = ", ';\nvar window={},document={implementation:{createDocument:function(){}},createElement:function(e){if("CANVAS"===e.toUpperCase())return new OffscreenCanvas(512,512)}};function getJSON(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.setRequestHeader("Accept","application/json"),s.onerror=function(){},s.onload=function(){if(200<=s.status&&s.status<300&&s.response){var e;try{e=JSON.parse(s.response)}catch(e){}t(e)}},s.send()}function getArrayBuffer(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onerror=function(){t(null)},s.onload=function(){var e=s.response;200<=s.status&&s.status<300&&s.response?t(e):t(null)},s.send()}function getImage(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="blob",s.onload=function(){var e=s.response;200<=s.status&&s.status<300&&s.response&&t(e)},s.send()}function clip(e,t){var s=JSON.parse(t),r=s[0],n=s[1],o=s[2];if(o>sourceMaxZoom){var a=[0,0,4096,4096],i=o-sourceMaxZoom,p=r-(r>>i<<i),l=n-(n>>i<<i),y=(a[2]-a[0])/(1<<i),u=[a[0]+p*y,a[1]+l*y,a[0]+(1+p)*y,a[1]+(1+l)*y];e.rect=u}return e}function renderCanvas(e,t){for(var s=window.GeoOLMS.Rbush(9,void 0),r=JSON.parse(t)[2],n=new OffscreenCanvas(512,512),o=n.getContext("2d"),a=e.rect?e.rect:[0,0,4096,4096],i=new window.GeoOLMS.ReplayGroup(0,a,8,window.devicePixelRatio,!0,s,100),p=0;p<e.length;p++)for(var l=e[p],y=styleFunc(l,r)||[],u=0;u<y.length;u++)window.GeoOLMS.renderFeature(i,l,y[u],16);i.finish();var c={},d=[tileWidth/(a[2]-a[0]),0,0,tileHeight/(a[3]-a[1]),-512*a[0]/(a[2]-a[0]),-512*a[1]/(a[3]-a[1])];return i.replay(o,d,0,{},!0,_replays,c),window.GeoOLMS.replayDeclutter(c,o,0,!0),i=null,n}importScripts(olmsUrl);var style,spriteUrl,spriteJson,spriteImage,styleFunc=function(){return[]},_mvtParser=new window.GeoOLMS.MVT,_replays=["Default","Image","Polygon","LineString","Text"];function loadTile(s){if("string"==typeof s.data)getArrayBuffer(s.data,function(e){if(e){var t=renderCanvas(clip(_mvtParser.readFeatures(e),s.key),s.key).transferToImageBitmap();postMessage({type:"loadTile",key:s.key,id:s.id,bitmap:t,features:e},[t,e])}else postMessage({type:"loadTile",key:s.key,id:s.id})});else if(s.data instanceof ArrayBuffer){var e=renderCanvas(clip(_mvtParser.readFeatures(s.data),s.key),s.key).transferToImageBitmap();postMessage({type:"loadTile",key:s.key,id:s.id,bitmap:e,features:s.data},[e,s.data])}}function setStyle(s){style=JSON.parse(s.style),(spriteUrl=s.spriteUrl)?getImage(spriteUrl+".png",function(e){createImageBitmap(e).then(function(e){var t=new OffscreenCanvas(e.width,e.height);t.getContext("2d").drawImage(e,0,0),spriteImage=t,getJSON(spriteUrl+".json",function(e){spriteJson=e,styleFunc=window.GeoOLMS.stylefunction(style,Object.keys(style.sources),resolutions,spriteJson,spriteImage),postMessage({type:"setStyle",id:s.id})})})}):(styleFunc=window.GeoOLMS.stylefunction(style,Object.keys(style.sources),resolutions),postMessage({type:"setStyle",id:s.id}))}function setPaintProperty(e){style=JSON.parse(e.style),styleFunc=window.GeoOLMS.stylefunction(style,Object.keys(style.sources),resolutions,spriteJson,spriteImage),postMessage({type:"setPaintProperty",id:e.id})}function setLayoutProperty(e){style=JSON.parse(e.style),styleFunc=window.GeoOLMS.stylefunction(style,Object.keys(style.sources),resolutions,spriteJson,spriteImage),postMessage({type:"setLayoutProperty",id:e.id})}self.onmessage=function(e){var t=e.data;"loadTile"===t.type?loadTile(t):"setStyle"===t.type?setStyle(t):"setPaintProperty"===t.type?setPaintProperty(t):"setLayoutProperty"===t.type&&setLayoutProperty(t)};\n\t\t', "text/javascript", "createObjectURL", "actors", "Worker ", "stringify", "setStyle", "revokeObjectURL", "bind", "target", "parent", "mapId", "callbackID", "receive", "callbacks", "loadTile", "spriteUrl", "DefferState", "_imageryProvider", "{y}", "{k}", "UNLOADED", "currentActor", "RELOADED", "bitmap", "bitmaprenderer", "transferFromImageBitmap", "DONE", "setPaintProperty", "bad request", "readFeatures", "renderCanvas", "loadArrayBuffer", "xMvt", "markTileRendered", "Rbush", "rect", "devicePixelRatio", "renderFeature", "finish", "replay", "_replays", "mysourceid", "style version 8 required.", "sources does not exist", "projection", "type_", "ends_", "MultiPolygon", "flatCoordinates_", "MultiLineString", "featureToGeoJSON", "id_", "properties_", "WMTS", "GetTile", "getParameterString", "combine", "GetStyle", "_styleName", "geoglobe-olms.js", "extensionsUsed", "KHR_technique_webgl", "extensionsRequired", "KHR_techniques_webgl", "extensions", "shaders", "techniques", "technique", "parameters", "_vtxf_cachedGltf", "execScript", "var ", "invalid index", "getParent", "input", "lazy", "compressionType", "outputBuffer", "outputIndex", "invalid code: ", "invalid distance", "bufferSize", "bufferType", "resize", "invalid inflate mode", "invalid uncompressed block header: length verify", "input buffer is broken", "set", "unknown BTYPE: ", "verify", "unsupported compression method", "invalid fcheck flag:", "fdict flag is not supported", "invalid adler-32 checksum", "LOG2E", "invalid compression method", "Zlib.Inflate", "Zlib.Inflate.prototype.decompress", "Zlib.Inflate.BufferType", "Zlib.Deflate", "Zlib.Deflate.compress", "Zlib.Deflate.prototype.compress", "length", "enumerable", "configurable", "value", "key", "prototype", "this hasn't been initialised - super() hasn't been called", "object", "function", "Super expression must either be null or a function, not ", "create", "setPrototypeOf", "__proto__", "amd", "defineProperty", "defineProperties", "Cartesian2", "Cartesian3", "Cartesian4", "Cartographic", "defined", "DeveloperError", "Ellipsoid", "HeadingPitchRoll", "IntersectionTests", "KeyboardEventModifier", "Matrix3", "Matrix4", "Plane", "Quaternion", "Ray", "Transforms", "CameraEventAggregator", "MapMode2D", "SceneMode", "Math", "scene is required.", "constrainedPitch", "PI_OVER_SIX", "enableInputs", "enableTranslate", "enableRotate", "enableTilt", "enableLook", "inertiaSpin", "inertiaTranslate", "maximumMovementRatio", "bounceAnimationTime", "minimumZoomDistance", "POSITIVE_INFINITY", "LEFT_DRAG", "zoomEventTypes", "WHEEL", "PINCH", "rotateEventTypes", "RIGHT_DRAG", "CTRL", "lookEventTypes", "SHIFT", "minimumPickingTerrainHeight", "_minimumPickingTerrainHeight", "minimumCollisionTerrainHeight", "_minimumCollisionTerrainHeight", "minimumTrackBallHeight", "_minimumTrackBallHeight", "enableCollisionDetection", "_scene", "_globe", "_ellipsoid", "GeoOption", "_aggregator", "GeoCameraEventAggregator", "canvas", "_lastInertiaTranslateMovement", "_lastInertiaTiltMovement", "_tween", "_horizontalRotationAxis", "_tiltCenterMousePosition", "_rotateMousePosition", "_rotateStartPosition", "_strafeStartPosition", "_zoomMouseStart", "_useZoomWorldPosition", "_tiltCVOffMap", "_looking", "_rotating", "_strafing", "_zoomingOnVector", "_rotatingZoom", "_maxCoord", "project", "PI_OVER_TWO", "_zoomFactor", "_rotateFactor", "_maximumRotateRate", "_minimumRotateRate", "_maximumZoomRate", "exp", "equalsEpsilon", "startPosition", "endPosition", "EPSILON14", "getButtonPressTime", "getButtonReleaseTime", "getTime", "active", "getLastMovement", "motion", "multiplyByScalar", "add", "clone", "ZERO", "isButtonDown", "isArray", "eventType", "modifier", "isMoving", "getMovement", "getStartMousePosition", "clamp", "abs", "maximumZoomDistance", "_minimumZoomRate", "autoResetHeadingPitch", "clientHeight", "min", "camera", "heading", "pitch", "roll", "zoomIn", "_adjustOrthographicFrustum", "equals", "SCENE2D", "getPickRay", "origin", "fromElements", "_zoomWorldPosition", "COLUMBUS_VIEW", "height", "position", "normalize", "distance", "getMagnitude", "SCENE3D", "positionCartographic", "dot", "direction", "clientWidth", "subtract", "magnitude", "asin", "sin", "cross", "cos", "right", "setView", "acosClamped", "rotate", "wgs84ToWindowCoordinates", "move", "UNIT_W", "pickEllipsoid", "globe", "pick", "positionWC", "directionWC", "cartographicToCartesian", "flyToBoundingSphere", "HeadingPitchRange", "angleAndHeight", "TWO_PI", "twistRight", "mapMode2D", "IDENTITY", "transform", "enableZoom", "inertiaZoom", "translateEventTypes", "_lastInertiaSpinMovement", "_lastInertiaZoomMovement", "tiltEventTypes", "_translateMousePosition", "_strafeMousePosition", "UNIT_X", "fromPointNormal", "rayPlane", "EPSILON6", "onMap", "mapProjection", "unproject", "eastNorthUpToFixedFrame", "UNIT_SPHERE", "_rotateRateRangeAdjustment", "_setTransform", "UNIT_Z", "maximumRadius", "_tiltCenter", "_projection", "constrainedAxis", "negate", "worldToCameraCoordinatesPoint", "sqrt", "angleBetween", "fromAxisAngle", "fromQuaternion", "multiplyByVector", "_tweens", "anyButtonDown", "contains", "update", "mode", "multiplyByPoint", "geodeticSurfaceNormal", "cartesianToCartographic", "fromCartesian3", "rotateRight", "enableGeoLocateRatate", "rotateUp", "worldToCameraCoordinates", "acos", "mostOrthogonalAxis", "_tiltOnEllipsoid", "EPSILON3", "rayEllipsoid", "getPoint", "start", "grazingAltitudeLocation", "stop", "rightWC", "magnitudeSquared", "look", "frustum", "EPSILON2", "EPSILON4", "lookUp", "_adjustedHeightForTerrain", "getHeight", "max", "ellipsoid", "terrainExaggeration", "reset", "adjustedHeightForTerrain", "isDestroyed", "destroy", "removeAll", "GEOSYMBOL", "assign", "_version", "getPrototypeOf", "call", "rotation", "scale", "Cesium", "GeoSymbol3D", "GEO_VERSION_NUMBER", "$ Cesium Version: 1.63.1 build-20200424180426 $", "Map", "defaultValue", "baseLayerPicker", "animation", "homeButton", "orderIndependentTranslucency", "sceneMode", "scene3DOnly", "maxLevel", "fullscreenButton", "imageryProvider", "SingleTileImageryProvider", "Assets/Images/Earth.jpg", "Viewer", "scene", "WGS84", "log2", "longitude", "toDegrees", "latitude", "geocentricSurfaceNormal", "PI_OVER_THREE", "getCameraOptionsFromMapbox", "zoom", "toRadians", "center", "bearing", "moveBackward", "destination", "orientation", "UNDERGROUND_MODE", "Cesium.js", "(^|(.*?\\/))(", ")(\\?|$)", "getElementsByTagName", "script", "src", "match", "ClockViewModel", "EMPTY_OBJECT", "layoutId", "layout container is required.", "getElement", "viewers", "_viewers", "_clockViewModel", "children", "addEventListener", "container", "options", "log", "getViewerById", "GeoMultiScreenWidget", "left-right", "ImagerySplitDirection", "LEFT", "RIGHT", "top-bottom", "viewer", "_viewer", "_isEnable", "_setSplitDirection", "_slider", "_initSlider", "_splitMode", "_createStyle", "_setSplitMode", "_upateSceneImagerySplitPositionBySlider", "_enableLayers", "enableLayers", "_updateEnableLayers", "toLowerCase", "left", "splitDirection", "_splitDirection", "className", "geo-split-slider", " top-bottom", "imagerySplitMode", "style", "top", "50%", " left-right", "_upDateImagerySplitPositionBySlider", "splitMode", "offsetLeft", "parentElement", "offsetWidth", "imagerySplitPosition", "offsetTop", "offsetHeight", "createElement", "div", "_element", "ScreenSpaceEventHandler", "setInputAction", "ScreenSpaceEventType", "PINCH_START", "MOUSE_MOVE", "GeoSplitSliderWidgetStyle", "type", "\n\n            /* 左右分屏 */\n            .geo-split-slider.left-right{\n                width: 5px;\n                height: 100%;\n                left: 50%;\n                top: 0px;                \n            }\n            \n            .geo-split-slider {\n                position: absolute;\n                background-color: #D3D3D3;/* transparent; */\n                z-index: 9999;\n            }\n            \n            .geo-split-slider.left-right:hover {\n                cursor: ew-resize;\n            }\n            \n            .geo-split-slider.top-bottom:hover{\n                cursor:ns-resize;\n            }\n            /* 上下分屏 */\n            .geo-split-slider.top-bottom{\n                width: 100%;\n                height: 5px;\n                left: 0px;\n                top: 50%;\n            }\n                                \n                    ", "appendChild", "createTextNode", "color", "Color", "RED", "withAlpha", "appearance", "PerInstanceColorAppearance", "handler", "cursor", "crosshair", "_array_", "_labels_", "pickPosition", "fromCartesian", "name", "draw_circle", "GroundPrimitive", "GeometryInstance", "ClassificationType", "BOTH", "push", "primitives", "LEFT_CLICK", "remove", "geometry", "radius", "primitive", "CircleGeometry", "ColorGeometryInstanceAttribute", "左键单击开始绘制，右键单击结束绘制", "15px Microsoft YaHei", "get", "drawEnd", "RIGHT_CLICK", "_circles_", "lastP", "default", "createGeometry", "Entity", "attributes", "values", "callback", "clear", "draw_label", "entities", "DrawHeightWidget", "CHARTREUSE", "lineWidth", "activate", "PolylineCollection", "width", "loop", "material", "uniforms", "fromDegreesArrayHeights", "positions", "16px sans-serif", "fromDegrees", "DrawPointWidget", "pixelSize", "PointPrimitiveCollection", "LabelCollection", "左键单击进行绘制", "draw_point", "DrawPolygonWidget", "count", "_polylines_", "draw_polyline", "_array2_", "点击按钮结束绘制", "DODGERBLUE", "PolygonGeometry", "EllipsoidSurfaceAppearance", "VERTEX_FORMAT", "fromColor", "draw_polygon", "lineColor", "screenToCartesian", "lineClampGround", "VertexFormat", "POSITION_ONLY", "createPrimitive", "degreesArrayHeights", "_labels", "temporaryGroundPrimitive", "fixedGroundPrimitive", "concatGroundPrimitive", "draw_polylineConcat", "concatPrimitive", "temporaryPrimitive", "fixedPrimitive", "lineLoop", "createGroundPrimitive", "draw_polylineTemple", "concat", "finalGroundPrimitive", "finalPrimitive", "1.0.0", "2018.6.19", "xupinhui", "doublearrow", "algorithm", "connPoint", "tempPoint4", "points", "getTempPoint4", "PlotUtils", "isClockWise", "getArrowPoints", "slice", "getBezierPoints", "array2Dto1D", "controlPoint", "polygonalPoint", "fromDegreesArray", "headHeightFactor", "headWidthFactor", "neckHeightFactor", "neckWidthFactor", "getThirdPoint", "HALF_PI", "Constants", "getBaseLength", "reverse", "forEach", "mid", "getArrowHeadPoints", "getArrowBodyPoints", "wholeDistance", "getAngleOfThreePoints", "tailedAttackArrow", "tailWidthFactor", "swallowTailFactor", "swallowTailPnt", "getAttackArrowHeadPoints", "getAttackArrowBodyPoints", "getQBSplinePoints", "headTailFactor", "filter", "iterator", "symbol", "DrawHelper", "_tooltip", "_surfaces", "enhancePrimitives", "_handlersMuted", "mouseOut", "mouseMove", "leftUp", "LEFT_UP", "leftDown", "LEFT_DOWN", "setListener", "muteHandlers", "registerEditableShape", "setHighlighted", "_editMode", "showAt", "点击以编辑图形", "setVisible", "leftClick", "leftDoubleClick", "disableAllEditMode", "editCleanUp", "stopDrawing", "disableAllHighlights", "_highlightedSurface", "setEdited", "_editedSurface", "setEditMode", "Material", "fromType", "ColorType", "PolylineMaterialAppearance", "_granularity", "_height", "_textureRotationAngle", "_createPrimitive", "_outlinePolygon", "setAttribute", "getAttribute", "this.ellipsoid must be defined.", "this.material must be defined.", "granularity", "this.granularity and scene2D/scene3D overrides must be greater than zero.", "show", "_primitive", "textureRotationAngle", "_id", "getGeometry", "Primitive", "asynchronous", "strokeColor", "getOutlineGeometry", "debugShowBoundingVolume", "destroyObject", "setStrokeStyle", "strokeWidth", "extent", "initialiseOptions", "setExtent", "fromPositions", "PolygonOutlineGeometry", "PolygonPrimitive", "isPolygon", "setCustom", "custom", "getCustom", "getPositions", "TailedAttackPrimitive", "setPositions", "PolylinePrimitive", "setWidth", "setGeodesic", "geodesic", "getGeodesic", "PolylineGeometry", "/geomap-api/JsCesuimDemo/resource/images/img_plot/dragIcon.png", "BillboardGroup", "addBillboards", "BillboardCollection", "_orderedBillboards", "createBillboard", "_billboards", "_options", "shiftX", "shiftY", "HorizontalOrigin", "CENTER", "VerticalOrigin", "iconUrl", "screenSpaceCameraController", "dragHandlers", "onDrag", "onDragEnd", "onDragStart", "onDoubleClick", "onClick", "_drawHelper", "tooltip", "insertBillboard", "splice", "addBillboard", "removeLastBillboard", "pop", "updateBillboardsPositions", "getBillboard", "countBillboards", "setOnTop", "startDrawingPolygon", "startDrawingPolyshape", "startDrawingPolyline", "startDrawing", "<p>Click to add first point</p>", "random", ")</p>", "<p>Double click to finish drawing</p>", "LEFT_DOUBLE_CLICK", "cartographicArrayToCartesianArray", "Rectangle", "northwest", "southwest", "startDrawingTailedAttack", "firstTime", "test", "<p>点击以增加第一个控制点</p>", "单击以增加一个新的控制点", "poly", "<p>双击可结束绘制</p>", "startDrawingExtent", "ExtentPrimitive", "<p>拖动改变箭头</p><p>再次点击结束绘制</p>", "setEditable", "_editable", "executeListeners", "dragEnd", "_highlighted", "_strokeColor", "fromCssColorString", "white", "_markers", "onEdited", "EllipsoidGeodesic", "interpolateUsingFraction", "billBoard", "removeBillboard", "index", "Drag to create a new point", "_editMarkers", "_globeClickhandler", "Extent", "cartesianArrayToCartographicArray", "doubleArrow", "拖动以钳击形状", "PolygonPrimitive单击", "拖动以改变形状", "TailedAttackPrimitive单击", "DrawHelperWidget", "Container is required", "./img/glyphicons_242_google_maps.png", "./img/glyphicons_097_vector_path_line.png", "./img/qianjijiantou.png", "./img/glyphicons_095_vector_path_circle.png", "./img/zhijiaojiantou.png", "DIV", "button", "title", "onclick", "SPAN", "IMG", "extentIcon", "点击以绘制直箭头", "extentCreated", "点击以绘制钳击箭头", "polygonCreated", "点击以绘制攻击箭头", "tailedAttackCreated", "clearIcon", "addToolbar", "ClearWidget", "DrawWidget", "west", "east", "south", "north", "EPSILON7", "pow", "toFixed", "twipsy-arrow", "twipsy-inner", "_div", "block", "none", "_title", "undefined", "constructor", "_listeners", "addListener", "getCircleCenterOfThreePoints", "getIntersectPoint", "getAzimuth", "getPointOnLine", "getCubicValue", "getArcPoints", "FITTING_COUNT", "getBisectorNormals", "ZERO_TOLERANCE", "getCurvePoints", "getLeftMostControlPoint", "getRightMostControlPoint", "getNormal", "getBinomialFactor", "getFactorial", "getQuadricBSplineFactor", "MeasureAreaWidget", "tags", "tag", "userAgent", "MeasureAreaWidget_draw_point", "WHITE", "MeasureAreaWidget_draw_label", "measureEnd", "selectFeatures", "indexOf", "polygon", "YELLOW", "delete", "MeasureAreaWidget_draw_polygon", "MeasureAreaWidget_", "area", "km²", "MeasureAzimuthWidget", "hideInfobox", "MeasureAzimuthWidget_result_label", "FILL_AND_OUTLINE", "18px KaiTi", "CADETBLUE", "Cesium3DTileset", "warn", "单击结束绘制", "MeasureAzimuthWidget_draw_polyline", "MeasureAzimuthWidget_", "PolylineArrowMaterialProperty", "AQUA", "_polylineGraphicsAzimuth", "PolylineDashMaterialProperty", "_polylineGraphicsNorth", "polyline", "point", "coordinates", "12px sans-serif", "角度：", "showInfobox", "display", "selectionIndicator", "infoBox", "MeasureCoordinateWidget", "请点击模型", "MeasureCoordinateWidget_", "MeasureCoordinateWidget_draw_coordinate", "MeasureCoordinateWidget_result_label", "经度：", "纬度：", "高程：", "collection", "MeasureDistanceWidget", "MeasureDistanceWidget_draw_point", "flag", "!cartesian", "MeasureDistanceWidget_draw_label", "MeasureDistanceWidget_draw_polyline", "总长：", "_polylineCollection", "_polyline", "_primitives", "MeasureDistanceWidget_result_label", "lerp", "MeasureElevationWidget_", "高程值：", "MeasureElevationWidget", "MeasureElevationWidget_result_label", "MeasureHeightWidget", "MeasureHeightWidget_draw_point", "MeasureHeightWidget_draw_polyline", "GREEN", "水平距离：", "垂直高度：", "空间距离：", "result_labelHeight", "MeasureHeightWidget_result_labelHeight", "MeasureSlopeWidget", "_camera", "_canvas", "_lineColor", "_lineWidth", "text", "MeasureSlopeWidget_draw_polyline", "MeasureSlopeWidget_", "PolylineArrow", "MeasureSlopeWidget_draw_label", "单击开始绘制", "atan", "MeasureSlopeWidget_result_label_", "LabelStyle", "16px KaiTi", "MeasureVolumeWidget", "_designElevation", "_samplingPointsNumber", "samplingPointsNumber", "_depthTestAgainstTerrain", "depthTestAgainstTerrain", "_classificationPrimitives", "_pickedClassificationPrimitives", "_tin", "_minHeight", "_maxHeight", "MeasureVolumeWidget_", "MeasureVolumeWidget_draw_label", "_volumeResult", "then", "addClassificationPrimitive", "addVerticalPolylines", "addBasePolygon", "_classificationPrimitive", "BLUE", "_interpolationPoints", "features", "_verticalPolylines", "MeasureVolumeWidget_draw_vertical_polylines", "properties", "lineString", "bboxPolygon", "randomPoint", "booleanPointInPolygon", "ceil", "FeatureCollection", "Feature", "Point", "apply", "getVolume", "intersection", "vertexSerial", "excavationVolume", "excavationArea", "fillVolume", "fillArea", "baseArea", "volume", "底面积：", "km³", "_resultLabels", "MeasureVolumeWidget_result_label_volume", "getGeometryInstanceAttributes", "_polylines", "toValue", "updateBaseElevation", "updateClassificationPrimitive", "体积：", "updateVerticalPolylinesAndBasePolygon", "ClassificationPrimitive", "MeasureVolumeWidget_draw_base_polygon", "miles", "convex", "steps", "edgeWidth", "edgeColor", "cylinderRadius", "clippingModeUnion", "enabled", "clippingPlanes", "modelEntityClippingPlanes", "computePlanes", "ClippingPlane", "createClippingPlanes", "ClippingPlaneCollection", "GeoFlood", "cartesianArrayHeights", "fragmentShader", "normalMapUrl", "createWaterFace", "creatPrimitive", "Water", "PolygonHierarchy", "VERSION", "parseFloat", "varying vec3 v_positionMC;\n\t\t\t\t\tvarying vec3 v_positionEC;\n\t\t\t\t\tvarying vec2 v_st;\n\t\t\t\t\t\n\t\t\t\t\tvoid main()\n\t\t\t\t\t{\n\t\t\t\t\t\tczm_materialInput materialInput;\n\t\t\t\t\t\tvec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));\n\t\t\t\t\t#ifdef FACE_FORWARD\n\t\t\t\t\t\tnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n\t\t\t\t\t#endif\n\t\t\t\t\t\tmaterialInput.s = v_st.s;\n\t\t\t\t\t\tmaterialInput.st = v_st;\n\t\t\t\t\t\tmaterialInput.str = vec3(v_st, 0.0);\n\t\t\t\t\t\tmaterialInput.normalEC = normalEC;\n\t\t\t\t\t\tmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);\n\t\t\t\t\t\tvec3 positionToEyeEC = -v_positionEC;\n\t\t\t\t\t\tmaterialInput.positionToEyeEC = positionToEyeEC;\n\t\t\t\t\t\tczm_material material = czm_getMaterial(materialInput);\n\t\t\t\t\t#ifdef FLAT\n\t\t\t\t\t\tgl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n\t\t\t\t\t#else\n\t\t\t\t\t\tgl_FragColor = czm_phong(normalize(positionToEyeEC), material", ", czm_lightDirectionEC", "GeoLimitHeight", "labelEntity", "polygonPlaneEntity", "targetHeight", "labelOption", "polygonPlaneOption", "polygonFitOption", "drawLabel", "drawPolygonPlane", "drawPolygonFit", "clearLabelEntity", "labelPosition", "labelText", "labelPixelOffset", "labelFillColor", "labelFont", "18px 楷体", "labelOutlineWidth", "labelStyle", "polygonPlanePerPositionHeight", "polygonPlaneHeight", "polygonPlaneMaterial", "polygonPlaneOutline", "polygonPlaneShow", "clearPolygonFitPrimitive", "polygonFitPositions", "error", "请输入有效的坐标数组！", "polygonFitHeight", "polygonFitExtrudedHeight", "polygonFitColor", "polygonFitPrimitive", "clearAll", "clearPolygonPlaneEntity", "GeoPLSViewShed3D_LIGHTPOINT", "GeoPLSViewShed3D_BOUNDARY", "GeoPLSViewShed3D_DASHLINE", "GeoPLSViewShed3D_ORIENTLINE", "GeoPLSViewShed3D", "groundPrimitives", "_pointLightHeight", "_pointLightPixelSize", "pointLightPixelSize", "_pointLightColor", "pointLightColor", "_boundaryWidth", "boundaryWidth", "_boundaryColor", "boundaryColor", "_orientLineWidth", "orientLineWidth", "_orientLineColor", "orientLineColor", "baseDEMLerpCfg", "_intervalAnalysis", "intervalAnalysis", "_pointLightCamera", "当前Cesium版本：", ",点光源可视域分析暂不支持该版本，请更换至1.50以上的版本!", "firstLeftClick", "shadowMap", "enableGeoPLSViewShed3D", "_baseDEMLerpCfg", "enable", "angleInterval", "timeInterval", "num", "boundaryPositionArr", "startPointLng", "startPointLat", "startPointHgt", "interpolationBase", "visibleColor", "invisibleColor", "单击左键确定可视域位置", "tipPosition", "单击左键固定可视域半径", "fromAlpha", "视高：", "半径：", "BOTTOM", "dynamicAnalysis", "pointLightPosition", "realTimeRadius", "Camera", "context", "size", "_pointLightRadius", "depthBias", "fromRadians", "toCartesian", "sort", "terrainShadows", "ShadowMode", "ENABLED", "GroundPolylineGeometry", "GroundPolylinePrimitive", "showBackground", "backgroundColor", "horizontalOrigin", "verticalOrigin", "pixelOffset", "fillColor", "outlineWidth", "outlineColor", "GeoProfile", "getLerpValue", "lng_origin", "lat_origin", "hgt_origin", "lng_destination", "lat_destination", "hgt_destination", "floor", "samplingNum", "minHeight", "maxHeight", "surfaceLen", "YValueArray", "addLenArray", "lerpCoordnatesArray", "drawChart", "getElementById", "onmousedown", "clientX", "onmousemove", "clientY", "onmouseup", "init", "剖面示意图", "#ccc", "bold", "axis", "<br />", "12%", "#aaa", "solid", "category", "长度(米)", "rgba(0.0, 128, 255, 0.6)", "bolder", "dashed", "高程(米)", "rgba(0.0,255.0,255.0,0.8)", "setOption", "table", "tbody", "innerHTML", "起点经度：", "投影距离：", "起点纬度：", "终点高程：", "地表距离：", "终点经度：", "最高高程：", "straightLen", "最低高程：", "oTable", "originCoordanate", "originImage", "destinationCoordanate", "clearChart", "myChart", "chartContainer", "removeChild", "GEOSIGHTLINE_TIP", "REDLINE", "GREENLINE", "GeoSightline", "observeRelativeHeight", "targetRelativeHeight", "observeImage", "targetImage", "objectsToExclude", "observeActualPosition", "targetActualPosition", "observeEntity", "targetEntity", ",通视分析暂不支持该版本，请更换至1.50以上的版本!", "destroyHandler", "enableGeoSightline", "pickFromRays", "单击左键确定观察点", "drillPickFromRay", "clampToHeight", "_entities", "_array", "GeoSkyLineVolume", "skyLineShow", "skylineShow", "skyLineWidth", "skyLineMaterial", "skyLineVolumeMaterial", "ORANGE", "skyLineVolumeOutLine", "skyLineVolumeOutLineColor", "BLACK", "extrudeRatio", "skyLine", "skyLineVolume", "calculateSkyLinePositions", "data", "skyLinePositions", "drawSkyLine", "skyLineDepthFailMaterial", "drawSkyLineVolume", "cameraPosition", "cameraHeight", "天际线示意图", "宽度(PX)", "line", "getPointDistance", "interNumber", "holeDepth", "arrPoints", "earth", "sideMaterial", "bottomMaterial", "GeoExcavationRegion", "samplingPoints", "_sideMaterial", "_interNumber", "_depth", "depth", "StripeMaterialProperty", "_entitys", "_samplingPoints", "_callback", "_bottomMaterial", "_vPolyline", "_vertexNum", "_excavationRegion", "_arrayVertex", "_outPoints", "GeoTerrainSlope", "shadingUniforms", "updateMaterial", "contour", "spacing", "selectedShading", "slope", "aspect", "elevation", "materials", "elevationRampMaterial", "minimumHeight", "maximumHeight", "contourMaterial", "slopeRampMaterial", "contourUniforms", "ElevationContour", "ElevationRamp", "SlopeRamp", "AspectRamp", "image", "getContext", "createLinearGradient", "#000000", "addColorStop", "#2747E0", "#ffffff", "#0a8d33", "#afdd76", "#f2b602", "#eea706", "#df7702", "#a52100", "#682b06", "#6a2402", "fillStyle", "ElevationColorContour", "max(contourMaterial.alpha, elevationRampMaterial.alpha)", "SlopeColorContour", "max(contourMaterial.alpha, slopeRampMaterial.alpha)", "AspectColorContour", "max(contourMaterial.alpha, aspectRampMaterial.alpha)", "_ready", "dirty", "polys", "isCartesian3Point", "platSlot", "content", "bindTileset", "_tileset", "There is a tileset already, Only One Bind", "platBodyDebug", "tileLoad", "showPlat", "isPlatShow", "isPlatDirty", "clearPlatDirty", "addPlatArea", "platPickPoints", "_show", "getPlatArea", "removePlatArea", "number", "_pickObject", "_tile", "_runtime", "rootNodes", "_boundingVolume", "halfAxes", "matOrg", "createHalfMatrix", "matOrgI", "invertMatrix", "matPrj", "matPrjI", "modelMatrix", "computedMatrix", "initBoxMatrixes", "modelMatrixI", "buffers", "initRegionMatrixes", "initializePlatPoly", "buffer", "byteOffset", "BYTES_PER_ELEMENT", "isPlatPoint", "replaceCommandVertexBuffer", "platPolys", "toPlatBoxModel", "toPlatModel", "_header", "boundingVolume", "region", "toPlatRegionModel", "platModel", "hitPlatTest", "isUsed", "toUnplatModel", "platPickRegion", "initPlatBodyDebug", "createTileRegion", "tileRegion", "initializeCartographicPlatPoly", "initializeCartesianPlatPoly", "divideByScalar", "initCompressPlane", "_orientedBoundingBox", "isPlatPointResult", "mapPosition", "compressPlane", "isPlatPointNoResult", "normal", "isInsidedPoint", "minY", "isEqualFloat", "_nodeCommands", "BufferUsage", "STATIC_DRAW", "command", "_vertexArray", "_attributes", "vertexBuffer", "vertexArrayDestroyable", "_vao", "glDeleteVertexArray", "_cachedGltf", "_gltf", "bufferViews", "getBuffer", "inverse", "setColumn", "createNormal", "createMatrix", "GEOVIEWRADAR_TIP", "GEOVIEWRADAR_LIGHTPOINT", "GeoViewRadar", "pointLightHeight", "boundingSphereStackPartitions", "boundingSphereSlicePartitions", "boundingSphereSubdivisions", ",雷达分析暂不支持该版本，请更换至1.50以上的版本!", "enableGeoViewRadar", "单击左键确定雷达位置", "单击左键固定雷达半径", "ShadowMap", "debugShow", "_boundingSphere", "slicePartitions", "subdivisions", "GEOVIEWSHED3D_TIP", "GEOVIEWSHED3D_SPOTID", "GeoViewShed3D", "spotLightHeight", "_shadowMapNum", "_spotLightCameraList", "expandShadowMapList", "spotLightPosition", "realTimeHeading", "realTimePitching", "realTimeDistance", "realTimeFieldAngle", "单击左键确定观察位置", "单击左键固定视域范围", "analysis", "observePtCoordinate", "frustumLength", "frustumField", "_terrainBias", "enableGeoViewShed3D", "lookAt", "fromHsl", "GeoVolumeCalculate_LINE", "GeoVolumeCalculate_TIP", "GeoVolumeCalculate_GON", "GeoVolumeCalculate_DEGON", "GeoVolumeCalculate_CORAL", "designElevation", "getValue", "shift", "polylineEntity", "volumeAnalysis", "VOLUME", "designPolygonEntity", "CORAL", "polygonEntity", "designPolygonEntity_coral", "左键点击绘制，右键点击结束", "15px sans-serif", "SingleBuildingWidget", "PrimitiveCollection", "CORNFLOWERBLUE", "highlightColor_click", "highlightColor_move", "_INTERSECTED_FLOOR", "_INTERSECTED_FLOOR2", "classificationPrimitiveCollection", "extrudeToBuilding", "_INTERSECTED_FLOOR3", "baseHeight", "sampleHeightSupported", "sampleHeight", "地形还未准备好！", "建筑物基础高度baseHeight是必需的！", "levels", "GEO_SINGLEBUILDING", "callback_click", "_primitiveOptions", "geometryInstances", "toString", "callback_move", "highlightFloor", "deActivate", "removeInputAction", "FlyAround", "_pitch", "_roll", "speed", "_distance", "_positionCartographic", "isFlying", "deltaHeight", "keyEvent", "preRender", "_play", "_heading", "deltaDistance", "play", "参数不可缺省！", "_preRender", "pause", "continue", "removeEventListener", "keydown", "shiftKey", "deltaRadians", "FreeFlight", "direct", "lat", "planePrimitive", "hpRoll", "fromBehind", "fixedFrameTransform", "pathPosition", "SampledPositionProperty", "speedVector", "hpRange", "readyPromise", "activeAnimations", "ModelAnimationLoop", "REPEAT", "boundingSphere", "range", "PolylineGlowMaterialProperty", "PALEGOLDENROD", "addSample", "JulianDate", "now", "headingPitchRollToFixedFrame", "lon", "postRender", "keydownOption", "keyCode", "RouteFly", "cartographicArray", "pointArray", "_stop", "cartesian3", "initialHeading", "differentBearing", "reduceBearing", "HorizontalRadian", "initializationFly", "clock", "startTime", "stopTime", "clockRange", "CLAMPED", "computeCirclularFlight", "addSeconds", "TRANSPARENT", "TimeInterval", "currentTime", "multiplier", "VerticalRadians", "WalkBrowse", "orientationAngle", "point1", "point2", "point3", "bearing1", "bearing2", "moveForward", "lookRight", "GeoCirclePipe", "topRadius", "bottomRadius", "_numSubGeometrys", "numSubGeometrys", "_imageColor", "imageColor", "_rotationXPerFrame", "rotationXPerFrame", "_rotationYPerFrame", "rotationYPerFrame", "rotationZPerFrame", "_instanceName", "endRadian", "_useImage", "_image", "_color", "multiplyByTranslation", "CirclePipeGeometry", "_startRadian", "_endRadian", "MaterialAppearance", "_waitForBuildingMaterial", "onTick", "onFrame", "_circlePipePrimitive", "fromRotationX", "fromRotationY", "fromRotationZ", "_rotationZPerFrame", "multiplyByMatrix3", "Image", "slices", "onMouseEnter", "onMouseLeave", "_onMouseLeftClick", "onMouseLeftClick", "_previousEnter", "_moveHandler", "_clickHandler", "images", "instanceNames", "_circlePipeCollection", "_onMouseEnter", "_onMouseLeave", "instanceName", "_center", "_drawCommandAlpha", "_drawCommandOpaque", "_needUpdate", "_va", "_speed", "_actived", "actived", "_lastTime", "_maxRadius", "_hSpeed", "_life", "_metallicFactor", "metallicFactor", "_roughnessFactor", "roughnessFactor", "_emissiveFactor", "emissiveFactor", "_initTransform", "_modelTransform", "_updateTime", "_updateCommands", "commandList", "vertexArray", "shaderProgram", "owner", "_updateVA", "_time", "getTimestamp", "_updateAlphaCommand", "_updateOpaqueCommand", "DrawCommand", "pass", "renderState", "RenderState", "fromCache", "WebGLConstants", "LEQUAL", "BlendingState", "ALPHA_BLEND", "ShaderProgram", "HDR", "uniformMap", "multiplyTransformation", "viewMatrix", "getRotation", "getMatrix3", "transpose", "Pass", "OPAQUE", "_computeStepCount", "createTypedArray", "ComponentDatatype", "FLOAT", "Buffer", "createVertexBuffer", "createIndexBuffer", "UNSIGNED_SHORT", "VertexArray", "_updateBoundingVolume", "round", "BoundingSphere", "attribute vec3 aPoint;\n", "attribute vec3 aNormal;\n", "attribute float aT;\n", "uniform mat3 u_normalMatrix;\n", "varying vec3 v_normalEC;\n", "varying vec3 v_positionEC;\n", "varying float v_t;\n", "void main(){\n", "   v_positionEC = (czm_modelViewRelativeToEye * vec4(aPoint, 1.0)).xyz;\n", "   v_normalEC = u_normalMatrix * aNormal;\n", "uniform vec4 u_color;\n", "uniform float u_metallicFactor;\n", "uniform float u_roughnessFactor;\n", "uniform vec3 u_emissiveFactor;\n", "float M_PI = 3.141592653589793;\n", "vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) \n", "    return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);\n", "float smithVisibilityG1(float NdotV, float roughness) \n", "    return NdotV / (NdotV * (1.0 - k) + k);\n", "float smithVisibilityGGX(float roughness, float NdotL, float NdotV) \n", "    return smithVisibilityG1(NdotL, roughness) * smithVisibilityG1(NdotV, roughness);\n", "float GGX(float roughness, float NdotH) \n", "    float roughnessSquared = roughness * roughness;\n", "    float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0;\n", "    return roughnessSquared / (M_PI * f * f);\n", "vec3 lambertianDiffuse(vec3 diffuseColor) \n", "    return diffuseColor / M_PI;\n", "vec3 LINEARtoSRGB(vec3 linearIn) \n", "#ifndef HDR \n", "    return pow(linearIn, vec3(1.0/2.2));\n", "#else \n", "#endif \n", "   if (!gl_FrontFacing){\n", "       n = -n;\n", "   }\n", "   vec4 baseColorWithAlpha = u_color;\n", "   if (v_t > 0.5){", "       baseColorWithAlpha.a = (2.0 - v_t * 2.0);\n", "   else{\n", "       baseColorWithAlpha.a = 1.0;\n", "   vec3 baseColor = baseColorWithAlpha.rgb;\n", "   float metalness = clamp(u_metallicFactor, 0.0, 1.0);\n", "   float roughness = clamp(u_roughnessFactor, 0.04, 1.0);\n", "   vec3 lightColor = vec3(1.5, 1.4, 1.2);\n", "   vec3 h = normalize(v + l);\n", "   float NdotL = clamp(dot(n, l), 0.001, 1.0);\n", "   float NdotH = clamp(dot(n, h), 0.0, 1.0);\n", "   float VdotH = clamp(dot(v, h), 0.0, 1.0);\n", "   vec3 f0 = vec3(0.04);\n", "   vec3 diffuseColor = baseColor * (1.0 - metalness) * (1.0 - f0);\n", "   float alpha = roughness * roughness;\n", "   float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n", "   vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));\n", "   vec3 r0 = specularColor.rgb;\n", "   float G = smithVisibilityGGX(alpha, NdotL, NdotV);\n", "   float D = GGX(alpha, NdotH);\n", "   vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);\n", "   vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV);\n", "   vec3 color = NdotL * lightColor * (diffuseContribution + specularContribution);\n", "   color += u_emissiveFactor;\n", "   color = LINEARtoSRGB(color);\n", "   gl_FragColor = vec4(color, baseColorWithAlpha.a);\n", "    float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;\n", "    return linearIn;\n", "   if (v_t > 0.5){discard;}\n", "   vec3 n = normalize(v_normalEC);\n", "   baseColorWithAlpha.a = 1.0;\n", "   vec3 v = -normalize(v_positionEC);\n", "   vec3 l = normalize(czm_sunDirectionEC);\n", "   float LdotH = clamp(dot(l, h), 0.0, 1.0);\n", "   vec3 specularColor = mix(f0, baseColor, metalness);\n", "   vec3 F = fresnelSchlick2(r0, r90, VdotH);\n", "viewer is required.", "DEFAULT_HEIGHT", "_radius", "GeoDynamicCircle", "_classificationType", "classificationType", "DEFAULT_CLASSIFICATION_TYPE", "_bottomEllipse", "_waveEllipse", "_createDynamicCircle", "isShow", "setShow", "_isShow", "setColor", "DEFAULT_COLOR", "ellipse", "getColor", "setRadius", "DEFAULT_RADIUS", "semiMajorAxis", "getRadius", "setCenter", "position is required.", "ImageMaterialProperty", "CallbackProperty", "rgba(255, 255, 255, 1.0)", "rgba(255, 255, 255, 0.0)", "rgba(255, 255, 255, 0.9)", "rgba(255, 255, 255, 0.2)", "clearRect", "beginPath", "arc", "restore", "strokeStyle", "rgb(255, 255, 255)", "setLineDash", "stroke", "center is required.", "_length", "GeoDynamicCylinder", "DEFAULT_LENGTH", "_topRadius", "_bottomRadius", "particlesColor", "DEFAULT_PARTICLES_COLOR", "_cylinderColor", "cylinderColor", "particlesImageUrl", "_cylinderPrimitive", "_createDynamicCylinder", "_particlesPrimitive", "\n                varying vec3 v_positionEC;\n                varying vec3 v_normalEC;\n                varying vec2 v_st;\n                //varying vec4 v_color;\n                //uniform sampler2D u_image;\n                //uniform vec4 u_color;\n                void main()\n                {\n                    float powerRatio = fract(czm_frameNumber / 30.0) + 1.0;\n                    float alpha = pow(1.0 - v_st.t, powerRatio);\n                    vec4 color = vec4(", "red", "green", "blue", "alpha", ");\n                    // gl_FragColor = vec4(u_color.rgb, alpha*u_color.a);\n                    gl_FragColor = vec4(color.rgb, alpha*color.a);\n                }\n                ", "particles primitive", "_particlesImageUrl", "\n            varying vec3 v_positionEC;\n            varying vec3 v_normalEC;\n            varying vec2 v_st;\n            //varying vec4 v_color;\n            //uniform sampler2D u_image;\n            //uniform vec4 u_color;\n            void main()\n            {\n                vec3 positionToEyeEC = -v_positionEC;\n                vec3 normalEC = normalize(v_normalEC);\n                normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n\n                float dt = fract(czm_frameNumber / 90.0);\n                vec2 st = fract(vec2(1.0) + v_st - vec2(dt, dt));\n                //vec4 imageColor = texture2D(u_image, st);\n\n                czm_materialInput materialInput;\n                materialInput.normalEC = normalEC;\n                materialInput.positionToEyeEC = positionToEyeEC;\n                materialInput.st = st;\n                czm_material material = czm_getMaterial(materialInput);\n\n\n                vec3 diffuse = material.diffuse;\n                float alpha = material.alpha;\n\n                //diffuse *= v_color.rgb;\n                //alpha *= v_color.a;\n                \n                vec4 ucolor = vec4(", ");\n                diffuse *= ucolor.rgb;\n                alpha *= ucolor.a;\n\n                 //diffuse *= u_color.rgb;\n                 //alpha *= u_color.a;\n\n                gl_FragColor = vec4(diffuse, alpha * pow(1.0 - v_st.t, 2.0));\n            }\n            ", "\n            attribute vec3 position3DHigh;\n            attribute vec3 position3DLow;\n            attribute vec3 normal;\n            attribute vec2 st;\n            attribute float batchId;\n\n            varying vec3 v_positionEC;\n            varying vec3 v_normalEC;\n            varying vec2 v_st;\n\n            void main()\n            {\n                vec4 p = czm_computePosition();\n\n                v_positionEC = (czm_modelViewRelativeToEye * p).xyz;      // position in eye coordinates\n                v_normalEC = czm_normal * normal;                         // normal in eye coordinates\n                v_st = st;\n\n                gl_Position = czm_modelViewProjectionRelativeToEye * p;\n            }\n            ", "DEFAULT_CYLINDER_COLOR", "GOLD", "GeoHeatMap", "heatmapOptions", "orange", "useEntities", "defaults", "gradient", "maxOpacity", "minOpacity", "_computeBounds", "_getContainer", "width: ", "px; height: ", "body", "_getImageryProvider", "getDataURL", "_rectangle", "_tilingScheme", "WebMercatorTilingScheme", "_mbounds", "_getID", "charAt", "WebMercatorProjection", "wgs84ToMercator", "wgs84ToMercatorBB", "mercatorToWgs84", "mercatorToWgs84BB", "rad2deg", "deg2rad", "mercatorPointToHeatmapPoint", "_xoffset", "_factor", "_spacing", "maxCanvasSize", "minCanvasSize", "setData", "_initBounds", "_setWidthAndHeight", "radiusFactor", "_yoffset", "bounds", "_container", "px; margin: 0px; display: none;", "repaint", "_heatmap", "-hm", "wgs84PointToHeatmapPoint", "_layer", "imageryLayers", "updateLayer", "_renderer", "1.21", "transparent", "addImageryProvider", "url", "url is required.", "_url", "GeoImageCircle", "_ellipse", "_createImageCircle", "TERRAIN", "_position", "_direction", "_baseScale", "_mode", "buildModuleUrl", "_url_1", "urlTop", "explode", "_positions", "_startScale", "_endScale", "_imageSize", "_endColor", "smoking", "life", "_minLife", "_maxLife", "_minSpeed", "_maxSpeed", "_count", "_grow", "grow", "_texture_0", "_texture_1", "_drawCommand", "_pointsArray", "_speedScaleLifeTimesArray", "_preTime", "_loadTexture", "_initFires", "addPosition", "_explode", "_owner", "_fires", "_directionsArray", "frameState", "Resource", "Texture", "fetchImage", "_emissionPosition", "randomBetween", "_growFires", "baseScale", "_updateFire", "_initFire", "_clock", "shouldAnimate", "secondsOfDay", "_updateCommand", "_isCommandReady", "updateNext", "instanceCount", "_updateCommandBoundingVolume", "_updateCommandShaderProgram", "_updateCommandUniforms", "_updateCommandRenderState", "aPosition", "aDirection", "aSpeedScaleLifeTime", "_updateCommandVA", "time", "aTexcoord", "aPlane", "u_startScale", "u_endScale", "u_imageSize", "u_endColor", "u_texture_0", "u_texture_1", "_updateCommandModelMatrix", "attribute vec2 aPlane;\n", "attribute vec4 aDirection;\n", "attribute vec4 aSpeedScaleLifeTime;\n", "attribute vec2 aTexcoord;\n", "uniform float u_endScale;\n", "varying vec3 v_texcoord_0;\n", "varying vec4 v_colorFact;\n", "vec4 computePosition(vec3 position, vec2 plane, vec3 direction, float imageSize, float baseScale, float speed, float time){\n", "   vec3 v = normalize(direction) * speed * time;\n", "   vec4 result = czm_modelView * vec4(v, 1.0);\n", "   result.xy += plane * imageSize * baseScale;\n", "   return result;\n", "void main()\n", "   float speed = aSpeedScaleLifeTime.x;\n", "   float baseScale = aSpeedScaleLifeTime.y;\n", "   float life = aSpeedScaleLifeTime.z;\n", "   baseScale *= mix(u_startScale, u_endScale, t);\n", "   gl_Position = czm_projection * positionEC;\n", "   v_texcoord_0.z = aDirection.w;\n", "   if (t > 0.618){\n", "       v_texIndex = 2.0;\n", "   else if (t > 0.382){\n", "       v_texIndex = 1.0;\n", "       v_texIndex = 0.0;\n", "       v_colorFact = vec4(1.0 - t);\n", "       v_colorFact = mix(u_startColor, u_endColor, t);\n", "uniform sampler2D u_texture_0;\n", "uniform sampler2D u_texture_1;\n", "   int mode = int(v_texcoord_0.z);\n", "   vec4 color = vec4(0.0);\n", "   if (mode == 0){\n", "           color = texture2D(u_texture_1, v_texcoord_0.xy);\n", "           color = texture2D(u_texture_0, v_texcoord_0.xy);\n", "       }\n", "   else if (mode == 1){\n", "       color.rg *= 1.4;\n", "   else if (mode == 2){\n", "       color = v_colorFact;\n", "   if (color.a == 1.0){\n", "       color.a = mc;\n", "       if (color.a > 0.995){\n", "   vec4 fact = czm_gammaCorrect(v_colorFact);\n", "   color *= fact;\n", "   if (color.a < 0.1){discard;}\n", "   gl_FragColor = color;\n", "_normalFact", "_alphaFact", "GeoLineSmokeEffect", "_startColor", "density", "normalFactor", "_smokes", "_needTime", "_door", "_maxNormalFactor", "_minNormalFactor", "_growSmokes", "_initSmokes", "_initSmoke", "multiply", "fromRotationTranslation", "multiplyByPointAsVector", "alphaFact", "normalFact", "_updateSmoke", "_udoor", "TRANSLUCENT", "_updateCommandShaderProgramAlpha", "_updateCommandRepeatVA", "_updateCommandShaderProgramOpaque", "IndexDatatype", "u_startColor", "attribute vec4 aPosition;\n", "uniform vec4 u_endColor;\n", "uniform float u_imageSize;\n", "   vec3 v = position;\n", "   result /= result.w;\n", "   float time = aSpeedScaleLifeTime.w;\n", "   float t = time / life;\n", "   vec4 positionEC = computePosition(aPosition.xyz, aPlane, aDirection.xyz, u_imageSize, baseScale, speed, time);\n", "   v_texcoord_0.xy = aTexcoord;\n", "   v_texcoord_0.z = t;\n", "   color = texture2D(u_texture_0, v_texcoord_0.xy);\n", "   vec4 fact = v_colorFact;\n", "   if (v_texcoord_0.z > 0.9){color.a *= 0.1;}\n", "uniform vec4 u_startColor;\n", "uniform float u_startScale;\n", "   v_colorFact = vec4(mix(u_startColor.rgb, u_endColor.rgb, aPosition.w * (u_startColor.a + u_endColor.a) / 2.0), aPosition.w);\n", "   if (v_texcoord_0.z > 0.9){discard;}\n", "   color = czm_gammaCorrect(color);\n", "playing", "sampleMaxHeight", "sampleMaxPoint", "isParabola", "autoToGround", "_name", "createGuid", "render", "_data", "posititons", "getData", "_createPolylines", "_lines", "duration", "_clearPolylines", "_definitionChanged", "Event", "createPropertyDescriptor", "getType", "getValueOrClonedDefault", "_materialCache", "addMaterial", "GeoOutlineFireEffect", "_fireEffect", "_postProcess", "_assigned", "_depthAttachment", "_clearCommand", "_yPlane", "_zPlane", "_xyRange", "_checkPositionsOrder", "_createGroundTexture", "_createXYPlanes", "_createPostProcess", "_updateAssiged", "_viewMatrix", "_invViewMatrix", "postProcessStages", "useLogDepth", "_createFireEffect", "GeoLineFireEffect", "_computePlane", "_createAssignedFrameBuffer", "drawingBufferWidth", "drawingBufferHeight", "_framebuffer", "PixelFormat", "DEPTH_STENCIL", "PixelDatatype", "UNSIGNED_INT_24_8", "Sampler", "CLAMP_TO_EDGE", "TextureWrap", "TextureMinificationFilter", "NEAREST", "TextureMagnificationFilter", "Framebuffer", "ClearCommand", "addFireEffect", "addSmokeEffect", "_depthStencilTexture", "_view", "passState", "framebuffer", "execute", "uniform mat4 u_nViewMatrix;\n", "uniform int u_count;\n", "uniform vec4 u_planes[", "];\n", "uniform vec4 u_xPlane;\n", "uniform vec4 u_yPlane;\n", "uniform vec4 u_zPlane;\n", "uniform vec2 u_xyRange;\n", "uniform sampler2D colorTexture;\n", "uniform sampler2D depthTexture;\n", "uniform sampler2D u_assignedTexture;\n", "uniform sampler2D u_groundTexture;\n", "varying vec2 v_textureCoordinates;\n", "vec4 toEye(in vec2 uv, in float depth){\n", "    vec2 xy = vec2((uv.x * 2.0 - 1.0),(uv.y * 2.0 - 1.0));\n", "    posInCamera = posInCamera / posInCamera.w;\n", "float getDepth(in vec4 depth){\n", "    float z_window = czm_unpackDepth(depth);\n", "    z_window = czm_reverseLogDepth(z_window);\n", "    float n_range = czm_depthRange.near;\n", "    float f_range = czm_depthRange.far;\n", "    return (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n", "vec2 getGroundTexCoord(in vec3 position){\n", "    float y = czm_planeDistance(u_yPlane, position) / u_xyRange.y;\n", "    return vec2(x * 4.0, y * 4.0);\n", "    vec4 color = texture2D(colorTexture, v_textureCoordinates);\n", "    vec4 currD = texture2D(depthTexture, v_textureCoordinates);\n", "    if(currD.r>=1.0){\n", "        gl_FragColor = color;\n", "        return;\n", "    vec4 assigned = texture2D(u_assignedTexture, v_textureCoordinates);\n", "    }\n", "    float depth = getDepth(currD);\n", "    float z = czm_planeDistance(u_zPlane, position.xyz);\n", "    vec2 gndTexCoord = getGroundTexCoord(position.xyz);\n", "    vec4 colorGround = texture2D(u_groundTexture, gndTexCoord);\n", "    for (int i = 0; i < ", "        if (i >= u_count){\n", "            break;\n", "        }\n", "        float d0 = czm_planeDistance(u_planes[i], position.xyz);\n", "        float d2 = czm_planeDistance(u_planes[i+2], position.xyz);\n", "        if (d0 > 0.0 && d1 > 0.0 && d2 > 0.0){\n", "           if (z < -1000.0){break;}\n", "           break;\n", "PostProcessStage", "_groundTexture", "_xPlane", "urlGround", "function ", "join", "l-1", ";while(l<=h){                var m=(l+h)>>>1,x=a[m]", ";if(x===y){return m}else if(x<=y){", ";var p=c(x,y);if(p===0){return m}else if(p<=0){", ";if(", "){i=m;", "l=m+1}else{h=m-1}", "h=m-1}else{l=m+1}", "return -1};", "return i};", "c(x,y)", "function dispatchBsearch", "(a,y,c,l,h){                    if(typeof(c)==='function'){                        return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)                    }else{                        return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)                    }}                    return dispatchBsearch", "triangulation", "binary-search-bounds", "stars", "edges", "removeTriangle", "addTriangle", "flip", "opposite", "cells", "neighbor", "flags", "next", "locate", "boundary", "constraint", "two-sum", "twoProduct", "fastTwoSum", "robust-subtract", "robustSubtract", "robust-sum", "linearExpansionSum", "two-product", "robust-scale", "scaleLinearExpansion", "sum(", "split", "substr", "prod(", "scale(", "prod(m", "var w", "=scale(w", "[0]);", "var p=", "sum", "diff", "slow", "function testInSphere(", ":return o", "robust-in-sphere", "delaunay", "isConstraint", "),prod(-", "Exact", "){var p=", ",n=", ",d=sub(p,n);        return d[d.length-1];};return ", "prod", "function getOrientation(", "case ", "}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return getOrientation", "robust-orientation", "monotone", "idx", "lowerIds", "upperIds", "monotoneTriangulate", "cdt2d", "delaunayRefine", "classifyFaces", "map", "exterior", "infinity", "_points", "peekTransform", "anyDirection", "take", "_rings", "_find", "_fixups", "_checkCell", "triangulate", "GeoPolygonClippingEffect", "_clipResult", "clipResult", "_maskColor", "maskColor", "_polygons", "_areaCamera", "isTriangle", "Hide", "Show", "_enabled", "_disableAll", "_initialize", "_parseTriangles", "_translateToTriangles", "_adjustOrder", "_parsePolygons", "adjustOrder", "_enableAll", "_enableHideAll", "_enableShowAll", "_disableHideAll", "_disableShowAll", "_enablePrimitiveCollection", "_enableGlobe", "skyAtmosphere", "_disablePrimitiveCollection", "_disableGlobe", "skyBox", "_enablePrimitive", "_disablePrimitive", "_enableEntityCluster", "Model", "_enableModel", "EntityCluster", "_disableEntityCluster", "_disableModel", "_pointCollection", "_pointPrimitives", "_generateClipPlanes", "_clearSurfaceClippingPlanes", "_tilesInvalidated", "_tileProvider", "_clippingPlanes", "_surfaceShaderSet", "_resetSurfaceShaderSet", "_shadersByTexturesFlags", "_calcClipCenter", "fromTranslation", "_shouldRegenerateShaders", "_generateHidePlanes", "_generateShowPlanes", "_generateSourcePlanes", "GRAY", "mularea", "clip", "clippingFunctionMularea", "float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)\n", "    vec3 clipNormal = vec3(0.0);\n", "    float clipAmount = 0.0;\n", "    float pixelWidth = czm_metersPerPixel(position);\n", "    bool bDiscard = true;\n", "    {\n", "        vec4 clippingPlane = getClippingPlane(clippingPlanes, j, clippingPlanesMatrix);\n", "        clipNormal = clippingPlane.xyz;\n", "        clipPosition = -clippingPlane.w * clipNormal;\n", "        float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n", "        if (amount > 0.0)\n", "        {\n", "           j++;\n", "           clippingPlane = getClippingPlane(clippingPlanes, j, clippingPlanesMatrix);\n", "           clipNormal = clippingPlane.xyz;\n", "           clipPosition = -clippingPlane.w * clipNormal;\n", "           clipAmount = czm_branchFreeTernary(j == 0, amount, min(amount, clipAmount));\n", "           if (amount > 0.0)\n", "           {\n", "               clippingPlane = getClippingPlane(clippingPlanes, j, clippingPlanesMatrix);\n", "               clipNormal = clippingPlane.xyz;\n", "               amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n", "               clipAmount = czm_branchFreeTernary(j == 0, amount, min(amount, clipAmount));\n", "               {\n", "                   bDiscard = false;\n", "                   break;\n", "               }\n", "           }\n", "    if (bDiscard) {\n", "        discard;\n", "getClipAndStyleCodeForMulArea", "uniform sampler2D gltf_clippingPlanes; \n", "uniform mat4 gltf_clippingPlanesMatrix; \n", "uniform vec4 gltf_clippingPlanesEdgeStyle; \n", "{ \n", "    gltf_clip_main(); \n", "); \n", "    clippingPlanesEdgeColor.rgb = ", ".rgb; \n", "    float clippingPlanesEdgeWidth = ", "    if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) \n", "        gl_FragColor = clippingPlanesEdgeColor;\n", "    } \n", "} \n", "    vec3 clipPosition = vec3(0.0);\n", "        int j = i;\n", "        clipAmount = czm_branchFreeTernary(j == 0, amount, min(amount, clipAmount));\n", "           amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n", "               j++;\n", "               if (amount > 0.0)\n", "        //break;\n", "void main() \n", "    float clipDistance = clip(gl_FragCoord, ", ".a; \n", "    if (clipDistance < 0.0) \n", "    { \n", "peekSource", "addOutlinePosition", "_outline", "tileUnload", "raiseEvent", "_statistics", "decrementLoadCounts", "numberOfTilesWithContentReady", "unloadContent", "_enableTileset", "_root", "_removeEffectFromTileset", "_cache", "trim", "unloadTiles", "_unloadTileCallback", "GeoRadarScan", "DEFAULT_LINE_WIDTH", "_sectorColor", "_sectorWidth", "sectorWidth", "DEFAULT_SECTOR_WIDTH", "_createRadarScan", "_updateBorderMaterial", "_updateSectorMaterial", "_radarScanEntity", "_borderEntity", "setLineColor", "getLineColor", "setsectorColor", "radar", "rgba(", "rgba(255,255,255,1)", "255,255,255", ",1)", "moveTo", "lineTo", "fill", "_createCanvas", "GeoScanCircleEffect", "_repeat", "repeat", "_scanCirclePostProcess", "_scanAperturePostProcess", "_normal", "_setLife", "_setTime", "_color0", "_finishedEvent", "_updatePostProcesses", "_finish", "inverseViewMatrix", "_updateScanAperturePostProcess", "_updateScanCirclePostProcess", "uniform mat4 u_invViewMatrix;\n", "uniform vec3 u_center;\n", "   vec4 color = texture2D(colorTexture, v_textureCoordinates);\n", "   vec4 currD = texture2D(depthTexture, v_textureCoordinates);\n", "   if(currD.r >= 1.0){\n", "       return;\n", "   float zd = czm_unpackDepth(currD);\n", "   zd = czm_reverseLogDepth(zd);\n", "   zd = (2.0 * zd - czm_depthRange.near - czm_depthRange.far) / (czm_depthRange.far - czm_depthRange.near);\n", "   vec2 xy = vec2((v_textureCoordinates.x * 2.0 - 1.0), (v_textureCoordinates.y * 2.0 - 1.0));\n", "   vec4 position = czm_inverseProjection * vec4(xy, zd, 1.0);\n", "   float z = 0.0;\n", "   if (all(notEqual(n, b))){\n", "       vec3 nc = cross(b, n);\n", "       b = normalize(b);\n", "       z = dot(b, position.xyz) - dot(b, u_center);\n", "   float d5 = u_param0.z * u_param0.y;\n", "   float hw = u_param0.w / 2.0;\n", "   float hw5 = hw * 12.0;\n", "   float hd = dot(u_normal, position.xyz) - dot(u_normal, u_center);\n", "   if (z < (d5 + hw5) && z > (d5 - hw5)){\n", "       color.rgb = mix(color.rgb, u_color.rgb, smoothstep(0.0, 1.0, z1));\n", "       float r = abs(z - d);\n", "       if (u_color.a < 1.0){\n", "           z = (r - hw * u_color.a) / (hw * (1.0 - u_color.a));\n", "       color.rgb = mix(color.rgb, u_color.rgb, clamp(al * ((hw * u_color.a > r) ? 1.0 : exp(-(pow(z, 2.27)))), 0.0, 1.0));\n", "invViewMatrix", "uniform vec3 u_normal;\n", "uniform vec4 u_param0;\n", "   position /= position.w;\n", "   float t = (u_param0.y > u_param0.x) ? u_param0.x : u_param0.y;\n", "   vec3 b = normalize(position.xyz - u_center);\n", "       b = cross(n, nc);\n", "   float d = u_param0.z * t;\n", "       float r = abs(z - d5);\n", "       color.rgb *= ((r / hw5) > 0.5) ? 0.996 : 1.018;\n", "       color.rgb += vec3(0.01) * u_color.rgb;\n", "   if (z < (d + hw) && z > (d - hw)){\n", "       r = 1.5707963 * r / hw;\n", "       color.rgb = color.rgb * vec3(0.618) + u_color.rgb * vec3(cos(r) * 0.382);\n", "GeoScanRingEffect", "longest", "_textureUrl", "_scanPostProcess", "_texture", "_param1", "_param3", "_loading", "_checkVisible", "_updateTexture", "_udpateParams", "setTextureUrl", "_param0", "_param4", "_longest", "only-if-cache", "_param2", "uniform vec4 u_param3;\n", "       gl_FragColor = color;\n", "   position = u_invViewMatrix * position;\n", "   float z0 = dot(u_param3.xyz, position.xyz) + u_param3.w;\n", "   if(z0 < -800.0 || z0 > 800.0){\n", "   vec3 v = u_param3.xyz * z0;\n", "   vec3 p = position.xyz - v;\n", "   float z2 = distance(u_param0.xyz, p);\n", "   float z3 = u_param2.x * 0.75;\n", "   if(z2 < z3){\n", "   gl_FragColor = mix(color, u_color, (z2 - z3) * 0.8 / (u_param2.x * 0.25));\n", "uniform vec4 u_param2;\n", "uniform vec4 u_param4;\n", "   float z0 = dot(u_param0.xyz, position.xyz) + u_param0.w;\n", "   if(z0 < 0.0){\n", "   float z1 = dot(u_param1.xyz, position.xyz) + u_param1.w;\n", "   if(z1 < 0.0){\n", "   float z2 = dot(u_param2.xyz, position.xyz) + u_param2.w;\n", "   if(z2 < 0.0){\n", "   float z3 = dot(u_param3.xyz, position.xyz) + u_param3.w;\n", "   if(z3 < 0.0){\n", "   float z4 = dot(u_param4.xyz, position.xyz) + u_param4.w;\n", "   float a = max(sColor.r, max(sColor.g, sColor.b));\n", "   gl_FragColor = mix(color, sColor, a * 0.8);\n", "_angle", "angle", "emit", "velocity", "imageSize", "_particleLife", "particleLife", "_emissionRate", "emissionRate", "_lifetime", "lifetime", "_system", "_initializeParticleSystem", "_reset", "_particles", "_billboard", "_particlePool", "VisualSenseStyleCondition", "_fieldName", "_fieldValue", "fieldValue", "minValue", "_maxValue", "maxValue", "_topic", "topic", "vec4(", "_makeColorShader", "if (visualSenseStyle_enabledMixColor == 1.0) { \n", "gl_FragColor *= ", "_minValue", " == ", ".0) \n", "if (", ".0 && ", "_makeLuminanceShader", ") \n", " >= ", " && ", "mixedColor", "luminanceAtZenith", "getLuminanceByProperty", "true", "getProperty", "ConditionParser", "parse", "fieldName", "_useElevation", "bloom", "glowOnly", "contrast", "brightness", "sigma", "stepSize", "isSelected", "GeoVisualSenseStyle", "_enabledMixedColor", "_enabledLuminanceAtZenith", "_enabledBloom", "_bloomStep", "_map", "_conditionParser", "_mixedColorConditions", "parseLuminanceAtZenith", "lightBand", "_enabledLightBand", "_luminanceAtZenithConditions", "conditions", "makeFragmentColorShader", "if (visualSenseStyle_enabledLuminanceAtZenith == 1.0) { \n", "luminanceValue = heightLightValue; \n", "makeShader", "makeLightBandShader", "float vtxf_a13 = fract(czm_frameNumber / 360.0);\n", "float vtxf_h = clamp(v_elevationPos.z / 300.0, 0.0, 1.0);\n", "vtxf_a13 = abs(vtxf_a13 - 0.5) * 2.0;\n", "float vtxf_diff = step(0.005, abs(vtxf_h - vtxf_a13));\n", "gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - vtxf_diff);\n", "GeoWind", "level", "rectangle", "velocityScale", "particleMultiplier", "maxWindIntensity", "colors", "#00ffff", "#64f0ff", "#87e1ff", "#a0d0ff", "#c6adff", "#d49bff", "#ec6dff", "#ff1edb", "canvasContext", "_initWindy", "Windy", "header", "parameterCategory", "parameterNumber", "2,2", "2,3", "lo1", "la1", "refTime", "setHours", "getHours", "forecastTime", "interpolate", "release", "randomize", "substring", "indexFor", "rgba(0, 0, 0, 0.97)", "age", "globalCompositeOperation", "fillRect", "timer", "field", "_locationCoordinate", "_size", "_bounds", "tan", "_getLevel", "_getCenterPoint", "_calculateBounds", "1.16", "windy", "GEO_OVERVIEW_ICO_LAYER", "GEO_OVERVIWE_ICO_ID", "map2DOptions", "raster", "http://t3.tianditu.com/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&LAYER=vec&TILEMATRIXSET=c&FORMAT=tiles&VERSION=1.0.0&STYLE=default&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e90d56e5a09d1767899ad45846b0cefd", "tdt_layer_overview", "visible", "movingTargetIco", "movingTargetIcoSize", "movingTargetZoomLevel", "_isReady", "modelType", "ROAM", "_initOverview", "geo-cesium-viewer-overview", "layout", "toLocaleUpperCase", "startsWith", "bottom", "5px", "absolute", "_bindEvent", "map2D", "load", "loadImage", "addImage", "addSource", "addLayer", "updateAimingRect", "_unbindEvent", "GEOOVERVIEW_3D_RENDER_EVENT", "getMap2D", "getMap2DLayer", "getLayer", "addMap2DLayer", "removeLayer", "getMap2DSource", "addMap2DSource", "removeMap2DSource", "_latelyUpdateStamp", "_modelType", "getSource", "setLayoutProperty", "icon-rotate", "setModel", "setScalable", "boolean", "GeoOverviewWidget", "CustomGeographicTilingScheme", "_resolutions", "resolutions", "_maximumLevel", "_origin", "_fullExtent", "fullExtent", "_dataRectangle", "_matrixWidth", "_matrixHeight", "LN2", "_topTileExtent", "_numberOfLevelZeroTilesY", "_centerPoint", "_proposalHeight", "GeographicTilingScheme", "_numberOfLevelZeroTilesX", "getNumberOfXTilesAtLevel", "CustomWebMercatorTilingScheme", "matrixWidth", "numberOfLevelZeroTilesX", "numberOfLevelZeroTilesY", "_rectangleSouthwestInMeters", "rectangleSouthwestInMeters", "rectangleNortheastInMeters", "_rectangleNortheastInMeters", "getNumberOfYTilesAtLevel", "LineString", "GeoGeodesic", "radiansToDegrees", "degreesToRadians", "atan2", "_destination", "along", "_bearing", "geoTranslateByDistance", "GeoGeographicTilingScheme", "GeographicProjection", "when", "defer", "ToolManager", "_tools", "ModifyTerrainTool", "vertices", "heights", "mtHeight", "mtType", "fromKML", "resolve", "lenght", "timeStamp", "getTileDataAvailable", "_errorEvent", "_credit", "string", "Credit", "heightMapWidth", "heightMapHeight", "_subdomains", "firstRequestUrl", "{s}", "sTag", "_firstRequest", "layerName", "&Styles=&Format=image/mpt", "pngOnly", "maxTerrainLevel", "_maxTerrainLevel", "setFormatMPT", "_urlTemplate", "request=GetMap&Version=1.3.0&Service=WMS&v=1&CRS=EPSG:4326&bbox={south},{west},{north},{east}&height={height}&width={width}&optimizedOnly={optimizedOnly}&layers=", "_format", "_levelZeroMaximumGeometricError", "TerrainProvider", "_workerPool", "_pendingRequests", "_requestsCache", "_requestsCacheKeys", "errorEvent", "GeoSkylineTerrainProvider", "_geometricErrorFactor", "mpt", "png", "_isMPT", "replace", "requestFactorForLevel", "_requestGridSize", "getRequestBaseTerrainUrl", "getRequestElevationLayer", "getRequestUrl", "tilingScheme", "tileXYToNativeRectangle", "{north}", "{west}", "{east}", "{optimizedOnly}", "{height}", "isT_Inside_E", "DEGREES_PER_RADIAN", "isT_Intersects_E", "RADIANS_PER_DEGREE", "refreshElevationLayer", "_surface", "_levelZeroTiles", "findDirectParent", "freeResources", "isTileAvailable", "tileXYToRectangle", "terrainData", "_childTileMask", "markTileAsUnavailable", "requestTileGeometryBuffers", "requestedRectangle", "layer", "requestTileHeightBuffer", "all", "myReject", "reject", "isFloor", "arrayToHeightmapTerrainData", "otherwise", "_allElevationLayers", "each", "requestElevationLayerTileGeometry", "requestBaseTerrainTileGeometry", "nullTolerance", "nullValueNumber", "polygonVerticesX", "polygonVerticesY", "mergeBuffers", "offset", "tolerance", "_buffer", "Request", "subdomains", "/SG", "/Elevation", "format", "image/png", "image/mpt", "_modifyTerrainObjects", "modelFloorBestLevel", "NoMerge", "_selectedTiles", "NoFloor", "rootFloorRectangle", "getHRMTFP", "_model", "hasOwnProperty", "dataLoaded", "fetchArrayBuffer", "workerFinished", "queueWorkItem", "rejected", "extractTileHeightBuffer", "message", "HeightmapTerrainData", "workerPath is required.", "_workerPath", "workerPath", "_poolSize", "poolSize", "_workers", "_defered", "jobQueueSize", "onWorkerError", "workerId", "deferedId", "postMessage", "trimPool", "timerId", "terminate", "onWorkerMessage", "options.urls is required.", "_dataType", "dataType", "GeoTerrainProvider", "INT", "_tileType", "tileType", "HEIGHTMAP", "_urls", "urls", "_urls_length", "_url_i", "_url_step", "_readyPromise", "credit", "_heightmapWidth", "_heightmapHeight", "getEstimatedLevelZeroGeometricErrorForAHeightmap", "_opacity", "opacity", "_maxExtent", "maxExtent", "_topLevel", "_bottomLevel", "bottomLevel", "ready", "requestTileGeometry must not be called before ready returns true.", "promise", "requestTileGeometry", "&y=", "&l=", "_proxy", "getURL", "QUANTIZED_MESH", "_terrainDataStructure", "_skirtHeight", "getLevelMaximumGeometricError", "getvHeightBuffer", "_vHeightBuffer", "transformBuffer", "setInt8", "requestFunction", "GET", "open", "responseType", "arraybuffer", "async", "RequestScheduler", "request", "readyState", "status", "response", "byteLength", "Inflate", "decompress", "_rectangles", "getFloat64", "getFloat32", "subarray", "getUint32", "createTypedArrayFromArrayBuffer", "getUint8", "OCT_VERTEX_NORMALS", "_requestVertexNormals", "WATER_MASK", "METADATA", "_requestMetadata", "available", "endY", "EPSILON5", "fromRectangle", "_tileCredits", "int", "float", "quantized-mesh", "heightmap", "tileset", "source", "autoActivate", "originalColor", "fromBytes", "moveColor", "selectedFeature", "groundPrimitiveCollection", "geojson", "activateAction", "_seletedEvent", "XMLHttpRequest", "withCredentials", "Accept", "application/json", "onerror", "statusText", "onload", "_loadGroundPrimitives", "data的类型不被支持!", "Polygon", "类型，该类型不被支持！", "GEO_MONOMER_FEATURE", "reloadGeoJSON", "_loadGeoJSON", "description", "isContaintFeature", "drillPick", "selectedColor", "deactivateAction", "Cesium3DTilesetMonomer", "EasingFunction", "Intersect", "OrthographicFrustum", "PerspectiveFrustum", "CameraFlightPath", "_transform", "_invTransform", "_actualTransform", "_transformChanged", "isTDT", "_positionWC", "_directionWC", "_up", "_upWC", "_right", "aspectRatio", "fov", "defaultMoveAmount", "defaultLookAmount", "defaultRotateAmount", "defaultZoomAmount", "maximumZoomFactor", "_moveEnd", "_changed", "_changedDirection", "_changedFrustum", "percentageChanged", "_modeChanged", "_max2Dfrustum", "_suspendTerrainAdjustment", "DEFAULT_VIEW_RECTANGLE", "DEFAULT_VIEW_FACTOR", "TRANSFORM_2D", "TRANSFORM_2D_INVERSE", "PI_OVER_FOUR", "computeView", "_updateCameraChanged", "numberOfListeners", "_changedPosition", "fovy", "_adjustHeightForTerrain", "basisTo2D", "getColumn", "EPSILON10", "inverseTransformation", "_actualInvTransform", "_rightWC", "zeroToTwoPi", "MORPHING", "_moveStart", "mode is required.", "An OrthographicOffCenterFrustum is required in 2D.", "A PerspectiveFrustum or OrthographicFrustum is required in 3D and Columbus view", "The camera frustum is expected to be orthographic for 2D camera control.", "tileProvider", "_tileLoadQueueHigh", "_tileLoadQueueMedium", "_tileLoadQueueLow", "_debug", "tilesWaitingForChildren", "pickPositionWorldCoordinates", "ROTATE", "fromHeadingPitchRoll", "endTransform", "getRectangleCameraCoordinates", "flyHome", "completeMorph", "flyTo", "cartesian is required.", "worldToCameraCoordinatesVector", "cameraToWorldCoordinates", "cameraToWorldCoordinatesPoint", "cameraToWorldCoordinatesVector", "direction is required.", "moveUp", "moveDown", "moveRight", "lookLeft", "lookDown", "twistLeft", "axis is required.", "rotateDown", "rotateLeft", "zoomOut", "offset is required", "lookAt is not supported while morphing.", "UNIT_Y", "transform is required", "lookAtTransform is not supported while morphing.", "setEndPoints", "_offCenterFrustum", "MAX_VALUE", "rectangle is required", "windowPosition is required.", "near", "distanceToBoundingSphere", "boundingSphere is required.", "getPixelSize", "drawingBufferHeight is required.", "getPixelDimensions", "EXPONENTIAL_OUT", "createCorrectPositionTween", "duration is required.", "_currentFlight", "destination is required.", "cancelFlight", "convert", "complete", "cancel", "pitchAdjustHeight", "flyOverLongitude", "flyOverLongitudeWeight", "easingFunction", "createTween", "DEFAULT_OFFSET", "viewBoundingSphere is not supported while morphing.", "fromCartesian4", "radii", "multiplyComponents", "oneOverRadii", "upWC", "computeVisibility", "fromCartographicArray", "EPSILON9", "switchToPerspectiveFrustum", "switchToOrthographicFrustum", "projectionMatrix", "CameraEventType", "_update", "_isDown", "_movement", "prevAngle", "_buttonsDown", "position1", "_eventHandler", "PINCH_END", "PINCH_MOVE", "_eventStartPosition", "_pressTime", "_releaseTime", "RIGHT_DOWN", "RIGHT_UP", "MIDDLE_DRAG", "MIDDLE_UP", "_lastMovement", "valid", "canvas is required.", "_currentMousePosition", "ALT", "type is required.", "GeoCloudPrimitive", "speedScale", "_base", "_step", "_gamma", "gamma", "_isInverse", "_animationMatrix", "_colorTexture_0", "_requestUrl", "_requestCommand", "../../../resource/images/10.jpg", "_url_0", "_createTexture", "_context", "RGBA", "CloudPrimitive fetchImage is failed!", "passes", "_isTexturesReady", "_timeoutWorkerCommand", "_updateAnimationMatrix", "_createCommandByWorker", "var PI_OVER_TWO = PI / 2.0;\n", "onmessage = function (e) {\n", "   var xCount = params.xCount;\n", "   if (!xCount){\n", "   var yCount = params.yCount;\n", "   if (!yCount){\n", "       postMessage({error:true});\n", "   var radius = params.radius;\n", "   if (!radius){\n", "   var pointsCount = (xCount + 1) * (yCount - 1) + 2 * xCount;\n", "   var pointsArray = new Float32Array(3 * pointsCount);\n", "   var texcoordArray = new Float32Array(2 * pointsCount);\n", "   var ptIndex = 0;\n", "   var tcIndex = 0;\n", "   var hFovRad = PI * 2.0;\n", "   var angleH = 0;\n", "   var angelV = 0;\n", "   var stepVRad = vFovRad / yCount;\n", "   for (var F = 0; F < xCount; F++){\n", "       pointsArray[ptIndex ++] = 0.0;\n", "       pointsArray[ptIndex ++] = -radius;\n", "       texcoordArray[tcIndex ++] = F / xCount + 1 / (xCount * 2.0);\n", "       texcoordArray[tcIndex ++] = 0.0;\n", "   var startHRad = -PI;\n", "   var startVRad = -PI_OVER_TWO + stepVRad;\n", "   for (var U = 0; U < yCount - 1; U++) {\n", "       angelV = startVRad + U * stepVRad;\n", "           angleH = startHRad + F * stepHRad;\n", "           pointsArray[ptIndex ++] = radius * Math.cos(angelV) * Math.cos(angleH);\n", "           pointsArray[ptIndex ++] = radius * Math.cos(angelV) * Math.sin(angleH);\n", "           pointsArray[ptIndex ++] = radius * Math.sin(angelV);\n", "           tt = 0.5 + angleH / hFovRad;\n", "           texcoordArray[tcIndex ++] = tt;\n", "           texcoordArray[tcIndex ++] = (U + 1) / yCount;\n", "       pointsArray[ptIndex ++] = radius;\n", "       texcoordArray[tcIndex ++] = 1.0;\n", "   var faceIndexCount = (xCount * (yCount - 2) + xCount) * 6;\n", "   var faceIndex = 0;\n", "   for (var F = 0; F < xCount; F ++){\n", "       faceIndexArray[faceIndex ++] = F + xCount + 1;\n", "       faceIndexArray[faceIndex ++] = F + xCount;\n", "   for (var U = 0; U < yCount - 2; U ++){\n", "           faceIndexArray[faceIndex ++] = F + xCount + U * (xCount + 1);\n", "           faceIndexArray[faceIndex ++] = F + xCount + 1 + U * (xCount + 1);\n", "           faceIndexArray[faceIndex ++] = F + xCount + 1 + (U + 1) * (xCount + 1);\n", "           faceIndexArray[faceIndex ++] = F + xCount + (U + 1) * (xCount + 1);\n", "       faceIndexArray[faceIndex ++] = F + xCount + (yCount - 2) * (xCount + 1);\n", "   postMessage({\n", "       faceIndexArray: faceIndexArray\n", "};\n", "onerror = function(error){\n", "application/javascript", "onmessage", "faceIndexArray", "PrimitiveType", "TRIANGLES", "FUNC_ADD", "ONE", "_createShaderProgram", "cull", "_card", "        attribute vec3 a_position;\n        attribute vec2 a_texcoord_0;\n        uniform mat4 u_animationMatrix;\n        varying vec2 v_texcoord_0;\n        ", "        void main()\n        {\n            vec4 p = vec4(a_position, 1.0);\n            v_texcoord_0 = a_texcoord_0;\n            gl_Position = czm_modelViewProjection * u_animationMatrix * p;\n        }\n        ", "        uniform sampler2D u_colorTexture_0;\n        uniform vec4 u_gamma;\n        varying vec2 v_texcoord_0;\n        ", "        float computeW(vec4 color){\n            float w = color.w;\n            if (w == 1.0){\n                //w = min(min(color.r, color.g), color.b);\n                w = sin(color.r * color.g * color.b * 1.5707963);\n            }\n            w = pow(w, u_gamma.w * 10.0);\n            return w;\n        }\n        void main()\n        {\n            vec4 color_0 = texture2D(u_colorTexture_0, v_texcoord_0);\n            color_0.w = computeW(color_0);\n            color_0.rgb *= u_gamma.xyz;\n            gl_FragColor = color_0;\n        }\n        ", "topCylinderColor", "bottomCylinderColor", "createPrestrainPrimitive", "ellipseAppearance", "prestrainEllipsePrimitive", "trackedEntity", "pointEntity", "ellipsePrimitive", "cylinderPrimitive", "MIDDLE_DOWN", "prestrainCylinderPrimitive", "removeById", "EllipseGeometry", "VERTEXT_FORMAT", "POSITION_AND_NORMAL", "data:image/png;base64, ", "varying vec3 v_positionMC;\n\t\t\t\tvarying vec3 v_positionEC;\n\t\t\t\tvarying vec2 v_st;\n\t\t\t\t\n\t\t\t\tvoid main()\n\t\t\t\t{\n\t\t\t\t\tczm_materialInput materialInput;\n\t\t\t\t\tvec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));\n\t\t\t\t#ifdef FACE_FORWARD\n\t\t\t\t\tnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n\t\t\t\t#endif\n\t\t\t\t\tmaterialInput.s = v_st.s;\n\t\t\t\t\tmaterialInput.st = v_st;\n\t\t\t\t\tmaterialInput.str = vec3(v_st, 0.0);\n\t\t\t\t\tmaterialInput.normalEC = normalEC;\n\t\t\t\t\tmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);\n\t\t\t\t\tvec3 positionToEyeEC = -v_positionEC;\n\t\t\t\t\tmaterialInput.positionToEyeEC = positionToEyeEC;\n\t\t\t\t\tczm_material material = czm_getMaterial(materialInput);\n\t\t\t\t#ifdef FLAT\n\t\t\t\t\tgl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n\t\t\t\t#else\n\t\t\t\t\tgl_FragColor = czm_phong(normalize(positionToEyeEC), material", ");\n\t\t\t\t\tif(gl_FragColor.r==1.0&&gl_FragColor.g==1.0&&gl_FragColor.b==1.0&&gl_FragColor.a==1.0){\n\t\t\t\t\t\tgl_FragColor.a = 0.0;\n\t\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\t}\n\t\t\t", "GeoLocateRatate", "GeoRayPick", "isOnly", "BoundingRectangle", "View", "deferred", "doPick", "minimumRadius", "postProcess", "offscreen", "_frameState", "brdfLutGenerator", "_brdfLutGenerator", "environmentMap", "_cubeMap", "morphTime", "cullingVolume", "computeCullingVolume", "_terrainExaggeration", "minimumDisableDepthTestDistance", "_minimumDisableDepthTestDistance", "invertClassification", "_sunColor", "_actualInvertClassificationColor", "isTranslucencySupported", "invertClassificationColor", "maximumScreenSpaceError", "CullingVolume", "_environmentState", "skyAtmosphereCommand", "skyBoxCommand", "sunDrawCommand", "sunComputeCommand", "moonCommand", "_depthPlane", "renderTranslucentDepthForPick", "planes", "originalFramebuffer", "useGlobeDepthFramebuffer", "viewport", "_hdr", "globeDepth", "useOIT", "usePostProcess", "useInvertClassification", "PickDepth", "derivedCommands", "picking", "depthOnlyCommand", "EPSILON12", "mergeSort", "updateCamera", "far", "updateFrustum", "ENVIRONMENT", "clearGlobeDepth", "_depthClearCommand", "frustumCommandsList", "opaqueFrustumNearOffset", "stencilBuffer", "updatePass", "commands", "GLOBE", "indices", "executeCopyDepth", "TERRAIN_CLASSIFICATION", "CLASSIFICATION", "CESIUM_3D_TILE", "CESIUM_3D_TILE_CLASSIFICATION", "depthTexture", "useDepthPicking", "createPotentiallyVisibleSet", "executeCopyColor", "uniformState", "_pickOffscreenView", "pickFramebuffer", "begin", "disableThisFrame", "pickEx", "end", "_defaultView", "endFrame", "_pick", "ray", "getDepthEx", "readPixels", "unpack", "getPixelsEx", "PickFramebuffer", "watchPlane", "_picker", "Scene", "_originalDestory", "_originalUpdate", "_updatePicked", "_content", "computeVisibilityWithPlaneMask", "MASK_INDETERMINATE", "MASK_OUTSIDE", "_visibility_Old", "visibility", "computeIntersectionWithBoundingVolume", "clippingPlanesOriginMatrix", "_isClipped", "INSIDE", "OUTSIDE", "Cesium3DTile", "projectTo2D", "_boundingVolume2D", "MASK_INSIDE", "INTERSECTING", "COLUMN0ROW0", "COLUMN0ROW1", "COLUMN0ROW2", "COLUMN1ROW0", "COLUMN2ROW0", "COLUMN2ROW2", "_videoProject", "_context2D", "_width", "_dirty", "_sampler", "_updateSize", "videoWidth", "timeupdate", "_getCurrentTexture", "_createSampler", "_source", "params", "UNSIGNED_BYTE", "copyFrom", "_recreateParseCanvas", "drawImage", "nextPowerOfTwo", "_readVideoFramePixels", "videoHeight", "_videoProjection", "_uniforms", "_postStage", "_videoTexture", "_addEvent", "_removeEvent", "_createEvent", "_FS_Cone", "uniform float mixNum;\n", "uniform float videoDistance;\n", "uniform sampler2D videoTexture;\n", "uniform mat4 videoMapMatrix;\n", "uniform mat4 videoViewMatrix;\n", "uniform vec3 videoMapPosition;\n", "    vec4 posInCamera =czm_inverseProjection * vec4(xy, depth, 1.0);\n", "    return posInCamera;\n", "bool videoVisibility(sampler2D shadowMap, vec4 position){\n", "    vec4 positionEC = toEye(v_textureCoordinates, depth);\n", "    if (any(lessThan(videoPosition.xyz, vec3(0.0))) || any(greaterThan(videoPosition.xyz, vec3(1.0))))\n", "    bool visibility = videoVisibility(videoMapTexture, videoPosition);\n", "    if(visibility){\n", "        vec4 videoColor = texture2D(videoTexture, videoPosition.xy);\n", "    }else{\n", "_FS_Cone_Fill", "uniform sampler2D videoMapTexture;\n", "uniform vec4 u_videoColor;\n", "    float visibility = step(position.z, texture2D(shadowMap, position.xy).r);\n", "    return (visibility == 1.0);\n", "    vec4 videoPosition = videoMapMatrix * positionEC;\n", "    videoPosition /= videoPosition.w;\n", "        vec4 videoColor = u_videoColor;\n", "        gl_FragColor = vec4(mix(color.rgb, videoColor.rgb, mixNum), 1.0);\n", "_FS_Sphere", "        mat4 viewScene = videoViewMatrix;\n", "            gl_FragColor = color;\n", "            return;\n", "_FS_Sphere_Fill", "        vec4 positionWC = viewScene * positionEC;\n", "        depth = length(videoMapPosition - positionWC.xyz);\n", "_updateState", "_getCurrentVideoTexture", "fillVideo", "_createUniforms", "_createPostStage", "_clearData", "_addToScene", "_removeFromScene", "mixFactor", "_getShadowMapTexture", "_getShadowMapMatrix", "_getViewMatrix", "hitlineColor", "fovDistance", "_updatePost", "hitlineType", "_MinFovX", "_maxFovX", "_minFovY", "_MinFovY", "_maxFovY", "_MaxFovY", "_minFovDistance", "_MinFovDistance", "_maxFovDistance", "_MaxFovDistance", "_minHeading", "_MinHeading", "_maxHeading", "_MaxHeading", "_MinPitch", "_maxPitch", "_MaxPitch", "_minRoll", "_MinRoll", "_MaxRoll", "_minSegmentCount", "_maxSegmentCount", "_MaxSegmentCount", "_isInvSphere", "_isSphereType", "_minFovX", "_minPitch", "_maxRoll", "_MinSegmentCount", "clampSegmentCount", "clampFovY", "clampFovDistance", "clampHeading", "clampPitch", "_videoProjectionCamera", "_fovY", "_fovDistance", "_mixFactor", "_vs", "_fs", "_renderState", "_segmentCount", "_isNeedRecreate", "_visibly", "_shaderProgram", "minFovX", "config", "maxFovX", "maxFovY", "minFovDistance", "minHeading", "maxHeading", "minPitch", "maxPitch", "minRoll", "maxRoll", "minSegmentCount", "maxSegmentCount", "isSphereType", "isInvSphere", "fovX!", "minFovY", "fovY!", "maxFovDistance", "fovDistance!", "heading!", "roll!", "mixFactor!", "_render", "render!", "_getProjectionCamera", "update!", "_updatePosition", "_tryCreate", "_updateFovX", "fovX", "_updateFovY", "_updatePitch", "_updateRoll", "_updateParams", "fovY", "_computeTransformInv", "_computeTransform!", "_createVS", "uniform vec4 uDiffuseColor;\n", "varying vec4 vColor;\n", "varying vec4 clip_vertex;\n", "varying float fWindowZ;\n", "varying vec3 normal_vertex;\n", "vec4 depthClampFarPlane(vec4 clipPos)\n", "    fWindowZ = (0.5 * (clipPos.z / clipPos.w) + 0.5) * clipPos.w;\n", "    return clipPos;\n", "    vec4 pos = czm_modelViewProjection * vec4(aPosition.xyz, 1.0);\n", "    gl_Position = depthClampFarPlane(pos);\n", "    vColor = uDiffuseColor;\n", "    normal_vertex = aPosition.xyz;\n", "#extension GL_EXT_frag_depth : enable\n", "#extension GL_OES_standard_derivatives : enable\n", "    gl_FragDepthEXT = min(fWindowZ * gl_FragCoord.w, 1.0);\n", "    vec3 normal = cross(vec3(dFdx(normal_vertex.x), dFdx(normal_vertex.y), dFdx(normal_vertex.z)), vec3(dFdy(normal_vertex.x), dFdy(normal_vertex.y), dFdy(normal_vertex.z)));\n", "    normal = normalize(normal);\n", "    vec3 lightDirection = normalize(czm_sunPositionWC - vec3(eyePosition));\n", "    vec4 diffuse = vColor * LIGHT_COLOR * nDotL;\n", "    vec4 ambient = vColor * LIGHT_COLOR;\n", "    gl_FragColor = clamp(diffuse + ambient, vec4(0.0), vec4(1.0));\n", "_createVACone", "_fovX", "_createBoundingVolume", "_createVASphere", "_createVA!", "_createVASphereInv", "_createRenderState", "_createAttributes", "_createShadeProgram", "_createShadeProgram!", "_createFS", "fromCornerPoints", "_updateBoundingVolume!", "_computeTransform", "_recreate!", "LINES", "_shadowMap", "_updateMatrixEvent", "_updateEvent", "_createFramebufferDepth", "_textureSize", "_passes", "_shadowMapTexture", "_clearFramebuffer", "_clearPassState", "_destroyShadowFramebuffer", "_colorAttachment", "build", "_updateOri", "_sceneCamera", "_lightCamera", "videoProjectionMaps", "deactive", "updateFovX", "updateFovY", "updateFovDistance", "_shadowMapMatrix", "_nextName", "VideoProjection", "_instance", "nextName", "GeoVideoProjection", "_videoProjectionConfig", "_videoProjectionFrustumPrimitive", "_videoTextureSource", "_videoProjectionPostRender", "_videoShadowMap", "_fillVideo", "DeveloperErrorEvent", "AddToSceneEvent", "RemoveFromSceneEvent", "UpdateMatrixEvent", "UpdateEvent", "_rebuildPostRender", "CreationEvent", "clampFovX", "_createShadowMap", "_destroyPostStage", "updatePosition", "_updateFovDistance", "_updateHeading", "updateHeadingPitchRoll", "updatePitch", "updateRoll", "clampRoll", "updateHitLineColor", "updateMixFactor", "updateLineWidth", "isSamedName", "isSelf", "updateHeading", "_type", "visibly", "_removeAllEvent", "_projectBackFaces", "noname!", "_findByName", "destoryObject", "getByIndex", "removeByIndex", "removeByName", "getNames", "_videoProjectionCollection", "_renderVideoProjectionCollection", "destroyAllVideoProjections", "destroyVideoProjection", "createVideoProjection", "getVideoProjectionCollection", "_clearPassesVideoProjectionCommands", "_executePassesVideoProjectionCommands", "_executeVideoProjectionCommand", "shadows", "castCommands", "projectBackFaces", "outOfView", "shadowMapCullingVolume", "_updateVideoProjectionCommand", "castShadows", "isVisible", "originalCommand", "createCastDerivedCommand", "_updateVideoProjectionCommands", "debugCommandFilter", "logDepth", "hdr", "debugShowCommands", "shadowState", "receiveShadows", "receiveCommand", "oit", "lightShadowMaps", "lightShadowsEnabled", "pickId", "DerivedCommand", "pickOnly", "createDepthOnlyDerivedCommand", "createHdrCommand", "createReceiveDerivedCommand", "isSupported", "createDerivedCommands", "GeoViewAnalyse", "_stage", "filterFar", "inputPreviousStageTexture", "_textureCache", "outputTexture", "_index", "pixelFormat", "forcePowerOfTwo", "pixelDatatype", "clearColor", "initStage", "uniform float u_filterFar;\n", "vec4 clipToEye(vec2 uv, float depth)\n", "   vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));\n", "   vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0);\n", "   posEC = posEC / posEC.w;\n", "void main() {\n", "    hsb.g = clamp(hsb.g + 0.03, 0.0, 1.0);\n", "    if (hsb.b > 0.5)\n", "        hsb.b = clamp(hsb.b + 0.01, 0.0, 1.0);\n", "        hsb.b = clamp(hsb.b - 0.02, 0.0, 1.0);\n", "    float depth = czm_readDepth(depthTexture, v_textureCoordinates);\n", "    vec4 posInCamera = clipToEye(v_textureCoordinates, depth);\n", "    float d = length(posInCamera.xyz);\n", "    if (d > u_filterFar)\n", "       gl_FragColor = vec4(mix(color.rgb, vec3(0.8, 0.85, 0.85), 1.0 - u_filterFar / d), 1.0);\n", "    else \n", "       gl_FragColor = vec4(color.rgb, 1.0);\n", "enableFilter", "_isSupported", "GeoWalkerAnimationCamera", "path", "moveStep", "rotateStep", "frameChange", "_lockCamera", "walkFrame", "addChangeEventListener", "_hooker", "_hookUpdate", "geoposition", "unactivate", "_walkAnimation", "_isPause", "changeEvent", "raiseChangeEvent", "isDone", "_isDone", "isPause", "_begin", "_toStop", "state", "_loadGeoposition", "_loadDirection", "run", "ComputeTimeDelta", "getMilliseconds", "getSeconds", "getMinutes", "_createState", "date", "endDirection", "moveSpeed", "rotateSpeed", "rotateSize", "manHeight", "manRange", "stateType", "UNKNOWN", "_readyCamera", "_walkQueue", "canLog", "_collideActived", "collideActived", "filterFog", "keys", "GeoWalkerCamera", "logarithmicDepthBuffer", "raiseUpdate", "FORWARD", "LEFTWARD", "computeLeftward", "UPWARD", "computeTrunUp", "DOWNWARD", "computeTrunDown", "computeTrunRight", "jumpUp", "computeInitialPosition", "computeForeward", "_computeCollideDistance", "Forward : height = ", "Forward Node : height = ", "computeBackward", "getTangentNormal", "Backward : height = ", "Backward Node : height = ", "collide :", " max: ", "Not collide", "computeTrunLeft", "raiseMouseMove", "filterWithCamera", "getFront", "getRear", "getAvgHeight", "getDropThreshold", "preventFalling", "getLatelyHeight", "GeoWater", "_pointsToCartographic", "_waterColor", "_refractColor", "_waveWidth", "_flowDirection", "_flowSpeed", "_normalTexture", "_m_startTime", "_reflectCamera", "_reflectPassState", "_isVisible", "_waterPolygon", "_computeBoundingRectangle", "_polygonHierarchy", "_lonMin", "_latMin", "_waterCenterPos", "initialize", "RenderbufferFormat", "DEPTH_COMPONENT16", "PassState", "_initialized", "waterPolygon", "workingFrustums", "_fScale", "setRow", "invWorldViewMatrix", "modelViewMatrix", "modeiViewProjection", "_fElapse", "_frameTime", "_flowAngle", "attribute vec3 position;\n\t\t\t\t\t\t\t\t\t\t\tattribute vec2 st;\n\t\t\t\t\t\t\t\t\t\t\tuniform mat4 u_modelViewProjectionMatrix;\n\t\t\t\t\t\t\t\t\t\t\tuniform mat4 u_modelViewMatrix;\n\t\t\t\t\t\t\t\t\t\t\tuniform mat4 u_invWorldViewMatrix;\n\t\t\t\t\t\t\t\t\t\t\tuniform vec2 u_texCoordOffset;\n\t\t\t\t\t\t\t\t\t\t\tuniform vec2 u_texCoordScale;\n\t\t\t\t\t\t\t\t\t\t\tuniform float u_frameTime;\n\t\t\t\t\t\t\t\t\t\t\tuniform int u_clampToGroud;\n\t\t\t\t\t\t\t\t\t\t\tuniform vec3 u_camPos;\n\t\t\t\t\t\t\t\t\t\t\tuniform vec3 u_scale;\n\t\t\t\t\t\t\t\t\t\t\tvarying vec3 eyeDir;\n\t\t\t\t\t\t\t\t\t\t\tvarying vec2 texCoord;\n\t\t\t\t\t\t\t\t\t\t\tvarying float myTime;\n\t\t\t\t\t\t\t\t\t\t\tvarying vec4 projectionCoord;\n\t\t\t\t\t\t\t\t\t\t\tvoid main(void)\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t//gl_Position = ftransform();\n\t\t\t\t\t\t\t\t\t\t\t\tgl_Position = u_modelViewProjectionMatrix * vec4(position.xyz,1.0);\n\t\t\t\t\t\t\t\t\t\t\t\tif (u_clampToGroud == 1)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teyeDir = (u_camPos - position.xyz) * u_scale;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec4 pos = u_modelViewMatrix * vec4(position.xyz,1.0);\n\t\t\t\t\t\t\t\t\t\t\t\t\teyeDir = vec3(u_invWorldViewMatrix*vec4(pos.xyz,0.0));\n\t\t\t\t\t\t\t\t\t\t\t\t\tprojectionCoord = gl_Position;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\ttexCoord = (st+u_texCoordOffset)*u_texCoordScale;\n\t\t\t\t\t\t\t\t\t\t\t\tmyTime = 0.01 * u_frameTime;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t", "uniform sampler2D u_normalMap;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform sampler2D u_refractMap;\n\t\t\t\t\t\t\t\t\t\t\t\t//uniform samplerCube u_cubeMap;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform sampler2D u_reflectMap;\n\t\t\t\t\t\t\t\t\t\t\t\t//uniform sampler2D u_flowMap;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform vec4 u_waterColor;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform vec4 u_refractColor;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform int u_useRefractTex;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform vec4 u_reflectColor;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform int u_reflection;\n\t\t\t\t\t\t\t\t\t\t\t\tuniform vec2 u_flowDir;\n\t\t\t\t\t\t\t\t\t\t\t\tvarying vec3 eyeDir;\n\t\t\t\t\t\t\t\t\t\t\t\tvarying vec2 texCoord;\n\t\t\t\t\t\t\t\t\t\t\t\tvarying float myTime;\n\t\t\t\t\t\t\t\t\t\t\t\tvarying vec4 projectionCoord;\n\t\t\t\t\t\t\t\t\t\t\t\tvoid main (void)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// texScale determines the amount of tiles generated.\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat texScale = 35.0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// texScale2 determines the repeat of the water texture (the normalmap) itself\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat texScale2 = 10.0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat myangle;\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat transp;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 myNormal;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 mytexFlowCoord = texCoord * texScale;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ff is the factor that blends the tiles.\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 ff = abs(2.0*(fract(mytexFlowCoord)) - 1.0) -0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// take a third power, to make the area with more or less equal contribution\n\t\t\t\t\t\t\t\t\t\t\t\t\t// of more tile bigger\n\t\t\t\t\t\t\t\t\t\t\t\t\tff = 0.5-4.0*ff*ff*ff;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ffscale is a scaling factor that compensates for the effect that\n\t\t\t\t\t\t\t\t\t\t\t\t\t// adding normal vectors together tends to get them closer to the average normal\n\t\t\t\t\t\t\t\t\t\t\t\t\t// which is a visible effect. For more or less random waves, this factor\n\t\t\t\t\t\t\t\t\t\t\t\t\t// compensates for it\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 ffscale = sqrt(ff*ff + (1.0-ff)*(1.0-ff));\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 Tcoord = texCoord  * texScale2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// offset makes the water move\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 offset = vec2(myTime,0.0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// I scale the texFlowCoord and floor the value to create the tiling\n\t\t\t\t\t\t\t\t\t\t\t\t\t// This could have be replace by an extremely lo-res texture lookup\n\t\t\t\t\t\t\t\t\t\t\t\t\t// using NEAREST pixel.\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 sample = vec3(u_flowDir, 1.0);//texture2D( u_flowMap, floor(mytexFlowCoord)/ texScale).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// flowdir is supposed to go from -1 to 1 and the line below\n\t\t\t\t\t\t\t\t\t\t\t\t\t// used to be sample.xy * 2.0 - 1.0, but saves a multiply by\n\t\t\t\t\t\t\t\t\t\t\t\t\t// moving this factor two to the sample.b\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 flowdir = sample.xy -0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// sample.b is used for the inverse length of the wave\n\t\t\t\t\t\t\t\t\t\t\t\t\t// could be premultiplied in sample.xy, but this is easier for editing flowtexture\n\t\t\t\t\t\t\t\t\t\t\t\t\tflowdir *= sample.b;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// build the rotation matrix that scales and rotates the complete tile\n\t\t\t\t\t\t\t\t\t\t\t\t\tmat2 rotmat = mat2(flowdir.x, -flowdir.y, flowdir.y ,flowdir.x);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// this is the normal for tile A\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 NormalT0 = texture2D(u_normalMap, rotmat * Tcoord - offset).rg;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// for the next tile (B) I shift by half the tile size in the x-direction\n\t\t\t\t\t\t\t\t\t\t\t\t\tsample = vec3(u_flowDir, 1.0);//texture2D( u_flowMap, floor((mytexFlowCoord + vec2(0.5,0)))/ texScale ).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\tflowdir = sample.b * (sample.xy - 0.5);\n\t\t\t\t\t\t\t\t\t\t\t\t\trotmat = mat2(flowdir.x, -flowdir.y, flowdir.y ,flowdir.x);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// and the normal for tile B...\n\t\t\t\t\t\t\t\t\t\t\t\t\t// multiply the offset by some number close to 1 to give it a different speed\n\t\t\t\t\t\t\t\t\t\t\t\t\t// The result is that after blending the water starts to animate and look\n\t\t\t\t\t\t\t\t\t\t\t\t\t// realistic, instead of just sliding in some direction.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// This is also why I took the third power of ff above, so the area where the\n\t\t\t\t\t\t\t\t\t\t\t\t\t// water animates is as big as possible\n\t\t\t\t\t\t\t\t\t\t\t\t\t// adding a small arbitrary constant isn't really needed, but helps to show\n\t\t\t\t\t\t\t\t\t\t\t\t\t// a bit less tiling in the beginning of the program. After a few seconds, the\n\t\t\t\t\t\t\t\t\t\t\t\t\t// tiling cannot be seen anymore so this constant could be removed.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// For the quick demo I leave them in. In a simulation that keeps running for\n\t\t\t\t\t\t\t\t\t\t\t\t\t// some time, you could just as well remove these small constant offsets\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 NormalT1 = texture2D(u_normalMap, rotmat * Tcoord - offset*1.06+0.62).rg;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// blend them together using the ff factor\n\t\t\t\t\t\t\t\t\t\t\t\t\t// use ff.x because this tile is shifted in the x-direction\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 NormalTAB = ff.x * NormalT0 + (1.0-ff.x) * NormalT1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// the scaling of NormalTab and NormalTCD is moved to a single scale of\n\t\t\t\t\t\t\t\t\t\t\t\t\t// NormalT later in the program, which is mathematically identical to\n\t\t\t\t\t\t\t\t\t\t\t\t\t// NormalTAB = (NormalTAB - 0.5) / ffscale.x + 0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// tile C is shifted in the y-direction\n\t\t\t\t\t\t\t\t\t\t\t\t\tsample = vec3(u_flowDir, 1.0);//texture2D( u_flowMap, floor((mytexFlowCoord + vec2(0.0,0.5)))/ texScale ).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\tflowdir = sample.b * (sample.xy - 0.5);\n\t\t\t\t\t\t\t\t\t\t\t\t\trotmat = mat2(flowdir.x, -flowdir.y, flowdir.y ,flowdir.x);\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormalT0 = texture2D(u_normalMap, rotmat * Tcoord - offset*1.33+0.27).rg;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// tile D is shifted in both x- and y-direction\n\t\t\t\t\t\t\t\t\t\t\t\t\tsample = vec3(u_flowDir, 1.0);//texture2D( u_flowMap, floor((mytexFlowCoord + vec2(0.5,0.5)))/ texScale ).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\tflowdir = sample.b * (sample.xy - 0.5);\n\t\t\t\t\t\t\t\t\t\t\t\t\trotmat = mat2(flowdir.x, -flowdir.y, flowdir.y ,flowdir.x);\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormalT1 = texture2D(u_normalMap, rotmat * Tcoord - offset*1.24).rg ;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 NormalTCD = ff.x * NormalT0 + (1.0-ff.x) * NormalT1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// NormalTCD = (NormalTCD - 0.5) / ffscale.x + 0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// now blend the two values togetherv\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 NormalT = ff.y * NormalTAB + (1.0-ff.y) * NormalTCD;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// this line below used to be here for scaling the result\n\t\t\t\t\t\t\t\t\t\t\t\t\t//NormalT = (NormalT - 0.5) / ffscale.y + 0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// below the new, direct scaling of NormalT\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormalT = (NormalT - 0.5) / (ffscale.y * ffscale.x);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// scaling by 0.3 is arbritrary, and could be done by just\n\t\t\t\t\t\t\t\t\t\t\t\t\t// changing the values in the normal map\n\t\t\t\t\t\t\t\t\t\t\t\t\t// without this factor, the waves look very strong\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormalT *= 0.3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// to make the water more transparent\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransp = 1.0;//texture2D( u_flowMap, texFlowCoord ).a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// and scale the normals with the transparency\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormalT *= transp*transp;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// assume normal of plane is 0,0,1 and produce the normalized sum of adding NormalT to it\n\t\t\t\t\t\t\t\t\t\t\t\t\tmyNormal = vec3(NormalT,sqrt(1.0-NormalT.x*NormalT.x - NormalT.y*NormalT.y));\n\t\t\t\t\t\t\t\t\t\t\t\t\t// 获取反射颜色。\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 envColor = u_reflectColor.rgb;//vec3(0.5647, 0.6941, 0.8235);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (u_reflection == 1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//vec3 reflectDir = reflect(eyeDir, myNormal);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//vec3 envColor = vec3(textureCube(u_cubeMap, -reflectDir));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 如果要实现反射真实场景，需要把场景渲染5遍构建一个无底的立方体纹理。\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 目前使用一张反射纹理近似模拟。\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvec2 final = projectionCoord.xy / projectionCoord.w;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfinal = final * 0.5 + 0.5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfinal.y = 1.0 - final.y;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tenvColor = texture2D(u_reflectMap, final + myNormal.xy/texScale2*transp).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// very ugly version of fresnel effect\n\t\t\t\t\t\t\t\t\t\t\t\t\t// but it gives a nice transparent water, but not too transparent\n\t\t\t\t\t\t\t\t\t\t\t\t\tmyangle = dot(myNormal,normalize(eyeDir));\n\t\t\t\t\t\t\t\t\t\t\t\t\tmyangle = 0.95-0.6*myangle*myangle;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// blend in the color of the plane below the water\n\t\t\t\t\t\t\t\t\t\t\t\t\t// add in a little distortion of the colormap for the effect of a refracted\n\t\t\t\t\t\t\t\t\t\t\t\t\t// view of the image below the surface.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// (this isn't really tested, just a last minute addition\n\t\t\t\t\t\t\t\t\t\t\t\t\t// and perhaps should be coded differently\n\t\t\t\t\t\t\t\t\t\t\t\t\t// the correct way, would be to use the refract routine, use the alpha channel for depth of\n\t\t\t\t\t\t\t\t\t\t\t\t\t// the water (and make the water disappear when depth = 0), add some watercolor to the colormap\n\t\t\t\t\t\t\t\t\t\t\t\t\t// depending on the depth, and use the calculated refractdir and the depth to find the right\n\t\t\t\t\t\t\t\t\t\t\t\t\t// pixel in the colormap.... who knows, something for the next version\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 base = u_refractColor.rgb;//vec3(0.3, 0.4, 0.5);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (u_useRefractTex == 1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbase = texture2D(u_refractMap,(texCoord + myNormal.xy/texScale2*0.03*transp)*32.0).rgb;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbase = mix(base, u_waterColor.rgb, u_waterColor.a);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// 光照计算\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 lightDir = czm_sunDirectionEC;//normalize(vec3(0.0, 0.0, 1.0)); // 光照方向需要从外面传入\n\t\t\t\t\t\t\t\t\t\t\t\t\tvec3 reflectVec = reflect(-lightDir, myNormal);\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat diffuse = max(0.0, dot(myNormal, lightDir));\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat spec = max(dot(reflectVec, normalize(-eyeDir)), 0.0);\n\t\t\t\t\t\t\t\t\t\t\t\t\tspec = pow(spec, 128.0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t//float lightIntensity = 0.7 * diffuse + 0.3 * spec;\n\t\t\t\t\t\t\t\t\t\t\t\t\tfloat lightIntensity = 0.3 * spec;\n\t\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(mix(base, envColor, myangle*transp), 1.0);\n\t\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor += vec4(0.8)*lightIntensity;\n\t\t\t\t\t\t\t\t\t\t\t\t\t// note that smaller waves appear to move slower than bigger waves\n\t\t\t\t\t\t\t\t\t\t\t\t\t// one could use the tiles and give each tile a different speed if that\n\t\t\t\t\t\t\t\t\t\t\t\t\t// is what you want\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t", "_uniformMap", "getColorTexture", "_reflectColor", "_waterGeometry", "UNSIGNED_INT", "water", "_updateReflectTexture", "ComputeCommand", "proxy", "metadata", "roadMetadata", "roadUrl", "labelGraphics", "billboardGraphics", "aotuCollide", "collisionPadding", "serverFirstStyle", "tileCache", "labelCache", "_isInitial", "_latelyGrid", "_UUID", "GEO_WTFS_LABEL_", "_UUIDRoad", "getCacheTile", "removeCacheTile", "getCacheLabel", "oid", "addCacheLabel", "removeCacheLabel", "timestamp", "getTileUrl", "/GetTiles?lxys={z},{x},{y}", "getIcoUrl", "/GetIcon?id={id}", "getRoadTileUrl", "_timer", "_tilesToRender", "getTilesToRender", "compareArray", "_queueCall", "_latelyRefreshStamp"];

    n = S, function (e) {
      for (; --e;) {
        n.push(n.shift());
      }
    }(310);

    var T,
        P = function P(e, t) {
      return S[e -= 0];
    },
        M = function () {
      function e(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          var r = t[i];
          r[P("0x1")] = r[P("0x1")] || !1, r[P("0x2")] = !0, P("0x3") in r && (r.writable = !0), E()(e, r[P("0x4")], r);
        }
      }

      return function (t, i, r) {
        return i && e(t[P("0x5")], i), r && e(t, r), t;
      };
    }();

    function N(e, t) {
      if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
    }

    function L(e) {
      for (var t = e || P("0x120"), i = "", r = new RegExp(P("0x121") + t + P("0x122")), n = document[P("0x123")](P("0x124")), o = 0, a = n[P("0x0")]; o < a; o++) {
        var s = n[o].getAttribute(P("0x125"));

        if (s) {
          var x = s[P("0x126")](r);

          if (x) {
            i = x[1];
            break;
          }
        }
      }

      return i;
    }

    !function (e) {
      ("undefined" == typeof define ? "undefined" : w()(define)) === P("0x8") && define[P("0xd")] ? define(e) : e();
    }(function () {
      var e = function () {
        try {
          return "x" in Object[P("0xe")]({}, "x", {});
        } catch (e) {
          return !1;
        }
      }(),
          t = Object[P("0xf")];

      e && null != t || (t = function t(e) {
        return e;
      });
      var i = t,
          r = cesium__WEBPACK_IMPORTED_MODULE_1__,
          n = r[P("0x10")],
          o = r[P("0x11")],
          a = r[P("0x12")],
          s = r[P("0x13")],
          x = r.defaultValue,
          l = r[P("0x14")],
          c = r.destroyObject,
          u = r[P("0x15")],
          h = r[P("0x16")],
          f = r[P("0x17")],
          d = r[P("0x18")],
          g = r[P("0x19")],
          p = r[P("0x1a")],
          m = r[P("0x1b")],
          b = r.OrthographicFrustum,
          v = r[P("0x1c")],
          C = r[P("0x1d")],
          y = r[P("0x1e")],
          _ = r[P("0x1f")],
          A = r[P("0x20")],
          I = r.CameraEventType,
          G = r[P("0x21")],
          E = r[P("0x22")],
          S = r.SceneTransforms,
          T = r.TweenCollection,
          L = cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x23")];

      function R(e) {
        if (!l(e)) throw new u(P("0x24"));
        this[P("0x25")] = -L[P("0x26")], this[P("0x27")] = !0, this[P("0x28")] = !0, this.enableZoom = !0, this[P("0x29")] = !0, this[P("0x2a")] = !0, this[P("0x2b")] = !0, this[P("0x2c")] = 0.9, this[P("0x2d")] = 0.9, this.inertiaZoom = 0.8, this[P("0x2e")] = 0.1, this[P("0x2f")] = 3, this[P("0x30")] = 1, this.maximumZoomDistance = Number[P("0x31")], this.translateEventTypes = I[P("0x32")], this[P("0x33")] = [I[P("0x34")], I[P("0x35")]], this[P("0x36")] = I[P("0x32")], this.tiltEventTypes = [I[P("0x37")], I.MIDDLE_DRAG, I[P("0x35")], {
          eventType: I[P("0x32")],
          modifier: g[P("0x38")]
        }, {
          eventType: I[P("0x37")],
          modifier: g.CTRL
        }], this[P("0x39")] = {
          eventType: I[P("0x32")],
          modifier: g[P("0x3a")]
        }, this[P("0x3b")] = 15e4, this[P("0x3c")] = this[P("0x3b")], this[P("0x3d")] = 15e3, this[P("0x3e")] = this[P("0x3d")], this[P("0x3f")] = -75e5, this[P("0x40")] = this[P("0x3f")], this[P("0x41")] = !0, this[P("0x42")] = e, this[P("0x43")] = void 0, this[P("0x44")] = void 0, cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x45")] && cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x45")].GeoCameraEventAggregator ? this[P("0x46")] = new cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x47")](e.canvas) : this._aggregator = new A(e[P("0x48")]), this._lastInertiaSpinMovement = void 0, this._lastInertiaZoomMovement = void 0, this[P("0x49")] = void 0, this[P("0x4a")] = void 0, this._tweens = new T(), this[P("0x4b")] = void 0, this[P("0x4c")] = void 0, this[P("0x4d")] = new n(-1, -1), this._tiltCenter = new o(), this[P("0x4e")] = new n(-1, -1), this[P("0x4f")] = new o(), this[P("0x50")] = new o(), this[P("0x51")] = new n(-1, -1), this._zoomWorldPosition = new o(), this[P("0x52")] = !1, this[P("0x53")] = !1, this[P("0x54")] = !1, this[P("0x55")] = !1, this[P("0x56")] = !1, this[P("0x57")] = !1, this[P("0x58")] = !1, this._adjustedHeightForTerrain = !1;
        var t = e.mapProjection;
        this[P("0x59")] = t[P("0x5a")](new s(Math.PI, L[P("0x5b")])), this[P("0x5c")] = 5, this[P("0x5d")] = void 0, this._rotateRateRangeAdjustment = void 0, this[P("0x5e")] = 1.77, this[P("0x5f")] = 2e-4, this._minimumZoomRate = 20, this[P("0x60")] = 5906376272e3;
      }

      function O(e, t, i, r, o, a, s) {
        var x = a[s];
        l(x) || (x = a[s] = {
          startPosition: new n(),
          endPosition: new n(),
          motion: new n(),
          active: !1
        });
        var c,
            u = e[P("0x66")](t, i),
            h = e[P("0x67")](t, i),
            f = u && h && (h[P("0x68")]() - u[P("0x68")]()) / 1e3,
            d = new Date(),
            g = h && (d.getTime() - h[P("0x68")]()) / 1e3;

        if (u && h && f < 0.4) {
          var p = function (e, t) {
            if (e < 0) return 0;
            var i = 25 * (1 - t);
            return Math[P("0x61")](-i * e);
          }(g, r);

          if (x[P("0x69")]) x[P("0x63")] = n[P("0x6e")](x[P("0x64")], x[P("0x63")]), x.endPosition = n[P("0x6c")](x[P("0x6b")], p, x[P("0x64")]), x.endPosition = n[P("0x6d")](x[P("0x63")], x[P("0x64")], x[P("0x64")]), x[P("0x6b")] = n[P("0x6e")](n[P("0x6f")], x[P("0x6b")]);else {
            var m = e[P("0x6a")](t, i);
            if (!l(m) || (c = m, n[P("0x62")](c[P("0x63")], c[P("0x64")], L[P("0x65")]))) return;
            x[P("0x6b")].x = 0.5 * (m[P("0x64")].x - m[P("0x63")].x), x.motion.y = 0.5 * (m.endPosition.y - m.startPosition.y), x[P("0x63")] = n.clone(m[P("0x63")], x[P("0x63")]), x.endPosition = n[P("0x6c")](x[P("0x6b")], p, x[P("0x64")]), x[P("0x64")] = n[P("0x6d")](x[P("0x63")], x[P("0x64")], x[P("0x64")]), x.active = !0;
          }
          if (isNaN(x[P("0x64")].x) || isNaN(x[P("0x64")].y) || n.distance(x[P("0x63")], x[P("0x64")]) < 0.5) return void (x[P("0x69")] = !1);
          e[P("0x70")](t, i) || o(a, e.getStartMousePosition(t, i), x);
        } else x[P("0x69")] = !1;
      }

      var F = [];

      function D(e, t, i, r, n, o) {
        if (l(i)) {
          var a = e._aggregator;
          Array[P("0x71")](i) || (F[0] = i, i = F);

          for (var s = i[P("0x0")], x = 0; x < s; ++x) {
            var c = i[x],
                u = l(c[P("0x72")]) ? c[P("0x72")] : c,
                h = c[P("0x73")],
                f = a[P("0x74")](u, h) && a[P("0x75")](u, h),
                d = a[P("0x76")](u, h);
            e.enableInputs && t && (f ? r(e, d, f) : n < 1 && O(a, u, h, n, r, e, o));
          }
        }
      }

      var U = new y(),
          k = new o(),
          B = new n(),
          W = new o(),
          j = new n(),
          V = new o(),
          z = new o(),
          H = new o(),
          q = new o(),
          X = new o(),
          Y = new o(),
          K = new o(),
          Q = new o(),
          Z = new o(),
          J = new o(),
          $ = new o(),
          ee = new o(),
          te = new o(),
          ie = new o(),
          re = new o(),
          ne = new o(),
          oe = new o(),
          ae = new o(),
          se = {
        orientation: new f()
      };

      function xe(e, t, i, r, s, x) {
        var c = 1;
        l(x) && (c = L[P("0x77")](Math[P("0x78")](x), 0.25, 1));
        var u = e.minimumZoomDistance * c,
            h = e[P("0x79")],
            f = r * (s - u);
        f = L.clamp(f, e[P("0x7a")], e._maximumZoomRate);
        var d = i[P("0x64")].y - i[P("0x63")].y;

        if (!(e[P("0x7b")] && d < 0 && function (e, t) {
          var i = a[P("0x6e")](a[P("0xa1")]),
              r = a[P("0x6e")](a[P("0xa1")]),
              n = e[P("0x42")],
              o = n.globe.ellipsoid,
              s = n[P("0x7e")],
              x = n.canvas;
          if (1.5 <= Math.abs(s[P("0x80")]) && (s[P("0x7f")] <= 0.25 || 6.03 <= s[P("0x7f")])) return !1;
          var l = s.pickEllipsoid(new cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x10")](0, x.clientHeight), o, i),
              c = s[P("0xa2")](new cesium__WEBPACK_IMPORTED_MODULE_1__["Cartesian2"](x.clientWidth, x[P("0x7c")]), o, r);
          if (l && c && Math[P("0x78")](l.x - c.x) < 8e4 && Math[P("0x78")](l.y - c.y) < 8e4) return !1;
          var u = new cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x1e")]();
          u = s[P("0x86")](t, u);
          var h = n[P("0xa3")][P("0xa4")](u, n);
          if (h || (u[P("0x87")] = s[P("0xa5")], u[P("0x93")] = s[P("0xa6")], h = n[P("0xa3")][P("0xa4")](u, n)), !h) return !0;
          var f = o[P("0xa7")](s[P("0x91")], new cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x11")]()),
              d = (o.geodeticSurfaceNormal(h), new cesium__WEBPACK_IMPORTED_MODULE_1__["BoundingSphere"](h, 0));
          return s[P("0xa8")](d, {
            offset: new cesium__WEBPACK_IMPORTED_MODULE_1__[P("0xa9")](0, cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x23")].toRadians(-90), cesium__WEBPACK_IMPORTED_MODULE_1__["Cartesian3"].distance(f, h)),
            duration: 0
          }), !0;
        }(e, t))) {
          var g = d / e[P("0x42")][P("0x48")][P("0x7c")],
              p = f * (g = Math[P("0x7d")](g, e.maximumMovementRatio));

          if (!(0 < p && Math.abs(s - u) < 1 || p < 0 && Math.abs(s - h) < 1)) {
            s - p < u ? p = s - u - 1 : h < s - p && (p = s - h);
            var m = e[P("0x42")],
                v = m[P("0x7e")],
                C = m.mode,
                y = se.orientation;
            if (y[P("0x7f")] = v[P("0x7f")], y[P("0x80")] = v[P("0x80")], y[P("0x81")] = v[P("0x81")], v.frustum instanceof b) 0 < Math.abs(p) && (v[P("0x82")](p), v[P("0x83")]());else {
              var _,
                  A = n[P("0x84")](t, e._zoomMouseStart),
                  I = e[P("0x57")],
                  w = e._rotatingZoom;

              if (A || (e[P("0x51")] = n[P("0x6e")](t, e[P("0x51")]), l(e[P("0x43")]) && (_ = C === E[P("0x85")] ? (_ = v[P("0x86")](t, U)[P("0x87")], o[P("0x88")](_.y, _.z, _.x)) : Ce(e, t, k)), l(_) ? (e[P("0x52")] = !0, e[P("0x89")] = o.clone(_, e[P("0x89")])) : e[P("0x52")] = !1, I = e[P("0x57")] = !1, w = e[P("0x58")] = !1), e[P("0x52")]) {
                var G = C === E[P("0x8a")];

                if (v.positionCartographic[P("0x8b")] < 2e6 && (w = !0), !A || w) {
                  if (C === E.SCENE2D) {
                    var T = e._zoomWorldPosition,
                        M = v[P("0x8c")];

                    if (!o[P("0x84")](T, M) && v.positionCartographic[P("0x8b")] < 2 * e[P("0x59")].x) {
                      var N = v[P("0x8c")].x,
                          R = o.subtract(T, M, W);
                      o[P("0x8d")](R, R);
                      var O = o[P("0x8e")](T, M) * p / (0.5 * v[P("0x8f")]());
                      v.move(R, 0.5 * O), (v[P("0x8c")].x < 0 && 0 < N || 0 < v.position.x && N < 0) && (_ = v[P("0x86")](t, U)[P("0x87")], _ = o.fromElements(_.y, _.z, _.x), e[P("0x89")] = o[P("0x6e")](_, e[P("0x89")]));
                    }
                  } else if (C === E[P("0x90")]) {
                    var F = o.normalize(v[P("0x8c")], X);
                    if (v[P("0x91")][P("0x8b")] < 3e3 && Math.abs(o[P("0x92")](v[P("0x93")], F)) < 0.6) G = !0;else {
                      var D = m[P("0x48")],
                          xe = j;
                      xe.x = D[P("0x94")] / 2, xe.y = D[P("0x7c")] / 2;
                      var le = Ce(e, xe, V);

                      if (l(le) && v[P("0x91")].height < 1e6) {
                        var ce = K;
                        o[P("0x6e")](v.position, ce);
                        var ue = e[P("0x89")],
                            he = Y;
                        if (he = o[P("0x8d")](ue, he), o[P("0x92")](he, F) < 0) return;
                        var fe = re,
                            de = J;
                        o[P("0x6e")](v.direction, de), o[P("0x6d")](ce, o[P("0x6c")](de, 1e3, ne), fe);
                        var ge = $,
                            pe = ee;
                        o[P("0x95")](ue, ce, ge), o[P("0x8d")](ge, pe);
                        var me = o.dot(F, pe);
                        if (0 <= me) return void (e[P("0x51")].x = -1);

                        var be = Math.acos(-me),
                            ve = o[P("0x96")](ce),
                            ye = o.magnitude(ue),
                            _e = ve - p,
                            Ae = o.magnitude(ge),
                            Ie = Math[P("0x97")](L.clamp(Ae / ye * Math[P("0x98")](be), -1, 1)) - Math[P("0x97")](L.clamp(_e / ye * Math[P("0x98")](be), -1, 1)) + be,
                            we = Q;

                        o.normalize(ce, we);
                        var Ge = Z;
                        Ge = o[P("0x99")](pe, we, Ge), Ge = o.normalize(Ge, Ge), o[P("0x8d")](o[P("0x99")](we, Ge, ne), de), o[P("0x6c")](o[P("0x8d")](fe, ne), o[P("0x96")](fe) - p, fe), o[P("0x8d")](ce, ce), o[P("0x6c")](ce, _e, ce);
                        var Ee = te;
                        o[P("0x6c")](o[P("0x6d")](o[P("0x6c")](we, Math[P("0x9a")](Ie) - 1, oe), o.multiplyByScalar(de, Math[P("0x98")](Ie), ae), ne), _e, Ee), o[P("0x6d")](ce, Ee, ce), o.normalize(fe, we), o.normalize(o[P("0x99")](we, Ge, ne), de);
                        var Se = ie;
                        return o[P("0x6c")](o[P("0x6d")](o[P("0x6c")](we, Math[P("0x9a")](Ie) - 1, oe), o[P("0x6c")](de, Math[P("0x98")](Ie), ae), ne), o.magnitude(fe), Se), o.add(fe, Se, fe), o[P("0x6e")](ce, v[P("0x8c")]), o.normalize(o.subtract(fe, ce, ne), v[P("0x93")]), o[P("0x6e")](v[P("0x93")], v[P("0x93")]), o[P("0x99")](v.direction, v.up, v[P("0x9b")]), o.cross(v[P("0x9b")], v[P("0x93")], v.up), void v[P("0x9c")](se);
                      }

                      if (l(le)) {
                        var Te = o[P("0x8d")](le, z),
                            Pe = o[P("0x8d")](e[P("0x89")], H),
                            Me = o[P("0x92")](Pe, Te);

                        if (0 < Me && Me < 1) {
                          var Ne = L[P("0x9d")](Me),
                              Le = o.cross(Pe, Te, q),
                              Re = p / (Math[P("0x78")](Ne) > L.toRadians(20) ? 0.75 * v.positionCartographic[P("0x8b")] : v[P("0x91")].height - p);
                          v[P("0x9e")](Le, Ne * Re);
                        }
                      } else G = !0;
                    }
                  }

                  e[P("0x58")] = !G;
                }

                if (!A && G || I) {
                  var Oe = S[P("0x9f")](m, e._zoomWorldPosition, B),
                      Fe = (C !== E[P("0x8a")] && n[P("0x84")](t, e[P("0x51")]) && l(Oe) ? v[P("0x86")](Oe, U) : v.getPickRay(t, U)).direction;
                  C !== E[P("0x8a")] && C !== E.SCENE2D || o[P("0x88")](Fe.y, Fe.z, Fe.x, Fe), v[P("0xa0")](Fe, p), e[P("0x57")] = !0;
                } else v[P("0x82")](p);

                v[P("0x9c")](se);
              } else v[P("0x82")](p);
            }
          }
        }
      }

      var le = new y(),
          ce = new y(),
          ue = new o();

      function he(e, t, i) {
        var r = e[P("0x42")][P("0x7e")],
            n = r[P("0x86")](i[P("0x63")], le)[P("0x87")],
            a = r[P("0x86")](i.endPosition, ce).origin;
        n = o[P("0x88")](n.y, n.z, n.x, n), a = o[P("0x88")](a.y, a.z, a.x, a);
        var s = o[P("0x95")](n, a, ue),
            x = o[P("0x96")](s);
        0 < x && (o[P("0x8d")](s, s), r[P("0xa0")](s, x));
      }

      function fe(e, t, i) {
        l(i[P("0x8e")]) && (i = i[P("0x8e")]);
        var r = e[P("0x42")][P("0x7e")];
        xe(e, t, i, e[P("0x5c")], r[P("0x8f")]());
      }

      var de = new n(),
          ge = new n();

      function pe(e, t, i) {
        if (l(i[P("0xaa")])) !function (e, t) {
          var i = e._rotateFactor * e._rotateRateRangeAdjustment;
          i > e[P("0x5e")] && (i = e[P("0x5e")]), i < e[P("0x5f")] && (i = e[P("0x5f")]);
          var r = e._scene,
              n = r[P("0x7e")],
              o = r[P("0x48")],
              a = (t[P("0x64")].x - t[P("0x63")].x) / o.clientWidth,
              s = i * (a = Math[P("0x7d")](a, e[P("0x2e")])) * Math.PI * 4;
          n.twistRight(s);
        }(e, i.angleAndHeight);else {
          var r = e[P("0x42")],
              o = r[P("0x7e")],
              a = r[P("0x48")],
              s = a[P("0x94")],
              x = a.clientHeight,
              c = de;
          c.x = 2 / s * i[P("0x63")].x - 1, c.y = 2 / x * (x - i[P("0x63")].y) - 1, c = n[P("0x8d")](c, c);
          var u = ge;
          u.x = 2 / s * i[P("0x64")].x - 1, u.y = 2 / x * (x - i[P("0x64")].y) - 1, u = n.normalize(u, u);
          var h = L[P("0x9d")](c.x);
          c.y < 0 && (h = L.TWO_PI - h);
          var f = L[P("0x9d")](u.x);
          u.y < 0 && (f = L[P("0xab")] - f);
          var d = f - h;
          o[P("0xac")](d);
        }
      }

      var me = new y(),
          be = new o(),
          ve = new o();

      function Ce(e, t, i) {
        var r = e[P("0x42")],
            n = e._globe,
            a = r[P("0x7e")];

        if (l(n)) {
          var s;
          r.pickPositionSupported && (s = r.pickPositionWorldCoordinates(t, be));
          var x = a.getPickRay(t, me),
              c = n.pickWorldCoordinates(x, r, ve);
          return (l(s) ? o.distance(s, a[P("0xa5")]) : Number[P("0x31")]) < (l(c) ? o[P("0x8e")](c, a[P("0xa5")]) : Number.POSITIVE_INFINITY) ? o.clone(s, i) : o.clone(c, i);
        }
      }

      var ye = new y(),
          _e = new y(),
          Ae = new o(),
          Ie = new o(),
          we = new o(),
          Ge = new o(),
          Ee = new v(o.UNIT_X, 0),
          Se = new n(),
          Te = new n();

      function Pe(e, t, i) {
        if (o.equals(t, e[P("0xb6")]) || (e[P("0x54")] = !1), o.equals(t, e[P("0xb7")]) || (e[P("0x56")] = !1), e._looking) Bt(e, t, i);else if (e._strafing) tt(e, t, i);else {
          var r,
              a = e._scene[P("0x7e")],
              s = n[P("0x6e")](i.startPosition, Se),
              x = n[P("0x6e")](i[P("0x64")], Te),
              c = a[P("0x86")](s, ye),
              u = o[P("0x6e")](o[P("0x6f")], Ge),
              h = o[P("0xb8")];

          if (a[P("0x8c")].z < e[P("0x3c")] && (r = Ce(e, s, Ae), l(r) && (u.x = r.x)), u.x > a[P("0x8c")].z && l(r)) return o.clone(r, e._strafeStartPosition), e[P("0x56")] = !0, tt(e, t, i), void (e[P("0xb7")] = n[P("0x6e")](t, e[P("0xb7")]));
          var f = v[P("0xb9")](u, h, Ee);
          c = a[P("0x86")](s, ye);
          var g = d.rayPlane(c, f, Ae),
              p = a.getPickRay(x, _e),
              m = d[P("0xba")](p, f, Ie);
          if (!l(g) || !l(m)) return e[P("0x54")] = !0, Bt(e, t, i), void n[P("0x6e")](t, e[P("0xb6")]);
          var b = o[P("0x95")](g, m, we),
              C = b.x;
          b.x = b.y, b.y = b.z, b.z = C;
          var y = o[P("0x96")](b);
          y > L[P("0xbb")] && (o[P("0x8d")](b, b), a[P("0xa0")](b, y));
        }
      }

      var Me = new n(),
          Ne = new y(),
          Le = new o(),
          Re = new o(),
          Oe = new m(),
          Fe = new m(),
          De = new o(),
          Ue = new v(o.UNIT_X, 0),
          ke = new o(),
          Be = new s(),
          We = new m(),
          je = new C(),
          Ve = new p(),
          ze = new o();

      function He(e, t, i) {
        if (l(i[P("0xaa")]) && (i = i.angleAndHeight), n.equals(t, e[P("0x4d")]) || (e[P("0x53")] = !1, e._looking = !1), e[P("0x54")]) Bt(e, t, i);else {
          var r = e[P("0x42")].camera;
          e[P("0x53")] || !e[P("0xbc")]() || r[P("0x8c")].z > e[P("0x3c")] ? (e[P("0x53")] = !0, function (e, t, i) {
            var r = e[P("0x42")],
                a = r.camera,
                s = r.canvas,
                x = Me;
            x.x = s[P("0x94")] / 2, x.y = s[P("0x7c")] / 2;
            var c,
                u = a[P("0x86")](x, Ne),
                f = o[P("0xb8")],
                d = u.origin,
                g = u[P("0x93")],
                p = o[P("0x92")](f, g);
            if (Math[P("0x78")](p) > L[P("0xbb")] && (c = -o.dot(f, d) / p), !l(c) || c <= 0) return e[P("0x54")] = !0, Bt(e, t, i), n[P("0x6e")](t, e[P("0x4d")]);
            var b = o.multiplyByScalar(g, c, Le);
            o.add(d, b, b);
            var v = r[P("0xbd")],
                C = v.ellipsoid;
            o[P("0x88")](b.y, b.z, b.x, b);
            var y = v[P("0xbe")](b, Be);
            C[P("0xa7")](y, b);

            var A = _[P("0xbf")](b, C, Oe),
                I = e[P("0x43")],
                w = e._ellipsoid;

            e[P("0x43")] = void 0, e[P("0x44")] = h[P("0xc0")], e._rotateFactor = 1, e[P("0xc1")] = 1;
            var G = m[P("0x6e")](a[P("0xaf")], We);
            a[P("0xc2")](A), xt(e, t, i, o[P("0xc3")]), a._setTransform(G), e[P("0x43")] = I;
            var E = (e[P("0x44")] = w)[P("0xc4")];
            e._rotateFactor = 1 / E, e[P("0xc1")] = E;
          }(e, t, i)) : function (e, t, i) {
            var r,
                a,
                s = e[P("0x42")],
                x = s[P("0x7e")],
                c = o[P("0xb8")];
            if (n.equals(t, e[P("0x4d")])) r = o[P("0x6e")](e[P("0xc5")], Le);else {
              if (x[P("0x8c")].z < e[P("0x3c")] && (r = Ce(e, t, Le)), !l(r)) {
                var u,
                    f = (a = x[P("0x86")](t, Ne))[P("0x87")],
                    g = a[P("0x93")],
                    b = o.dot(c, g);
                if (Math.abs(b) > L[P("0xbb")] && (u = -o[P("0x92")](c, f) / b), !l(u) || u <= 0) return e[P("0x54")] = !0, Bt(e, t, i), n[P("0x6e")](t, e[P("0x4d")]);
                r = o[P("0x6c")](g, u, Le), o.add(f, r, r);
              }

              n[P("0x6e")](t, e._tiltCenterMousePosition), o[P("0x6e")](r, e[P("0xc5")]);
            }
            var y = s[P("0x48")],
                A = Me;
            A.x = y[P("0x94")] / 2, A.y = e._tiltCenterMousePosition.y, a = x[P("0x86")](A, Ne);
            var I = o[P("0x6e")](o.ZERO, De);
            I.x = r.x;
            var w = v[P("0xb9")](I, c, Ue),
                G = d[P("0xba")](a, w, Re),
                E = x[P("0xc6")],
                S = E.ellipsoid;
            o[P("0x88")](r.y, r.z, r.x, r);
            var T = E[P("0xbe")](r, Be);
            S[P("0xa7")](T, r);

            var M,
                N = _[P("0xbf")](r, S, Oe);

            M = l(G) ? (o[P("0x88")](G.y, G.z, G.x, G), T = E[P("0xbe")](G, Be), S[P("0xa7")](T, G), _[P("0xbf")](G, S, Fe)) : N;
            var R = e._globe,
                O = e._ellipsoid;
            e[P("0x43")] = void 0, e[P("0x44")] = h[P("0xc0")], e[P("0x5d")] = 1, e[P("0xc1")] = 1;
            var F = o[P("0xc3")],
                D = m[P("0x6e")](x.transform, We);
            x[P("0xc2")](N);
            var U = o[P("0x99")](o[P("0xc3")], o[P("0x8d")](x.position, ke), ke),
                k = o[P("0x92")](x[P("0x9b")], U);

            if (xt(e, t, i, F, !1, !0), x._setTransform(M), k < 0) {
              i[P("0x63")].y > i[P("0x64")].y && (F = void 0);
              var B = x.constrainedAxis;
              x[P("0xc7")] = void 0, xt(e, t, i, F, !0, !1), x[P("0xc7")] = B;
            } else xt(e, t, i, F, !0, !1);

            if (l(x[P("0xc7")])) {
              var W = o[P("0x99")](x[P("0x93")], x.constrainedAxis, ze);
              o[P("0x62")](W, o[P("0x6f")], L[P("0xbb")]) || (o[P("0x92")](W, x[P("0x9b")]) < 0 && o[P("0xc8")](W, W), o[P("0x99")](W, x.direction, x.up), o.cross(x[P("0x93")], x.up, x[P("0x9b")]), o.normalize(x.up, x.up), o.normalize(x[P("0x9b")], x[P("0x9b")]));
            }

            x._setTransform(D), e[P("0x43")] = R;
            var j = (e._ellipsoid = O)[P("0xc4")];
            e[P("0x5d")] = 1 / j, e[P("0xc1")] = j;
            var V = o[P("0x6e")](x[P("0xa5")], ke);

            if (e[P("0x41")] && Vt(e), !o[P("0x84")](x[P("0xa5")], V)) {
              x._setTransform(M), x[P("0xc9")](V, V);
              var z = o.magnitudeSquared(V);
              o.magnitudeSquared(x[P("0x8c")]) > z && (o.normalize(x[P("0x8c")], x[P("0x8c")]), o[P("0x6c")](x[P("0x8c")], Math[P("0xca")](z), x.position));
              var H = o[P("0xcb")](V, x[P("0x8c")]),
                  q = o[P("0x99")](V, x[P("0x8c")], V);
              o[P("0x8d")](q, q);
              var X = C[P("0xcc")](q, H, je),
                  Y = p[P("0xcd")](X, Ve);
              p[P("0xce")](Y, x.direction, x[P("0x93")]), p[P("0xce")](Y, x.up, x.up), o[P("0x99")](x[P("0x93")], x.up, x[P("0x9b")]), o.cross(x[P("0x9b")], x[P("0x93")], x.up), x._setTransform(D);
            }
          }(e, t, i);
        }
      }

      var qe = new n(),
          Xe = new y(),
          Ye = new o();

      function Ke(e, t, i) {
        l(i.distance) && (i = i[P("0x8e")]);
        var r = e[P("0x42")],
            n = r[P("0x7e")],
            a = r[P("0x48")],
            s = qe;
        s.x = a.clientWidth / 2, s.y = a[P("0x7c")] / 2;
        var x,
            c,
            u = n[P("0x86")](s, Xe);
        if (n[P("0x8c")].z < e[P("0x3c")] && (x = Ce(e, s, Ye)), l(x)) c = o.distance(u[P("0x87")], x);else {
          var h = o.UNIT_X,
              f = u[P("0x87")],
              d = u[P("0x93")];
          c = -o[P("0x92")](h, f) / o[P("0x92")](h, d);
        }
        xe(e, t, i, e[P("0x5c")], c);
      }

      var Qe = new y(),
          Ze = new v(o[P("0xb8")], 0),
          Je = new o(),
          $e = new o(),
          et = new o();

      function tt(e, t, i) {
        var r = e[P("0x42")],
            n = r[P("0x7e")],
            a = Ce(e, i[P("0x63")], et);

        if (l(a)) {
          var s = i[P("0x64")],
              x = n.getPickRay(s, Qe),
              c = o[P("0x6e")](n[P("0x93")], $e);
          r[P("0xd3")] === E[P("0x8a")] && o[P("0x88")](c.z, c.x, c.y, c);
          var u = v[P("0xb9")](a, c, Ze),
              h = d[P("0xba")](x, u, Je);
          l(h) && (c = o[P("0x95")](a, h, c), r[P("0xd3")] === E.COLUMBUS_VIEW && o[P("0x88")](c.y, c.z, c.x, c), o[P("0x6d")](n[P("0x8c")], c, n.position));
        }
      }

      var it = new o(),
          rt = new s(),
          nt = new o(),
          ot = new h(),
          at = new o();

      function st(e, t, i) {
        var r = e[P("0x42")].camera;

        if (m[P("0x84")](r.transform, m[P("0xae")])) {
          var a,
              s,
              x,
              c = e[P("0x44")][P("0xd5")](r[P("0x8c")], at),
              u = e[P("0x44")][P("0xd6")](r[P("0xa5")], rt)[P("0x8b")],
              f = e._globe;

          if (l(f) && u < e[P("0x3c")] && (x = Ce(e, i.startPosition, et), l(x))) {
            var d = r[P("0x86")](i.startPosition, me),
                g = e._ellipsoid[P("0xd5")](x);

            Math.abs(o.dot(d[P("0x93")], g)) < 0.05 && !e[P("0x54")] && (e[P("0x55")] = !1, e[P("0x56")] = !0);
          }

          n.equals(t, e[P("0x4e")]) ? e._looking ? Bt(e, t, i, c) : e[P("0x55")] ? xt(e, t, i) : e._strafing ? (o[P("0x6e")](x, e[P("0x50")]), tt(e, 0, i)) : (a = o[P("0x96")](e[P("0x4f")]), (s = nt).x = s.y = s.z = a, mt(e, t, i, h.fromCartesian3(s, ot))) : (e[P("0x54")] = !1, e[P("0x55")] = !1, e[P("0x56")] = !1, l(f) && u < e._minimumPickingTerrainHeight ? l(x) ? o[P("0x96")](r[P("0x8c")]) < o[P("0x96")](x) ? (o[P("0x6e")](x, e[P("0x50")]), e._strafing = !0, tt(e, 0, i)) : (a = o.magnitude(x), (s = nt).x = s.y = s.z = a, mt(e, t, i, h[P("0xd7")](s, ot)), o[P("0x6e")](x, e[P("0x4f")])) : (e[P("0x54")] = !0, Bt(e, t, i, c)) : l(r[P("0xa2")](i.startPosition, e._ellipsoid, it)) ? (mt(e, t, i, e[P("0x44")]), o[P("0x6e")](it, e[P("0x4f")])) : u > e._minimumTrackBallHeight ? (e[P("0x55")] = !0, xt(e, t, i)) : (e[P("0x54")] = !0, Bt(e, t, i, c)), n.clone(t, e._rotateMousePosition));
        } else {
          i && i[P("0x63")] && i[P("0x64")] && (t = i[P("0x64")], i[P("0x64")] = i[P("0x63")], i.startPosition = t, i[P("0x64")].x = (i.startPosition.x + i[P("0x64")].x) / 2, i[P("0x64")].y = (i[P("0x63")].y + i[P("0x64")].y) / 2);

          var p = function (e) {
            var t = e[P("0x42")],
                i = t[P("0x7e")],
                r = t[P("0x43")][P("0x44")],
                n = _[P("0xbf")](i[P("0x8c")], r, wt),
                a = m.clone(i[P("0xaf")], Et);

            i[P("0xc2")](n);
            var s = new o();
            return s = m[P("0xd4")](i.viewMatrix, s, s), i._setTransform(a), s;
          }(e);

          r[P("0x80")] > L[P("0x77")](e.constrainedPitch, -L.PI, 0) && 0 <= i.startPosition.y - i[P("0x64")].y || 0 < p.y && i[P("0x63")].y - i[P("0x64")].y <= 0 ? xt(e, t, i, o[P("0xc3")], !1, !0) : xt(e, t, i);
        }
      }

      function xt(e, t, i, r, n, a) {
        n = x(n, !1), a = x(a, !1);
        var s = e._scene,
            c = s[P("0x7e")],
            u = s[P("0x48")],
            h = c[P("0xc7")];
        l(r) && (c.constrainedAxis = r);
        var f = o[P("0x96")](c[P("0x8c")]),
            d = e._rotateFactor * (f - e._rotateRateRangeAdjustment);
        d > e[P("0x5e")] && (d = e[P("0x5e")]), d < e[P("0x5f")] && (d = e[P("0x5f")]);
        var g = (i[P("0x63")].x - i[P("0x64")].x) / u[P("0x94")],
            p = (i[P("0x63")].y - i[P("0x64")].y) / u[P("0x7c")];
        g = Math[P("0x7d")](g, e.maximumMovementRatio), p = Math[P("0x7d")](p, e[P("0x2e")]);
        var m = d * g * Math.PI * 2,
            b = d * p * Math.PI;
        n || c[P("0xd8")](-m), a || (1 == e[P("0xd9")] && (c.constrainedAxis = void 0), c[P("0xda")](b)), c[P("0xc7")] = h;
      }

      var lt = a[P("0x6e")](a[P("0xa1")]),
          ct = a[P("0x6e")](a[P("0xa1")]),
          ut = new o(),
          ht = new o(),
          ft = new o(),
          dt = new o(),
          gt = new n(),
          pt = new n();

      function mt(e, t, i, r) {
        var a = e._scene[P("0x7e")],
            s = n[P("0x6e")](i[P("0x63")], gt),
            x = n[P("0x6e")](i.endPosition, pt),
            c = a[P("0xa2")](s, r, lt),
            u = a[P("0xa2")](x, r, ct);

        if (!l(c) || !l(u)) return e[P("0x55")] = !0, void xt(e, 0, i);

        if (c = a[P("0xdb")](c, c), u = a[P("0xdb")](u, u), l(a.constrainedAxis)) {
          var h = a[P("0xc7")],
              f = o[P("0xdd")](h, ut);
          o.cross(f, h, f), o.normalize(f, f);
          var d = o[P("0x99")](h, f, ht),
              g = o[P("0x96")](c),
              p = o.dot(h, c),
              m = Math[P("0xdc")](p / g),
              b = o[P("0x6c")](h, p, ft);
          o.subtract(c, b, b), o[P("0x8d")](b, b);

          var v = o[P("0x96")](u),
              C = o[P("0x92")](h, u),
              y = Math[P("0xdc")](C / v),
              _ = o[P("0x6c")](h, C, dt);

          o.subtract(u, _, _), o[P("0x8d")](_, _);
          var A = Math[P("0xdc")](o.dot(b, f));
          o[P("0x92")](b, d) < 0 && (A = L[P("0xab")] - A);
          var I = Math[P("0xdc")](o[P("0x92")](_, f));
          o.dot(_, d) < 0 && (I = L.TWO_PI - I);
          var w,
              G = A - I;
          w = o[P("0x62")](h, a[P("0x8c")], L.EPSILON2) ? a[P("0x9b")] : o[P("0x99")](h, a[P("0x8c")], ut);
          var E,
              S = o[P("0x99")](h, w, ut),
              T = o[P("0x92")](S, o[P("0x95")](c, h, ht)),
              M = o.dot(S, o[P("0x95")](u, h, ht));
          E = 0 < T && 0 < M ? y - m : 0 < T && M <= 0 ? 0 < o.dot(a[P("0x8c")], h) ? -m - y : m + y : m - y, a.rotateRight(G), a[P("0xda")](E);
        } else {
          o[P("0x8d")](c, c), o[P("0x8d")](u, u);
          var N = o[P("0x92")](c, u),
              R = o[P("0x99")](c, u, ut);

          if (N < 1 && !o[P("0x62")](R, o[P("0x6f")], L[P("0x65")])) {
            var O = Math[P("0xdc")](N);
            a.rotate(R, O);
          }
        }
      }

      var bt = new o(),
          vt = new s();

      function Ct(e, t, i) {
        l(i[P("0x8e")]) && (i = i.distance);
        var r = e[P("0x44")],
            n = e._scene,
            a = n[P("0x7e")],
            s = n.canvas,
            x = qe;
        x.x = s[P("0x94")] / 2, x.y = s[P("0x7c")] / 2;
        var c,
            u,
            h = a.getPickRay(x, Xe),
            f = r[P("0xd6")](a[P("0x8c")], vt).height;
        f < e[P("0x3c")] && (c = Ce(e, x, Ye)), u = l(c) ? o.distance(h[P("0x87")], c) : f;
        var d = o[P("0x8d")](a.position, bt);
        xe(e, t, i, e._zoomFactor, u, o[P("0x92")](d, a[P("0x93")]));
      }

      var yt = new n(),
          _t = new y(),
          At = new o(),
          It = new o(),
          wt = new m(),
          Gt = new m(),
          Et = new m(),
          St = new C(),
          Tt = new p(),
          Pt = new s(),
          Mt = new o();

      function Nt(e, t, i) {
        var r = e[P("0x42")].camera;
        if (i && i[P("0x63")] && i.endPosition && (t = i.endPosition, i.endPosition = i[P("0x63")], i[P("0x63")] = t, i[P("0x64")].x = (i.startPosition.x + i[P("0x64")].x) / 2, i[P("0x64")].y = (i[P("0x63")].y + i[P("0x64")].y) / 2), m[P("0x84")](r[P("0xaf")], m[P("0xae")])) if (l(i[P("0xaa")]) && (i = i[P("0xaa")]), n[P("0x84")](t, e[P("0x4d")]) || (e[P("0xde")] = !1, e._looking = !1), e[P("0x54")]) {
          var a = e[P("0x44")][P("0xd5")](r[P("0x8c")], Mt);
          Bt(e, t, i, a);
        } else {
          var s = e[P("0x44")][P("0xd6")](r[P("0x8c")], Pt);
          e[P("0xde")] || s.height > e[P("0x3e")] ? (e._tiltOnEllipsoid = !0, function (e, t, i) {
            var r = e[P("0x44")],
                a = e[P("0x42")],
                s = a[P("0x7e")],
                x = 0.25 * e[P("0x30")],
                c = r[P("0xd6")](s[P("0xa5")], Lt)[P("0x8b")];

            if (!(c - x - 1 < L[P("0xdf")] && i[P("0x64")].y - i[P("0x63")].y < 0)) {
              var u = a[P("0x48")],
                  f = yt;
              f.x = u[P("0x94")] / 2, f.y = u[P("0x7c")] / 2;
              var g,
                  p = s.getPickRay(f, _t),
                  b = d[P("0xe0")](p, r);
              if (l(b)) g = y[P("0xe1")](p, b[P("0xe2")], At);else {
                if (!(c > e._minimumTrackBallHeight)) {
                  e[P("0x54")] = !0;
                  var v = e[P("0x44")][P("0xd5")](s.position, Mt);
                  return Bt(e, t, i, v), n[P("0x6e")](t, e._tiltCenterMousePosition);
                }

                var C = d[P("0xe3")](p, r);
                if (!l(C)) return;
                var A = r[P("0xd6")](C, Pt);
                A.height = 0, g = r.cartographicToCartesian(A, At);
              }

              var I = _[P("0xbf")](g, r, wt),
                  w = e[P("0x43")],
                  G = e[P("0x44")];

              e[P("0x43")] = void 0, e[P("0x44")] = h[P("0xc0")], e[P("0x5d")] = 1, e[P("0xc1")] = 1;
              var E = m[P("0x6e")](s[P("0xaf")], Et);
              s._setTransform(I), s[P("0x80")] > L[P("0x77")](e.constrainedPitch, -L.PI, 0) && 0 <= i[P("0x63")].y - i[P("0x64")].y ? xt(e, 0, i, o.UNIT_Z, !1, !0) : xt(e, 0, i, o[P("0xc3")]), s._setTransform(E), e[P("0x43")] = w;
              var S = (e._ellipsoid = G)[P("0xc4")];
              e._rotateFactor = 1 / S, e[P("0xc1")] = S;
            }
          }(e, t, i)) : function (e, t, i) {
            var r,
                a,
                s,
                x = e[P("0x44")],
                c = e[P("0x42")],
                u = c[P("0x7e")];
            if (n[P("0x84")](t, e[P("0x4d")])) r = o.clone(e[P("0xc5")], At);else {
              if (r = Ce(e, t, At), !l(r)) {
                if (a = u[P("0x86")](t, _t), s = d.rayEllipsoid(a, x), !l(s)) {
                  if (x[P("0xd6")](u[P("0x8c")], Pt)[P("0x8b")] <= e[P("0x40")]) {
                    e._looking = !0;
                    var f = e[P("0x44")][P("0xd5")](u[P("0x8c")], Mt);
                    Bt(e, t, i, f), n[P("0x6e")](t, e._tiltCenterMousePosition);
                  }

                  return;
                }

                r = y[P("0xe1")](a, s[P("0xe2")], At);
              }

              n.clone(t, e[P("0x4d")]), o.clone(r, e[P("0xc5")]);
            }
            var g = c[P("0x48")],
                b = yt;
            b.x = g[P("0x94")] / 2, b.y = e[P("0x4d")].y, a = u[P("0x86")](b, _t);
            var v = o.magnitude(r),
                A = o[P("0x88")](v, v, v, nt),
                I = h[P("0xd7")](A, ot);

            if (s = d[P("0xe0")](a, I), l(s)) {
              var w = o[P("0x96")](a[P("0x87")]) > v ? s.start : s[P("0xe4")],
                  G = y[P("0xe1")](a, w, It),
                  E = _[P("0xbf")](r, x, wt),
                  S = _[P("0xbf")](G, I, Gt),
                  T = e[P("0x43")],
                  M = e[P("0x44")];

              e[P("0x43")] = void 0, e[P("0x44")] = h.UNIT_SPHERE, e[P("0x5d")] = 1, e[P("0xc1")] = 1;
              var N = o[P("0xc3")],
                  R = m[P("0x6e")](u[P("0xaf")], Et);

              u._setTransform(E);

              var O = o[P("0x99")](G, u.positionWC, ze),
                  F = o[P("0x92")](u[P("0xe5")], O);

              if (xt(e, 0, i, N, !1, !0), u[P("0xc2")](S), F < 0) {
                i.startPosition.y > i[P("0x64")].y && (N = void 0);
                var D = u[P("0xc7")];
                u[P("0xc7")] = void 0, xt(e, 0, i, N, !0, !1), u.constrainedAxis = D;
              } else (u[P("0x80")] < L[P("0x77")](e[P("0x25")], -L.PI, 0) || i.startPosition.y - i[P("0x64")].y <= 0) && xt(e, 0, i, N, !0, !1);

              if (l(u.constrainedAxis)) {
                var U = o[P("0x99")](u[P("0x93")], u.constrainedAxis, ze);
                o.equalsEpsilon(U, o.ZERO, L[P("0xbb")]) || (o[P("0x92")](U, u.right) < 0 && o[P("0xc8")](U, U), o.cross(U, u[P("0x93")], u.up), o[P("0x99")](u[P("0x93")], u.up, u[P("0x9b")]), o[P("0x8d")](u.up, u.up), o.normalize(u[P("0x9b")], u[P("0x9b")]));
              }

              u._setTransform(R), e[P("0x43")] = T;
              var k = (e._ellipsoid = M)[P("0xc4")];
              e[P("0x5d")] = 1 / k, e[P("0xc1")] = k;
              var B = o[P("0x6e")](u.positionWC, ze);

              if (e[P("0x41")] && Vt(e), !o.equals(u[P("0xa5")], B)) {
                u[P("0xc2")](S), u[P("0xc9")](B, B);
                var W = o[P("0xe6")](B);
                o[P("0xe6")](u[P("0x8c")]) > W && (o.normalize(u[P("0x8c")], u[P("0x8c")]), o[P("0x6c")](u[P("0x8c")], Math[P("0xca")](W), u[P("0x8c")]));
                var j = o[P("0xcb")](B, u[P("0x8c")]),
                    V = o[P("0x99")](B, u.position, B);
                o[P("0x8d")](V, V);
                var z = C.fromAxisAngle(V, j, St),
                    H = p[P("0xcd")](z, Tt);
                p[P("0xce")](H, u[P("0x93")], u[P("0x93")]), p[P("0xce")](H, u.up, u.up), o[P("0x99")](u[P("0x93")], u.up, u[P("0x9b")]), o[P("0x99")](u[P("0x9b")], u[P("0x93")], u.up), u._setTransform(R);
              }
            }
          }(e, t, i);
        }
      }

      var Lt = new s(),
          Rt = new n(),
          Ot = new n(),
          Ft = new y(),
          Dt = new y(),
          Ut = new o(),
          kt = new o();

      function Bt(e, t, i, r) {
        var n = e[P("0x42")][P("0x7e")],
            a = Rt;
        a.x = i.startPosition.x, a.y = 0;
        var s = Ot;
        s.x = i[P("0x64")].x, s.y = 0;
        var c,
            u,
            h = n[P("0x86")](a, Ft),
            f = n[P("0x86")](s, Dt),
            d = 0;
        n.frustum instanceof b ? (c = h[P("0x87")], u = f[P("0x87")], o[P("0x6d")](n[P("0x93")], c, c), o.add(n[P("0x93")], u, u), o[P("0x95")](c, n[P("0x8c")], c), o[P("0x95")](u, n[P("0x8c")], u), o[P("0x8d")](c, c), o[P("0x8d")](u, u)) : (c = h[P("0x93")], u = f[P("0x93")]);
        var g = o[P("0x92")](c, u);
        g < 1 && (d = Math[P("0xdc")](g)), d = i[P("0x63")].x > i[P("0x64")].x ? -d : d;
        var p = e[P("0x4c")];

        if (l(r) ? n[P("0xe7")](r, -d) : l(p) ? n[P("0xe7")](p, -d) : n.lookLeft(d), a.x = 0, a.y = i[P("0x63")].y, s.x = 0, s.y = i[P("0x64")].y, h = n.getPickRay(a, Ft), f = n[P("0x86")](s, Dt), d = 0, n[P("0xe8")] instanceof b ? (c = h[P("0x87")], u = f.origin, o[P("0x6d")](n[P("0x93")], c, c), o[P("0x6d")](n[P("0x93")], u, u), o.subtract(c, n[P("0x8c")], c), o[P("0x95")](u, n.position, u), o.normalize(c, c), o[P("0x8d")](u, u)) : (c = h[P("0x93")], u = f.direction), (g = o.dot(c, u)) < 1 && (d = Math.acos(g)), d = i.startPosition.y > i[P("0x64")].y ? -d : d, r = x(r, p), l(r)) {
          var m = n[P("0x93")],
              v = o.negate(r, Ut),
              C = o[P("0x62")](m, r, L[P("0xe9")]),
              y = o.equalsEpsilon(m, v, L[P("0xe9")]);
          if (C || y) (C && d < 0 || y && 0 < d) && n[P("0xe7")](n[P("0x9b")], -d);else {
            g = o[P("0x92")](m, r);

            var _ = L.acosClamped(g);

            0 < d && _ < d && (d = _ - L.EPSILON4), g = o[P("0x92")](m, v), _ = L[P("0x9d")](g), d < 0 && _ < -d && (d = -_ + L[P("0xea")]);
            var A = o[P("0x99")](r, m, kt);
            n.look(A, d);
          }
        } else n[P("0xeb")](d);
      }

      var Wt = new m(),
          jt = new s();

      function Vt(e) {
        e[P("0xec")] = !0;
        var t = e[P("0x42")],
            i = t.mode,
            r = t.globe;

        if (l(r) && i !== E[P("0x85")] && i !== E.MORPHING) {
          var n,
              a,
              s = t[P("0x7e")],
              x = r.ellipsoid,
              c = t[P("0xbd")];
          m.equals(s[P("0xaf")], m[P("0xae")]) || (n = m[P("0x6e")](s[P("0xaf")], Wt), a = o[P("0x96")](s[P("0x8c")]), s[P("0xc2")](m.IDENTITY));
          var u = jt;
          i === E[P("0x90")] ? x[P("0xd6")](s[P("0x8c")], u) : c[P("0xbe")](s[P("0x8c")], u);
          var h = !1;

          if (u[P("0x8b")] < e[P("0x3e")]) {
            var f = r[P("0xed")](u);
            l(f) && (f += e[P("0x30")], u[P("0x8b")] < f && (u[P("0x8b")] = f, i === E[P("0x90")] ? x[P("0xa7")](u, s.position) : c.project(u, s.position), h = !0));
          }

          l(n) && (s[P("0xc2")](n), h && (o[P("0x8d")](s[P("0x8c")], s[P("0x8c")]), o[P("0xc8")](s[P("0x8c")], s[P("0x93")]), o[P("0x6c")](s[P("0x8c")], Math[P("0xee")](a, e[P("0x30")]), s[P("0x8c")]), o.normalize(s[P("0x93")], s[P("0x93")]), o[P("0x99")](s[P("0x93")], s.up, s[P("0x9b")]), o[P("0x99")](s[P("0x9b")], s[P("0x93")], s.up)));
        }
      }

      R.prototype[P("0xbc")] = function () {
        var e = this._scene,
            t = e.mode,
            i = e[P("0x7e")];
        return t !== E[P("0x8a")] || Math[P("0x78")](i[P("0x8c")].x) - this[P("0x59")].x < 0 && Math[P("0x78")](i[P("0x8c")].y) - this[P("0x59")].y < 0;
      };

      var zt = new o(),
          Ht = new o();
      R.prototype[P("0xd2")] = function () {
        var e = this[P("0x42")][P("0x7e")];
        m.equals(e.transform, m[P("0xae")]) ? (this[P("0x43")] = this[P("0x42")][P("0xa3")], this[P("0x44")] = l(this[P("0x43")]) ? this._globe.ellipsoid : this[P("0x42")][P("0xbd")][P("0xef")]) : (this[P("0x43")] = void 0, this._ellipsoid = h[P("0xc0")]), this[P("0x3e")] = this[P("0x3d")] * this[P("0x42")][P("0xf0")], this._minimumPickingTerrainHeight = this[P("0x3b")] * this[P("0x42")].terrainExaggeration, this[P("0x40")] = this[P("0x3f")] * this[P("0x42")][P("0xf0")];
        var t = this[P("0x44")][P("0xc4")];
        this._rotateFactor = 1 / t, this[P("0xc1")] = t, this[P("0xec")] = !1;
        var i,
            r,
            n,
            a = o[P("0x6e")](e[P("0xa5")], zt),
            s = o[P("0x6e")](e[P("0xa6")], Ht),
            x = this[P("0x42")][P("0xd3")];
        x === E[P("0x85")] ? (n = (r = this)[P("0x42")][P("0xad")] === G.ROTATE, m.equals(m[P("0xae")], r[P("0x42")][P("0x7e")][P("0xaf")]) ? (D(r, r[P("0x28")], r[P("0xb2")], he, r.inertiaTranslate, P("0x49")), D(r, r[P("0xb0")], r[P("0x33")], fe, r[P("0xb1")], P("0xb4")), n && D(r, r[P("0x29")], r[P("0xb5")], pe, r[P("0x2c")], P("0x4a"))) : (D(r, r[P("0xb0")], r[P("0x33")], fe, r[P("0xb1")], "_lastInertiaZoomMovement"), n && D(r, r[P("0x29")], r[P("0xb2")], pe, r[P("0x2c")], P("0xb3")))) : x === E[P("0x8a")] ? (this[P("0x4c")] = o[P("0xc3")], function (e) {
          var t = e[P("0x42")][P("0x7e")];

          if (m[P("0x84")](m[P("0xae")], t[P("0xaf")])) {
            var i = e[P("0xcf")];

            if (e[P("0x46")][P("0xd0")] && i.removeAll(), D(e, e[P("0x2a")], e[P("0xb5")], He, e[P("0x2c")], "_lastInertiaTiltMovement"), D(e, e[P("0x28")], e[P("0xb2")], Pe, e.inertiaTranslate, P("0x49")), D(e, e[P("0xb0")], e.zoomEventTypes, Ke, e[P("0xb1")], P("0xb4")), D(e, e[P("0x2b")], e[P("0x39")], Bt), !(e._aggregator[P("0xd0")] || l(e._lastInertiaZoomMovement) && e[P("0xb4")][P("0x69")] || l(e._lastInertiaTranslateMovement) && e[P("0x49")][P("0x69")] || i[P("0xd1")](e._tween))) {
              var r = t.createCorrectPositionTween(e[P("0x2f")]);
              l(r) && (e[P("0x4b")] = i[P("0x6d")](r));
            }

            i[P("0xd2")]();
          } else D(e, e[P("0x29")], e[P("0x36")], xt, e[P("0x2c")], P("0xb3")), D(e, e.enableZoom, e[P("0x33")], Ct, e[P("0xb1")], P("0xb4"));
        }(this)) : x === E[P("0x90")] && (this[P("0x4c")] = void 0, D(i = this, i[P("0x29")], i[P("0x36")], st, i[P("0x2c")], P("0xb3")), D(i, i[P("0xb0")], i[P("0x33")], Ct, i[P("0xb1")], P("0xb4")), D(i, i[P("0x2a")], i[P("0xb5")], Nt, 2, "_lastInertiaTiltMovement"), D(i, i.enableLook, i[P("0x39")], Bt)), this[P("0x41")] && !this[P("0xec")] && (o[P("0x84")](a, e[P("0xa5")]) && o[P("0x84")](s, e[P("0xa6")]) || Vt(this)), this[P("0x46")][P("0xf1")]();
      }, R[P("0x5")][P("0xf2")] = function () {
        return this[P("0xec")];
      }, R[P("0x5")][P("0xf3")] = function () {
        return !1;
      }, R[P("0x5")][P("0xf4")] = function () {
        return this._tweens[P("0xf5")](), this[P("0x46")] = this[P("0x46")] && this._aggregator[P("0xf4")](), c(this);
      };
      var qt = {
        name: P("0xf6"),
        version: "",
        description: "",
        code: "",
        schemaCode: "",
        visible: "",
        type: ""
      },
          Xt = (M(Yt, [{
        key: "destroy",
        value: function value() {}
      }]), Yt);

      function Yt(e) {
        N(this, Yt), e = Object[P("0xf7")]({}, qt, e), this.name = e.name, this._version = e.version + "";
      }

      Object[P("0xf")](Xt[P("0x5")], {
        version: {
          get: function get() {
            return this[P("0xf8")];
          },
          set: function set(e) {
            this[P("0xf8")] = e + "";
          }
        }
      });
      var Kt = (function (e, t) {
        if (w()(t) !== P("0x8") && null !== t) throw new TypeError(P("0x9") + w()(t));
        e[P("0x5")] = Object[P("0xa")](t && t[P("0x5")], {
          constructor: {
            value: e,
            enumerable: !1,
            writable: !0,
            configurable: !0
          }
        }), t && (Object[P("0xb")] ? Object[P("0xb")](e, t) : e[P("0xc")] = t);
      }(Qt, Xt), M(Qt, [{
        key: "translate",
        value: function value() {}
      }, {
        key: P("0xfb"),
        value: function value() {}
      }, {
        key: P("0xfc"),
        value: function value() {}
      }]), Qt);

      function Qt(e) {
        return N(this, Qt), function (e, t) {
          if (!e) throw new ReferenceError(P("0x6"));
          return !t || w()(t) !== P("0x7") && "function" != typeof t ? e : t;
        }(this, (Qt[P("0xc")] || Object[P("0xf9")](Qt))[P("0xfa")](this, e));
      }

      window[P("0xfd")] && (cesium__WEBPACK_IMPORTED_MODULE_1__[P("0xf")] || (cesium__WEBPACK_IMPORTED_MODULE_1__[P("0xf")] = i), cesium__WEBPACK_IMPORTED_MODULE_1__["GeoScreenSpaceCameraController"] = R, cesium__WEBPACK_IMPORTED_MODULE_1__[P("0xfe")] = Kt);
    }), (T = window.Cesium) && (T[P("0x45")] = {
      GeoCamera: !0,
      GeoCameraEventAggregator: !0,
      GeoScreenSpaceCameraController: !0
    }, T[P("0xff")] = P("0x100")), function (e) {
      e[P("0x101")] = function (t, i) {
        if ((i = i || {}).baseLayerPicker = e[P("0x102")](i[P("0x103")], !1), i.timeline = e[P("0x102")](i.timeline, !1), i[P("0x104")] = e.defaultValue(i[P("0x104")], !1), i.homeButton = e[P("0x102")](i[P("0x105")], !1), i.navigationHelpButton = e[P("0x102")](i.navigationHelpButton, !1), i[P("0x106")] = e[P("0x102")](i[P("0x106")], !0), i.sceneMode = e[P("0x102")](i[P("0x107")], e[P("0x22")][P("0x90")]), i[P("0x108")] = e.defaultValue(i[P("0x108")], !0), i[P("0x109")] = e[P("0x102")](i[P("0x109")], 25), i.geocoder = e.defaultValue(i.geocoder, !1), i.fullscreenButton = e[P("0x102")](i[P("0x10a")], !1), !e[P("0x14")](i[P("0x10b")])) {
          var r = L(),
              n = new e[P("0x10c")]({
            url: r + P("0x10d"),
            rectangle: e.Rectangle.fromDegrees(-180, -90, 180, 90)
          });
          i.imageryProvider = n;
        }

        return new e[P("0x10e")](t, i);
      }, e[P("0x10e")][P("0x5")].getCameraOptionsToMapbox = function () {
        var t,
            i,
            r = this[P("0x10f")],
            n = this[P("0x48")],
            o = this[P("0x7e")],
            a = r.globe,
            s = e[P("0x16")][P("0x110")],
            x = 0,
            l = 0,
            c = null,
            u = new e[P("0x10")](n.clientWidth / 2, n[P("0x7c")] / 2),
            h = o[P("0x86")](u);

        if (!(c = (c = r[P("0xa3")][P("0xa4")](h, r)) || o[P("0xa2")](u))) {
          var f = o[P("0x91")][P("0x6e")](),
              d = a[P("0xed")](f);
          f[P("0x8b")] = d || 0, c = s[P("0xa7")](f);
        }

        var g = e[P("0x11")].distance(c, o[P("0x8c")]) / 1405.5;
        t = Math[P("0x111")](78271.51696402031 / g) - 1.2;
        var p = s.cartesianToCartographic(c);

        if (i = [e[P("0x23")].toDegrees(p[P("0x112")]), e[P("0x23")][P("0x113")](p[P("0x114")])], c) {
          var m = o.up,
              b = o[P("0x9b")],
              v = new e.Cartesian3(-c.y, c.x, 0),
              C = e[P("0x11")][P("0xcb")](b, v);
          x = e[P("0x11")].cross(c, m, new e[P("0x11")]()).z < 0 ? -C : C, x = e[P("0x23")][P("0x113")](x);

          var y = o[P("0x8c")],
              _ = new e[P("0x11")]();

          s[P("0x115")](c, _);
          var A = new e[P("0x11")]();
          e[P("0x11")][P("0x95")](y, c, A), e.Cartesian3[P("0x8d")](A, A);
          var I = Math[P("0xdc")](e[P("0x11")][P("0x92")](_, A));
          l = isNaN(I) ? 0 : I;
        } else x = e.Math[P("0x113")](o[P("0x7f")]), l = e[P("0x23")][P("0x116")];

        return {
          center: i,
          zoom: t,
          bearing: x,
          pitch: l = e[P("0x23")][P("0x113")](l)
        };
      }, e[P("0x10e")][P("0x5")][P("0x117")] = function (t) {
        var i = this[P("0x10f")],
            r = (this[P("0x48")], this[P("0x7e")]),
            n = i.globe,
            o = e[P("0x102")](t, {
          center: [0, 0],
          zoom: 1,
          bearing: 0,
          pitch: 0
        }),
            a = 78271.51696402031 / Math.pow(2, o[P("0x118")] + 1.2),
            s = new e.Cartographic(e[P("0x23")][P("0x119")](o[P("0x11a")][0]), e[P("0x23")][P("0x119")](o[P("0x11a")][1])),
            x = 1405.5 * a + (n[P("0xed")](s) || 0),
            l = e.Math.toRadians(o[P("0x11b")]),
            c = e.Math[P("0x119")](o[P("0x80")] - 90),
            u = {
          destination: e[P("0x16")][P("0x110")][P("0xa7")](s),
          orientation: {
            heading: l,
            pitch: c,
            roll: 0
          }
        },
            h = {
          destination: r[P("0x8c")][P("0x6e")](),
          orientation: {
            heading: r.heading,
            pitch: r[P("0x80")],
            roll: r.roll
          }
        };
        return r[P("0x9c")](u), r[P("0x11c")](x), u[P("0x11d")] = r[P("0x8c")][P("0x6e")](), u[P("0x11e")].heading = r[P("0x7f")], u[P("0x11e")][P("0x80")] = r[P("0x80")], u[P("0x11e")][P("0x81")] = r.roll, r[P("0x9c")](h), u;
      }, e[P("0x101")][P("0x11f")] = !1;
    }(window[P("0xfd")]), function (e) {
      var t = new e[P("0x127")]();

      function i(i) {
        var o = (i = e[P("0x102")](i, e[P("0x102")][P("0x128")]))[P("0x129")];
        if (!e[P("0x14")](o)) throw new DeveloperError(P("0x12a"));
        o = e[P("0x12b")](o);
        var a = i[P("0x12c")];
        this[P("0x12d")] = [], this[P("0x12e")] = t;

        for (var s = this, x = o[P("0x12f")], l = 0; l < x[P("0x0")]; l++) {
          var c = x[l],
              u = n(c, r(c.id, a));
          this[P("0x12d")].push(u);
        }

        for (var h = function h(e) {
          var t = s[P("0x12d")][e];
          t[P("0x7e")].changed[P("0x130")](function () {
            var e = t;
            s.onCameraChanged(e, s._viewers);
          });
        }, f = 0; f < s[P("0x12d")][P("0x0")]; f++) {
          h(f);
        }
      }

      function r(e, t) {
        if (!t || !e) return null;

        for (var i = 0; i < t[P("0x0")]; i++) {
          var r = t[i];
          if (e == r[P("0x131")]) return r[P("0x132")];
        }
      }

      function n(i, r) {
        return e.defaultValue(r, {
          clockViewModel: t,
          shouldAnimate: !0,
          showRenderLoopErrors: !1,
          baseLayerPicker: !1,
          infoBox: !1
        }), new e[P("0x101")](i, r);
      }

      function o(e, t) {
        var i = !0,
            r = t[P("0x8c")],
            n = e[P("0x8c")];
        n[P("0x84")](r) || (i = !1);
        var o = t[P("0x93")],
            a = e[P("0x93")];
        a[P("0x84")](o) || (i = !1);
        var s = t.up,
            x = e.up;
        x.equals(s) || (i = !1);
        var l = t[P("0x7f")],
            c = e[P("0x7f")];
        l != c && (i = !1);
        var u = t.pitch,
            h = e.pitch;
        u != h && (i = !1);
        var f = t[P("0x81")],
            d = e[P("0x81")];
        if (f != d && (i = !1), i) return console[P("0x133")]("停止"), !1;
        t.setView({
          destination: n.clone(),
          orientation: {
            direction: a[P("0x6e")](),
            up: x[P("0x6e")](),
            heading: c,
            pitch: h,
            roll: d
          }
        });
      }

      i[P("0x5")].onCameraChanged = function (e, t) {
        !function (e, t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            var r = t[i];
            e != r && o(e[P("0x7e")], r[P("0x7e")]);
          }
        }(e, t);
      }, i[P("0x5")][P("0x134")] = function (e) {
        for (var t = this[P("0x12d")], i = null, r = 0; r < t[P("0x0")]; r++) {
          if ((i = t[r])[P("0x131")].id == e) return i;
        }

        return i;
      }, i[P("0x5")].destroy = function () {
        var e = this._viewers;

        if (e) {
          for (var t = e[P("0x0")] - 1; 0 <= t; t--) {
            e[t].destroy();
          }

          this[P("0x12d")] = [];
        }
      }, e[P("0x135")] = i;
    }(window[P("0xfd")]), function (e) {
      var t = {
        left: {
          mode: P("0x136"),
          direction: e[P("0x137")][P("0x138")]
        },
        right: {
          mode: P("0x136"),
          direction: e[P("0x137")][P("0x139")]
        },
        top: {
          mode: "top-bottom",
          direction: 1
        },
        bottom: {
          mode: P("0x13a"),
          direction: -1
        }
      };

      function i(t) {
        var i = (t = e[P("0x102")](t, e.defaultValue[P("0x128")]))[P("0x13b")];
        if (!e[P("0x14")](i)) throw new DeveloperError("viewer is required.");
        this[P("0x13c")] = i, this[P("0x13d")] = e[P("0x102")](t.isEnable, !0), this[P("0x13e")](t.splitDirection), this[P("0x13f")] = this[P("0x140")](i, this[P("0x141")]), this[P("0x142")](), this[P("0x143")](this[P("0x141")]), this[P("0x144")](), this[P("0x145")] = e[P("0x102")](t[P("0x146")], []), this[P("0x147")]();
      }

      i[P("0x5")]._setSplitDirection = function (i) {
        i = (i = e[P("0x102")](i, "left"))[P("0x148")]();
        var r = t[i];
        r || (i = P("0x149"), r = t[i]), this._splitDirection = i, this._splitMode = r.mode;
      }, i.prototype._updateEnableLayers = function () {
        for (var e = this[P("0x145")], i = e[P("0x0")] - 1; 0 <= i; i--) {
          e[i][P("0x14a")] = t[this[P("0x14b")]][P("0x93")];
        }
      }, i.prototype._setSplitMode = function (e) {
        var t = this[P("0x13c")],
            i = this[P("0x13f")];
        i[P("0x14c")] = P("0x14d"), e == P("0x13a") && (i[P("0x14c")] += P("0x14e"), t.scene[P("0x14f")] = -1, i[P("0x150")][P("0x149")] = 0, i.style[P("0x151")] = P("0x152")), e == P("0x136") && (i[P("0x14c")] += P("0x153"), t[P("0x10f")][P("0x14f")] = 1, i[P("0x150")][P("0x151")] = 0, i[P("0x150")][P("0x149")] = P("0x152"));
      }, i[P("0x5")][P("0x154")] = function (e) {
        var t = this[P("0x13c")];

        if (this[P("0x155")] == P("0x136")) {
          var i = e[P("0x64")].x;
          if ((r = (slider[P("0x156")] + i) / slider[P("0x157")][P("0x158")]) < 0 || 1 < r) return;
          slider[P("0x150")][P("0x149")] = 100 * r + "%", t[P("0x10f")][P("0x159")] = r;
        }

        if (this.splitMode == P("0x13a")) {
          var r;
          if (i = e[P("0x64")].y, (r = (slider[P("0x15a")] + i) / slider[P("0x157")][P("0x15b")]) < 0 || 1 < r) return;
          slider[P("0x150")][P("0x151")] = 100 * r + "%", slider[P("0x150")][P("0x149")] = 0, t[P("0x10f")].imagerySplitPosition = 1 - r;
        }
      }, i[P("0x5")]._initSlider = function (t, i) {
        var r,
            n = this;

        if (!this[P("0x13f")]) {
          var o = function o(e) {
            if (s) {
              if (n.splitMode == P("0x136")) {
                var i = e[P("0x64")].x;
                if ((o = (r.offsetLeft + i) / r[P("0x157")][P("0x158")]) < 0 || 1 < o) return;
                r[P("0x150")][P("0x149")] = 100 * o + "%", t.scene[P("0x159")] = o;
              }

              if (n.splitMode == P("0x13a")) {
                var o;
                if (i = e.endPosition.y, (o = (r[P("0x15a")] + i) / r[P("0x157")][P("0x15b")]) < 0 || 1 < o) return;
                r[P("0x150")][P("0x151")] = 100 * o + "%", r[P("0x150")][P("0x149")] = 0, t.scene[P("0x159")] = 1 - o;
              }
            }
          };

          this[P("0x13f")] = document[P("0x15c")](P("0x15d")), r = this._slider, t[P("0x15e")].appendChild(r);
          var a = new e[P("0x15f")](r),
              s = !1;
          a[P("0x160")](function () {
            s = !0;
          }, e.ScreenSpaceEventType.LEFT_DOWN), a[P("0x160")](function () {
            s = !0;
          }, e[P("0x161")][P("0x162")]), a[P("0x160")](o, e[P("0x161")][P("0x163")]), a.setInputAction(o, e.ScreenSpaceEventType.PINCH_MOVE), a.setInputAction(function () {
            s = !1;
          }, e.ScreenSpaceEventType.LEFT_UP), a[P("0x160")](function () {
            s = !1;
          }, e[P("0x161")].PINCH_END);
        }

        return r;
      }, i[P("0x5")][P("0x142")] = function () {
        var e = P("0x164"),
            t = document.getElementById(e);
        t || ((t = document.createElement(P("0x150")))[P("0x165")] = "text/css", t.id = e, document.getElementsByTagName("head")[0].appendChild(t));
        var i = P("0x166");
        t[P("0x167")](document[P("0x168")](i));
      }, i.prototype[P("0x144")] = function () {
        var e,
            t = this[P("0x141")],
            i = this[P("0x13f")],
            r = this[P("0x13c")].scene;
        t == P("0x136") && (e = (i[P("0x156")] + 0) / i[P("0x157")][P("0x158")], r[P("0x159")] = e), t == P("0x13a") && (e = (i.offsetTop + 0) / i.parentElement[P("0x15b")], r.imagerySplitPosition = 1 - e);
      }, i.prototype.destroy = function () {
        var e = this[P("0x13f")];
        e && (this[P("0x13c")][P("0x131")].removeChild(e), this[P("0x13c")][P("0x10f")][P("0x159")] = 0);
      }, e[P("0xf")](i.prototype, {
        splitMode: {
          get: function get() {
            return this[P("0x141")];
          },
          set: function set(e) {
            this._splitMode = e, this[P("0x143")](e);
            var t,
                i = this[P("0x13f")],
                r = this[P("0x13c")];
            this.splitMode == P("0x136") && (t = (i.offsetLeft + 0) / i[P("0x157")][P("0x158")], r.scene[P("0x159")] = t), "top-bottom" == this[P("0x155")] && (t = (i.offsetTop + 0) / i[P("0x157")][P("0x15b")], r[P("0x10f")][P("0x159")] = 1 - t);
          }
        },
        isEnable: {
          get: function get() {
            return this._isEnable;
          },
          set: function set(e) {
            this[P("0x13d")] = e;
          }
        },
        enableLayers: {
          get: function get() {
            return this._enableLayers;
          },
          set: function set(e) {
            this._enableLayers = e, this[P("0x147")]();
          }
        },
        splitDirection: {
          get: function get() {
            return this[P("0x14b")];
          },
          set: function set(e) {
            this._setSplitDirection(e), this._setSplitMode(this._splitMode), this._updateEnableLayers(), this._upateSceneImagerySplitPositionBySlider();
          }
        }
      }), e.GeoSplitSliderWidget = i;
    }(window[P("0xfd")]), function (e) {
      var t = e.DrawCircleWidget = function (t, i) {
        this[P("0x13b")] = t.viewer, this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")][P("0x16b")][P("0x16c")](0.3), this[P("0x10f")] = this[P("0x13b")].scene, this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this.canvas = this[P("0x10f")][P("0x48")], this.primitives = this[P("0x10f")].primitives, this[P("0xef")] = this[P("0x10f")][P("0xa3")][P("0xef")], this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1, this[P("0x16d")] = new e[P("0x16e")](), this.callback = i || null;
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t.get(i)[P("0x176")] == e && (t.remove(t[P("0x187")](i)), i--);
        }
      }

      t[P("0x5")].activate = function () {
        if (!this[P("0x16f")]) {
          this.handler = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")][P("0x170")] = P("0x171");
          var t,
              i,
              r = this,
              n = [];
          this[P("0x172")] = n, this._circles_ = t = [], this[P("0x173")] = i, this[P("0x16f")][P("0x160")](function (i) {
            r.lastP = i;
            var o = r[P("0x10f")][P("0x174")](i.position);

            if (!o) {
              var a = r[P("0x7e")].getPickRay(i[P("0x8c")]);
              o = r[P("0x10f")][P("0xa3")][P("0xa4")](a, r[P("0x10f")]);
            }

            if (o && (e[P("0x13")][P("0x175")](o)[P("0x8b")] < 0 && (a = r[P("0x7e")][P("0x86")](i[P("0x8c")]), o = r[P("0x10f")].globe[P("0xa4")](a, r.scene)), n[0] = o, 0 < n[P("0x0")])) {
              var s = new e.CircleGeometry({
                center: o,
                radius: 0,
                height: 0
              });
              s[P("0x176")] = P("0x177");
              var x = new e[P("0x178")]({
                geometryInstances: new e[P("0x179")]({
                  geometry: s,
                  attributes: {
                    color: e.ColorGeometryInstanceAttribute.fromColor(r[P("0x169")])
                  }
                }),
                appearance: r.appearance,
                classificationType: e[P("0x17a")][P("0x17b")],
                interleave: !0
              });
              x.name = P("0x177"), t[P("0x17c")]({
                geometry: {
                  center: o,
                  radius: 0,
                  height: 0
                },
                primitive: x
              }), r[P("0x17d")][P("0x6d")](x);
            }
          }, e.ScreenSpaceEventType[P("0x17e")]), this[P("0x16f")].setInputAction(function (o) {
            var a = r.scene[P("0x174")](o.endPosition);

            if (!a) {
              var s = r.camera[P("0x86")](o[P("0x64")]);
              a = r[P("0x10f")][P("0xa3")][P("0xa4")](s, r[P("0x10f")]);
            }

            if (!a) return i && (r[P("0x17d")][P("0x17f")](i), i = null), void (r._labels_ = i);
            e[P("0x13")].fromCartesian(a)[P("0x8b")] < 0 && (s = r.camera.getPickRay(o[P("0x64")]), a = r[P("0x10f")][P("0xa3")][P("0xa4")](s, r.scene));
            var x = e.Cartographic[P("0x175")](a),
                l = e[P("0x23")][P("0x113")](x[P("0x112")]),
                c = e[P("0x23")][P("0x113")](x[P("0x114")]),
                u = x.height;
            0 < n[P("0x0")] && (t[0], r[P("0x17d")][P("0x17f")](t[0].primitive), t[0][P("0x180")][P("0x181")] = e.Cartesian3.distance(t[0].geometry[P("0x11a")], a), 3189100 < t[0][P("0x180")][P("0x181")] && (t[0][P("0x180")][P("0x181")] = 3189100), t[0][P("0x182")] = new e[P("0x178")]({
              geometryInstances: new e[P("0x179")]({
                geometry: new e[P("0x183")]({
                  center: t[0][P("0x180")].center[P("0x6e")](),
                  radius: t[0].geometry.radius,
                  height: t[0][P("0x180")][P("0x8b")]
                }),
                attributes: {
                  color: e[P("0x184")].fromColor(r[P("0x169")])
                }
              }),
              appearance: r[P("0x16d")],
              classificationType: e.ClassificationType[P("0x17b")],
              interleave: !0
            }), t[0][P("0x182")][P("0x176")] = P("0x177"), r[P("0x17d")][P("0x6d")](t[0][P("0x182")])), i ? i[P("0x187")](i[P("0x0")] - 1).position = e[P("0x11")].fromDegrees(l, c, u) : ((i = r[P("0x17d")].add(new e.LabelCollection()))[P("0x176")] = "draw_label", i[P("0x6d")]({
              text: P("0x185"),
              font: P("0x186"),
              showBackground: !0
            }), i[P("0x187")](i.length - 1)[P("0x8c")] = e[P("0x11")].fromDegrees(l, c, u)), r[P("0x173")] = i;
          }, e.ScreenSpaceEventType.MOUSE_MOVE), this[P("0x16f")].setInputAction(function (e) {
            r[P("0x188")](e);
          }, e.ScreenSpaceEventType[P("0x189")]);
        }
      }, t[P("0x5")].drawEnd = function (t) {
        var i = this[P("0x172")],
            r = this[P("0x18a")],
            n = this[P("0x173")];
        t = t || this[P("0x18b")], this[P("0x16f")] = this[P("0x16f")] && this.handler[P("0xf4")](), this[P("0x13b")].canvas[P("0x150")][P("0x170")] = P("0x18c"), n && (this[P("0x17d")].remove(n), n = null);
        var o = this[P("0x10f")][P("0x174")](t.position);

        if (!o) {
          var a = this[P("0x7e")][P("0x86")](t.position);
          o = this[P("0x10f")].globe[P("0xa4")](a, this[P("0x10f")]);
        }

        if (o) {
          e[P("0x13")][P("0x175")](o)[P("0x8b")] < 0 && (a = this[P("0x7e")].getPickRay(t.position), o = this[P("0x10f")][P("0xa3")][P("0xa4")](a, this.scene));
          var s = e.Cartographic.fromCartesian(o);

          if (e.Math.toDegrees(s.longitude), e[P("0x23")][P("0x113")](s[P("0x114")]), s[P("0x8b")], this[P("0xd3")], 0 < i[P("0x0")] && (this.primitives[P("0x17f")](r[0][P("0x182")]), r[0][P("0x180")][P("0x181")] = e.Cartesian3[P("0x8e")](r[0].geometry[P("0x11a")], o), 3189100 < r[0][P("0x180")][P("0x181")] && (r[0][P("0x180")].radius = 3189100), r[0][P("0x182")] = new e[P("0x178")]({
            geometryInstances: new e[P("0x179")]({
              geometry: new e[P("0x183")]({
                center: r[0].geometry[P("0x11a")][P("0x6e")](),
                radius: r[0][P("0x180")].radius,
                height: r[0][P("0x180")][P("0x8b")]
              }),
              attributes: {
                color: e[P("0x184")].fromColor(this[P("0x169")])
              }
            }),
            appearance: this[P("0x16d")],
            classificationType: e.ClassificationType[P("0x17b")],
            interleave: !0
          }), r[0][P("0x182")][P("0x176")] = P("0x177"), this[P("0x17d")][P("0x6d")](r[0].primitive), this.callback)) {
            var x = e[P("0x183")][P("0x18d")](new e[P("0x183")]({
              center: r[0][P("0x180")][P("0x11a")].clone(),
              radius: r[0].geometry.radius,
              height: r[0].geometry.height
            })),
                l = new e[P("0x18e")]({
              polygon: {
                hierarchy: {
                  positions: function () {
                    for (var t = [], i = x[P("0x18f")][P("0x8c")][P("0x190")], r = 0; r < i[P("0x0")]; r += 3) {
                      t[P("0x17c")](new e.Cartesian3(i[r], i[r + 1], i[r + 2]));
                    }

                    return t;
                  }()
                }
              }
            });
            this[P("0x191")](l);
          }

          i = [], r = [];
        }
      }, t[P("0x5")][P("0x192")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")].canvas[P("0x150")][P("0x170")] = P("0x18c"), i(P("0x193"), this[P("0x17d")]), i(P("0x177"), this[P("0x17d")]), function (e, t) {
          for (var i = t[P("0x190")], r = 0; r < i[P("0x0")]; r++) {
            i[r][P("0x176")] == e && (t.remove(i[r]), r--);
          }
        }(P("0x177"), this[P("0x13b")][P("0x194")]);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x195")] = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e.Color[P("0x196")].withAlpha(0.5), this.lineWidth = t[P("0x197")] ? t[P("0x197")] : 2, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x48")] = this[P("0x10f")].canvas, this[P("0x17d")] = this.scene[P("0x17d")], this[P("0xef")] = this[P("0x10f")].globe[P("0xef")], this[P("0x191")] = i || null;
      };

      function i(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i).name == e && (t.remove(t[P("0x187")](i)), i--);
        }
      }

      t.prototype[P("0x198")] = function () {
        if (!this[P("0x16f")]) {
          this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")][P("0x170")] = P("0x171");
          var t,
              i,
              r = this,
              n = [];
          this[P("0x16f")][P("0x160")](function (i) {
            if (!(0 < n.length)) {
              var o = r[P("0x7e")][P("0x86")](i.position),
                  a = r.scene[P("0xa3")][P("0xa4")](o, r[P("0x10f")]);

              if (a) {
                var s = e[P("0x13")].fromCartesian(a),
                    x = e[P("0x23")][P("0x113")](s[P("0x112")]),
                    l = e[P("0x23")][P("0x113")](s[P("0x114")]),
                    c = s[P("0x8b")];
                0 == n[P("0x0")] && (n.push(x), n[P("0x17c")](l), n[P("0x17c")](c), n[P("0x17c")](x), n[P("0x17c")](l), n[P("0x17c")](c), n[P("0x17c")](x), n.push(l), n[P("0x17c")](c), (t = r[P("0x17d")][P("0x6d")](new e[P("0x199")]())).name = "draw_polyline", t[P("0x6d")]({
                  polyline: {}
                }), t[P("0x187")](t.length - 1)[P("0x19a")] = r[P("0x197")], t.get(t[P("0x0")] - 1)[P("0x19b")] = !0, t[P("0x187")](t.length - 1)[P("0x19c")][P("0x19d")].color = r[P("0x169")], t[P("0x187")](t[P("0x0")] - 1).positions = e[P("0x11")][P("0x19e")](n));
              }
            }
          }, e[P("0x161")].LEFT_CLICK), this[P("0x16f")][P("0x160")](function (o) {
            var a = r[P("0x7e")].getPickRay(o[P("0x64")]),
                s = r[P("0x10f")][P("0xa3")][P("0xa4")](a, r.scene);

            if (s) {
              var x = e[P("0x13")].fromCartesian(s),
                  l = e[P("0x23")][P("0x113")](x[P("0x112")]),
                  c = e[P("0x23")][P("0x113")](x[P("0x114")]),
                  u = x[P("0x8b")];
              9 == n[P("0x0")] && (n[3] = l, n[4] = c, n[5] = u, n[2] >= n[5] ? (n[6] = n[0], n[7] = n[1], n[8] = n[5]) : (n[6] = n[3], n[7] = n[4], n[8] = n[2]), t[P("0x187")](t[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")].fromDegreesArrayHeights(n)), i ? i.get(i[P("0x0")] - 1).position = e[P("0x11")][P("0x1a1")](l, c, u) : ((i = r[P("0x17d")][P("0x6d")](new e.LabelCollection())).name = P("0x193"), i[P("0x6d")]({
                text: P("0x185"),
                font: P("0x1a0"),
                showBackground: !0,
                disableDepthTestDistance: Number[P("0x31")]
              }), i[P("0x187")](i[P("0x0")] - 1).position = e[P("0x11")][P("0x1a1")](l, c, u));
            } else i && (r[P("0x17d")].remove(i), i = null);
          }, e[P("0x161")][P("0x163")]), this[P("0x16f")][P("0x160")](function (t) {
            if (r[P("0x16f")] = r.handler && r.handler.destroy(), r.viewer[P("0x48")].style[P("0x170")] = P("0x18c"), i && (r[P("0x17d")][P("0x17f")](i), i = null), r[P("0x191")]) {
              var o = new e[P("0x18e")]({
                polyline: {
                  positions: e[P("0x11")][P("0x19e")](n)
                }
              });
              r.callback(o);
            }
          }, e[P("0x161")][P("0x189")]);
        }
      }, t.prototype[P("0x192")] = function () {
        this[P("0x16f")] = this.handler && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), i(P("0x193"), this[P("0x17d")]), i("draw_polyline", this[P("0x17d")]);
      };
    }(window.Cesium), function (e) {
      var t = e[P("0x1a2")] = function (t, i) {
        this.viewer = t.viewer, this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")][P("0x16b")], this[P("0x1a3")] = t[P("0x1a3")] ? t[P("0x1a3")] : 10, this.scene = this[P("0x13b")][P("0x10f")], this.camera = this[P("0x13b")][P("0x7e")], this.canvas = this.scene.canvas, this[P("0x17d")] = this.scene.primitives, this[P("0xef")] = this.scene.globe.ellipsoid, this.callback = i || null;
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i).name == e && (t[P("0x17f")](t.get(i)), i--);
        }
      }

      t[P("0x5")][P("0x198")] = function () {
        if (!this[P("0x16f")]) {
          this[P("0x16f")] = new e.ScreenSpaceEventHandler(this[P("0x48")]), this.viewer[P("0x48")][P("0x150")][P("0x170")] = "crosshair";
          var t,
              i,
              r = this,
              n = [];
          this[P("0x16f")][P("0x160")](function (o) {
            var a = r[P("0x10f")][P("0x174")](o[P("0x8c")]);

            if (!a) {
              var s = r[P("0x7e")][P("0x86")](o.position);
              a = r.scene[P("0xa3")].pick(s, r[P("0x10f")]);
            }

            if (a && (e[P("0x13")][P("0x175")](a).height < 0 && (s = r.camera.getPickRay(o[P("0x8c")]), a = r[P("0x10f")][P("0xa3")][P("0xa4")](s, r.scene)), n[0] = a, t ? t[P("0xf5")]() : (t = r[P("0x17d")][P("0x6d")](new e[P("0x1a4")]())).name = "draw_point", t[P("0x6d")]({
              position: a,
              color: r[P("0x169")],
              pixelSize: r[P("0x1a3")],
              disableDepthTestDistance: 30
            }), r[P("0x16f")] = r[P("0x16f")] && r[P("0x16f")][P("0xf4")](), r[P("0x13b")].canvas[P("0x150")].cursor = P("0x18c"), i && (r.primitives.remove(i), i = null), r[P("0x191")])) {
              var x = new e[P("0x18e")]({
                position: n[0],
                point: {}
              });
              r[P("0x191")](x);
            }
          }, e[P("0x161")][P("0x17e")]), this[P("0x16f")][P("0x160")](function (t) {
            var n = r.scene.pickPosition(t[P("0x64")]);

            if (!n) {
              var o = r[P("0x7e")][P("0x86")](t[P("0x64")]);
              n = r.scene[P("0xa3")][P("0xa4")](o, r[P("0x10f")]);
            }

            n ? (e[P("0x13")][P("0x175")](n).height < 0 && (o = r.camera[P("0x86")](t[P("0x64")]), n = r[P("0x10f")][P("0xa3")][P("0xa4")](o, r[P("0x10f")])), i ? i[P("0x187")](i.length - 1).position = n : ((i = r.primitives[P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = "draw_label", i.add({
              text: P("0x1a6"),
              font: P("0x186"),
              showBackground: !0
            }), i[P("0x187")](i[P("0x0")] - 1).position = n)) : i && (r[P("0x17d")].remove(i), i = null);
          }, e[P("0x161")][P("0x163")]);
        }
      }, t[P("0x5")].clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = "default", i(P("0x193"), this[P("0x17d")]), i(P("0x1a7"), this[P("0x17d")]);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x1a8")] = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")][P("0x196")][P("0x16c")](0.5), this.lineWidth = t.lineWidth ? t[P("0x197")] : 2, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this.camera = this[P("0x13b")].camera, this[P("0x48")] = this[P("0x10f")].canvas, this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0xef")] = this[P("0x10f")].globe[P("0xef")], this.callback = i || null, this[P("0x1a9")] = 0;
      };

      function i(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i)[P("0x176")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      t[P("0x5")].activate = function () {
        if (!this[P("0x16f")]) {
          this.handler = new e.ScreenSpaceEventHandler(this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")].cursor = P("0x171");
          var t,
              i,
              r = this,
              n = [],
              o = [],
              a = [];
          this[P("0x172")] = o, this._array2_ = a, this[P("0x1aa")] = t, this[P("0x173")] = i, this[P("0x16f")][P("0x160")](function (i) {
            r[P("0x18b")] = i;
            var s = r[P("0x10f")].pickPosition(i[P("0x8c")]);

            if (!s) {
              var x = r[P("0x7e")].getPickRay(i[P("0x8c")]);
              s = r[P("0x10f")][P("0xa3")][P("0xa4")](x, r[P("0x10f")]);
            }

            if (s) {
              e[P("0x13")].fromCartesian(s)[P("0x8b")] < 0 && (x = r[P("0x7e")][P("0x86")](i.position), s = r.scene.globe[P("0xa4")](x, r[P("0x10f")]));
              var l = e[P("0x13")][P("0x175")](s);
              o.push(s);
              var c = e[P("0x23")][P("0x113")](l[P("0x112")]),
                  u = e[P("0x23")][P("0x113")](l.latitude),
                  h = l[P("0x8b")];
              a.push([c, u]), n[P("0x17c")](c), n[P("0x17c")](u), n.push(h), 3 == n[P("0x0")] && ((t = r[P("0x17d")].add(new e[P("0x199")]())).name = P("0x1ab"), t.add({
                polyline: {}
              }), t.get(t[P("0x0")] - 1)[P("0x19a")] = r.lineWidth, t[P("0x187")](t[P("0x0")] - 1)[P("0x19b")] = !0, t[P("0x187")](t[P("0x0")] - 1)[P("0x19c")].uniforms[P("0x169")] = r[P("0x169")], t[P("0x187")](t[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")][P("0x19e")](n)), 3 < n[P("0x0")] && (t[P("0x187")](t[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")].fromDegreesArrayHeights(n)), r[P("0x1aa")] = t;
            }
          }, e[P("0x161")][P("0x17e")]), this[P("0x16f")][P("0x160")](function (o) {
            var a = r[P("0x10f")][P("0x174")](o[P("0x64")]);

            if (!a) {
              var s = r[P("0x7e")].getPickRay(o[P("0x64")]);
              a = r[P("0x10f")].globe.pick(s, r[P("0x10f")]);
            }

            if (a) {
              e[P("0x13")][P("0x175")](a).height < 0 && (s = r[P("0x7e")][P("0x86")](o.endPosition), a = r.scene[P("0xa3")].pick(s, r[P("0x10f")]));
              var x = e[P("0x13")][P("0x175")](a),
                  l = e[P("0x23")][P("0x113")](x[P("0x112")]),
                  c = e[P("0x23")][P("0x113")](x[P("0x114")]),
                  u = x[P("0x8b")];

              if (3 <= n[P("0x0")]) {
                var h = n.concat();
                h[P("0x17c")](l), h[P("0x17c")](c), h[P("0x17c")](u), t[P("0x187")](t.length - 1)[P("0x19f")] = e.Cartesian3.fromDegreesArrayHeights(h);
              }

              i ? i[P("0x187")](i[P("0x0")] - 1).position = e[P("0x11")].fromDegrees(l, c, u) : ((i = r.primitives[P("0x6d")](new e[P("0x1a5")]())).name = P("0x193"), i.add({
                text: P("0x185"),
                font: P("0x186"),
                showBackground: !0
              }), i[P("0x187")](i.length - 1)[P("0x8c")] = e[P("0x11")].fromDegrees(l, c, u)), r[P("0x173")] = i;
            }
          }, e[P("0x161")].MOUSE_MOVE), this.handler[P("0x160")](function (e) {
            r.drawEnd(e);
          }, e[P("0x161")].RIGHT_CLICK), this.count++;
        }
      }, t.prototype[P("0x188")] = function (t) {
        if (0 != this[P("0x172")][P("0x0")]) {
          var i = this[P("0x172")],
              r = this[P("0x1ac")],
              n = this[P("0x1aa")],
              o = this._labels_;
          t || (console[P("0x133")](P("0x1ad")), t = this.lastP), this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), o && (this[P("0x17d")][P("0x17f")](o), o = null);
          var a = this[P("0x10f")][P("0x174")](t[P("0x8c")]);

          if (!a) {
            var s = this[P("0x7e")][P("0x86")](t[P("0x8c")]);
            a = this[P("0x10f")][P("0xa3")].pick(s, this.scene);
          }

          if (a) {
            e[P("0x13")].fromCartesian(a)[P("0x8b")] < 0 && (s = this[P("0x7e")][P("0x86")](t.position), a = this[P("0x10f")][P("0xa3")][P("0xa4")](s, this[P("0x10f")])), i[P("0x17c")](a);
            var x = e[P("0x13")].fromCartesian(a),
                l = e.Math.toDegrees(x[P("0x112")]),
                c = e[P("0x23")][P("0x113")](x.latitude);
            r[P("0x17c")]([l, c]), n[P("0x187")](n[P("0x0")] - 1)[P("0x19c")].uniforms[P("0x169")] = e[P("0x16a")][P("0x1ae")][P("0x16c")](0);
            var u = new e[P("0x178")]({
              geometryInstances: [],
              appearance: new e[P("0x16e")](),
              show: !0,
              classificationType: e.ClassificationType[P("0x17b")]
            }),
                h = new e[P("0x179")]({
              geometry: e[P("0x1af")].fromPositions({
                positions: i,
                vertexFormat: e[P("0x1b0")][P("0x1b1")]
              }),
              attributes: {
                color: e[P("0x184")][P("0x1b2")](e[P("0x16a")].GREEN.withAlpha(0.3))
              }
            });

            if (u.geometryInstances[P("0x17c")](h), this[P("0x17d")][P("0x6d")](u)[P("0x176")] = P("0x1b3"), this[P("0x191")]) {
              var f = new e.Entity({
                polygon: {
                  hierarchy: {
                    positions: i
                  }
                }
              });
              this[P("0x191")](f);
            }

            this._array_ = [], this[P("0x1aa")] = null;
          }
        }
      }, t[P("0x5")][P("0x192")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")].cursor = "default", i(P("0x193"), this[P("0x17d")]), i(P("0x1ab"), this[P("0x17d")]), i(P("0x1b3"), this[P("0x17d")]);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e.DrawPolylineWidget = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x1b4")] = e[P("0x102")](t[P("0x1b4")], e[P("0x16a")].CHARTREUSE.withAlpha(0.5)), this[P("0x197")] = e.defaultValue(t[P("0x197")], 1), this.lineLoop = e[P("0x102")](t.lineLoop, !0), this.lineClampGround = e[P("0x102")](t.lineClampGround, !0), this.scene = this[P("0x13b")][P("0x10f")], this.camera = this[P("0x13b")].camera, this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0x191")] = i || null;
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i)[P("0x176")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      function r(t) {
        return [e[P("0x23")][P("0x113")](e[P("0x13")][P("0x175")](t)[P("0x112")]), e[P("0x23")][P("0x113")](e[P("0x13")][P("0x175")](t)[P("0x114")]), e[P("0x13")][P("0x175")](t)[P("0x8b")]];
      }

      t[P("0x5")][P("0x1b5")] = function (t) {
        if (this[P("0x1b6")]) {
          if (!(r = this[P("0x10f")][P("0x174")](t))) {
            var i = this[P("0x7e")][P("0x86")](t);
            r = this.scene[P("0xa3")][P("0xa4")](i, this.scene);
          }

          if (!r) return;
          e[P("0x13")][P("0x175")](r)[P("0x8b")] < 0 && (i = this[P("0x7e")][P("0x86")](t), r = this[P("0x10f")][P("0xa3")][P("0xa4")](i, this[P("0x10f")]));
        } else {
          i = this[P("0x7e")].getPickRay(t);
          var r = this.scene.globe.pick(i, this[P("0x10f")]);
        }

        return r;
      }, t[P("0x5")].createGroundPrimitive = function (t) {
        if (this.lineWidth && this[P("0x1b4")] && this[P("0x17d")]) {
          var i = new e[P("0x178")]({
            geometryInstances: new e.GeometryInstance({
              geometry: new e.CorridorGeometry({
                vertexFormat: e[P("0x1b7")][P("0x1b8")],
                positions: t,
                width: this.lineWidth
              }),
              attributes: {
                color: e.ColorGeometryInstanceAttribute.fromColor(this.lineColor)
              }
            }),
            classificationType: e.ClassificationType.BOTH
          });
          return this.primitives[P("0x6d")](i);
        }

        return !1;
      }, t.prototype[P("0x1b9")] = function (t) {
        if (this.lineWidth && this.lineColor && this.primitives) {
          var i = this[P("0x17d")][P("0x6d")](new e[P("0x199")]());
          return i[P("0x6d")]({
            polyline: {}
          }), i[P("0x187")](i[P("0x0")] - 1)[P("0x19a")] = this[P("0x197")], i[P("0x187")](i[P("0x0")] - 1).material[P("0x19d")][P("0x169")] = this[P("0x1b4")], i[P("0x187")](i[P("0x0")] - 1)[P("0x19f")] = t, i;
        }

        return !1;
      }, t[P("0x5")][P("0x198")] = function () {
        if (!this.handler) {
          this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")][P("0x48")].style[P("0x170")] = P("0x171");
          var t = [];
          this[P("0x1ba")] = [], this[P("0x1bb")] = null;
          var i = this;
          this[P("0x16f")][P("0x160")](function (e) {
            var n = i.screenToCartesian(e[P("0x8c")]);
            t[P("0x17c")](n), i[P("0x1ba")] = i[P("0x1ba")].concat(r(n));
            var o = t[P("0x0")],
                a = [],
                s = [];
            1 == o ? a = [t[o - 1]] : s = i.lineLoop ? (a = [t[o - 2], t[o - 1]], [t[0], t[o - 1]]) : (a = [t[o - 2], t[o - 1]], []), i.lineClampGround ? (i[P("0x17d")][P("0x17f")](i[P("0x1bc")]), i[P("0x17d")][P("0x17f")](i.concatGroundPrimitive), i[P("0x1bd")] = i.createGroundPrimitive(a), i[P("0x1bd")][P("0x176")] = "draw_polyline", i.concatGroundPrimitive = i.createGroundPrimitive(s), i[P("0x1be")].name = P("0x1bf")) : (i[P("0x17d")].remove(i[P("0x1c0")]), i[P("0x17d")].remove(i[P("0x1c1")]), i[P("0x1c2")] = i[P("0x1b9")](a), i.fixedPrimitive[P("0x176")] = "draw_polyline", i[P("0x1c0")] = i.createPrimitive(s), i[P("0x1c0")][P("0x176")] = "draw_polylineConcat");
          }, e[P("0x161")].LEFT_CLICK), this[P("0x16f")][P("0x160")](function (r) {
            var n = i.screenToCartesian(r.endPosition);

            if (n) {
              var o = t[P("0x0")];
              if (o) if (i[P("0x1b6")]) {
                i.primitives[P("0x17f")](i[P("0x1bc")]), i[P("0x17d")].remove(i[P("0x1be")]);
                var a = i[P("0x1c3")] && 2 <= o ? [t[o - 1], n[P("0x6e")](), t[0]] : [t[o - 1], n.clone()];
                i.temporaryGroundPrimitive = i[P("0x1c4")](a), i[P("0x1bc")].name = P("0x1c5");
              } else {
                i.primitives[P("0x17f")](i[P("0x1c1")]), i[P("0x17d")].remove(i[P("0x1c0")]);
                var s = i[P("0x1c3")] && 2 <= o ? [t[o - 1], n[P("0x6e")](), t[0]] : [t[o - 1], n[P("0x6e")]()];
                i.temporaryPrimitive = i[P("0x1b9")](s), i[P("0x1c1")][P("0x176")] = P("0x1c5");
              }
              i._labels ? i[P("0x1bb")][P("0x187")](i._labels[P("0x0")] - 1)[P("0x8c")] = n : (i._labels = i[P("0x17d")][P("0x6d")](new e.LabelCollection()), i[P("0x1bb")][P("0x176")] = P("0x193"), i[P("0x1bb")][P("0x6d")]({
                text: P("0x185"),
                font: P("0x186"),
                showBackground: !0
              }), i._labels[P("0x187")](i._labels[P("0x0")] - 1)[P("0x8c")] = n);
            } else i[P("0x1bb")] && (i[P("0x17d")][P("0x17f")](i._labels), i[P("0x1bb")] = null);
          }, e.ScreenSpaceEventType.MOUSE_MOVE), this.handler.setInputAction(function (e) {
            i[P("0x188")](t, e);
          }, e[P("0x161")].RIGHT_CLICK);
        }
      }, t.prototype[P("0x188")] = function (t, i) {
        var n = this[P("0x1bb")];
        this.handler = this[P("0x16f")] && this.handler[P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = "default", n && (this[P("0x17d")][P("0x17f")](n), n = null);
        var o = this[P("0x1b5")](i.position);
        t[P("0x17c")](o), this.degreesArrayHeights = this.degreesArrayHeights[P("0x1c6")](r(o));
        var a = t.length;

        if (this.lineClampGround) {
          this[P("0x17d")][P("0x17f")](this.temporaryGroundPrimitive), this[P("0x17d")][P("0x17f")](this[P("0x1be")]);
          var s = this.lineLoop && 2 < a ? [t[a - 2], t[a - 1], t[0]] : [t[a - 2], t[a - 1]];
          this[P("0x1c7")] = this[P("0x1c4")](s), this[P("0x1c7")][P("0x176")] = P("0x1ab");
        } else {
          this[P("0x17d")].remove(this.temporaryPrimitive), this[P("0x17d")][P("0x17f")](this[P("0x1c0")]);
          var x = this[P("0x1c3")] && 2 < a ? [t[a - 2], t[a - 1], t[0]] : [t[a - 2], t[a - 1]];
          this[P("0x1c8")] = this[P("0x1b9")](x), this[P("0x1c8")][P("0x176")] = P("0x1ab");
        }

        if (this.callback) {
          var l = new e.Entity({
            polyline: {
              positions: e[P("0x11")][P("0x19e")](this[P("0x1ba")])
            }
          });
          this[P("0x191")](l);
        }
      }, t[P("0x5")].clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")].style[P("0x170")] = "default", i(P("0x193"), this.primitives), i(P("0x1ab"), this.primitives);
      };
    }(window[P("0xfd")]);
    var R = {
      version: P("0x1c9"),
      createTime: P("0x1ca"),
      author: P("0x1cb")
    },
        O = {
      type: P("0x1cc"),
      headHeightFactor: 0.25,
      headWidthFactor: 0.3,
      neckHeightFactor: 0.85,
      fixPointCount: 4,
      neckWidthFactor: 0.15
    },
        F = {
      headHeightFactor: 0.18,
      headWidthFactor: 0.3,
      neckHeightFactor: 0.85,
      neckWidthFactor: 0.15,
      tailWidthFactor: 0.1,
      headTailFactor: 0.8,
      swallowTailFactor: 1
    };
    R[P("0x1cd")] = {}, R[P("0x1cd")].doubleArrow = function (e) {
      this[P("0x1ce")] = null;
      var t = {
        controlPoint: this[P("0x1cf")] = null,
        polygonalPoint: null
      };

      if (!((i = (this.points = e).length) < 2)) {
        if (2 == i) return e;
        var i,
            r,
            n,
            o = this.points[0],
            a = this[P("0x1d0")][1],
            s = this[P("0x1d0")][2];
        3 == (i = e[P("0x0")]) ? this[P("0x1cf")] = R[P("0x1cd")][P("0x1d1")](o, a, s) : this.tempPoint4 = this.points[3], 3 == i || 4 == i ? this.connPoint = W[P("0x1d2")].mid(o, a) : this[P("0x1ce")] = this.points[4], n = W[P("0x1d2")][P("0x1d3")](o, a, s) ? (r = R[P("0x1cd")].getArrowPoints(o, this[P("0x1ce")], this[P("0x1cf")], !1), R[P("0x1cd")].getArrowPoints(this.connPoint, a, s, !0)) : (r = R[P("0x1cd")][P("0x1d4")](a, this[P("0x1ce")], s, !1), R.algorithm[P("0x1d4")](this[P("0x1ce")], o, this[P("0x1cf")], !0));
        var x = r.length,
            l = (x - 5) / 2,
            c = r.slice(0, l),
            u = r[P("0x1d5")](l, 5 + l),
            h = r[P("0x1d5")](5 + l, x),
            f = n[P("0x1d5")](0, l),
            d = n.slice(l, 5 + l),
            g = n.slice(5 + l, x);
        f = W.PlotUtils[P("0x1d6")](f);
        var p = W[P("0x1d2")][P("0x1d6")](g[P("0x1c6")](c.slice(1)));
        h = W[P("0x1d2")].getBezierPoints(h);
        var m = f[P("0x1c6")](d, p, u, h),
            b = R[P("0x1cd")][P("0x1d7")](m);
        t[P("0x1d8")] = [o, a, s, this.tempPoint4, this[P("0x1ce")]], t[P("0x1d9")] = cesium__WEBPACK_IMPORTED_MODULE_1__["Cartesian3"][P("0x1da")](b);
      }

      return t;
    }, R.algorithm[P("0x1d1")] = function (e, t, i, r) {
      this[P("0x165")] = O[P("0x165")], this[P("0x1db")] = O.headHeightFactor, this.headWidthFactor = O[P("0x1dc")], this[P("0x1dd")] = O.neckHeightFactor, this[P("0x1de")] = O[P("0x1de")];
      var n = W[P("0x1d2")].mid(e, t),
          o = W[P("0x1d2")].distance(n, i),
          a = W.PlotUtils[P("0x1df")](i, n, 0, 0.3 * o, !0),
          s = W[P("0x1d2")][P("0x1df")](i, n, 0, 0.5 * o, !0),
          x = [n, a = W[P("0x1d2")][P("0x1df")](n, a, W.Constants[P("0x1e0")], o / 5, r), s = W[P("0x1d2")][P("0x1df")](n, s, W[P("0x1e1")][P("0x1e0")], o / 4, r), i],
          l = R[P("0x1cd")].getArrowHeadPoints(x, this.headHeightFactor, this[P("0x1dc")], this[P("0x1dd")], this.neckWidthFactor),
          c = l[0],
          u = l[4],
          h = W[P("0x1d2")][P("0x8e")](e, t) / W[P("0x1d2")][P("0x1e2")](x) / 2,
          f = R.algorithm.getArrowBodyPoints(x, c, u, h),
          d = f[P("0x0")],
          g = f[P("0x1d5")](0, d / 2),
          p = f.slice(d / 2, d);
      return g.push(c), p[P("0x17c")](u), (g = g[P("0x1e3")]())[P("0x17c")](t), (p = p[P("0x1e3")]()).push(e), g[P("0x1e3")]()[P("0x1c6")](l, p);
    }, R[P("0x1cd")][P("0x1d7")] = function (e) {
      var t = [];
      return e[P("0x1e4")](function (e) {
        t[P("0x17c")](e[0]), t[P("0x17c")](e[1]);
      }), t;
    }, R[P("0x1cd")][P("0x1d4")] = function (e, t, i, r) {
      this[P("0x165")] = O.type, this.headHeightFactor = O[P("0x1db")], this[P("0x1dc")] = O[P("0x1dc")], this[P("0x1dd")] = O[P("0x1dd")], this[P("0x1de")] = O[P("0x1de")];
      var n = W.PlotUtils[P("0x1e5")](e, t),
          o = W[P("0x1d2")][P("0x8e")](n, i),
          a = W[P("0x1d2")].getThirdPoint(i, n, 0, 0.3 * o, !0),
          s = W.PlotUtils[P("0x1df")](i, n, 0, 0.5 * o, !0),
          x = [n, a = W[P("0x1d2")].getThirdPoint(n, a, W[P("0x1e1")].HALF_PI, o / 5, r), s = W[P("0x1d2")][P("0x1df")](n, s, W.Constants[P("0x1e0")], o / 4, r), i],
          l = R[P("0x1cd")][P("0x1e6")](x, this[P("0x1db")], this[P("0x1dc")], this[P("0x1dd")], this[P("0x1de")]),
          c = l[0],
          u = l[4],
          h = W[P("0x1d2")][P("0x8e")](e, t) / W[P("0x1d2")][P("0x1e2")](x) / 2,
          f = R[P("0x1cd")][P("0x1e7")](x, c, u, h),
          d = f.length,
          g = f[P("0x1d5")](0, d / 2),
          p = f[P("0x1d5")](d / 2, d);
      return g.push(c), p[P("0x17c")](u), (g = g[P("0x1e3")]())[P("0x17c")](t), (p = p[P("0x1e3")]())[P("0x17c")](e), g[P("0x1e3")]()[P("0x1c6")](l, p);
    }, R[P("0x1cd")][P("0x1e6")] = function (e, t, i) {
      this.type = O.type, this[P("0x1db")] = O[P("0x1db")], this[P("0x1dc")] = O[P("0x1dc")], this[P("0x1dd")] = O[P("0x1dd")], this.neckWidthFactor = O[P("0x1de")];
      var r = W.PlotUtils[P("0x1e2")](e) * this[P("0x1db")],
          n = e[e[P("0x0")] - 1],
          o = (W.PlotUtils.distance(t, i), r * this.headWidthFactor),
          a = r * this[P("0x1de")],
          s = r * this[P("0x1dd")],
          x = W[P("0x1d2")][P("0x1df")](e[e[P("0x0")] - 2], n, 0, r, !0),
          l = W[P("0x1d2")][P("0x1df")](e[e[P("0x0")] - 2], n, 0, s, !0),
          c = W[P("0x1d2")][P("0x1df")](n, x, W[P("0x1e1")][P("0x1e0")], o, !1),
          u = W[P("0x1d2")].getThirdPoint(n, x, W.Constants[P("0x1e0")], o, !0);
      return [W[P("0x1d2")].getThirdPoint(n, l, W[P("0x1e1")][P("0x1e0")], a, !1), c, n, u, W.PlotUtils[P("0x1df")](n, l, W[P("0x1e1")][P("0x1e0")], a, !0)];
    }, R[P("0x1cd")][P("0x1e7")] = function (e, t, i, r) {
      for (var n = W.PlotUtils[P("0x1e8")](e), o = W[P("0x1d2")][P("0x1e2")](e) * r, a = (o - W[P("0x1d2")][P("0x8e")](t, i)) / 2, s = 0, x = [], l = [], c = 1; c < e[P("0x0")] - 1; c++) {
        var u = W[P("0x1d2")][P("0x1e9")](e[c - 1], e[c], e[c + 1]) / 2,
            h = (o / 2 - (s += W.PlotUtils[P("0x8e")](e[c - 1], e[c])) / n * a) / Math[P("0x98")](u),
            f = W[P("0x1d2")][P("0x1df")](e[c - 1], e[c], Math.PI - u, h, !0),
            d = W[P("0x1d2")][P("0x1df")](e[c - 1], e[c], u, h, !1);
        x[P("0x17c")](f), l[P("0x17c")](d);
      }

      return x[P("0x1c6")](l);
    }, R[P("0x1cd")][P("0x1d1")] = function (e, t, i) {
      var r,
          n,
          o,
          a = W[P("0x1d2")][P("0x1e5")](e, t),
          s = W[P("0x1d2")].distance(a, i),
          x = W[P("0x1d2")][P("0x1e9")](e, a, i);
      return x < W[P("0x1e1")][P("0x1e0")] ? (r = s * Math.sin(x), n = s * Math.cos(x), o = W[P("0x1d2")][P("0x1df")](e, a, W.Constants[P("0x1e0")], r, !1), W[P("0x1d2")].getThirdPoint(a, o, W[P("0x1e1")].HALF_PI, n, !0)) : x >= W[P("0x1e1")].HALF_PI && x < Math.PI ? (r = s * Math.sin(Math.PI - x), n = s * Math.cos(Math.PI - x), o = W[P("0x1d2")][P("0x1df")](e, a, W[P("0x1e1")][P("0x1e0")], r, !1), W[P("0x1d2")].getThirdPoint(a, o, W.Constants[P("0x1e0")], n, !1)) : x >= Math.PI && x < 1.5 * Math.PI ? (r = s * Math[P("0x98")](x - Math.PI), n = s * Math[P("0x9a")](x - Math.PI), o = W[P("0x1d2")][P("0x1df")](e, a, W[P("0x1e1")].HALF_PI, r, !0), W[P("0x1d2")].getThirdPoint(a, o, W[P("0x1e1")][P("0x1e0")], n, !0)) : (r = s * Math[P("0x98")](2 * Math.PI - x), n = s * Math[P("0x9a")](2 * Math.PI - x), o = W[P("0x1d2")][P("0x1df")](e, a, W.Constants[P("0x1e0")], r, !0), W.PlotUtils[P("0x1df")](a, o, W[P("0x1e1")][P("0x1e0")], n, !1));
    }, R[P("0x1cd")][P("0x1ea")] = function (e) {
      e = R[P("0x1cd")].dereplication(e), this[P("0x1eb")] = F.tailWidthFactor, this[P("0x1ec")] = F[P("0x1ec")], this[P("0x1ed")] = F.swallowTailPnt;
      var t = {
        controlPoint: null,
        polygonalPoint: null
      };

      if (!((d = (t[P("0x1d8")] = e)[P("0x0")]) < 2)) {
        if (2 == e.length) return t.polygonalPoint = e, t;
        var i = e,
            r = i[0],
            n = i[1];
        W[P("0x1d2")].isClockWise(i[0], i[1], i[2]) && (r = i[1], n = i[0]);
        var o = [W.PlotUtils[P("0x1e5")](r, n)].concat(i[P("0x1d5")](2)),
            a = R[P("0x1cd")][P("0x1ee")](o, r, n, F),
            s = a[0],
            x = a[4],
            l = W[P("0x1d2")][P("0x8e")](r, n),
            c = W[P("0x1d2")][P("0x1e2")](o),
            u = c * this[P("0x1eb")] * this[P("0x1ec")];
        this.swallowTailPnt = W[P("0x1d2")][P("0x1df")](o[1], o[0], 0, u, !0);
        var h = l / c,
            f = R[P("0x1cd")][P("0x1ef")](o, s, x, h),
            d = f[P("0x0")],
            g = [r][P("0x1c6")](f[P("0x1d5")](0, d / 2));
        g[P("0x17c")](s);
        var p,
            m = [n][P("0x1c6")](f.slice(d / 2, d));
        m[P("0x17c")](x), g = W[P("0x1d2")].getQBSplinePoints(g), m = W[P("0x1d2")][P("0x1f0")](m), p = R[P("0x1cd")][P("0x1d7")](g[P("0x1c6")](a, m[P("0x1e3")](), [this[P("0x1ed")], g[0]])), t.polygonalPoint = cesium__WEBPACK_IMPORTED_MODULE_1__["Cartesian3"][P("0x1da")](p);
      }

      return t;
    }, R[P("0x1cd")][P("0x1ee")] = function (e, t, i, r) {
      this[P("0x1db")] = r[P("0x1db")], this.headTailFactor = r[P("0x1f1")], this[P("0x1dc")] = r[P("0x1dc")], this[P("0x1de")] = r[P("0x1de")], this[P("0x1dd")] = r[P("0x1dd")];
      var n = W[P("0x1d2")].getBaseLength(e),
          o = n * this.headHeightFactor,
          a = e[e[P("0x0")] - 1];
      n = W[P("0x1d2")].distance(a, e[e[P("0x0")] - 2]);
      var s = W[P("0x1d2")][P("0x8e")](t, i);
      o > s * this.headTailFactor && (o = s * this[P("0x1f1")]);
      var x = o * this[P("0x1dc")],
          l = o * this.neckWidthFactor,
          c = (o = n < o ? n : o) * this[P("0x1dd")],
          u = W[P("0x1d2")][P("0x1df")](e[e.length - 2], a, 0, o, !0),
          h = W.PlotUtils.getThirdPoint(e[e.length - 2], a, 0, c, !0),
          f = W.PlotUtils.getThirdPoint(a, u, W[P("0x1e1")].HALF_PI, x, !1),
          d = W[P("0x1d2")][P("0x1df")](a, u, W[P("0x1e1")][P("0x1e0")], x, !0);
      return [W[P("0x1d2")][P("0x1df")](a, h, W.Constants.HALF_PI, l, !1), f, a, d, W.PlotUtils[P("0x1df")](a, h, W.Constants.HALF_PI, l, !0)];
    }, R.algorithm[P("0x1ef")] = function (e, t, i, r) {
      for (var n = W[P("0x1d2")].wholeDistance(e), o = W[P("0x1d2")][P("0x1e2")](e) * r, a = (o - W.PlotUtils[P("0x8e")](t, i)) / 2, s = 0, x = [], l = [], c = 1; c < e[P("0x0")] - 1; c++) {
        var u = W[P("0x1d2")][P("0x1e9")](e[c - 1], e[c], e[c + 1]) / 2,
            h = (o / 2 - (s += W[P("0x1d2")].distance(e[c - 1], e[c])) / n * a) / Math[P("0x98")](u),
            f = W[P("0x1d2")][P("0x1df")](e[c - 1], e[c], Math.PI - u, h, !0),
            d = W[P("0x1d2")][P("0x1df")](e[c - 1], e[c], u, h, !1);
        x[P("0x17c")](f), l[P("0x17c")](d);
      }

      return x.concat(l);
    }, R.algorithm.dereplication = function (e) {
      var t = e[e[P("0x0")] - 1],
          i = !1,
          r = [];
      return r = e[P("0x1f2")](function (e) {
        if (e[0] != t[0] && e[1] != t[1]) return e;
        i = !0;
      }), i && r[P("0x17c")](t), r;
    };
    var D,
        U,
        k = (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && w()(Symbol[P("0x1f3")]) === P("0x1f4") ? function (e) {
      return w()(e);
    } : function (e) {
      return e && (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && e.constructor === A.a && e !== Symbol[P("0x5")] ? "symbol" : w()(e);
    };
    D = window[P("0xfd")], U = D[P("0x1f5")] = function () {
      var e = D.Ellipsoid[P("0x110")],
          t = {
        billBoard: [],
        primitives: []
      };

      function i(e) {
        function t(e) {
          var t = document[P("0x15c")](P("0x298"));
          t[P("0x14c")] = "twipsy right";
          var i = document[P("0x15c")](P("0x298"));
          i.className = P("0x2b0"), t[P("0x167")](i);
          var r = document[P("0x15c")]("DIV");
          r[P("0x14c")] = P("0x2b1"), t.appendChild(r), this[P("0x2b2")] = t, this._title = r, e[P("0x167")](t);
        }

        var i;
        this[P("0x42")] = e[P("0x10f")], this[P("0x1f6")] = (i = e[P("0x131")], t.prototype[P("0x207")] = function (e) {
          this[P("0x2b2")][P("0x150")].display = P(e ? "0x2b3" : "0x2b4");
        }, t[P("0x5")][P("0x205")] = function (e, t) {
          e && t && (this.setVisible(!0), this[P("0x2b5")].innerHTML = t, this[P("0x2b2")][P("0x150")][P("0x149")] = e.x + 10 + "px", this[P("0x2b2")][P("0x150")][P("0x151")] = e.y - this[P("0x2b2")][P("0x7c")] / 2 + "px");
        }, new t(i)), this[P("0x1f7")] = [], this.initialiseHandlers(), this[P("0x1f8")]();
      }

      i[P("0x5")].initialiseHandlers = function () {
        var e,
            t = this[P("0x42")],
            i = this,
            r = new D[P("0x15f")](t[P("0x48")]);

        function n(e, r) {
          if (1 != i[P("0x1f9")]) {
            var n = t[P("0xa4")](r);
            n && n[P("0x182")] && n[P("0x182")][e] && n[P("0x182")][e](r);
          }
        }

        r[P("0x160")](function (e) {
          n("leftClick", e[P("0x8c")]);
        }, D[P("0x161")][P("0x17e")]), r[P("0x160")](function (e) {
          n("leftDoubleClick", e[P("0x8c")]);
        }, D.ScreenSpaceEventType.LEFT_DOUBLE_CLICK), r[P("0x160")](function (r) {
          if (1 != i[P("0x1f9")]) {
            var n = t.pick(r[P("0x64")]);
            !e || n && e == n[P("0x182")] || (e.isDestroyed && e[P("0xf3")]() || e.mouseOut(r.endPosition), e = null), n && n[P("0x182")] && ((n = n[P("0x182")])[P("0x1fa")] && (e = n), n.mouseMove && n[P("0x1fb")](r[P("0x64")]));
          }
        }, D[P("0x161")].MOUSE_MOVE), r[P("0x160")](function (e) {
          n(P("0x1fc"), e[P("0x8c")]);
        }, D.ScreenSpaceEventType[P("0x1fd")]), r[P("0x160")](function (e) {
          n(P("0x1fe"), e.position);
        }, D.ScreenSpaceEventType[P("0x1ff")]);
      }, i[P("0x5")][P("0x200")] = function (e, t, i) {
        e[t] = i;
      }, i[P("0x5")][P("0x201")] = function (e) {
        this._handlersMuted = e;
      }, i[P("0x5")][P("0x202")] = function (e) {
        var i = this;
        E(e, P("0x1fb"), function (t) {
          e[P("0x203")](!0), e[P("0x204")] || i._tooltip[P("0x205")](t, P("0x206"));
        }), E(e, P("0x1fa"), function (t) {
          e[P("0x203")](!1), i[P("0x1f6")][P("0x207")](!1);
        }), E(e, P("0x208"), function (i) {
          e.setEditMode(!0), t.primitives[P("0x17c")](e);
        }), E(e, P("0x209"), function (i) {
          t.primitives[P("0x17c")](e);
        });
      }, i[P("0x5")].startDrawing = function (e) {
        this[P("0x20a")](), this[P("0x20b")] && this[P("0x20b")](), this.editCleanUp = e, this[P("0x201")](!0);
      }, i[P("0x5")][P("0x20c")] = function () {
        this.editCleanUp && (this.editCleanUp(), this[P("0x20b")] = null), this[P("0x201")](!1);
      }, i[P("0x5")][P("0x20d")] = function () {
        this[P("0x203")](void 0);
      }, i[P("0x5")][P("0x203")] = function (e) {
        this[P("0x20e")] && !this[P("0x20e")][P("0xf3")]() && this[P("0x20e")] != e && this[P("0x20e")][P("0x203")](!1), this._highlightedSurface = e;
      }, i[P("0x5")][P("0x20a")] = function () {
        this[P("0x20f")](void 0);
      }, i.prototype[P("0x20f")] = function (e) {
        this[P("0x210")] && !this[P("0x210")][P("0xf3")]() && this[P("0x210")][P("0x211")](!1), this._editedSurface = e;
      };
      var r = D[P("0x212")][P("0x213")](D[P("0x212")][P("0x214")]);
      r[P("0x19d")][P("0x169")] = new D[P("0x16a")](1, 1, 0, 0.5);
      var n = {
        ellipsoid: D.Ellipsoid[P("0x110")],
        textureRotationAngle: 0,
        height: 0,
        asynchronous: !0,
        show: !0,
        debugShowBoundingVolume: !1
      },
          o = G(n, {
        appearance: new D[P("0x1b0")]({
          aboveGround: !1
        }),
        material: r,
        granularity: Math.PI / 180
      }),
          a = G(n, {}),
          s = G(n, {}),
          x = G(n, {}),
          l = (G(o, {
        rotation: 0
      }), G(n, {
        width: 5,
        geodesic: !0,
        granularity: 1e4,
        appearance: new D[P("0x215")]({
          aboveGround: !1
        }),
        material: r
      })),
          c = (u[P("0x5")].initialiseOptions = function (e) {
        I(this, e), this[P("0x44")] = void 0, this[P("0x216")] = void 0, this[P("0x217")] = void 0, this[P("0x218")] = void 0, this._id = void 0, this[P("0x219")] = !0, this._primitive = void 0, this[P("0x21a")] = void 0;
      }, u.prototype[P("0x21b")] = function (e, t) {
        this[e] = t, this._createPrimitive = !0;
      }, u[P("0x5")][P("0x21c")] = function (e) {
        return this[e];
      }, u[P("0x5")].update = function (e, t, i) {
        if (!D[P("0x14")](this[P("0xef")])) throw new D[P("0x15")](P("0x21d"));
        if (!D[P("0x14")](this.appearance)) throw new D[P("0x15")](P("0x21e"));
        if (this[P("0x21f")] < 0) throw new D[P("0x15")](P("0x220"));

        if (this[P("0x221")] && (this[P("0x219")] || D.defined(this[P("0x222")]))) {
          if (this[P("0x219")] || this[P("0x44")] !== this.ellipsoid || this[P("0x216")] !== this[P("0x21f")] || this._height !== this[P("0x8b")] || this._textureRotationAngle !== this[P("0x223")] || this[P("0x224")] !== this.id) {
            var r = this[P("0x225")]();
            if (!r) return;
            this[P("0x219")] = !1, this[P("0x44")] = this.ellipsoid, this._granularity = this.granularity, this._height = this[P("0x8b")], this._textureRotationAngle = this[P("0x223")], this[P("0x224")] = this.id, this[P("0x222")] = this[P("0x222")] && this[P("0x222")].destroy(), this[P("0x222")] = new D[P("0x226")]({
              geometryInstances: new D[P("0x179")]({
                geometry: r,
                id: this.id,
                pickPrimitive: this
              }),
              appearance: this[P("0x16d")],
              asynchronous: this[P("0x227")]
            }), this[P("0x21a")] = this[P("0x21a")] && this[P("0x21a")][P("0xf4")](), this[P("0x228")] && this[P("0x229")] && (this[P("0x21a")] = new D[P("0x226")]({
              geometryInstances: new D.GeometryInstance({
                geometry: this[P("0x229")](),
                attributes: {
                  color: D[P("0x184")][P("0x1b2")](this[P("0x228")])
                }
              }),
              appearance: new D[P("0x16e")]({
                flat: !0,
                renderState: {
                  depthTest: {
                    enabled: !0
                  },
                  lineWidth: 1
                }
              })
            }));
          }

          var n = this._primitive;
          n[P("0x16d")][P("0x19c")] = this[P("0x19c")], n[P("0x22a")] = this[P("0x22a")], n[P("0xd2")](e, t, i), this[P("0x21a")] && this[P("0x21a")].update(e, t, i);
        }
      }, u.prototype.isDestroyed = function () {
        return !1;
      }, u.prototype[P("0xf4")] = function () {
        return this._primitive = this[P("0x222")] && this[P("0x222")][P("0xf4")](), D[P("0x22b")](this);
      }, u[P("0x5")][P("0x22c")] = function (e, t) {
        this[P("0x228")] && this[P("0x228")][P("0x84")](e) && this[P("0x22d")] == t || (this[P("0x219")] = !0, this[P("0x228")] = e, this.strokeWidth = t);
      }, u);

      function u() {}

      function h(e) {
        if (!D[P("0x14")](e[P("0x22e")])) throw new D[P("0x15")]("Extent is required");
        e = G(e, o), this[P("0x22f")](e), this.setExtent(e[P("0x22e")]);
      }

      function f(e) {
        e = G(e, o), this[P("0x22f")](e), this[P("0x234")] = !0;
      }

      function d(e) {
        e = G(e, o), this.initialiseOptions(e), this.isPolygon = !0;
      }

      function g(e) {
        e = G(e, l), this.initialiseOptions(e);
      }

      i.ExtentPrimitive = (h[P("0x5")] = new c(), h.prototype[P("0x230")] = function (e) {
        this[P("0x21b")](P("0x22e"), e);
      }, h[P("0x5")].getExtent = function () {
        return this[P("0x21c")](P("0x22e"));
      }, h.prototype[P("0x225")] = function () {
        if (D[P("0x14")](this.extent)) return D[P("0x1af")][P("0x231")]({
          positions: this.extent,
          height: this.height,
          vertexFormat: D.EllipsoidSurfaceAppearance[P("0x1b1")],
          stRotation: this.textureRotationAngle,
          ellipsoid: this[P("0xef")],
          granularity: this[P("0x21f")]
        });
      }, h.prototype[P("0x229")] = function () {
        return D[P("0x232")][P("0x231")]({
          positions: this.extent
        });
      }, h), i[P("0x233")] = (f[P("0x5")] = new c(), f[P("0x5")].setPositions = function (e) {
        this[P("0x21b")](P("0x19f"), e);
      }, f[P("0x5")].getPositions = function () {
        return this[P("0x21c")](P("0x19f"));
      }, f.prototype[P("0x235")] = function (e) {
        this.setAttribute(P("0x236"));
      }, f.prototype[P("0x237")] = function (e) {
        return this[P("0x21c")]("custom");
      }, f[P("0x5")][P("0x225")] = function () {
        if (D[P("0x14")](this[P("0x19f")]) && !(this.positions[P("0x0")] < 3)) return D[P("0x1af")][P("0x231")]({
          positions: this[P("0x19f")],
          height: this[P("0x8b")],
          vertexFormat: D.EllipsoidSurfaceAppearance[P("0x1b1")],
          stRotation: this[P("0x223")],
          ellipsoid: this[P("0xef")],
          granularity: this[P("0x21f")]
        });
      }, f[P("0x5")].getOutlineGeometry = function () {
        return D.PolygonOutlineGeometry[P("0x231")]({
          positions: this[P("0x238")]()
        });
      }, f), i[P("0x239")] = (d[P("0x5")] = new c(), d[P("0x5")][P("0x23a")] = function (e) {
        this.setAttribute(P("0x19f"), e);
      }, d[P("0x5")][P("0x238")] = function () {
        return this[P("0x21c")]("positions");
      }, d.prototype.setCustom = function (e) {
        this[P("0x21b")](P("0x236"));
      }, d[P("0x5")].getCustom = function (e) {
        return this[P("0x21c")](P("0x236"));
      }, d[P("0x5")][P("0x225")] = function () {
        if (D[P("0x14")](this[P("0x19f")]) && !(this[P("0x19f")].length < 3)) return D[P("0x1af")][P("0x231")]({
          positions: this[P("0x19f")],
          height: this.height,
          vertexFormat: D[P("0x1b0")][P("0x1b1")],
          stRotation: this[P("0x223")],
          ellipsoid: this[P("0xef")],
          granularity: this.granularity
        });
      }, d[P("0x5")].getOutlineGeometry = function () {
        return D.PolygonOutlineGeometry[P("0x231")]({
          positions: this.getPositions()
        });
      }, d), i[P("0x23b")] = (g[P("0x5")] = new c(), g[P("0x5")][P("0x23a")] = function (e) {
        this[P("0x21b")]("positions", e);
      }, g[P("0x5")][P("0x23c")] = function (e) {
        this.setAttribute(P("0x19a"), e);
      }, g[P("0x5")][P("0x23d")] = function (e) {
        this[P("0x21b")](P("0x23e"), e);
      }, g.prototype[P("0x238")] = function () {
        return this[P("0x21c")](P("0x19f"));
      }, g[P("0x5")].getWidth = function () {
        return this[P("0x21c")](P("0x19a"));
      }, g[P("0x5")][P("0x23f")] = function (e) {
        return this[P("0x21c")]("geodesic");
      }, g[P("0x5")][P("0x225")] = function () {
        if (D.defined(this[P("0x19f")]) && !(this.positions[P("0x0")] < 2)) return new D[P("0x240")]({
          positions: this[P("0x19f")],
          height: this[P("0x8b")],
          width: this[P("0x19a")] < 1 ? 1 : this[P("0x19a")],
          vertexFormat: D.EllipsoidSurfaceAppearance[P("0x1b1")],
          ellipsoid: this.ellipsoid
        });
      }, g);
      var p = {
        iconUrl: "/geomap-api/JsCesuimDemo/resource/images/img_plot/dragIcon.png",
        shiftX: 0,
        shiftY: 0
      },
          m = {
        iconUrl: P("0x241"),
        shiftX: 0,
        shiftY: 0
      },
          b = {
        iconUrl: "/geomap-api/JsCesuimDemo/resource/images/img_plot/dragIconLight.png",
        shiftX: 0,
        shiftY: 0
      };

      function v(e) {
        return [e[7], e[3]];
      }

      function C(e) {
        var t = D[P("0x13")][P("0x175")](e);
        return [D[P("0x23")][P("0x113")](t[P("0x112")]), D[P("0x23")].toDegrees(t[P("0x114")])];
      }

      function y(e, t) {
        if (!(e.length < 2 || t[P("0x0")] < 2)) {
          var i = Math.PI / 8.5,
              r = Math.PI / 13,
              n = [];
          n[0] = e, n[1] = t;
          var o = n[0],
              a = n[1],
              s = W[P("0x1d2")][P("0x1e2")](n),
              x = 0.15 * s,
              l = 0.2 * s,
              c = 0.25 * s,
              u = W[P("0x1d2")][P("0x1df")](a, o, W[P("0x1e1")][P("0x1e0")], x, !0),
              h = W[P("0x1d2")][P("0x1df")](a, o, W[P("0x1e1")][P("0x1e0")], x, !1),
              f = W.PlotUtils[P("0x1df")](o, a, i, c, !1),
              d = W.PlotUtils[P("0x1df")](o, a, i, c, !0),
              g = W[P("0x1d2")][P("0x1df")](o, a, r, l, !1),
              p = W[P("0x1d2")][P("0x1df")](o, a, r, l, !0),
              m = [];
          return m[P("0x17c")](u[0], u[1], g[0], g[1], f[0], f[1], a[0], a[1], d[0], d[1], p[0], p[1], h[0], h[1], o[0], o[1]), D.Cartesian3[P("0x1da")](m);
        }
      }

      function _(e) {
        for (var t = [], i = 0; i < e[P("0x0")]; i++) {
          var r = D[P("0x11")][P("0x1a1")](e[i][0], e[i][1], 0);
          t.push(r);
        }

        return t;
      }

      function A(e, t) {
        if (null == e || (w()(e) === P("0x2b6") ? P("0x2b6") : k(e)) != P("0x7")) return e;
        if (e.constructor != Object && e[P("0x2b7")] != Array) return e;
        if (e.constructor == Date || e[P("0x2b7")] == RegExp || e[P("0x2b7")] == Function || e.constructor == String || e.constructor == Number || e.constructor == Boolean) return new e[P("0x2b7")](e);

        for (var i in t = t || new e[P("0x2b7")](), e) {
          t[i] = w()(t[i]) == P("0x2b6") ? A(e[i], null) : t[i];
        }

        return t;
      }

      function I(e, t) {
        var i;

        for (i in e = e || {}, t) {
          void 0 === e[i] && (e[i] = A(t[i]));
        }
      }

      function G(e, t) {
        var i,
            r = A(e);

        for (i in t) {
          void 0 === r[i] && (r[i] = A(t[i]));
        }

        return r;
      }

      function E(e, t, i) {
        e[t] = i;
      }

      function S(e) {
        e[P("0x2b8")] = {}, e[P("0x2b9")] = function (e, t) {
          return this._listeners[e] = this[P("0x2b8")][e] || [], this._listeners[e][P("0x17c")](t), this[P("0x2b8")][e][P("0x0")];
        }, e.executeListeners = function (e, t) {
          if (this[P("0x2b8")][e[P("0x176")]] && 0 < this[P("0x2b8")][e[P("0x176")]][P("0x0")]) for (var i = 0; i < this[P("0x2b8")][e[P("0x176")]][P("0x0")]; i++) {
            this[P("0x2b8")][e[P("0x176")]][i](e);
          } else t && t(e);
        };
      }

      return i.prototype.createBillboardGroup = function (e, t, r) {
        var n = new i[P("0x242")](this, t);
        return n[P("0x243")](e, r), n;
      }, i[P("0x242")] = function (e, t) {
        this._drawHelper = e, this[P("0x42")] = e._scene, this._options = G(t, p);
        var i = new D[P("0x244")]();
        this[P("0x42")][P("0x17d")][P("0x6d")](i), this._billboards = i, this[P("0x245")] = [];
      }, i.BillboardGroup[P("0x5")][P("0x246")] = function (t, i) {
        var r = this[P("0x247")][P("0x6d")]({
          show: !0,
          position: t,
          pixelOffset: new D[P("0x10")](this[P("0x248")][P("0x249")], this._options[P("0x24a")]),
          eyeOffset: new D[P("0x11")](0, 0, 0),
          horizontalOrigin: D[P("0x24b")][P("0x24c")],
          verticalOrigin: D[P("0x24d")][P("0x24c")],
          scale: 1,
          image: this._options[P("0x24e")],
          color: new D[P("0x16a")](1, 1, 1, 1)
        });

        if (i) {
          var _n = function _n(e) {
            s.enableRotate = e;
          };

          var _o = function _o() {
            for (var e = 0, t = a._orderedBillboards[P("0x0")]; e < t && a._orderedBillboards[e] != r; ++e) {
              ;
            }

            return e;
          };

          var a = this,
              s = this[P("0x42")][P("0x24f")];
          i[P("0x250")] && (a = this, E(r, P("0x1fe"), function (t) {
            function s(e) {
              x.destroy(), _n(!0), i[P("0x250")][P("0x252")] && i[P("0x250")][P("0x252")](_o(), e);
            }

            var x = new D[P("0x15f")](a[P("0x42")][P("0x48")]);
            x.setInputAction(function (t) {
              var n = a[P("0x42")][P("0x7e")].pickEllipsoid(t[P("0x64")], e);
              n ? function (e) {
                r[P("0x8c")] = e;

                for (var t = 0, n = a[P("0x245")].length; t < n && a._orderedBillboards[t] != r; ++t) {
                  ;
                }

                i[P("0x250")][P("0x251")] && i[P("0x250")][P("0x251")](_o(), e);
              }(n) : s(n);
            }, D[P("0x161")][P("0x163")]), x.setInputAction(function (t) {
              s(a[P("0x42")][P("0x7e")].pickEllipsoid(t[P("0x8c")], e));
            }, D[P("0x161")][P("0x1fd")]), _n(!1), i[P("0x250")][P("0x253")] && i[P("0x250")].onDragStart(_o(), a[P("0x42")][P("0x7e")][P("0xa2")](t, e));
          })), i[P("0x254")] && E(r, P("0x209"), function (e) {
            i[P("0x254")](_o());
          }), i[P("0x255")] && E(r, P("0x208"), function (e) {
            i.onClick(_o());
          }), i.tooltip && (E(r, "mouseMove", function (e) {
            a[P("0x256")]._tooltip[P("0x205")](e, i[P("0x257")]());
          }), E(r, P("0x1fa"), function (e) {
            a[P("0x256")][P("0x1f6")][P("0x207")](!1);
          }));
        }

        return r;
      }, i[P("0x242")][P("0x5")][P("0x258")] = function (e, t, i) {
        this[P("0x245")][P("0x259")](e, 0, this[P("0x246")](t, i));
      }, i[P("0x242")][P("0x5")][P("0x25a")] = function (e, t) {
        this._orderedBillboards.push(this[P("0x246")](e, t));
      }, i[P("0x242")][P("0x5")][P("0x25b")] = function () {
        this[P("0x247")][P("0x17f")](this[P("0x245")][P("0x25c")]());
      }, i.BillboardGroup[P("0x5")][P("0x243")] = function (e, t) {
        for (var i = 0; i < e.length; i++) {
          this[P("0x25a")](e[i], t);
        }
      }, i[P("0x242")][P("0x5")][P("0x25d")] = function (e) {
        for (var t = 0; t < e[P("0x0")]; t++) {
          this[P("0x25e")](t)[P("0x8c")] = e[t];
        }
      }, i.BillboardGroup[P("0x5")][P("0x25f")] = function () {
        return this[P("0x245")][P("0x0")];
      }, i[P("0x242")].prototype[P("0x25e")] = function (e) {
        return this[P("0x245")][e];
      }, i.BillboardGroup.prototype.removeBillboard = function (e) {
        this[P("0x247")][P("0x17f")](this.getBillboard(e)), this._orderedBillboards[P("0x259")](e, 1);
      }, i[P("0x242")][P("0x5")].remove = function () {
        this[P("0x247")] = this._billboards && this._billboards[P("0xf5")]() && this[P("0x247")][P("0xf4")]();
      }, i[P("0x242")].prototype[P("0x260")] = function () {
        this._scene.primitives.raiseToTop(this[P("0x247")]);
      }, i[P("0x5")][P("0x261")] = function (e) {
        e = G(e, o), this[P("0x262")](!0, e);
      }, i.prototype[P("0x263")] = function (t) {
        t = G(t, l), this[P("0x264")](function () {
          a[P("0x17f")](r), c[P("0x17f")](), u[P("0xf4")](), s[P("0x207")](!1);
        });
        var r,
            n = this,
            o = this._scene,
            a = o[P("0x17d")],
            s = this._tooltip;
        (r = new U[P("0x23b")](t))[P("0x227")] = !1, a[P("0x6d")](r);
        var x = [],
            c = new i.BillboardGroup(this, p),
            u = new D[P("0x15f")](o[P("0x48")]);
        u[P("0x160")](function (t) {
          if (null != t[P("0x8c")]) {
            var i = o.camera[P("0xa2")](t[P("0x8c")], e);
            i && (0 == x[P("0x0")] && (x[P("0x17c")](i[P("0x6e")]()), c[P("0x25a")](x[0])), 2 <= x[P("0x0")] && (r[P("0x19f")] = x, r[P("0x219")] = !0), x.push(i), c[P("0x25a")](i));
          }
        }, D[P("0x161")][P("0x17e")]), u[P("0x160")](function (t) {
          var i = t[P("0x64")];
          if (null != i) if (0 == x[P("0x0")]) s.showAt(i, P("0x265"));else {
            var n = o[P("0x7e")][P("0xa2")](i, e);
            n && (x[P("0x25c")](), n.y += 1 + Math[P("0x266")](), x.push(n), 2 <= x[P("0x0")] && (r.positions = x, r[P("0x219")] = !0), c[P("0x25e")](x.length - 1)[P("0x8c")] = n, s.showAt(i, "<p>Click to add new point (" + x[P("0x0")] + P("0x267") + (2 < x.length ? P("0x268") : "")));
          }
        }, D[P("0x161")].MOUSE_MOVE), u[P("0x160")](function (i) {
          var r = i[P("0x8c")];

          if (null != r) {
            if (x[P("0x0")] < 4) return;
            o[P("0x7e")][P("0xa2")](r, e) && (n.stopDrawing(), w()(t.callback) == P("0x8")) && (x.length, t.callback(x));
          }
        }, D[P("0x161")][P("0x269")]);
      }, i[P("0x5")][P("0x26e")] = function (t) {
        this[P("0x264")](function () {
          o[P("0x17f")](s), c.remove(), u[P("0xf4")](), a[P("0x207")](!1);
        }), this[P("0x26f")] = !0, this.options = t;
        var r = this,
            n = this._scene,
            o = n.primitives,
            a = this[P("0x1f6")],
            s = new U.TailedAttackPrimitive(t);
        /Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent) ? s.asynchronous = !0 : s.asynchronous = !1, o[P("0x6d")](s);
        var x = [],
            l = [],
            c = new i[P("0x242")](this, p),
            u = new D[P("0x15f")](n[P("0x48")]);
        this.positions = x, this.minPoints = 2, this.poly = s, u[P("0x160")](function (t) {
          if (null != t[P("0x8c")]) {
            var i = n[P("0x7e")][P("0xa2")](t[P("0x8c")], e),
                r = D[P("0x13")][P("0x175")](i),
                o = [D[P("0x23")][P("0x113")](r.longitude), D[P("0x23")][P("0x113")](r[P("0x114")])];

            if (i) {
              if (0 == l[P("0x0")] && (x[P("0x17c")](i[P("0x6e")]()), c[P("0x25a")](x[0])), l[P("0x0")] < 3 && l[P("0x17c")](o), 2 <= l[P("0x0")]) {
                l[P("0x17c")](o);
                var a = R[P("0x1cd")][P("0x1ea")](l);
                s[P("0x19f")] = a[P("0x1d9")], s.custom = a.controlPoint, s._createPrimitive = !0;
              }

              x[P("0x17c")](i), 5 <= x.length && c[P("0x25b")](), c[P("0x25a")](i);
            }
          }
        }, D[P("0x161")][P("0x17e")]), u[P("0x160")](function (t) {
          var i = t[P("0x64")];
          if (null != i) if (0 == x[P("0x0")]) a[P("0x205")](i, P("0x271"));else {
            var r = n[P("0x7e")].pickEllipsoid(i, e),
                o = D.Cartographic[P("0x175")](r),
                c = [D[P("0x23")].toDegrees(o[P("0x112")]), D.Math[P("0x113")](o[P("0x114")])];

            if (r) {
              if (x[P("0x25c")](), r.y += 1 + Math.random(), x.push(r), 3 <= l[P("0x0")] && (l[P("0x25c")](), l[P("0x17c")](c)), 2 == l[P("0x0")] && l.push(c), 2 < x[P("0x0")]) {
                var u = R[P("0x1cd")][P("0x1ea")](l);
                s[P("0x19f")] = u ? u.polygonalPoint : null, s[P("0x236")] = u ? u[P("0x1d8")] : null, s[P("0x219")] = !0;
              }

              var h = 3 == x[P("0x0")] ? "<p>双击可结束绘制</p>" : P("0x272");
              a[P("0x205")](i, h);
            }
          }
        }, D.ScreenSpaceEventType.MOUSE_MOVE), u[P("0x160")](function (e) {
          r[P("0x188")](e, t);
        }, D.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
      }, i[P("0x5")].drawEnd = function (t, i) {
        var r,
            n = this.positions,
            o = this.minPoints,
            a = this[P("0x273")];

        if (i = this[P("0x132")], null == t) {
          if (this[P("0x26f")]) {
            if (this.stopDrawing(), w()(i[P("0x191")]) != P("0x8")) return;
            n[P("0x0")], i[P("0x191")](a[P("0x19f")], a[P("0x236")]), this[P("0x26f")] = !1;
          }
        } else if (null != (r = t[P("0x8c")])) {
          if (n[P("0x0")] < o + 2) return;
          scene[P("0x7e")][P("0xa2")](r, e) && (this[P("0x20c")](), w()(i.callback) == P("0x8")) && (n.length, i[P("0x191")](a[P("0x19f")], a[P("0x236")]));
        }
      }, i[P("0x5")].startDrawingPolyshape = function (t, r) {
        this[P("0x264")](function () {
          s.remove(n), u.remove(), h.destroy(), x.setVisible(!1);
        }), this[P("0x26f")] = !0, this.options = r;
        var n,
            o = this,
            a = this[P("0x42")],
            s = a.primitives,
            x = this._tooltip;
        this.minPoints = 2, n = t ? new U[P("0x233")](r) : new U[P("0x23b")](r), /Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent) ? n[P("0x227")] = !0 : n[P("0x227")] = !1, s[P("0x6d")](n);
        var l = [],
            c = [],
            u = new i[P("0x242")](this, p),
            h = new D[P("0x15f")](a[P("0x48")]);
        this[P("0x273")] = n, this.positions = l, h.setInputAction(function (t) {
          if (null != t[P("0x8c")]) {
            var i = a[P("0x7e")][P("0xa2")](t[P("0x8c")], e),
                r = D[P("0x13")][P("0x175")](i),
                o = [D[P("0x23")].toDegrees(r[P("0x112")]), D[P("0x23")].toDegrees(r[P("0x114")])];

            if (i) {
              if (0 == c[P("0x0")] && (l[P("0x17c")](i[P("0x6e")]()), u[P("0x25a")](l[0])), c[P("0x0")] < 3 && c[P("0x17c")](o), 2 <= c[P("0x0")]) {
                var s = R.algorithm.doubleArrow(c);
                n[P("0x19f")] = s[P("0x1d9")], n[P("0x236")] = s[P("0x1d8")], n._createPrimitive = !0;
              }

              l[P("0x17c")](i), 5 <= l.length && u.removeLastBillboard(), u[P("0x25a")](i);
            }
          }
        }, D[P("0x161")][P("0x17e")]), h[P("0x160")](function (t) {
          var i = t[P("0x64")];
          if (null != i) if (0 == l.length) x[P("0x205")](i, "<p>点击以增加第一个控制点</p>");else {
            var r = a[P("0x7e")][P("0xa2")](i, e),
                o = D.Cartographic.fromCartesian(r),
                s = [D.Math.toDegrees(o[P("0x112")]), D.Math[P("0x113")](o[P("0x114")])];

            if (r) {
              if (l[P("0x25c")](), r.y += 1 + Math.random(), l[P("0x17c")](r), 3 == c[P("0x0")] && (c[P("0x25c")](), c[P("0x17c")](s)), 2 == c[P("0x0")] && c[P("0x17c")](s), 2 <= l.length) {
                var u = R[P("0x1cd")].doubleArrow(c);
                n[P("0x19f")] = u ? u[P("0x1d9")] : null, n.custom = u ? u[P("0x1d8")] : null, n[P("0x219")] = !0;
              }

              var h = 3 == l[P("0x0")] ? P("0x274") : P("0x272");
              x[P("0x205")](i, h);
            }
          }
        }, D[P("0x161")][P("0x163")]), h.setInputAction(function (e) {
          o[P("0x188")](e, r);
        }, D[P("0x161")][P("0x269")]);
      }, i.prototype[P("0x275")] = function (t) {
        t = G(t, o), this.startDrawing(function () {
          null != l && a[P("0x17f")](l), c[P("0x17f")](), u[P("0xf4")](), s.setVisible(!1);
        });
        var r = this,
            n = this._scene,
            a = this[P("0x42")].primitives,
            s = this[P("0x1f6")],
            x = [],
            l = null,
            c = null,
            u = new D[P("0x15f")](n[P("0x48")]);
        u.setInputAction(function (o) {
          if (null != o.position) {
            var s = n[P("0x7e")][P("0xa2")](o[P("0x8c")], e);
            if (s) if (null == l) {
              var u = D.Cartographic[P("0x175")](s),
                  h = D[P("0x23")][P("0x113")](u[P("0x112")]),
                  f = D[P("0x23")][P("0x113")](u[P("0x114")]);
              x.push(h, f);
              var d = y(x, x);
              l = new i[P("0x276")]({
                extent: d,
                asynchronous: !1,
                material: t[P("0x19c")]
              }), a[P("0x6d")](l), c = new i.BillboardGroup(r, p);

              var g = _([x, x]);

              c[P("0x243")](g);
            } else r.stopDrawing(), w()(t[P("0x191")]) == P("0x8") && (u = D[P("0x13")][P("0x175")](s), h = D.Math[P("0x113")](u.longitude), f = D[P("0x23")][P("0x113")](u[P("0x114")]), t[P("0x191")](y(x, [h, f])));
          }
        }, D[P("0x161")].LEFT_DOWN), u[P("0x160")](function (t) {
          var i = t[P("0x64")];
          if (null != i) if (null == l) s.showAt(i, "<p>点击开始绘制</p>");else {
            var r = n[P("0x7e")][P("0xa2")](i, e);

            if (r) {
              var o = D.Cartographic[P("0x175")](r),
                  a = D.Math[P("0x113")](o[P("0x112")]),
                  u = D.Math[P("0x113")](o[P("0x114")]),
                  h = y(x, [a, u]);
              l[P("0x230")](h);

              var f = _([x, [a, u]]);

              c[P("0x25d")](f), s.showAt(i, P("0x277"));
            }
          }
        }, D.ScreenSpaceEventType[P("0x163")]);
      }, i.prototype[P("0x1f8")] = function () {
        var r = this;

        function n(e) {
          r[P("0x42")], this[P("0x27c")] && this._highlighted == e || !0 !== this[P("0x204")] && ((this[P("0x27c")] = e) ? (r.setHighlighted(this), this[P("0x27d")] = this[P("0x228")], this[P("0x22c")](D[P("0x16a")][P("0x27e")](P("0x27f")), this.strokeWidth)) : this._strokeColor ? this[P("0x22c")](this._strokeColor, this[P("0x22d")]) : this[P("0x22c")](void 0, void 0));
        }

        function o(n) {
          if (this[P("0x204")] != n) if (r[P("0x20d")](), n) {
            r[P("0x20f")](this);
            var o = r[P("0x42")],
                a = this;

            if (null == this[P("0x280")]) {
              var _s = function _s(e, t) {
                var i = e - 1 < 0 ? t.length - 1 : e - 1;
                i < u[P("0x25f")]() && (u[P("0x25e")](i)[P("0x8c")] = l(i)), (i = e) < u[P("0x25f")]() && (u.getBillboard(i)[P("0x8c")] = l(i));
              };

              var _x13 = function _x13() {
                a.executeListeners({
                  name: P("0x281"),
                  positions: a[P("0x19f")]
                });
              };

              var l = function l(t) {
                var i = a[P("0x19f")];
                return e[P("0xa7")](new D[P("0x282")](e.cartesianToCartographic(i[t]), e.cartesianToCartographic(i[t < i[P("0x0")] - 1 ? t + 1 : 0]))[P("0x283")](0.5));
              },
                  c = new i[P("0x242")](r, m);

              t[P("0x284")].push(c);
              var u = new i[P("0x242")](r, b);
              t[P("0x284")].push(u);
              var h = {
                dragHandlers: {
                  onDrag: function onDrag(e, t) {
                    a[P("0x19f")][e] = t, _s(e, a[P("0x19f")]), a[P("0x219")] = !0;
                  },
                  onDragEnd: function onDragEnd() {
                    a[P("0x219")] = !0, _x13();
                  }
                },
                onDoubleClick: function onDoubleClick(e) {
                  a[P("0x19f")][P("0x0")] < 4 || (a.positions[P("0x259")](e, 1), a[P("0x219")] = !0, c[P("0x285")](e), u[P("0x285")](e), _s(e, a[P("0x19f")]), _x13());
                },
                tooltip: function tooltip() {
                  if (3 < a.positions[P("0x0")]) return "Double click to remove this point";
                }
              };
              c[P("0x243")](a[P("0x19f")], h), this._markers = c;

              for (var f = [], d = 0, g = a[P("0x19f")].length + (this.isPolygon ? 0 : -1); d < g; d++) {
                f[P("0x17c")](l(d));
              }

              var p = {
                dragHandlers: {
                  onDragStart: function onDragStart(e, t) {
                    this[P("0x286")] = e + 1, a[P("0x19f")][P("0x259")](this[P("0x286")], 0, t), a[P("0x219")] = !0;
                  },
                  onDrag: function onDrag(e, t) {
                    a[P("0x19f")][this[P("0x286")]] = t, a[P("0x219")] = !0;
                  },
                  onDragEnd: function onDragEnd(e, t) {
                    c[P("0x258")](this[P("0x286")], t, h), u[P("0x25e")](this[P("0x286")] - 1)[P("0x8c")] = l(this[P("0x286")] - 1), u[P("0x258")](this[P("0x286")], l(this[P("0x286")]), p), a[P("0x219")] = !0, _x13();
                  }
                },
                tooltip: function tooltip() {
                  return P("0x287");
                }
              };
              u.addBillboards(f, p), this[P("0x288")] = u, this[P("0x289")] = new D[P("0x15f")](o.canvas), this[P("0x289")][P("0x160")](function (e) {
                var t = o[P("0xa4")](e.position);
                t && t[P("0x182")] || a[P("0x211")](!1);
              }, D[P("0x161")][P("0x17e")]), c[P("0x260")](), u[P("0x260")]();
            }

            this[P("0x204")] = !0;
          } else null != this._markers && (this[P("0x280")].remove(), this[P("0x288")][P("0x17f")](), this._markers = null, this[P("0x288")] = null, this[P("0x289")][P("0xf4")]()), this[P("0x204")] = !1;
        }

        D.Billboard[P("0x5")][P("0x278")] = function () {
          if (!this._editable) {
            this[P("0x279")] = !0;
            var t = this,
                i = this;
            E(t, P("0x1fe"), function (o) {
              function a(e) {
                s[P("0xf4")](), n(!0), i[P("0x27a")]({
                  name: P("0x27b"),
                  positions: e
                });
              }

              var s = new D[P("0x15f")](r[P("0x42")][P("0x48")]);
              s[P("0x160")](function (n) {
                var o,
                    s = r[P("0x42")].camera[P("0xa2")](n[P("0x64")], e);
                s ? (o = s, t[P("0x8c")] = o, i[P("0x27a")]({
                  name: "drag",
                  positions: o
                })) : a(s);
              }, D.ScreenSpaceEventType[P("0x163")]), s[P("0x160")](function (t) {
                a(r[P("0x42")][P("0x7e")][P("0xa2")](t[P("0x8c")], e));
              }, D[P("0x161")][P("0x1fd")]), n(!1);
            }), S(t);
          }

          function n(e) {
            r[P("0x42")][P("0x24f")][P("0x29")] = e;
          }
        }, U[P("0x23b")][P("0x5")][P("0x278")] = function () {
          if (!this[P("0x211")]) {
            var t = this;
            t[P("0x234")] = !1, t[P("0x227")] = !1, r[P("0x202")](t), t[P("0x211")] = o;
            var i = this[P("0x19a")];
            t[P("0x203")] = function (e) {
              !0 !== this[P("0x204")] && (e ? (r.setHighlighted(this), this[P("0x23c")](2 * i)) : this[P("0x23c")](i));
            }, t.getExtent = function () {
              return D[P("0x28a")].fromCartographicArray(e[P("0x28b")](this[P("0x19f")]));
            }, S(t), t[P("0x211")](!1);
          }
        }, U.PolygonPrimitive.prototype[P("0x278")] = function () {
          var e = this;
          e[P("0x227")] = !1;
          var o = r[P("0x42")];
          r[P("0x202")](e), e.setEditMode = function (n) {
            if (this[P("0x204")] != n) if (r[P("0x20d")](), n) {
              if (r[P("0x20f")](this), null == this[P("0x280")]) {
                var a = new i[P("0x242")](r, m);
                t[P("0x284")][P("0x17c")](a);
                var s = {
                  dragHandlers: {
                    onDrag: function onDrag(t, i) {
                      var r = e[P("0x236")];
                      r[t] = C(i);
                      var n = R[P("0x1cd")][P("0x28c")](r);
                      e.positions = n[P("0x1d9")], e[P("0x236")] = n.controlPoint, e._createPrimitive = !0, a[P("0x25d")](_(e[P("0x236")]));
                    },
                    onDragEnd: function onDragEnd() {
                      e[P("0x27a")]({
                        name: P("0x281"),
                        positions: e[P("0x19f")]
                      });
                    }
                  },
                  tooltip: function tooltip() {
                    return P("0x28d");
                  }
                },
                    x = e.custom;
                a[P("0x243")](_(x), s), this._markers = a, this[P("0x289")] = new D.ScreenSpaceEventHandler(o[P("0x48")]), this[P("0x289")][P("0x160")](function (t) {
                  var i = o[P("0xa4")](t.position);
                  console[P("0x133")](P("0x28e")), i && i[P("0x182")] || e[P("0x211")](!1);
                }, D[P("0x161")][P("0x17e")]), a[P("0x260")]();
              }

              this[P("0x204")] = !0;
            } else null != this[P("0x280")] && (this[P("0x280")][P("0x17f")](), this[P("0x280")] = null, this[P("0x289")][P("0xf4")]()), this._editMode = !1;
          }, e[P("0x203")] = n, S(e), e[P("0x211")](!1);
        }, U.TailedAttackPrimitive[P("0x5")].setEditable = function () {
          var e = this;
          e[P("0x227")] = !1;
          var o = r._scene;
          r[P("0x202")](e), e[P("0x211")] = function (n) {
            if (this._editMode != n) if (r[P("0x20d")](), n) {
              if (r[P("0x20f")](this), null == this[P("0x280")]) {
                var a = new i[P("0x242")](r, m);
                t[P("0x284")][P("0x17c")](a);
                var s = {
                  dragHandlers: {
                    onDrag: function onDrag(t, i) {
                      var r = e[P("0x236")];
                      r[t] = C(i);
                      var n = R[P("0x1cd")].tailedAttackArrow(r);
                      e.positions = n[P("0x1d9")], e[P("0x236")] = n.controlPoint, e[P("0x219")] = !0, a[P("0x25d")](_(e[P("0x236")]));
                    },
                    onDragEnd: function onDragEnd() {
                      e[P("0x27a")]({
                        name: P("0x281"),
                        positions: e.positions
                      });
                    }
                  },
                  tooltip: function tooltip() {
                    return P("0x28f");
                  }
                },
                    x = e[P("0x236")];
                a[P("0x243")](_(x), s), this._markers = a, this[P("0x289")] = new D.ScreenSpaceEventHandler(o[P("0x48")]), this[P("0x289")][P("0x160")](function (t) {
                  var i = o[P("0xa4")](t[P("0x8c")]);
                  console[P("0x133")](P("0x290")), i && i[P("0x182")] || e.setEditMode(!1);
                }, D.ScreenSpaceEventType.LEFT_CLICK), a.setOnTop();
              }

              this[P("0x204")] = !0;
            } else null != this[P("0x280")] && (this[P("0x280")][P("0x17f")](), this[P("0x280")] = null, this[P("0x289")][P("0xf4")]()), this._editMode = !1;
          }, e[P("0x203")] = n, S(e), e[P("0x211")](!1);
        }, U[P("0x276")][P("0x5")].setEditable = function () {
          if (!this[P("0x211")]) {
            var e = this,
                o = r._scene;
            r.registerEditableShape(e), e.asynchronous = !1, e[P("0x211")] = function (n) {
              if (this._editMode != n) if (r[P("0x20d")](), n) {
                if (r[P("0x20f")](this), null == this[P("0x280")]) {
                  var a = new i[P("0x242")](r, m);
                  t[P("0x284")][P("0x17c")](a);
                  var s = {
                    dragHandlers: {
                      onDrag: function onDrag(t, i) {
                        var r = C(i),
                            n = C(a.getBillboard((t + 1) % 2).position),
                            o = 0 == t ? y(r, n) : y(n, r);
                        e[P("0x230")](o), a[P("0x25d")](v(e.extent));
                      },
                      onDragEnd: function onDragEnd() {
                        e[P("0x27a")]({
                          name: P("0x281"),
                          extent: e[P("0x22e")]
                        });
                      }
                    },
                    tooltip: function tooltip() {
                      return "拖动以改变此箭头形状";
                    }
                  };
                  a[P("0x243")](v(e[P("0x22e")]), s), this[P("0x280")] = a, this[P("0x289")] = new D.ScreenSpaceEventHandler(o[P("0x48")]), this[P("0x289")][P("0x160")](function (t) {
                    var i = o.pick(t[P("0x8c")]);
                    console.log("ExtentPrimitive单击"), i && i[P("0x182")] || e[P("0x211")](!1);
                  }, D[P("0x161")][P("0x17e")]), a.setOnTop();
                }

                this[P("0x204")] = !0;
              } else null != this[P("0x280")] && (this[P("0x280")][P("0x17f")](), this._markers = null, this._globeClickhandler[P("0xf4")]()), this[P("0x204")] = !1;
            }, e[P("0x203")] = n, S(e), e.setEditMode(!1);
          }
        };
      }, i[P("0x291")] = function (e, i) {
        if (!D.defined(i.container)) throw new D[P("0x15")](P("0x292"));
        I(i, {
          markerIcon: P("0x293"),
          polylineIcon: P("0x294"),
          polygonIcon: P("0x295"),
          circleIcon: P("0x296"),
          tailedAttackArrowIcon: "./img/gongjijiantou.png",
          extentIcon: P("0x297"),
          clearIcon: "./img/glyphicons_067_cleaning.png",
          polylineDrawingOptions: l,
          polygonDrawingOptions: a,
          extentDrawingOptions: s,
          circleDrawingOptions: x
        });
        var r = this,
            n = document[P("0x15c")](P("0x298"));

        function o(e, t, i, r) {
          var o = document[P("0x15c")]("DIV");
          o[P("0x14c")] = P("0x299"), o[P("0x29a")] = i, n[P("0x167")](o), o[P("0x29b")] = r;
          var a = document.createElement(P("0x29c"));
          o[P("0x167")](a);
          var s = document[P("0x15c")](P("0x29d"));
          return s[P("0x125")] = t, a[P("0x167")](s), o;
        }

        n[P("0x14c")] = "toolbar", i[P("0x131")].appendChild(n);
        var c = e._scene;
        o(0, i[P("0x29e")], P("0x29f"), function () {
          e.startDrawingExtent({
            callback: function callback(e) {
              r[P("0x27a")]({
                name: P("0x2a0"),
                extent: e
              });
            }
          });
        }), o(0, i.polygonIcon, P("0x2a1"), function () {
          e[P("0x261")]({
            callback: function callback(e, t) {
              r[P("0x27a")]({
                name: P("0x2a2"),
                positions: e,
                custom: t
              });
            }
          });
        }), o(P("0x1ea"), i.tailedAttackArrowIcon, P("0x2a3"), function () {
          e[P("0x26e")]({
            callback: function callback(e, t) {
              r.executeListeners({
                name: P("0x2a4"),
                positions: e,
                custom: t
              });
            }
          });
        });
        var u = document.createElement(P("0x298"));
        u.className = "divider", n.appendChild(u), o(P("0x192"), i[P("0x2a5")], "Remove all primitives", function () {
          for (var e = t[P("0x17d")].length, i = t.billBoard[P("0x0")], r = 0; r < e; r++) {
            var n = t[P("0x17d")].pop();
            n._globeClickhandler[P("0xf4")](), c[P("0x17d")][P("0x17f")](n);
          }

          for (r = 0; r < i; r++) {
            t[P("0x284")][P("0x25c")]()[P("0x17f")]();
          }
        }), S(this);
      }, i[P("0x5")][P("0x2a6")] = function (e, t) {
        return t = G(t, {
          container: e
        }), new i[P("0x291")](this, t);
      }, i.DrawWidget = function (e, t) {
        var i = this;
        "extentCreated" == t && e[P("0x275")]({
          callback: function callback(e) {
            i.executeListeners({
              name: P("0x2a0"),
              extent: e
            });
          }
        }), t == P("0x2a2") && e.startDrawingPolygon({
          callback: function callback(e, t) {
            i[P("0x27a")]({
              name: P("0x2a2"),
              positions: e,
              custom: t
            });
          }
        }), t == P("0x2a4") && e.startDrawingTailedAttack({
          callback: function callback(e, t) {
            i[P("0x27a")]({
              name: P("0x2a4"),
              positions: e,
              custom: t
            });
          }
        }), S(this);
      }, i[P("0x2a7")] = function () {
        var e = drawHelper._scene,
            i = t[P("0x17d")][P("0x0")],
            r = t[P("0x284")][P("0x0")];

        if (0 != i && t[P("0x17d")][i - 1][P("0x204")]) {
          for (var n = 0; n < 1; n++) {
            var o = t[P("0x17d")][i - 1];
            o[P("0x289")][P("0xf4")](), e[P("0x17d")][P("0x17f")](o);
          }

          for (n = 0; n < 1; n++) {
            t[P("0x284")][r - 1][P("0x17f")]();
          }

          t = {
            billBoard: [],
            primitives: []
          }, S(this);
        }
      }, i[P("0x5")][P("0x69")] = function (e) {
        return new i[P("0x2a8")](this, e);
      }, i[P("0x5")][P("0x192")] = function () {
        return new i[P("0x2a7")](this);
      }, i;
    }();
    var B,
        W = {
      version: P("0x1c9")
    };
    W[P("0x1d2")] = {}, W.PlotUtils.distance = function (e, t) {
      return Math[P("0xca")](Math.pow(e[0] - t[0], 2) + Math.pow(e[1] - t[1], 2));
    }, W.PlotUtils.wholeDistance = function (e) {
      for (var t = 0, i = 0; i < e[P("0x0")] - 1; i++) {
        t += W[P("0x1d2")].distance(e[i], e[i + 1]);
      }

      return t;
    }, W[P("0x1d2")][P("0x1e2")] = function (e) {
      return Math[P("0x2ae")](W[P("0x1d2")][P("0x1e8")](e), 0.99);
    }, W[P("0x1d2")][P("0x1e5")] = function (e, t) {
      return [(e[0] + t[0]) / 2, (e[1] + t[1]) / 2];
    }, W[P("0x1d2")][P("0x2ba")] = function (e, t, i) {
      var r = [(e[0] + t[0]) / 2, (e[1] + t[1]) / 2],
          n = [r[0] - e[1] + t[1], r[1] + e[0] - t[0]],
          o = [(e[0] + i[0]) / 2, (e[1] + i[1]) / 2],
          a = [o[0] - e[1] + i[1], o[1] + e[0] - i[0]];
      return W[P("0x1d2")][P("0x2bb")](r, n, o, a);
    }, W.PlotUtils[P("0x2bb")] = function (e, t, i, r) {
      if (e[1] == t[1]) {
        var n = (r[0] - i[0]) / (r[1] - i[1]),
            o = n * (e[1] - i[1]) + i[0],
            a = e[1];
        return [o, a];
      }

      if (i[1] != r[1]) return s = (t[0] - e[0]) / (t[1] - e[1]), n = (r[0] - i[0]) / (r[1] - i[1]), [o = s * (a = (s * e[1] - e[0] - n * i[1] + i[0]) / (s - n)) - s * e[1] + e[0], a];
      var s = (t[0] - e[0]) / (t[1] - e[1]);
      return [o = s * (i[1] - e[1]) + e[0], a = i[1]];
    }, W[P("0x1d2")].getAzimuth = function (e, t) {
      var i,
          r = Math[P("0x97")](Math.abs(t[1] - e[1]) / W[P("0x1d2")][P("0x8e")](e, t));
      return t[1] >= e[1] && t[0] >= e[0] ? i = r + Math.PI : t[1] >= e[1] && t[0] < e[0] ? i = W[P("0x1e1")][P("0xab")] - r : t[1] < e[1] && t[0] < e[0] ? i = r : t[1] < e[1] && t[0] >= e[0] && (i = Math.PI - r), i;
    }, W[P("0x1d2")].getAngleOfThreePoints = function (e, t, i) {
      var r = W[P("0x1d2")][P("0x2bc")](t, e) - W[P("0x1d2")][P("0x2bc")](t, i);
      return r < 0 ? r + W[P("0x1e1")].TWO_PI : r;
    }, W[P("0x1d2")].isClockWise = function (e, t, i) {
      return (i[1] - e[1]) * (t[0] - e[0]) > (t[1] - e[1]) * (i[0] - e[0]);
    }, W[P("0x1d2")][P("0x2bd")] = function (e, t, i) {
      return [t[0] + e * (i[0] - t[0]), t[1] + e * (i[1] - t[1])];
    }, W.PlotUtils[P("0x2be")] = function (e, t, i, r, n) {
      var o = 1 - (e = Math[P("0xee")](Math[P("0x7d")](e, 1), 0)),
          a = e * e,
          s = a * e,
          x = o * o,
          l = x * o;
      return [l * t[0] + 3 * x * e * i[0] + 3 * o * a * r[0] + s * n[0], l * t[1] + 3 * x * e * i[1] + 3 * o * a * r[1] + s * n[1]];
    }, W.PlotUtils[P("0x1df")] = function (e, t, i, r, n) {
      var o = W[P("0x1d2")][P("0x2bc")](e, t),
          a = n ? o + i : o - i,
          s = r * Math.cos(a),
          x = r * Math[P("0x98")](a);
      return [t[0] + s, t[1] + x];
    }, W[P("0x1d2")][P("0x2bf")] = function (e, t, i, r) {
      var n,
          o,
          a = [],
          s = r - i;
      s = s < 0 ? s + W[P("0x1e1")].TWO_PI : s;

      for (var x = 0; x <= W[P("0x1e1")][P("0x2c0")]; x++) {
        var l = i + s * x / W.Constants[P("0x2c0")];
        n = e[0] + t * Math[P("0x9a")](l), o = e[1] + t * Math.sin(l), a[P("0x17c")]([n, o]);
      }

      return a;
    }, W[P("0x1d2")][P("0x2c1")] = function (e, t, i, r) {
      var n = W[P("0x1d2")].getNormal(t, i, r),
          o = Math[P("0xca")](n[0] * n[0] + n[1] * n[1]),
          a = n[0] / o,
          s = n[1] / o,
          x = W[P("0x1d2")].distance(t, i),
          l = W[P("0x1d2")][P("0x8e")](i, r);
      if (o > W[P("0x1e1")][P("0x2c2")]) {
        if (W.PlotUtils[P("0x1d3")](t, i, r)) {
          var c = e * x,
              u = i[0] - c * s,
              h = i[1] + c * a,
              f = [u, h];
          c = e * l;
          var d = [u = i[0] + c * s, h = i[1] - c * a];
        } else c = e * x, f = [u = i[0] + c * s, h = i[1] - c * a], c = e * l, d = [u = i[0] - c * s, h = i[1] + c * a];
      } else f = [u = i[0] + e * (t[0] - i[0]), h = i[1] + e * (t[1] - i[1])], d = [u = i[0] + e * (r[0] - i[0]), h = i[1] + e * (r[1] - i[1])];
      return [f, d];
    }, W[P("0x1d2")].getNormal = function (e, t, i) {
      var r = e[0] - t[0],
          n = e[1] - t[1],
          o = Math[P("0xca")](r * r + n * n);
      r /= o, n /= o;
      var a = i[0] - t[0],
          s = i[1] - t[1],
          x = Math[P("0xca")](a * a + s * s);
      return [r + (a /= x), n + (s /= x)];
    }, W[P("0x1d2")][P("0x2c3")] = function (e, t) {
      for (var i = [W.PlotUtils[P("0x2c4")](t)], r = 0; r < t[P("0x0")] - 2; r++) {
        var n = t[r],
            o = t[r + 1],
            a = t[r + 2],
            s = W[P("0x1d2")][P("0x2c1")](e, n, o, a);
        i = i.concat(s);
      }

      var x = W[P("0x1d2")][P("0x2c5")](t);
      i[P("0x17c")](x);
      var l = [];

      for (r = 0; r < t[P("0x0")] - 1; r++) {
        for (n = t[r], o = t[r + 1], l.push(n), e = 0; e < W[P("0x1e1")][P("0x2c0")]; e++) {
          var c = W[P("0x1d2")][P("0x2be")](e / W[P("0x1e1")][P("0x2c0")], n, i[2 * r], i[2 * r + 1], o);
          l[P("0x17c")](c);
        }

        l[P("0x17c")](o);
      }

      return l;
    }, W[P("0x1d2")][P("0x2c4")] = function (e) {
      var i = e[0],
          r = e[1],
          n = e[2],
          o = W[P("0x1d2")][P("0x2c1")](0, i, r, n)[0],
          a = W[P("0x1d2")][P("0x2c6")](i, r, n);
      if (Math[P("0xca")](a[0] * a[0] + a[1] * a[1]) > W[P("0x1e1")][P("0x2c2")]) var s = W.PlotUtils.mid(i, r),
          x = i[0] - s[0],
          l = i[1] - s[1],
          c = 2 / W[P("0x1d2")][P("0x8e")](i, r),
          u = -c * l,
          h = c * x,
          f = u * u - h * h,
          d = 2 * u * h,
          g = h * h - u * u,
          p = o[0] - s[0],
          m = o[1] - s[1],
          b = s[0] + f * p + d * m,
          v = s[1] + d * p + g * m;else b = i[0] + t * (r[0] - i[0]), v = i[1] + t * (r[1] - i[1]);
      return [b, v];
    }, W[P("0x1d2")].getRightMostControlPoint = function (e) {
      var i = e[P("0x0")],
          r = e[i - 3],
          n = e[i - 2],
          o = e[i - 1],
          a = W[P("0x1d2")][P("0x2c1")](0, r, n, o)[1],
          s = W.PlotUtils[P("0x2c6")](r, n, o);
      if (Math[P("0xca")](s[0] * s[0] + s[1] * s[1]) > W[P("0x1e1")].ZERO_TOLERANCE) var x = W.PlotUtils[P("0x1e5")](n, o),
          l = o[0] - x[0],
          c = o[1] - x[1],
          u = 2 / W[P("0x1d2")][P("0x8e")](n, o),
          h = -u * c,
          f = u * l,
          d = h * h - f * f,
          g = 2 * h * f,
          p = f * f - h * h,
          m = a[0] - x[0],
          b = a[1] - x[1],
          v = x[0] + d * m + g * b,
          C = x[1] + g * m + p * b;else v = o[0] + t * (n[0] - o[0]), C = o[1] + t * (n[1] - o[1]);
      return [v, C];
    }, W[P("0x1d2")][P("0x1d6")] = function (e) {
      if (e[P("0x0")] <= 2) return e;

      for (var t = [], i = e[P("0x0")] - 1, r = 0; r <= 1; r += 0.01) {
        for (var n = y = 0, o = 0; o <= i; o++) {
          var a = W[P("0x1d2")][P("0x2c7")](i, o),
              s = Math[P("0x2ae")](r, o),
              x = Math[P("0x2ae")](1 - r, i - o);
          n += a * s * x * e[o][0], y += a * s * x * e[o][1];
        }

        t.push([n, y]);
      }

      return t[P("0x17c")](e[i]), t;
    }, W.PlotUtils[P("0x2c7")] = function (e, t) {
      return W[P("0x1d2")][P("0x2c8")](e) / (W[P("0x1d2")][P("0x2c8")](t) * W[P("0x1d2")][P("0x2c8")](e - t));
    }, W[P("0x1d2")][P("0x2c8")] = function (e) {
      if (e <= 1) return 1;
      if (2 == e) return 2;
      if (3 == e) return 6;
      if (4 == e) return 24;
      if (5 == e) return 120;

      for (var t = 1, i = 1; i <= e; i++) {
        t *= i;
      }

      return t;
    }, W[P("0x1d2")].getQBSplinePoints = function (e) {
      if (e[P("0x0")] <= 2) return e;
      var t = [],
          i = e[P("0x0")] - 2 - 1;
      t[P("0x17c")](e[0]);

      for (var r = 0; r <= i; r++) {
        for (var n = 0; n <= 1; n += 0.05) {
          for (var o = y = 0, a = 0; a <= 2; a++) {
            var s = W[P("0x1d2")][P("0x2c9")](a, n);
            o += s * e[r + a][0], y += s * e[r + a][1];
          }

          t.push([o, y]);
        }
      }

      return t[P("0x17c")](e[e[P("0x0")] - 1]), t;
    }, W[P("0x1d2")][P("0x2c9")] = function (e, t) {
      return 0 == e ? Math[P("0x2ae")](t - 1, 2) / 2 : 1 == e ? (-2 * Math[P("0x2ae")](t, 2) + 2 * t + 1) / 2 : 2 == e ? Math[P("0x2ae")](t, 2) / 2 : 0;
    }, W[P("0x1e1")] = {
      TWO_PI: 2 * Math.PI,
      HALF_PI: Math.PI / 2,
      FITTING_COUNT: 100,
      ZERO_TOLERANCE: 1e-4
    }, function (e) {
      var t = e[P("0x2ca")] = function (t, i) {
        this.viewer = t[P("0x13b")], this.color = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")][P("0x196")].withAlpha(0.5), this[P("0x197")] = t.lineWidth ? t[P("0x197")] : 2, this.scene = this[P("0x13b")][P("0x10f")], this.camera = this[P("0x13b")][P("0x7e")], this[P("0x48")] = this[P("0x10f")][P("0x48")], this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0xef")] = this[P("0x10f")][P("0xa3")].ellipsoid, this[P("0x1a9")] = 0, this[P("0x2cb")] = [], this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1;
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      function r(e, t) {
        for (var i = t[P("0x190")], r = 0; r < i[P("0x0")]; r++) {
          i[r][P("0x2cc")] == e && (t[P("0x17f")](i[r]), r--);
        }
      }

      function n(t, i, r, n) {
        var o = t.add(new e[P("0x1a5")]());
        o[P("0x176")] = "MeasureAreaWidget_result_labelArea", o.tag = P("0x2d8") + n, o[P("0x6d")]({
          text: i,
          font: P("0x1a0"),
          showBackground: !0,
          disableDepthTestDistance: Number.POSITIVE_INFINITY
        }), o[P("0x187")](o[P("0x0")] - 1).position = r[r[P("0x0")] - 1];
      }

      t[P("0x5")][P("0x198")] = function () {
        if (this.count++, this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), !this[P("0x16f")]) {
          this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = "crosshair";
          var t,
              i,
              r,
              n = this,
              o = [];
          this._array_ = o, this[P("0x1aa")] = t, this[P("0x173")] = i, this.handler[P("0x160")](function (i) {
            if (n.lastP = i, 1 == n[P("0xd3")]) var a = n.camera[P("0x86")](i[P("0x8c")]),
                s = n[P("0x10f")][P("0xa3")][P("0xa4")](a, n[P("0x10f")]);else s = n[P("0x10f")][P("0x174")](i.position);
            s && (o[P("0x17c")](s), 1 == o[P("0x0")] && ((t = n[P("0x17d")][P("0x6d")](new e.PolylineCollection())).name = "MeasureAreaWidget_draw_polyline", t[P("0x2cc")] = P("0x2ca") + "_" + n[P("0x1a9")], t[P("0x6d")]({
              polyline: {}
            }), t[P("0x187")](t[P("0x0")] - 1)[P("0x19a")] = n[P("0x197")], t[P("0x187")](t[P("0x0")] - 1).loop = !0, t[P("0x187")](t.length - 1)[P("0x19c")][P("0x19d")][P("0x169")] = n[P("0x169")], t[P("0x187")](t[P("0x0")] - 1).positions = o), 3 <= o[P("0x0")] && (t.get(t[P("0x0")] - 1).positions = o, /Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator[P("0x2cd")]) && n.measureEnd()), n[P("0x1aa")] = t, /Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator[P("0x2cd")]) && ((r = n.primitives.add(new e[P("0x1a4")]())).name = P("0x2ce"), r[P("0x2cc")] = "MeasureAreaWidget_" + n[P("0x1a9")], r.add({
              position: s,
              color: e[P("0x16a")][P("0x2cf")],
              outlineColor: e.Color[P("0x16b")],
              outlineWidth: 1,
              pixelSize: 5
            })));
          }, e[P("0x161")].LEFT_CLICK), this[P("0x16f")][P("0x160")](function (r) {
            if (!/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent)) {
              if (1 == n[P("0xd3")]) var a = n[P("0x7e")][P("0x86")](r[P("0x64")]),
                  s = n.scene[P("0xa3")][P("0xa4")](a, n[P("0x10f")]);else s = n[P("0x10f")][P("0x174")](r[P("0x64")]);
              if (!s) return void (i && (n[P("0x17d")][P("0x17f")](i), i = null));

              if (1 <= o[P("0x0")]) {
                var x = o.concat();
                x.push(s), t[P("0x187")](t.length - 1)[P("0x19f")] = x;
              }

              i ? i[P("0x187")](i[P("0x0")] - 1)[P("0x8c")] = s : ((i = n[P("0x17d")][P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = P("0x2d0"), i[P("0x2cc")] = P("0x2ca") + "_" + n[P("0x1a9")], i[P("0x6d")]({
                text: "左键单击开始绘制，右键单击结束绘制",
                font: P("0x1a0"),
                showBackground: !0,
                pixelOffset: new e[P("0x10")](10, 10),
                disableDepthTestDistance: Number[P("0x31")]
              }), i[P("0x187")](i.length - 1).position = s), n[P("0x173")] = i;
            }
          }, e[P("0x161")][P("0x163")]), this.handler[P("0x160")](function (e) {
            n[P("0x2d1")](), n[P("0x16f")] = n[P("0x16f")] && n[P("0x16f")].destroy(), n[P("0x13b")][P("0x48")][P("0x150")].cursor = P("0x18c");
          }, e[P("0x161")][P("0x189")]);
        }
      }, t.prototype[P("0x2d2")] = function (t) {
        this.handler = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this.handler = new e.ScreenSpaceEventHandler(this[P("0x48")]);
        var i = this;
        this[P("0x16f")].setInputAction(function (t) {
          var r = i[P("0x13b")][P("0x10f")].pick(t.position);
          r && r.id && r.id && -1 < r.id[P("0x2cc")][P("0x2d3")](P("0x2ca")) && r.id[P("0x2d4")] && (r.id.polygon[P("0x19c")] = e[P("0x16a")][P("0x2d5")], i.tags.push(r.id[P("0x2cc")]));
        }, e[P("0x161")][P("0x17e")]);
      }, t[P("0x5")][P("0x2d6")] = function () {
        if (this[P("0x16f")] = this.handler && this[P("0x16f")][P("0xf4")](), this[P("0x13b")].canvas.style[P("0x170")] = P("0x18c"), this.tags && 0 < this.tags.length) for (var e = 0; e < this[P("0x2cb")][P("0x0")]; e++) {
          i(this[P("0x2cb")][e], this[P("0x17d")]), r(this[P("0x2cb")][e], this[P("0x13b")][P("0x194")]);
        }
      }, t.prototype[P("0x2d1")] = function (t) {
        if (null != this[P("0x172")] && 0 != this[P("0x172")][P("0x0")]) {
          if (this[P("0x173")] && (this.primitives[P("0x17f")](this[P("0x173")]), this[P("0x173")] = null), t = t || this[P("0x18b")], 1 == this[P("0xd3")]) var i = this[P("0x7e")][P("0x86")](t.position),
              r = this[P("0x10f")][P("0xa3")][P("0xa4")](i, this[P("0x10f")]);else r = this[P("0x10f")][P("0x174")](t[P("0x8c")]);

          if (r) {
            this[P("0x172")][P("0x17c")](r), this[P("0x1aa")][P("0x187")](this._polylines_[P("0x0")] - 1).material.uniforms[P("0x169")] = e[P("0x16a")][P("0x196")].withAlpha(0), this[P("0x13b")].entities[P("0x6d")]({
              name: P("0x2d7"),
              tag: P("0x2d8") + this[P("0x1a9")],
              polygon: {
                hierarchy: {
                  positions: this._array_
                },
                material: this[P("0x169")],
                perPositionHeight: !1
              }
            });

            for (var o = [], a = 0; a < this._array_[P("0x0")]; a++) {
              var s = e.Cartographic[P("0x175")](this[P("0x172")][a]),
                  x = e[P("0x23")][P("0x113")](s.longitude),
                  l = e.Math[P("0x113")](s[P("0x114")]);
              o[P("0x17c")]([x, l]);
            }

            o[P("0x17c")](o[0]);
            var c,
                u = turf[P("0x2d4")]([o]),
                h = turf[P("0x2d9")](u);
            c = h < 1e6 ? "总面积：" + h.toFixed(2) + "m²" : "总面积：" + (h / 1e6)[P("0x2af")](2) + P("0x2da"), /Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator[P("0x2cd")]) ? 4 < this[P("0x17d")][P("0x0")] ? (this.primitives.remove(this[P("0x17d")][P("0x187")](this[P("0x17d")][P("0x0")] - 2)), n(this.primitives, c, this[P("0x172")])) : n(this[P("0x17d")], c, this[P("0x172")]) : (n(this[P("0x17d")], c, this[P("0x172")], this[P("0x1a9")]), this[P("0x1a9")]++);
          }
        }
      }, t[P("0x5")].clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), function (e, t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            t[P("0x187")](i)[P("0x176")] && -1 < t[P("0x187")](i)[P("0x176")].indexOf("MeasureAreaWidget") && (t.remove(t[P("0x187")](i)), i--);
          }
        }(0, this[P("0x17d")]), function (e, t) {
          for (var i = t[P("0x190")], r = 0; r < i[P("0x0")]; r++) {
            i[r][P("0x176")] && -1 < i[r][P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](i[r]), r--);
          }
        }(P("0x2ca"), this[P("0x13b")][P("0x194")]);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x2db")] = function (e) {
        this[P("0x13b")] = e.viewer, this.scene = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x48")] = this.scene[P("0x48")], this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0x194")] = this[P("0x13b")].entities, this[P("0xef")] = this[P("0x10f")][P("0xa3")][P("0xef")], this[P("0x1a9")] = 0, this[P("0x2cb")] = [], this.mode = e[P("0xd3")] ? e[P("0xd3")] : 1;
      };

      function i(e, t) {
        for (var i = t[P("0x190")], r = 0; r < i.length; r++) {
          i[r][P("0x2cc")] == e && (t[P("0x17f")](i[r]), r--);
        }
      }

      function r(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      t.prototype.activate = function () {
        this[P("0x1a9")]++, this[P("0x16f")] && (this[P("0x16f")] = this.handler && this.handler.destroy()), this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")][P("0x170")] = P("0x171"), this[P("0x2dc")]();
        var t,
            i,
            r,
            n = this,
            o = [],
            a = [];
        this._array_ = o;
        var s = this[P("0x17d")][P("0x6d")](new e.LabelCollection());
        s[P("0x176")] = P("0x2dd"), s[P("0x2cc")] = "MeasureAzimuthWidget_" + this[P("0x1a9")], s[P("0x6d")]({
          style: e.LabelStyle[P("0x2de")],
          outlineWidth: 2,
          text: "",
          font: P("0x2df"),
          showBackground: !1,
          backgroundColor: e[P("0x16a")][P("0x2e0")],
          pixelOffset: new e[P("0x10")](10, -15),
          disableDepthTestDistance: Number[P("0x31")]
        }), this[P("0x16f")][P("0x160")](function (x) {
          if (2 == n[P("0xd3")]) {
            var l = n[P("0x10f")][P("0xa4")](x[P("0x8c")]);
            if (!l) return;
            if (!(l[P("0x182")] instanceof e[P("0x2e1")])) return void console[P("0x2e2")]("请点击模型");
            var c = n[P("0x10f")].pickPosition(x[P("0x8c")]);
          } else if (1 == n[P("0xd3")]) {
            var u = n[P("0x7e")][P("0x86")](x[P("0x8c")]);
            c = n[P("0x10f")].globe.pick(u, n[P("0x10f")]);
          }

          if (c) {
            var h = e.Cartographic[P("0x175")](c),
                f = e.Math[P("0x113")](h[P("0x112")]),
                d = e.Math[P("0x113")](h[P("0x114")]),
                g = h[P("0x8b")];
            o[P("0x17c")](f), o[P("0x17c")](d), o.push(g), 3 === o.length ? (a.push(f), a.push(d), a.push(g), t[P("0x187")](t.length - 1).text = P("0x2e3"), i = n[P("0x194")].add({
              name: P("0x2e4"),
              tag: P("0x2e5") + n[P("0x1a9")],
              polyline: {
                positions: e[P("0x11")][P("0x19e")](o),
                width: 10,
                material: new e[P("0x2e6")](e[P("0x16a")][P("0x2e7")]),
                clampToGround: !0
              }
            }), n[P("0x2e8")] = i, r = n[P("0x194")].add({
              name: "MeasureAzimuthWidget_draw_polyline",
              tag: P("0x2e5") + n[P("0x1a9")],
              polyline: {
                positions: e[P("0x11")].fromDegreesArrayHeights(a),
                width: 3,
                material: new e[P("0x2e9")]({
                  color: e.Color[P("0x16b")]
                }),
                clampToGround: !0
              }
            }), n[P("0x2ea")] = r) : 6 === o[P("0x0")] && (i[P("0x2eb")][P("0x19f")] = e[P("0x11")][P("0x19e")](o), t && (n[P("0x17d")][P("0x17f")](t), t = null), n.measureEnd(o, s), o = [], a = [], r = i = null, n[P("0x16f")] = n[P("0x16f")] && n[P("0x16f")][P("0xf4")](), n[P("0x13b")][P("0x48")].style[P("0x170")] = P("0x18c"));
          }
        }, e[P("0x161")][P("0x17e")]), this.handler[P("0x160")](function (a) {
          if (2 == n[P("0xd3")]) var x = n[P("0x10f")][P("0x174")](a[P("0x64")]);else {
            var l = n[P("0x7e")][P("0x86")](a[P("0x64")]);
            x = n[P("0x10f")][P("0xa3")][P("0xa4")](l, n.scene);
          }

          if (x) {
            var c = e[P("0x13")][P("0x175")](x),
                u = e[P("0x23")].toDegrees(c[P("0x112")]),
                h = e[P("0x23")][P("0x113")](c[P("0x114")]),
                f = c[P("0x8b")];

            if (!/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent)) {
              if (3 == o[P("0x0")]) {
                var d = o[P("0x1d5")](),
                    g = o.slice();
                d[P("0x17c")](u), d[P("0x17c")](h), d[P("0x17c")](f), i[P("0x2eb")][P("0x19f")] = e[P("0x11")].fromDegreesArrayHeights(d);
                var p = turf[P("0x2ec")]([d[0], d[1]]),
                    m = turf[P("0x2ec")]([d[3], d[4]]),
                    b = 2 * turf[P("0x8e")](p, m) / 3,
                    v = turf[P("0x11d")](p, b, 0);
                g[P("0x17c")](v[P("0x180")][P("0x2ed")][0]), g[P("0x17c")](v[P("0x180")][P("0x2ed")][1]), g[P("0x17c")](0), r[P("0x2eb")][P("0x19f")] = e[P("0x11")][P("0x19e")](g), n[P("0x2d1")](d, s);
              }

              t && 0 != t.length ? t.get(t.length - 1).position = e[P("0x11")][P("0x1a1")](u, h, f) : ((t = n[P("0x17d")][P("0x6d")](new e.LabelCollection())).name = "MeasureAzimuthWidget_draw_label", t[P("0x2cc")] = P("0x2e5") + n[P("0x1a9")], t[P("0x6d")]({
                text: "单击开始绘制",
                font: P("0x2ee"),
                showBackground: !0,
                pixelOffset: new e[P("0x10")](10, 10),
                disableDepthTestDistance: Number[P("0x31")]
              }), t[P("0x187")](t[P("0x0")] - 1)[P("0x8c")] = e[P("0x11")][P("0x1a1")](u, h, f));
            }
          }
        }, e[P("0x161")][P("0x163")]);
      }, t[P("0x5")][P("0x2d1")] = function (t, i) {
        var r = turf[P("0x2ec")]([t[0], t[1]]),
            n = turf[P("0x2ec")]([t[3], t[4]]),
            o = turf[P("0x11b")](r, n),
            a = P("0x2ef") + o[P("0x2af")](2) + "°";
        i[P("0x187")](i.length - 1)[P("0x8c")] = e[P("0x11")][P("0x1a1")](t[3], t[4], t[5]), i[P("0x187")](i[P("0x0")] - 1).text = a;
      }, t[P("0x5")][P("0x2f0")] = function () {
        this.viewer.infoBox && (this[P("0x13b")].infoBox[P("0x131")][P("0x150")][P("0x2f1")] = ""), this.viewer.selectionIndicator && (this[P("0x13b")][P("0x2f2")][P("0x131")][P("0x150")][P("0x2f1")] = "");
      }, t.prototype.hideInfobox = function () {
        this[P("0x13b")][P("0x2f3")] && (this[P("0x13b")][P("0x2f3")][P("0x131")][P("0x150")].display = P("0x2b4")), this.viewer[P("0x2f2")] && (this[P("0x13b")][P("0x2f2")][P("0x131")][P("0x150")][P("0x2f1")] = P("0x2b4"));
      }, t[P("0x5")].clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this.viewer.canvas[P("0x150")][P("0x170")] = P("0x18c"), function (e, t) {
          for (var i = 0; i < t.length; i++) {
            t[P("0x187")](i)[P("0x176")] && -1 < t[P("0x187")](i)[P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](t[P("0x187")](i)), i--);
          }
        }(P("0x2db"), this[P("0x17d")]), function (e, t) {
          for (var i = t[P("0x190")], r = 0; r < i[P("0x0")]; r++) {
            i[r][P("0x176")] && -1 < i[r].name.indexOf(e) && (t[P("0x17f")](i[r]), r--);
          }
        }(P("0x2db"), this[P("0x13b")].entities), this[P("0x2f0")]();
      }, t[P("0x5")][P("0x2d2")] = function () {
        var t = this;
        this[P("0x16f")] || (this.handler = new e[P("0x15f")](this.canvas), this[P("0x16f")][P("0x160")](function (i) {
          var r = t[P("0x13b")][P("0x10f")][P("0xa4")](i.position);
          r.id && r.id[P("0x2cc")] && -1 < r.id[P("0x2cc")][P("0x2d3")](P("0x2db")) && (t[P("0x2cb")][P("0x17c")](r.id[P("0x2cc")]), r.id._polyline.material[P("0x169")] = e.Color[P("0x2d5")].withAlpha(0.5));
        }, e[P("0x161")][P("0x17e")]));
      }, t[P("0x5")][P("0x2d6")] = function () {
        if (this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this.viewer.canvas[P("0x150")][P("0x170")] = P("0x18c"), this[P("0x2cb")] && 0 < this[P("0x2cb")][P("0x0")]) for (var e = 0; e < this.tags[P("0x0")]; e++) {
          r(this.tags[e], this[P("0x17d")]), i(this[P("0x2cb")][e], this[P("0x13b")][P("0x194")]);
        }
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x2f4")] = function (t, i) {
        this.viewer = t[P("0x13b")], this[P("0x169")] = t.color ? t.color : e[P("0x16a")][P("0x2d5")], this.pixelSize = t[P("0x1a3")] ? t[P("0x1a3")] : 10, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this.camera = this.viewer[P("0x7e")], this[P("0x48")] = this[P("0x10f")][P("0x48")], this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0xef")] = this.scene.globe[P("0xef")], this[P("0x1a9")] = 0, this[P("0x2cb")] = [], this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1;
      };

      function i(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      t[P("0x5")][P("0x198")] = function () {
        this.count++, this.handler && (this.handler = this.handler && this[P("0x16f")][P("0xf4")]()), this[P("0x16f")] = new e[P("0x15f")](this.canvas), this.viewer[P("0x48")][P("0x150")][P("0x170")] = P("0x171");
        var t,
            i,
            r = this,
            n = [];
        this[P("0x16f")][P("0x160")](function (o) {
          if (2 == r.mode) {
            var a = r[P("0x10f")][P("0xa4")](o.position);
            if (!a) return;
            if (!(a[P("0x182")] instanceof e[P("0x2e1")])) return void console[P("0x2e2")](P("0x2f5"));
            var s = r[P("0x10f")].pickPosition(o.position);
          } else {
            var x = r[P("0x7e")][P("0x86")](o[P("0x8c")]);
            s = r.scene[P("0xa3")][P("0xa4")](x, r[P("0x10f")]);
          }

          if (s) {
            n[0] = s, t ? t.removeAll() : ((t = r[P("0x17d")][P("0x6d")](new e.PointPrimitiveCollection()))[P("0x2cc")] = P("0x2f6") + r[P("0x1a9")], t[P("0x176")] = P("0x2f7")), t.add({
              position: s,
              color: r[P("0x169")],
              pixelSize: r[P("0x1a3")]
            }), r.handler = r[P("0x16f")] && r[P("0x16f")].destroy(), r[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), i && (r[P("0x17d")][P("0x17f")](i), i = null);
            var l,
                c,
                u,
                h,
                f,
                d = e.Cartographic[P("0x175")](n[0]),
                g = {
              longitude: e[P("0x23")][P("0x113")](d[P("0x112")]),
              latitude: e.Math[P("0x113")](d[P("0x114")]),
              height: d[P("0x8b")]
            };
            l = r[P("0x17d")], c = g, u = n, h = r[P("0x1a9")], (f = l[P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = P("0x2f8"), f[P("0x2cc")] = P("0x2f6") + h, f[P("0x6d")]({
              text: P("0x2f9") + c[P("0x112")][P("0x2af")](7) + "°\n" + P("0x2fa") + c.latitude[P("0x2af")](7) + "°\n" + P("0x2fb") + c.height.toFixed(2) + "m",
              font: P("0x1a0"),
              showBackground: !0,
              pixelOffset: new e[P("0x10")](8, 0),
              disableDepthTestDistance: Number[P("0x31")]
            }), f[P("0x187")](f[P("0x0")] - 1)[P("0x8c")] = u[u.length - 1];
          }
        }, e[P("0x161")][P("0x1ff")]);
      }, t[P("0x5")].clear = function () {
        this.handler = this.handler && this.handler[P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")].cursor = P("0x18c"), function (e, t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            t[P("0x187")](i)[P("0x176")] && -1 < t.get(i)[P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](t[P("0x187")](i)), i--);
          }
        }(P("0x2f4"), this[P("0x17d")]);
      }, t[P("0x5")][P("0x2d2")] = function () {
        var t = this;
        this[P("0x16f")] || (this[P("0x16f")] = new e.ScreenSpaceEventHandler(this[P("0x48")]), this.handler[P("0x160")](function (i) {
          var r = t[P("0x13b")][P("0x10f")][P("0xa4")](i.position);
          r && r.collection && r.collection[P("0x2cc")] && -1 < r[P("0x2fc")][P("0x2cc")][P("0x2d3")]("MeasureCoordinateWidget") && r[P("0x182")] && (t[P("0x2cb")][P("0x17c")](r[P("0x2fc")][P("0x2cc")]), r[P("0x182")][P("0x169")] = e.Color.YELLOW.withAlpha(0.5));
        }, e.ScreenSpaceEventType.LEFT_CLICK));
      }, t[P("0x5")][P("0x2d6")] = function (e) {
        if (this.handler = this.handler && this[P("0x16f")].destroy(), this[P("0x13b")][P("0x48")].style[P("0x170")] = P("0x18c"), this[P("0x2cb")] && 0 < this[P("0x2cb")][P("0x0")]) for (var t = 0; t < this[P("0x2cb")][P("0x0")]; t++) {
          i(this[P("0x2cb")][t], this.primitives);
        }
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x2fd")] = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e.Color.CHARTREUSE[P("0x16c")](0.5), this.lineWidth = t.lineWidth ? t[P("0x197")] : 2, this.scene = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x48")] = this[P("0x10f")].canvas, this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0x194")] = this[P("0x13b")].entities, this.ellipsoid = this[P("0x10f")][P("0xa3")].ellipsoid, this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1, this[P("0x1a9")] = 0, this[P("0x2cb")] = [];
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i).tag == e && (t.remove(t.get(i)), i--);
        }
      }

      function r(e, t) {
        for (var i = t[P("0x190")], r = 0; r < i.length; r++) {
          i[r][P("0x2cc")] == e && (t[P("0x17f")](i[r]), r--);
        }
      }

      t[P("0x5")][P("0x198")] = function () {
        var t = this;
        t[P("0x1a9")]++, this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")].cursor = P("0x171");
        var i,
            r,
            n,
            o = [];
        this._array_ = o, this._polylines_ = i, this[P("0x173")] = r, this[P("0x16f")][P("0x160")](function (r) {
          if (t[P("0x18b")] = r, 3 == t[P("0xd3")]) var a = t[P("0x10f")][P("0x174")](r[P("0x8c")]);else {
            var s = t[P("0x7e")][P("0x86")](r[P("0x8c")]);
            a = t[P("0x10f")][P("0xa3")][P("0xa4")](s, t[P("0x10f")]);
          }

          if (a) {
            var x = e.Cartographic[P("0x175")](a),
                l = e.Math[P("0x113")](x.longitude),
                c = e[P("0x23")].toDegrees(x[P("0x114")]),
                u = x[P("0x8b")];
            o.push(l), o[P("0x17c")](c), o[P("0x17c")](u), 3 == o[P("0x0")] && ((i = t[P("0x17d")][P("0x6d")](new e[P("0x199")]())).tag = P("0x2fd") + "_" + t[P("0x1a9")], i[P("0x176")] = "MeasureDistanceWidget_draw_polyline", i[P("0x6d")]({
              polyline: {}
            }), i[P("0x187")](i[P("0x0")] - 1)[P("0x19a")] = t[P("0x197")], i.get(i[P("0x0")] - 1)[P("0x19c")][P("0x19d")][P("0x169")] = t[P("0x169")], i[P("0x187")](i[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")][P("0x19e")](o)), 3 < o[P("0x0")] && (i[P("0x187")](i[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")][P("0x19e")](o)), t._polylines_ = i, (n = t[P("0x17d")][P("0x6d")](new e[P("0x1a4")]()))[P("0x2cc")] = P("0x2fd") + "_" + t[P("0x1a9")], n[P("0x176")] = P("0x2fe"), n[P("0x6d")]({
              position: a,
              color: e[P("0x16a")][P("0x2cf")],
              outlineColor: e[P("0x16a")][P("0x16b")],
              outlineWidth: 1,
              pixelSize: t[P("0x1a3")]
            }), t[P("0x2ff")] = !1, t[P("0x2d1")](r);
          }
        }, e[P("0x161")][P("0x1ff")]), this[P("0x16f")][P("0x160")](function (n) {
          if (3 == t[P("0xd3")]) var a = t[P("0x10f")].pickPosition(n.endPosition);else {
            var s = t[P("0x7e")][P("0x86")](n[P("0x64")]);
            a = t.scene[P("0xa3")][P("0xa4")](s, t[P("0x10f")]);
          }
          if (!a) return console[P("0x133")](P("0x300")), void (r && (t.primitives[P("0x17f")](r), r = null));
          var x = e[P("0x13")][P("0x175")](a),
              l = e.Math[P("0x113")](x[P("0x112")]),
              c = e[P("0x23")][P("0x113")](x[P("0x114")]),
              u = x[P("0x8b")];
          if (/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent)) r = null;else {
            if (3 <= o.length) {
              var h = o[P("0x1c6")]();
              h[P("0x17c")](l), h[P("0x17c")](c), h.push(u), i[P("0x187")](i[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")][P("0x19e")](h);
            }

            r && 0 != r[P("0x0")] ? r[P("0x187")](r.length - 1)[P("0x8c")] = e[P("0x11")][P("0x1a1")](l, c, u) : ((r = t[P("0x17d")][P("0x6d")](new e[P("0x1a5")]())).name = P("0x301"), r[P("0x2cc")] = P("0x2fd") + "_" + t[P("0x1a9")], r.add({
              text: P("0x185"),
              font: P("0x1a0"),
              showBackground: !0,
              pixelOffset: new e[P("0x10")](10, 10),
              disableDepthTestDistance: Number[P("0x31")]
            }), r.get(r.length - 1)[P("0x8c")] = e.Cartesian3.fromDegrees(l, c, u));
          }
          t[P("0x173")] = r;
        }, e[P("0x161")].MOUSE_MOVE), this[P("0x16f")][P("0x160")](function (i) {
          if (t.flag = !0, i = t[P("0x18b")], 3 == t[P("0xd3")]) var r = t[P("0x10f")][P("0x174")](i.position);else {
            var o = t.camera[P("0x86")](i.position);
            r = t[P("0x10f")][P("0xa3")][P("0xa4")](o, t[P("0x10f")]);
          }

          if (r) {
            var a = e[P("0x13")][P("0x175")](r),
                s = e[P("0x23")][P("0x113")](a.longitude),
                x = e[P("0x23")][P("0x113")](a.latitude),
                l = a[P("0x8b")];
            (n = t[P("0x17d")][P("0x6d")](new e[P("0x1a4")]()))[P("0x2cc")] = P("0x2fd") + "_" + t[P("0x1a9")], n[P("0x176")] = P("0x2fe"), n[P("0x6d")]({
              position: r,
              color: e[P("0x16a")][P("0x2cf")],
              outlineColor: e.Color[P("0x16b")],
              outlineWidth: 1,
              pixelSize: t.pixelSize
            }), t._array_[P("0x17c")](s), t[P("0x172")][P("0x17c")](x), t._array_.push(l), t[P("0x2d1")](i), t[P("0x16f")] = t[P("0x16f")] && t[P("0x16f")][P("0xf4")](), t.viewer.canvas[P("0x150")].cursor = "default", t[P("0x172")] = [], t[P("0x1aa")] = null;
          }
        }, e[P("0x161")][P("0x189")]);
      }, t.prototype[P("0x2d1")] = function (t) {
        if (null != this[P("0x172")] && 0 != this[P("0x172")][P("0x0")]) {
          if (/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator[P("0x2cd")])) this[P("0x172")] = this[P("0x172")];else if (!t) {
            console[P("0x133")](P("0x1ad")), t = this[P("0x18b")];
            var i = this[P("0x7e")][P("0x86")](t.position),
                r = this[P("0x10f")][P("0xa3")][P("0xa4")](i, this[P("0x10f")]);
            if (!r) return;
            var n = e[P("0x13")].fromCartesian(r),
                o = e[P("0x23")][P("0x113")](n[P("0x112")]),
                a = e[P("0x23")][P("0x113")](n[P("0x114")]),
                s = n[P("0x8b")];
            this[P("0x172")][this[P("0x172")][P("0x0")] - 1] == s && this._array_[this[P("0x172")][P("0x0")] - 2] == a && this._array_[this._array_[P("0x0")] - 3] == o ? this[P("0x172")] = this._array_ : (this[P("0x172")][P("0x17c")](o), this._array_[P("0x17c")](a), this[P("0x172")][P("0x17c")](s));
          }
          this._labels_ && (this[P("0x17d")][P("0x17f")](this[P("0x173")]), this._labels_ = null);
          var x = this[P("0xd3")];

          if (2 == this[P("0xd3")]) {
            var l = function (t, i) {
              for (var r = [], n = 0; n < t[P("0x0")] / 3 - 1; n++) {
                var o = 3 * n,
                    a = t[o],
                    s = t[1 + o],
                    x = t[2 + o],
                    l = t[3 + o],
                    c = t[4 + o],
                    u = t[5 + o];
                r[P("0x17c")](a), r[P("0x17c")](s), r[P("0x17c")](x);

                for (var h = 0; h < 100; h++) {
                  var f = {
                    longitude: e.Math.toRadians(a),
                    latitude: e[P("0x23")].toRadians(s),
                    height: x
                  },
                      d = {
                    longitude: e.Math[P("0x119")](l),
                    latitude: e[P("0x23")][P("0x119")](c),
                    height: u
                  },
                      g = e[P("0x23")][P("0x308")](f[P("0x112")], d[P("0x112")], 0.01 * (h + 1)),
                      p = e[P("0x23")][P("0x308")](f[P("0x114")], d[P("0x114")], 0.01 * (h + 1)),
                      m = {
                    longitude: g,
                    latitude: p
                  },
                      b = i[P("0xa3")][P("0xed")](m);
                  r.push(e.Math[P("0x113")](g)), r[P("0x17c")](e.Math[P("0x113")](p)), r[P("0x17c")](b);
                }

                r[P("0x17c")](l), r.push(c), r.push(u);
              }

              return r;
            }(this[P("0x172")], this[P("0x10f")]);

            this[P("0x1aa")][P("0x187")](this._polylines_[P("0x0")] - 1)[P("0x19c")][P("0x19d")].color = e[P("0x16a")].CHARTREUSE[P("0x16c")](0), this[P("0x13b")].entities[P("0x6d")]({
              tag: P("0x2fd") + "_" + this[P("0x1a9")],
              name: P("0x302"),
              polyline: {
                positions: e.Cartesian3[P("0x19e")](l),
                width: this[P("0x197")],
                material: this.color
              }
            });
          }

          var c,
              u,
              h,
              f,
              d,
              g,
              p = e[P("0x11")][P("0x19e")](e[P("0x14")](l) ? l : this[P("0x172")]),
              m = 0;

          if (new e[P("0x282")](), 1 == x || 3 == x) {
            for (var b = 1; b < p[P("0x0")]; b++) {
              m += e[P("0x11")][P("0x8e")](p[b - 1], p[b]);
            }

            c = 0 == m ? "起点" : 0 < m && m < 1e3 ? this[P("0x2ff")] ? P("0x303") + m.toFixed(2) + "m" : m[P("0x2af")](2) + "m" : this[P("0x2ff")] ? P("0x303") + (m / 1e3)[P("0x2af")](2) + "km" : (m / 1e3).toFixed(2) + "km";
          } else if (2 == x) {
            for (b = 1; b < p.length; b++) {
              m += e[P("0x11")][P("0x8e")](p[b - 1], p[b]);
            }

            c = 0 == m ? "起点" : 0 < m && m < 1e3 ? this[P("0x2ff")] ? P("0x303") + m[P("0x2af")](2) + "m" : m.toFixed(2) + "m" : this[P("0x2ff")] ? P("0x303") + (m / 1e3)[P("0x2af")](2) + "km" : (m / 1e3)[P("0x2af")](2) + "km";
          }

          u = this[P("0x1a9")], f = c, d = p, (g = (h = this[P("0x17d")])[P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = "MeasureDistanceWidget_result_label", g[P("0x2cc")] = P("0x2fd") + "_" + u, g[P("0x6d")]({
            text: f,
            font: P("0x1a0"),
            showBackground: !0,
            backgroundColor: new e[P("0x16a")](1, 0, 0, 0.3),
            pixelOffset: new e[P("0x10")](10, 10),
            disableDepthTestDistance: Number[P("0x31")]
          }), g[P("0x187")](g[P("0x0")] - 1)[P("0x8c")] = d[d[P("0x0")] - 1], 3 < h[P("0x0")] && h[P("0x306")][h.length - 3].name == P("0x307") && (h[P("0x306")][h[P("0x0")] - 3]._labels[0].backgroundColor = new e[P("0x16a")](0, 1, 0, 0.3));
        }
      }, t.prototype.clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this.handler[P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), function (e) {
          for (var t = 0; t < e[P("0x0")]; t++) {
            e.get(t)[P("0x176")] && -1 < e.get(t).name[P("0x2d3")](P("0x2fd")) && (e.remove(e[P("0x187")](t)), t--);
          }
        }((P("0x1a7"), this[P("0x17d")])), function (e) {
          for (var t = e[P("0x190")], i = 0; i < t.length; i++) {
            t[i][P("0x176")] && -1 < t[i][P("0x176")][P("0x2d3")](P("0x2fd")) && (e[P("0x17f")](t[i]), i--);
          }
        }(this.viewer[P("0x194")]);
      }, t[P("0x5")][P("0x2d2")] = function () {
        var t = this;
        this[P("0x16f")] || (this[P("0x16f")] = new e.ScreenSpaceEventHandler(this[P("0x48")]), this.handler[P("0x160")](function (i) {
          var r = t.viewer[P("0x10f")].pick(i.position);
          r && (r[P("0x182")][P("0x304")] && r[P("0x182")][P("0x304")][P("0x2cc")] && -1 < r[P("0x182")]._polylineCollection[P("0x2cc")].indexOf("MeasureDistanceWidget") && (t[P("0x2cb")][P("0x17c")](r[P("0x182")][P("0x304")].tag), r[P("0x182")][P("0x19c")][P("0x19d")][P("0x169")] = e[P("0x16a")][P("0x2d5")].withAlpha(0.5)), r.id && r.id.tag && -1 < r.id[P("0x2cc")].indexOf(P("0x2fd")) && r.id[P("0x305")] && (t.tags[P("0x17c")](r.id.tag), r.id._polyline[P("0x19c")][P("0x169")] = e[P("0x16a")][P("0x2d5")].withAlpha(0.5)));
        }, e[P("0x161")][P("0x17e")]));
      }, t.prototype[P("0x2d6")] = function (e) {
        if (this[P("0x16f")] = this.handler && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), this[P("0x2cb")] && 0 < this[P("0x2cb")][P("0x0")]) for (var t = 0; t < this[P("0x2cb")][P("0x0")]; t++) {
          i(this[P("0x2cb")][t], this.primitives), r(this[P("0x2cb")][t], this[P("0x13b")][P("0x194")]);
        }
      };
    }(window.Cesium), function (e) {
      var t = e.MeasureElevationWidget = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this.color = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")].YELLOW, this.pixelSize = t.pixelSize ? t[P("0x1a3")] : 10, this.scene = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x48")] = this[P("0x10f")].canvas, this.primitives = this[P("0x10f")][P("0x17d")], this[P("0xef")] = this.scene[P("0xa3")][P("0xef")], this.count = 0, this.tags = [], this.mode = t[P("0xd3")] ? t[P("0xd3")] : 1;
      };

      function i(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t.remove(t[P("0x187")](i)), i--);
        }
      }

      t[P("0x5")][P("0x198")] = function () {
        this[P("0x1a9")]++, this[P("0x16f")] && (this.handler = this[P("0x16f")] && this.handler[P("0xf4")]()), this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13b")].canvas[P("0x150")].cursor = "crosshair";
        var t,
            i,
            r = this,
            n = [];
        this[P("0x16f")][P("0x160")](function (o) {
          if (2 == r[P("0xd3")]) {
            var a = r[P("0x10f")][P("0xa4")](o[P("0x8c")]);
            if (!a) return;
            if (!(a.primitive instanceof e.Cesium3DTileset)) return void console.warn(P("0x2f5"));
            var s = r[P("0x10f")][P("0x174")](o[P("0x8c")]);
          } else {
            var x = r[P("0x7e")][P("0x86")](o[P("0x8c")]);
            s = r[P("0x10f")][P("0xa3")].pick(x, r[P("0x10f")]);
          }

          if (s) {
            n[0] = s, t ? t[P("0xf5")]() : ((t = r.primitives[P("0x6d")](new e.PointPrimitiveCollection()))[P("0x2cc")] = P("0x309") + r[P("0x1a9")], t[P("0x176")] = "MeasureElevationWidget_draw_point"), t.add({
              position: s,
              color: r[P("0x169")],
              pixelSize: r[P("0x1a3")]
            }), r[P("0x16f")] = r.handler && r[P("0x16f")][P("0xf4")](), r[P("0x13b")][P("0x48")][P("0x150")].cursor = P("0x18c"), i && (r[P("0x17d")][P("0x17f")](i), i = null);
            var l,
                c,
                u,
                h,
                f,
                d = e[P("0x13")].fromCartesian(n[0])[P("0x8b")],
                g = P("0x30a") + d[P("0x2af")](2) + "m";
            l = r[P("0x17d")], c = g, u = n, h = r.count, (f = l[P("0x6d")](new e.LabelCollection()))[P("0x176")] = P("0x30c"), f[P("0x2cc")] = "MeasureElevationWidget_" + h, f[P("0x6d")]({
              text: c,
              font: P("0x1a0"),
              showBackground: !0,
              pixelOffset: new e[P("0x10")](6, 2),
              disableDepthTestDistance: Number[P("0x31")]
            }), f[P("0x187")](f[P("0x0")] - 1)[P("0x8c")] = u[u[P("0x0")] - 1];
          }
        }, e[P("0x161")][P("0x1ff")]);
      }, t[P("0x5")][P("0x192")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), function (e, t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            t.get(i)[P("0x176")] && -1 < t[P("0x187")](i)[P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](t[P("0x187")](i)), i--);
          }
        }(P("0x30b"), this[P("0x17d")]);
      }, t[P("0x5")][P("0x2d2")] = function () {
        var t = this;
        this[P("0x16f")] || (this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this.handler[P("0x160")](function (i) {
          var r = t[P("0x13b")][P("0x10f")].pick(i[P("0x8c")]);
          r && r[P("0x2fc")] && r[P("0x2fc")][P("0x2cc")] && -1 < r[P("0x2fc")].tag.indexOf(P("0x30b")) && r.primitive && (t[P("0x2cb")][P("0x17c")](r[P("0x2fc")].tag), r[P("0x182")][P("0x169")] = e[P("0x16a")].YELLOW.withAlpha(0.5));
        }, e[P("0x161")].LEFT_CLICK));
      }, t[P("0x5")][P("0x2d6")] = function (e) {
        if (this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), this[P("0x2cb")] && 0 < this[P("0x2cb")].length) for (var t = 0; t < this[P("0x2cb")][P("0x0")]; t++) {
          i(this[P("0x2cb")][t], this.primitives);
        }
      };
    }(window[P("0xfd")]), function (e) {
      var t = e.MeasureHeightWidget = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x169")] = t[P("0x169")] ? t[P("0x169")] : e[P("0x16a")].CHARTREUSE[P("0x16c")](0.5), this[P("0x197")] = t[P("0x197")] ? t.lineWidth : 2, this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this.canvas = this[P("0x10f")][P("0x48")], this.primitives = this[P("0x10f")][P("0x17d")], this[P("0xef")] = this[P("0x10f")][P("0xa3")].ellipsoid, this[P("0x191")] = i || function () {}, this[P("0x1a9")] = 0, this[P("0x2cb")] = [], this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1;
      };

      function i(t, i, r, n) {
        var o = t[P("0x6d")](new e[P("0x1a5")]());
        o[P("0x2cc")] = P("0x30d") + "_" + n, o[P("0x176")] = P("0x315"), o[P("0x6d")]({
          text: i,
          font: "16px sans-serif",
          showBackground: !0,
          disableDepthTestDistance: Number.POSITIVE_INFINITY
        }), o[P("0x187")](o[P("0x0")] - 1)[P("0x8c")] = e[P("0x11")].fromDegrees(r[r.length - 3], r[r[P("0x0")] - 2], r[r[P("0x0")] - 1]);
      }

      function r(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      t[P("0x5")].activate = function () {
        if (this.count++, this.handler = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), !this[P("0x16f")]) {
          this[P("0x16f")] = new e[P("0x15f")](this.canvas), this[P("0x13b")][P("0x48")][P("0x150")].cursor = P("0x171");
          var t,
              i,
              r = this,
              n = [];
          this[P("0x172")] = n, this[P("0x1aa")] = t, this[P("0x173")] = void 0, this[P("0x16f")][P("0x160")](function (o) {
            if (2 == r[P("0xd3")]) var a = r[P("0x10f")][P("0x174")](o[P("0x8c")]);else {
              var s = r[P("0x7e")].getPickRay(o[P("0x8c")]);
              a = r.scene.globe.pick(s, r[P("0x10f")]);
            }

            if (a) {
              var x = e[P("0x13")][P("0x175")](a),
                  l = e[P("0x23")][P("0x113")](x.longitude),
                  c = e[P("0x23")].toDegrees(x[P("0x114")]),
                  u = x[P("0x8b")];
              0 < n[P("0x0")] && (9 == n[P("0x0")] && (n[3] = l, n[4] = c, n[5] = u, n[2] >= n[5] ? (n[6] = n[0], n[7] = n[1], n[8] = n[5]) : (n[6] = n[3], n[7] = n[4], n[8] = n[2]), t[P("0x187")](t.length - 1).positions = e[P("0x11")][P("0x19e")](n)), (i = r[P("0x17d")].add(new e[P("0x1a4")]()))[P("0x2cc")] = P("0x30d") + "_" + r.count, i[P("0x176")] = P("0x30e"), i[P("0x6d")]({
                position: a,
                color: r[P("0x169")],
                pixelSize: r[P("0x1a3")]
              }), r[P("0x172")] = n, r.measureEnd()), 0 == n.length && (n[P("0x17c")](l), n[P("0x17c")](c), n.push(u), n[P("0x17c")](l), n[P("0x17c")](c), n[P("0x17c")](u), n[P("0x17c")](l), n.push(c), n[P("0x17c")](u), (t = r.primitives[P("0x6d")](new e.PolylineCollection()))[P("0x2cc")] = P("0x30d") + "_" + r[P("0x1a9")], t.name = P("0x30f"), t[P("0x6d")]({
                polyline: {}
              }), t.get(t[P("0x0")] - 1)[P("0x19a")] = r[P("0x197")], t.get(t[P("0x0")] - 1)[P("0x19b")] = !0, t[P("0x187")](t[P("0x0")] - 1)[P("0x19c")].uniforms[P("0x169")] = r[P("0x169")], t[P("0x187")](t[P("0x0")] - 1)[P("0x19f")] = e[P("0x11")][P("0x19e")](n), (i = r.primitives[P("0x6d")](new e.PointPrimitiveCollection()))[P("0x2cc")] = P("0x30d") + "_" + r.count, i[P("0x176")] = P("0x30e"), i[P("0x6d")]({
                position: a,
                color: r[P("0x169")],
                pixelSize: r[P("0x1a3")]
              }));
            }
          }, e.ScreenSpaceEventType[P("0x17e")]);
        }
      }, t[P("0x5")][P("0x2d2")] = function (t) {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]);
        var i = this;
        this[P("0x16f")][P("0x160")](function (t) {
          var r = i.viewer[P("0x10f")].pick(t.position);
          r && r[P("0x2fc")] && r[P("0x2fc")][P("0x2cc")] && -1 < r[P("0x2fc")][P("0x2cc")][P("0x2d3")]("MeasureHeightWidget") && r[P("0x182")] && r.primitive instanceof e.Polyline && (r[P("0x182")].material[P("0x19d")][P("0x169")] = e.Color[P("0x310")], i[P("0x2cb")][P("0x17c")](r[P("0x2fc")][P("0x2cc")]));
        }, e[P("0x161")][P("0x17e")]);
      }, t.prototype[P("0x2d6")] = function (e) {
        if (this[P("0x16f")] = this.handler && this[P("0x16f")][P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), this[P("0x2cb")] && 0 < this.tags[P("0x0")]) for (var t = 0; t < this[P("0x2cb")][P("0x0")]; t++) {
          r(this[P("0x2cb")][t], this.primitives);
        }
      }, t[P("0x5")].measureEnd = function () {
        var t;
        this[P("0x16f")] = this.handler && this[P("0x16f")].destroy(), this[P("0x13b")].canvas.style[P("0x170")] = P("0x18c"), this._labels_ && (this.primitives[P("0x17f")](this._labels_), this[P("0x173")] = null), (x = [])[P("0x17c")]((this[P("0x172")][0] + this[P("0x172")][3]) / 2), x[P("0x17c")]((this[P("0x172")][1] + this[P("0x172")][4]) / 2), t = this[P("0x172")][2] >= this[P("0x172")][5] ? (x.push(this._array_[5]), this._array_[5]) : (x.push(this[P("0x172")][2]), this._array_[2]);
        var r = e.Cartesian3[P("0x1a1")](this[P("0x172")][0], this[P("0x172")][1], t),
            n = e[P("0x11")].fromDegrees(this._array_[3], this[P("0x172")][4], t),
            o = e[P("0x11")][P("0x8e")](r, n);
        a = o < 1e3 ? P("0x311") + o.toFixed(2) + "m" : P("0x311") + (o / 1e3)[P("0x2af")](2) + "km", i(this[P("0x17d")], a, x, this.count);
        var a,
            s = Math.abs(this._array_[2] - this[P("0x172")][5]),
            x = [];
        this[P("0x172")][2] >= this[P("0x172")][5] ? (x[P("0x17c")](this[P("0x172")][0]), x[P("0x17c")](this[P("0x172")][1])) : (x.push(this[P("0x172")][3]), x.push(this[P("0x172")][4])), x[P("0x17c")]((this[P("0x172")][2] + this._array_[5]) / 2), a = s < 1e3 ? P("0x312") + s[P("0x2af")](2) + "m" : P("0x312") + (s / 1e3)[P("0x2af")](2) + "km", i(this[P("0x17d")], a, x, this[P("0x1a9")]), (x = []).push((this[P("0x172")][0] + this[P("0x172")][3]) / 2), x[P("0x17c")]((this[P("0x172")][1] + this[P("0x172")][4]) / 2), x[P("0x17c")]((this[P("0x172")][2] + this[P("0x172")][5]) / 2);
        var l = Math[P("0xca")](Math.pow(o, 2) + Math[P("0x2ae")](s, 2));
        a = l < 1e3 ? P("0x313") + l[P("0x2af")](2) + "m" : P("0x313") + (l / 1e3)[P("0x2af")](2) + "km", i(this.primitives, a, x, this[P("0x1a9")]), this[P("0x1a9")]++, this.callback(o, s, l, this._array_);
      }, t[P("0x5")][P("0x192")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this.handler[P("0xf4")](), this[P("0x13b")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), function (e) {
          for (var t = 0; t < e[P("0x0")]; t++) {
            e[P("0x187")](t)[P("0x176")] && -1 < e[P("0x187")](t)[P("0x176")][P("0x2d3")](P("0x30d")) && (e[P("0x17f")](e.get(t)), t--);
          }
        }((P("0x314"), this[P("0x17d")]));
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x316")] = function (t, i) {
        this[P("0x13c")] = t[P("0x13b")], this[P("0x42")] = this._viewer[P("0x10f")], this[P("0x317")] = this[P("0x13c")][P("0x7e")], this[P("0x318")] = this[P("0x42")][P("0x48")], this[P("0x306")] = this[P("0x42")][P("0x17d")], this[P("0x44")] = this[P("0x42")][P("0xa3")][P("0xef")], this[P("0x319")] = t[P("0x1b4")] ? t[P("0x1b4")] : e[P("0x16a")].AQUA[P("0x16c")](0.5), this[P("0x31a")] = t[P("0x197")] ? t[P("0x197")] : 6, this[P("0x191")] = i || function () {}, this[P("0xd3")] = t.mode ? t[P("0xd3")] : 1, this.count = 0, this[P("0x2cb")] = [];
      };

      function i(e, t) {
        for (var i = 0; i < t.length; i++) {
          t.get(i)[P("0x2cc")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      t.prototype[P("0x198")] = function () {
        if (this[P("0x1a9")]++, this.handler = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), !this[P("0x16f")]) {
          this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x13c")][P("0x48")][P("0x150")][P("0x170")] = P("0x171");
          var t,
              i,
              r = this,
              n = [];
          this[P("0x172")] = n, this.handler[P("0x160")](function (o) {
            if (2 == r.mode) var a = r[P("0x42")][P("0x174")](o[P("0x8c")]);else {
              var s = r[P("0x317")][P("0x86")](o[P("0x8c")]);
              a = r[P("0x42")][P("0xa3")][P("0xa4")](s, r[P("0x42")]);
            }

            if (a) {
              var x = e[P("0x13")][P("0x175")](a),
                  l = e[P("0x23")].toDegrees(x[P("0x112")]),
                  c = e[P("0x23")][P("0x113")](x[P("0x114")]),
                  u = x.height;
              n[P("0x17c")](l, c, u), 3 === n.length && (i[P("0x187")](i[P("0x0")] - 1)[P("0x31b")] = "单击结束绘制", (t = r[P("0x306")][P("0x6d")](new e[P("0x199")]()))[P("0x176")] = P("0x31c"), t.tag = P("0x31d") + r[P("0x1a9")], t[P("0x6d")]({
                positions: e[P("0x11")].fromDegreesArrayHeights(n),
                width: r[P("0x31a")],
                loop: !0,
                material: new e[P("0x212")]({
                  fabric: {
                    type: P("0x31e"),
                    uniforms: {
                      color: r[P("0x319")]
                    }
                  }
                })
              }), t[P("0x6d")]({
                positions: e.Cartesian3.fromDegreesArrayHeights(n),
                width: r[P("0x31a")],
                loop: !0,
                material: new e[P("0x212")]({
                  fabric: {
                    type: "PolylineArrow",
                    uniforms: {
                      color: r._lineColor
                    }
                  }
                })
              })), 6 === n[P("0x0")] && (i && (r._primitives[P("0x17f")](i), i = null), r[P("0x2d1")](n, t), r[P("0x16f")] = r[P("0x16f")] && r[P("0x16f")].destroy(), r._viewer[P("0x48")].style[P("0x170")] = "default");
            }
          }, e[P("0x161")].LEFT_CLICK), this[P("0x16f")][P("0x160")](function (o) {
            if (2 == r[P("0xd3")]) var a = r[P("0x42")].pickPosition(o.endPosition);else {
              var s = r[P("0x317")][P("0x86")](o.endPosition);
              a = r[P("0x42")][P("0xa3")][P("0xa4")](s, r[P("0x42")]);
            }

            if (a) {
              var x = e[P("0x13")][P("0x175")](a),
                  l = e[P("0x23")][P("0x113")](x[P("0x112")]),
                  c = e[P("0x23")].toDegrees(x[P("0x114")]),
                  u = x[P("0x8b")];

              if (!/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent)) {
                if (3 == n[P("0x0")]) {
                  var h = n[P("0x1d5")]();
                  h[P("0x17c")](l, c, u), r.measureEnd(h, t);
                }

                i && 0 != i[P("0x0")] ? i[P("0x187")](i[P("0x0")] - 1).position = a : ((i = r[P("0x306")][P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = P("0x31f"), i[P("0x2cc")] = "MeasureSlopeWidget_" + r.count, i[P("0x6d")]({
                  text: P("0x320"),
                  font: P("0x2ee"),
                  showBackground: !0,
                  pixelOffset: new e[P("0x10")](10, 10),
                  disableDepthTestDistance: Number[P("0x31")]
                }), i[P("0x187")](i.length - 1).position = a);
              }
            }
          }, e.ScreenSpaceEventType[P("0x163")]);
        }
      }, t[P("0x5")][P("0x2d1")] = function (t, i) {
        if (t && !(t[P("0x0")] < 3) && i) {
          var r,
              n,
              o = [],
              a = [];
          t[2] >= t[5] ? (t[6] = t[0], t[7] = t[1], t[8] = t[5], r = t[5], n = [t[3], t[4], t[5]], t[0], t[3], t[1], t[4], t[0], t[1], t[2], t[5], o[P("0x17c")](t[3], t[4], t[5], t[0], t[1], t[2]), a.push(t[3], t[4], t[5], t[0], t[1], t[5])) : (t[6] = t[3], t[7] = t[4], t[8] = t[2], r = t[2], n = [t[0], t[1], t[2]], t[0], t[3], t[1], t[4], t[3], t[4], t[2], t[5], o[P("0x17c")](t[0], t[1], t[2], t[3], t[4], t[5]), a[P("0x17c")](t[0], t[1], t[2], t[3], t[4], t[2])), i.get(0)[P("0x19f")] = e[P("0x11")][P("0x19e")](o), i[P("0x187")](1)[P("0x19f")] = e.Cartesian3[P("0x19e")](a);
          var s = e[P("0x11")][P("0x1a1")](t[0], t[1], r),
              x = e[P("0x11")][P("0x1a1")](t[3], t[4], r);
          !function (t, i, r, n, o) {
            var a;
            t < 1e3 ? t[P("0x2af")](2) : (t / 1e3)[P("0x2af")](2), i < 1e3 ? i[P("0x2af")](2) : (i / 1e3)[P("0x2af")](2), a = Math.round(e[P("0x23")].toDegrees(Math[P("0x321")](i / t))) + "°";

            var s = function (e, t) {
              for (var i = 0; i < e[P("0x0")]; i++) {
                if (e.get(i).name == t) return e[P("0x187")](i);
              }
            }(r, P("0x322") + n);

            s ? (s[P("0x187")](0)[P("0x31b")] = a, s[P("0x187")](0).position = e[P("0x11")][P("0x1a1")](o[0], o[1], o[2])) : ((s = r[P("0x6d")](new e.LabelCollection()))[P("0x176")] = P("0x322") + n, s[P("0x2cc")] = "MeasureSlopeWidget_" + n, s[P("0x6d")]({
              position: e[P("0x11")].fromDegrees(o[0], o[1], o[2]),
              style: e[P("0x323")].FILL_AND_OUTLINE,
              outlineWidth: 2,
              text: a,
              font: P("0x324"),
              pixelOffset: new e[P("0x10")](-20, 0),
              disableDepthTestDistance: Number.POSITIVE_INFINITY
            }));
          }(e[P("0x11")][P("0x8e")](s, x), Math.abs(t[2] - t[5]), this[P("0x306")], this[P("0x1a9")], n);
        }
      }, t[P("0x5")][P("0x2d2")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")].destroy(), this[P("0x16f")] = new e[P("0x15f")](this[P("0x318")]);
        var t = this;
        this[P("0x16f")][P("0x160")](function (i) {
          var r = t[P("0x13c")][P("0x10f")][P("0xa4")](i[P("0x8c")]);

          if (r && r.collection && r[P("0x2fc")][P("0x2cc")] && -1 < r[P("0x2fc")][P("0x2cc")][P("0x2d3")](P("0x316"))) {
            var n = function (e, t) {
              for (var i = 0; i < e[P("0x0")]; i++) {
                if (e[P("0x187")](i)[P("0x2cc")] == t && e[P("0x187")](i)[P("0x176")] == P("0x31c")) return e[P("0x187")](i);
              }
            }(t[P("0x306")], r.collection[P("0x2cc")]);

            n[P("0x187")](0).material[P("0x19d")][P("0x169")] = e[P("0x16a")][P("0x2d5")], n.get(1)[P("0x19c")][P("0x19d")][P("0x169")] = e[P("0x16a")].YELLOW, t[P("0x2cb")][P("0x17c")](r[P("0x2fc")][P("0x2cc")]);
          }
        }, e[P("0x161")][P("0x17e")]);
      }, t[P("0x5")][P("0x2d6")] = function () {
        if (this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")].destroy(), this[P("0x2cb")] && 0 < this[P("0x2cb")][P("0x0")]) for (var e = 0; e < this.tags.length; e++) {
          i(this[P("0x2cb")][e], this[P("0x306")]);
        }
      }, t[P("0x5")].clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x318")][P("0x150")][P("0x170")] = P("0x18c"), function (e, t) {
          for (var i = 0; i < t.length; i++) {
            t.get(i)[P("0x176")] && -1 < t[P("0x187")](i)[P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](t.get(i)), i--);
          }
        }(P("0x316"), this[P("0x306")]);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x325")] = function (t, i) {
        t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), this[P("0x13c")] = t[P("0x13b")], this[P("0x42")] = this._viewer[P("0x10f")], this[P("0x44")] = this[P("0x42")][P("0xa3")].ellipsoid, this[P("0x317")] = this[P("0x13c")][P("0x7e")], this[P("0x318")] = this[P("0x42")].canvas, this[P("0x306")] = this[P("0x42")].primitives, this.callback = i || function () {}, this[P("0x319")] = t.lineColor ? t[P("0x1b4")] : e.Color.CHARTREUSE, this[P("0x31a")] = t[P("0x197")] ? t[P("0x197")] : 2, this[P("0xd3")] = t[P("0xd3")] ? t[P("0xd3")] : 1, this[P("0x326")] = 0, this[P("0x327")] = e[P("0x102")](t[P("0x328")], 500), this._interpolationInterval = 3821.851414258813, this[P("0x329")] = this[P("0x42")][P("0xa3")][P("0x32a")], this[P("0x1a9")] = 0, this[P("0x2cb")] = [], this[P("0x32b")] = [], this[P("0x32c")] = [];
      };

      function i(e, t) {
        for (var i = 0, r = 0; r < t[P("0x0")]; r++) {
          if (t[r] == e && i++, 2 == i) return !0;
        }
      }

      function r(e, t, i, r, n, o, a) {
        var s = {},
            x = turf[P("0x2d4")]([[e[P("0x180")][P("0x2ed")][0][i[0]], t[0], t[1], e[P("0x180")][P("0x2ed")][0][i[0]]]]),
            l = turf.area(x),
            c = a - r,
            u = 1 / 3 * l * c,
            h = turf[P("0x2d4")]([[e.geometry.coordinates[0][i[1]], t[0], t[1], e[P("0x180")].coordinates[0][i[1]]]]),
            f = turf[P("0x2d9")](h),
            d = a - n,
            g = turf[P("0x2d4")]([[e.geometry[P("0x2ed")][0][i[1]], e[P("0x180")][P("0x2ed")][0][i[2]], t[0], t[1], e.geometry[P("0x2ed")][0][i[1]]]]),
            p = turf[P("0x2d9")](g),
            m = turf[P("0x2d4")]([[e[P("0x180")][P("0x2ed")][0][i[1]], e[P("0x180")][P("0x2ed")][0][i[2]], t[1], t[0], e[P("0x180")][P("0x2ed")][0][i[1]]]]),
            b = turf.area(m),
            v = b < p ? p : b,
            C = 1 / 3 * f * d + 1 / 3 * (v - f) * (d + (a - o));
        return 0 <= c ? (s[P("0x34c")] = u, s[P("0x34d")] = l, s[P("0x34a")] = C, s[P("0x34b")] = v) : (s[P("0x34c")] = C, s.fillArea = v, s[P("0x34a")] = u, s[P("0x34b")] = l), s;
      }

      function n(t, i, r, n, o, a, s, x, l) {
        var c = {},
            u = Math[P("0x78")](t / (t - i)),
            h = new e[P("0x11")](0, 0, 0),
            f = e.Cartesian3[P("0x1a1")](r[P("0x180")][P("0x2ed")][0][n][0], r[P("0x180")][P("0x2ed")][0][o][1], x),
            d = e[P("0x11")][P("0x1a1")](r[P("0x180")][P("0x2ed")][0][o][0], r[P("0x180")][P("0x2ed")][0][o][1], l),
            g = e[P("0x13")][P("0x175")](e[P("0x11")][P("0x308")](f, d, u, h));
        return c[P("0x348")] = [e[P("0x23")][P("0x113")](g[P("0x112")]), e.Math[P("0x113")](g[P("0x114")])], c.vertexSerial = [a, s], c;
      }

      function o(e, t) {
        for (var i = t.values, r = 0; r < i[P("0x0")]; r++) {
          i[r][P("0x2cc")] == e && (t[P("0x17f")](i[r]), r--);
        }
      }

      function a(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i)[P("0x2cc")] == e && (t[P("0x17f")](t.get(i)), i--);
        }
      }

      function s(e, t, i) {
        for (var r = 0; r < t[P("0x0")]; r++) {
          t[r][P("0x2cc")] == e && i[P("0x17f")](t[r].primitive);
        }
      }

      e[P("0xf")](t.prototype, {
        viewer: {
          get: function get() {
            return this[P("0x13c")];
          }
        },
        designElevation: {
          get: function get() {
            return this._designElevation;
          }
        },
        tin: {
          get: function get() {
            return this[P("0x32d")];
          }
        },
        minHeight: {
          get: function get() {
            return this[P("0x32e")];
          }
        },
        maxHeight: {
          get: function get() {
            return this[P("0x32f")];
          }
        }
      }), t[P("0x5")][P("0x198")] = function () {
        if (this[P("0x1a9")]++, this.handler = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), !this[P("0x16f")]) {
          this[P("0x329")] = this[P("0x42")][P("0xa3")][P("0x32a")], this[P("0x42")].globe.depthTestAgainstTerrain = !1, this[P("0x16f")] = new e[P("0x15f")](this[P("0x318")]), this[P("0x13c")][P("0x48")][P("0x150")][P("0x170")] = P("0x171");
          var t,
              i,
              r = this,
              n = [];
          this[P("0x172")] = n, this[P("0x16f")].setInputAction(function (i) {
            if (1 == r[P("0xd3")]) var o = r[P("0x317")][P("0x86")](i[P("0x8c")]),
                a = r._scene[P("0xa3")].pick(o, r[P("0x42")]);else a = r[P("0x42")][P("0x174")](i[P("0x8c")]);
            a && (n.push(a), 1 == n.length && ((t = r[P("0x306")][P("0x6d")](new e[P("0x199")]()))[P("0x176")] = "MeasureVolumeWidget_draw_polyline", t[P("0x2cc")] = P("0x330") + r[P("0x1a9")], t[P("0x6d")]({
              polyline: {}
            }), t[P("0x187")](t.length - 1)[P("0x19a")] = r[P("0x31a")], t[P("0x187")](t[P("0x0")] - 1)[P("0x19b")] = !0, t[P("0x187")](t.length - 1)[P("0x19c")][P("0x19d")].color = r[P("0x319")], t[P("0x187")](t[P("0x0")] - 1)[P("0x19f")] = n), 3 <= n[P("0x0")] && (t[P("0x187")](t[P("0x0")] - 1).positions = n, /Android|webOS|iPhone|ipad|iPod|BlackBerry/i.test(navigator[P("0x2cd")])), r[P("0x1aa")] = t);
          }, e[P("0x161")].LEFT_CLICK), this.handler[P("0x160")](function (o) {
            if (!/Android|webOS|iPhone|ipad|iPod|BlackBerry/i[P("0x270")](navigator.userAgent)) {
              if (1 == r[P("0xd3")]) var a = r[P("0x317")].getPickRay(o.endPosition),
                  s = r[P("0x42")][P("0xa3")].pick(a, r._scene);else s = r[P("0x42")][P("0x174")](o[P("0x64")]);
              if (!s) return;

              if (1 <= n[P("0x0")]) {
                var x = n[P("0x1d5")]();
                x[P("0x17c")](s), t[P("0x187")](t.length - 1).positions = x;
              }

              i ? i.get(i[P("0x0")] - 1)[P("0x8c")] = s : ((i = r[P("0x306")][P("0x6d")](new e[P("0x1a5")]()))[P("0x176")] = P("0x331"), i[P("0x2cc")] = "MeasureVolumeWidget_" + r.count, i.add({
                text: P("0x185"),
                font: P("0x1a0"),
                showBackground: !0,
                pixelOffset: new e.Cartesian2(10, 10),
                disableDepthTestDistance: Number[P("0x31")]
              }), i[P("0x187")](i[P("0x0")] - 1)[P("0x8c")] = s), r[P("0x173")] = i;
            }
          }, e[P("0x161")].MOUSE_MOVE), this[P("0x16f")][P("0x160")](function (o) {
            if (1 == r[P("0xd3")]) var a = r[P("0x317")][P("0x86")](o[P("0x8c")]),
                s = r[P("0x42")].globe.pick(a, r[P("0x42")]);else s = r[P("0x42")][P("0x174")](o[P("0x8c")]);
            s && (n[P("0x17c")](s), r[P("0x306")].remove(t), r[P("0x306")][P("0x17f")](i), r[P("0x332")] = r[P("0x2d1")](), r.callback(r[P("0x332")]), r[P("0x332")][P("0x333")](function (t) {
              r[P("0x42")][P("0xa3")][P("0x32a")] = r._depthTestAgainstTerrain, r[P("0x334")](), r[P("0x335")](), r[P("0x336")](), r.addOuterPolygon(), function (t, i, r, n, o) {
                var a,
                    s,
                    x = i[P("0x34e")],
                    l = i[P("0x34f")];
                s = x < 1e6 ? (a = P("0x350") + x[P("0x2af")](2) + "m²", "体积：" + l[P("0x2af")](2) + "m³") : (a = P("0x350") + (x / 1e6)[P("0x2af")](2) + P("0x2da"), "体积：" + (l / 1e9)[P("0x2af")](2) + P("0x351")), o._resultLabels = t[P("0x6d")](new e[P("0x1a5")]());
                var c = o[P("0x352")];
                c.name = P("0x353"), c[P("0x2cc")] = "MeasureVolumeWidget_" + n, c[P("0x6d")]({
                  style: e[P("0x323")][P("0x2de")],
                  outlineWidth: 2,
                  text: s + "\n" + a,
                  font: P("0x324"),
                  showBackground: !0,
                  pixelOffset: new e.Cartesian2(10, 0),
                  disableDepthTestDistance: Number[P("0x31")]
                }), c[P("0x187")](c[P("0x0")] - 1).position = r[r[P("0x0")] - 1];
              }(r[P("0x306")], t, r[P("0x172")], r[P("0x1a9")], r);
            }), r[P("0x16f")] = r[P("0x16f")] && r[P("0x16f")][P("0xf4")](), r[P("0x13c")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"));
          }, e[P("0x161")][P("0x189")]);
        }
      }, t[P("0x5")][P("0x334")] = function () {
        var t = new e[P("0x179")]({
          geometry: e[P("0x1af")][P("0x231")]({
            positions: this[P("0x172")],
            height: this._minHeight,
            extrudedHeight: 1e5,
            vertexFormat: e[P("0x1b0")].VERTEX_FORMAT
          }),
          attributes: {
            color: e[P("0x184")][P("0x1b2")](e[P("0x16a")][P("0x310")].withAlpha(0.5))
          },
          id: P("0x330") + this.count
        });
        this[P("0x337")] = new e.ClassificationPrimitive({
          geometryInstances: t,
          classificationType: e[P("0x17a")].BOTH
        }), this[P("0x32b")][P("0x17c")]({
          tag: "MeasureVolumeWidget_" + this[P("0x1a9")],
          primitive: this[P("0x337")]
        }), this[P("0x306")][P("0x6d")](this[P("0x337")]);
      }, t[P("0x5")][P("0x336")] = function () {
        this._designPolygonEntity = this[P("0x13c")][P("0x194")][P("0x6d")]({
          name: "MeasureVolumeWidget_draw_base_polygon",
          tag: "MeasureVolumeWidget_" + this[P("0x1a9")],
          polygon: {
            hierarchy: {
              positions: this[P("0x172")]
            },
            material: e[P("0x16a")][P("0x338")][P("0x16c")](0.3),
            perPositionHeight: !1,
            height: this[P("0x326")]
          }
        });
      }, t[P("0x5")].addVerticalPolylines = function () {
        var t = this[P("0x339")][P("0x33a")],
            i = [];
        this[P("0x33b")] = this[P("0x306")].add(new e[P("0x199")]()), this[P("0x33b")][P("0x176")] = P("0x33c"), this._verticalPolylines[P("0x2cc")] = P("0x330") + this.count;

        for (var r = 0; r < t[P("0x0")]; r++) {
          if (!(t[r].properties.z < this[P("0x326")])) {
            var n = [t[r].geometry.coordinates[0], t[r][P("0x180")][P("0x2ed")][1], t[r][P("0x33d")].z],
                o = [t[r][P("0x180")][P("0x2ed")][0], t[r][P("0x180")].coordinates[1], this[P("0x326")]],
                a = [t[r][P("0x180")][P("0x2ed")][0], t[r].geometry.coordinates[1], this._maxHeight],
                s = n.concat(o),
                x = n.concat(a);
            i[P("0x17c")](s), this[P("0x33b")][P("0x6d")]({
              positions: e[P("0x11")][P("0x19e")](s),
              material: e[P("0x212")][P("0x213")](P("0x16a"), {
                color: new e[P("0x16a")](1, 0, 0, 1)
              })
            }), this[P("0x33b")][P("0x6d")]({
              positions: e[P("0x11")].fromDegreesArrayHeights(x),
              material: e.Material[P("0x213")](P("0x16a"), {
                color: new e[P("0x16a")](0, 1, 0, 0.5)
              })
            });
          }
        }
      }, t[P("0x5")].addOuterPolygon = function () {
        this[P("0x339")].features;
      }, t.prototype[P("0x2d1")] = function () {
        var t = this;

        if (this[P("0x172")] && 0 != this[P("0x172")].length) {
          1 == this[P("0xd3")] && (this._scene[P("0xa3")].depthTestAgainstTerrain = !0);

          for (var i = [], r = 0; r < this._array_.length; r++) {
            var n = e[P("0x13")][P("0x175")](this[P("0x172")][r]),
                o = e[P("0x23")][P("0x113")](n[P("0x112")]),
                a = e[P("0x23")].toDegrees(n[P("0x114")]);
            i[P("0x17c")]([o, a]);
          }

          i[P("0x17c")](i[0]);
          var s = turf[P("0x33e")](i),
              x = turf.bbox(s),
              l = turf[P("0x33f")](x),
              c = (turf[P("0x2d9")](l), this._samplingPointsNumber),
              u = turf[P("0x340")](2 * c, {
            bbox: x
          }),
              h = turf.polygon([i]);

          for (r = 0; r < u[P("0x33a")][P("0x0")]; r++) {
            var f = turf[P("0x2ec")](u[P("0x33a")][r].geometry[P("0x2ed")]);
            turf[P("0x341")](f, h) || (u[P("0x33a")][P("0x259")](r, 1), r--);
          }

          var d = [],
              g = this[P("0x172")].concat(this[P("0x172")][0]);

          for (r = 0; r < g[P("0x0")] - 1; r++) {
            for (var p = 1; p < Math[P("0x342")](c / 10); p++) {
              var m = new e[P("0x11")](0, 0, 0);
              m = e[P("0x11")].lerp(g[r], g[r + 1], p * (1 / Math[P("0x342")](c / 10)), m), d[P("0x17c")](m);
            }
          }

          var b = this[P("0x172")].concat(d),
              v = [],
              C = [];

          for (r = 0; r < b[P("0x0")]; r++) {
            var y = this._ellipsoid.cartesianToCartographic(b[r])[P("0x112")],
                _ = this._ellipsoid[P("0xd6")](b[r]).latitude;

            v[P("0x17c")](new e.Cartographic(y, _)), C[P("0x17c")]([y, _]);
          }

          for (r = 0; r < u[P("0x33a")][P("0x0")]; r++) {
            var A = e[P("0x23")][P("0x119")](u[P("0x33a")][r].geometry[P("0x2ed")][0]),
                I = e[P("0x23")][P("0x119")](u[P("0x33a")][r][P("0x180")][P("0x2ed")][1]);
            v.push(new e[P("0x13")](A, I));
          }

          var w = {};
          return w[P("0x33a")] = [], this[P("0x42")].sampleHeightMostDetailed(v)[P("0x333")](function (i) {
            var r = [];
            w[P("0x165")] = P("0x343");

            for (var n = 0; n < i[P("0x0")]; n++) {
              i[n][P("0x8b")] && (r.push(i[n][P("0x8b")]), w[P("0x33a")][P("0x17c")]({
                type: P("0x344"),
                geometry: {
                  coordinates: [e[P("0x23")][P("0x113")](i[n][P("0x112")]), e[P("0x23")][P("0x113")](i[n][P("0x114")])],
                  type: P("0x345")
                },
                properties: {
                  z: i[n][P("0x8b")]
                }
              }));
            }

            t[P("0x32e")] = Math[P("0x7d")][P("0x346")](null, r), t[P("0x32f")] = Math[P("0xee")][P("0x346")](null, r), t[P("0x326")] = t[P("0x32e")], t[P("0x339")] = w;
            var o = turf.tin(w, "z");
            return t[P("0x32d")] = o, t[P("0x347")]();
          });
        }
      }, t[P("0x5")].getVolume = function () {
        for (var e = this[P("0x32d")], t = 0, o = 0, a = this._designElevation, s = 0; s < e[P("0x33a")].length; s++) {
          var x = e.features[s][P("0x33d")].a - a,
              l = e[P("0x33a")][s][P("0x33d")].b - a,
              c = e[P("0x33a")][s][P("0x33d")].c - a,
              u = [],
              h = [];

          if (x * l < 0 || x * c < 0 || l * c < 0) {
            if (x * l < 0) {
              var f = n(x, l, e[P("0x33a")][s], 0, 1, "a", "b", e[P("0x33a")][s][P("0x33d")].a, e[P("0x33a")][s][P("0x33d")].b);
              u[P("0x17c")](f[P("0x348")]), h[P("0x17c")](f[P("0x349")][0], f.vertexSerial[1]);
            }

            var d;
            x * c < 0 && (f = n(x, c, e[P("0x33a")][s], 0, 2, "a", "c", e[P("0x33a")][s][P("0x33d")].a, e[P("0x33a")][s][P("0x33d")].c), u[P("0x17c")](f[P("0x348")]), h.push(f[P("0x349")][0], f[P("0x349")][1])), l * c < 0 && (f = n(l, c, e[P("0x33a")][s], 1, 2, "b", "c", e[P("0x33a")][s].properties.b, e.features[s][P("0x33d")].c), u[P("0x17c")](f[P("0x348")]), h[P("0x17c")](f[P("0x349")][0], f[P("0x349")][1])), i("a", h) && (t += (d = r(e[P("0x33a")][s], u, [0, 1, 2], e[P("0x33a")][s][P("0x33d")].a, e[P("0x33a")][s][P("0x33d")].b, e[P("0x33a")][s][P("0x33d")].c, a))[P("0x34a")], o += d[P("0x34b")]), i("b", h) && (t += (d = r(e[P("0x33a")][s], u, [1, 0, 2], e.features[s][P("0x33d")].b, e[P("0x33a")][s][P("0x33d")].a, e.features[s].properties.c, a))[P("0x34a")], o += d[P("0x34b")]), i("c", h) && (t += (d = r(e[P("0x33a")][s], u, [2, 0, 1], e[P("0x33a")][s].properties.c, e.features[s].properties.a, e[P("0x33a")][s].properties.b, a))[P("0x34a")], o += d.excavationArea);
          } else {
            var g = 1 / 3 * [a - e[P("0x33a")][s].properties.a + (a - e[P("0x33a")][s][P("0x33d")].b) + (a - e[P("0x33a")][s][P("0x33d")].c)];

            if (g < 0) {
              var p = turf.polygon([e.features[s][P("0x180")][P("0x2ed")][0]]),
                  m = turf.area(p);
              t += m * -g, o += m;
            }
          }
        }

        var b = {
          volume: Number(t[P("0x2af")](3)),
          baseArea: Number(o[P("0x2af")](3))
        };
        return new C.a(function (e) {
          e(b);
        });
      }, t.prototype[P("0x2d2")] = function () {
        var t = this;
        this[P("0x16f")] || (this[P("0x16f")] = new e[P("0x15f")](this[P("0x318")]), this.handler[P("0x160")](function (i) {
          var r = t._viewer[P("0x10f")][P("0xa4")](i[P("0x8c")]);

          if (r) if (r[P("0x2fc")] && r.collection[P("0x2cc")] && -1 < r[P("0x2fc")][P("0x2cc")][P("0x2d3")](P("0x325"))) {
            var n = function (e, t) {
              for (var i = 0; i < t[P("0x0")]; i++) {
                if (t[i].tag == e) return t[i][P("0x182")];
              }
            }(r[P("0x2fc")][P("0x2cc")], t[P("0x32b")]);

            n[P("0x354")](r[P("0x2fc")][P("0x2cc")])[P("0x169")] = e[P("0x184")].toValue(e.Color[P("0x2d5")].withAlpha(0.5));

            for (var o = 0; o < r[P("0x2fc")][P("0x355")][P("0x0")]; o++) {
              r[P("0x2fc")][P("0x355")][o][P("0x19c")].uniforms.color = e[P("0x16a")][P("0x2d5")];
            }

            t._pickedClassificationPrimitives.push(n), t[P("0x2cb")][P("0x17c")](r.collection[P("0x2cc")]);
          } else r.id && -1 < r.id[P("0x2d3")](P("0x325")) && (r.primitive[P("0x354")](r.id)[P("0x169")] = e.ColorGeometryInstanceAttribute[P("0x356")](e[P("0x16a")][P("0x2d5")].withAlpha(0.5)), t[P("0x32c")].push(r), t[P("0x2cb")][P("0x17c")](r.id));
        }, e.ScreenSpaceEventType.LEFT_CLICK));
      }, t.prototype[P("0x2d6")] = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")]();

        for (var e = 0; e < this._pickedClassificationPrimitives[P("0x0")]; e++) {
          a(this[P("0x2cb")][e], this[P("0x306")]), o(this[P("0x2cb")][e], this[P("0x13c")][P("0x194")]), s(this[P("0x2cb")][e], this._classificationPrimitives, this[P("0x306")]);
        }
      }, t[P("0x5")][P("0x357")] = function (t) {
        var i = this;
        if (t) (this[P("0x326")] = t) > this[P("0x32f")] && (this[P("0x326")] = this[P("0x32f")]), t < this._minHeight && (this[P("0x326")] = this._minHeight), this[P("0x358")](), this[P("0x347")]()[P("0x333")](function (e) {
          var t,
              r,
              n = e[P("0x34e")],
              o = e.volume;
          return r = n < 1e6 ? (t = P("0x350") + n.toFixed(2) + "m²", "体积：" + o[P("0x2af")](2) + "m³") : (t = P("0x350") + (n / 1e6)[P("0x2af")](2) + P("0x2da"), P("0x359") + (o / 1e9)[P("0x2af")](2) + P("0x351")), i[P("0x352")].get(i._resultLabels.length - 1)[P("0x31b")] = r + "\n" + t, e;
        });else {
          if (this.handler) return;
          this[P("0x16f")] = new e[P("0x15f")](this[P("0x318")]), this[P("0x13c")][P("0x48")][P("0x150")].cursor = P("0x171"), this[P("0x16f")][P("0x160")](function (t) {
            if (1 == i.mode) var r = i._camera[P("0x86")](t[P("0x8c")]),
                n = i[P("0x42")][P("0xa3")][P("0xa4")](r, i[P("0x42")]);else n = i[P("0x42")].pickPosition(t[P("0x8c")]);

            if (n) {
              var o = e[P("0x13")][P("0x175")](n)[P("0x8b")];
              (i[P("0x326")] = o) > i._maxHeight && (i._designElevation = i[P("0x32f")]), o < i[P("0x32e")] && (i[P("0x326")] = i._minHeight), i[P("0x16f")] = i[P("0x16f")] && i[P("0x16f")][P("0xf4")](), i[P("0x13c")].canvas[P("0x150")].cursor = P("0x18c"), i[P("0x358")](), i[P("0x35a")](), i[P("0x347")]()[P("0x333")](function (e) {
                var t,
                    r,
                    n = e[P("0x34e")],
                    o = e.volume;
                return r = n < 1e6 ? (t = P("0x350") + n.toFixed(2) + "m²", "体积：" + o[P("0x2af")](2) + "m³") : (t = P("0x350") + (n / 1e6)[P("0x2af")](2) + P("0x2da"), "体积：" + (o / 1e9)[P("0x2af")](2) + "km³"), i._resultLabels[P("0x187")](i[P("0x352")][P("0x0")] - 1)[P("0x31b")] = r + "\n" + t, e;
              });
            }
          }, e.ScreenSpaceEventType[P("0x17e")]);
        }
      }, t[P("0x5")].updateClassificationPrimitive = function () {
        this[P("0x306")][P("0x17f")](this[P("0x337")]);
        var t = new e[P("0x179")]({
          geometry: e[P("0x1af")][P("0x231")]({
            positions: this._array_,
            height: this[P("0x326")],
            extrudedHeight: 1e5,
            vertexFormat: e[P("0x1b0")][P("0x1b1")]
          }),
          attributes: {
            color: e[P("0x184")][P("0x1b2")](e[P("0x16a")][P("0x310")][P("0x16c")](0.5))
          },
          id: P("0x330") + this[P("0x1a9")]
        });
        this[P("0x337")] = new e[P("0x35b")]({
          geometryInstances: t,
          classificationType: e[P("0x17a")].BOTH
        }), this._classificationPrimitives[P("0x17c")]({
          tag: "MeasureVolumeWidget_" + this.count,
          primitive: this._classificationPrimitive
        }), this[P("0x306")].add(this._classificationPrimitive);
      }, t[P("0x5")][P("0x35a")] = function () {
        !function (e, t, i) {
          for (var r = 0; r < i.length; r++) {
            i[P("0x187")](r)[P("0x2cc")] == e && i[P("0x187")](r).name == t && (i[P("0x17f")](i.get(r)), r--);
          }
        }("MeasureVolumeWidget_" + this[P("0x1a9")], P("0x33c"), this[P("0x306")]), function (e, t, i) {
          for (var r = i.values, n = 0; n < r.length; n++) {
            r[n][P("0x2cc")] == e && r[n][P("0x176")] == t && (i[P("0x17f")](r[n]), n--);
          }
        }(P("0x330") + this[P("0x1a9")], P("0x35c"), this._viewer.entities);
        var t = this._interpolationPoints.features,
            i = [],
            r = [];
        this[P("0x33b")] = this._primitives.add(new e.PolylineCollection()), this[P("0x33b")].name = P("0x33c"), this[P("0x33b")][P("0x2cc")] = P("0x330") + this[P("0x1a9")];

        for (var n = 0; n < t.length; n++) {
          if (!(t[n].properties.z < this._designElevation)) {
            var o = [t[n][P("0x180")][P("0x2ed")][0], t[n][P("0x180")].coordinates[1], t[n][P("0x33d")].z],
                a = [t[n][P("0x180")].coordinates[0], t[n][P("0x180")][P("0x2ed")][1], this[P("0x326")]],
                s = [t[n][P("0x180")][P("0x2ed")][0], t[n].geometry.coordinates[1], this[P("0x32f")]],
                x = o[P("0x1c6")](a),
                l = o[P("0x1c6")](s);
            r[P("0x17c")](turf[P("0x2ec")]([t[n][P("0x180")].coordinates[0], t[n][P("0x180")][P("0x2ed")][1]], {
              z: t[n][P("0x33d")].z
            })), i[P("0x17c")](t[n][P("0x180")][P("0x2ed")][0], t[n][P("0x180")][P("0x2ed")][1], this[P("0x326")]), this[P("0x33b")][P("0x6d")]({
              positions: e.Cartesian3[P("0x19e")](x),
              material: e[P("0x212")][P("0x213")](P("0x16a"), {
                color: new e.Color(1, 0, 0, 1)
              })
            }), this[P("0x33b")][P("0x6d")]({
              positions: e[P("0x11")][P("0x19e")](l),
              material: e[P("0x212")].fromType(P("0x16a"), {
                color: new e[P("0x16a")](0, 1, 0, 0.5)
              })
            });
          }
        }

        var c = turf.featureCollection(r),
            u = (P("0x35d"), turf[P("0x35e")](c)),
            h = [];

        for (n = 0; n < u[P("0x180")][P("0x2ed")][0][P("0x0")]; n++) {
          h[P("0x17c")](u[P("0x180")].coordinates[0][n][0], u.geometry[P("0x2ed")][0][n][1]);
        }

        this._designPolygonEntity = this._viewer[P("0x194")].add({
          name: P("0x35c"),
          tag: P("0x330") + this[P("0x1a9")],
          polygon: {
            hierarchy: {
              positions: e[P("0x11")][P("0x1da")](h)
            },
            material: e[P("0x16a")][P("0x338")].withAlpha(0.3),
            perPositionHeight: !1,
            height: this[P("0x326")]
          }
        });
      }, t.prototype.clear = function () {
        this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")].destroy(), this[P("0x13c")][P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), function (e, t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            t.get(i).name && -1 < t.get(i).name.indexOf(e) && (t[P("0x17f")](t[P("0x187")](i)), i--);
          }
        }(P("0x325"), this[P("0x306")]), function (e, t) {
          for (var i = t[P("0x190")], r = 0; r < i.length; r++) {
            i[r][P("0x176")] && -1 < i[r][P("0x176")][P("0x2d3")](e) && (t[P("0x17f")](i[r]), r--);
          }
        }(P("0x325"), this._viewer[P("0x194")]), function () {
          for (var e = 0; e < this[P("0x32b")][P("0x0")]; e++) {
            this._primitives[P("0x17f")](this[P("0x32b")][e][P("0x182")]);
          }
        }.call(this);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x102")],
          i = e.GeoClipping = function (i) {
        i = t(i, e[P("0x102")][P("0x128")]), this[P("0x35f")] = t(i[P("0x35f")], 64), this[P("0x360")] = t(i.edgeWidth, 2), this[P("0x361")] = t(i[P("0x361")], e[P("0x16a")][P("0x2cf")]), this[P("0x362")] = t(i[P("0x362")], 50), this[P("0x363")] = t(i.clippingModeUnion, !0), this[P("0x364")] = t(i.enabled, !0), this[P("0x365")] = void 0, this[P("0x366")] = void 0;
      };

      i[P("0x5")][P("0x367")] = function (t) {
        t = e[P("0x14")](t) ? t : this.steps;

        for (var i = e.Math[P("0xab")] / t, r = [], n = 0; n < t; n++) {
          var o = n * i,
              a = new e[P("0x11")]();
          a.x = 1, a.y = Math.tan(o), o > e.Math.PI_OVER_TWO && (a.x = -1, a.y *= -1), o > e.Math.PI && (a.x = -1), o > 3 * e[P("0x23")][P("0x5b")] && (a.x = 1, a.y = -a.y), e[P("0x11")][P("0x8d")](a, a);
          var s = new e[P("0x368")](a, this.cylinderRadius);
          r[P("0x17c")](s);
        }

        return this[P("0x365")] = r;
      }, i[P("0x5")][P("0x369")] = function (t, i) {
        for (var r = new e[P("0x36a")]({
          modelMatrix: e[P("0x14")](t) ? t : e[P("0x1b")][P("0xae")],
          edgeWidth: this[P("0x360")],
          edgeColor: this[P("0x361")],
          unionClippingRegions: this[P("0x363")],
          enabled: this[P("0x364")]
        }), n = this[P("0x367")](i), o = 0; o < n[P("0x0")]; o++) {
          r[P("0x6d")](n[o]);
        }

        return this[P("0x366")] = r;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x36b")] = function (e, t) {
        this.viewer = e.viewer, this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x48")] = this[P("0x10f")][P("0x48")], this[P("0x17d")] = this.scene[P("0x17d")], this[P("0x36c")] = null, this[P("0x36d")] = null, this[P("0x36e")] = null, this[P("0x180")] = null, this.appearance = null, this[P("0x191")] = t || null;
      };

      t[P("0x5")][P("0x36f")] = function (e, t, i) {
        return this[P("0x182")] && this[P("0x192")](), this[P("0x182")] = this[P("0x370")](e, t, i), this.primitive;
      }, t[P("0x5")][P("0x370")] = function (t, i, r) {
        var n, o, a, s, x, l;
        if (t && i && !(i && i.length < 3)) return this.fragmentShader = (n = e[P("0x373")], o = Number[P("0x374")](n), P("0x375") + (1.68 <= o ? P("0x376") : "") + ");\n\t\t\t\t\t\tgl_FragColor.a = 1.0;\n\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t    "), this[P("0x36e")] = t, this[P("0x180")] = (a = i, s = r, new e[P("0x1af")]({
          polygonHierarchy: new e[P("0x372")](e[P("0x11")][P("0x19e")](a)),
          extrudedHeight: s || 0,
          perPositionHeight: !1,
          closeTop: !0,
          closeBottom: !0,
          vertexFormat: e[P("0x1b0")].VERTEXT_FORMAT
        })), this.appearance || (this[P("0x16d")] = (x = this[P("0x36d")], l = this[P("0x36e")], new e[P("0x1b0")]({
          material: new e.Material({
            translucent: !1,
            fabric: {
              type: P("0x371"),
              uniforms: {
                normalMap: l,
                frequency: 90,
                animationSpeed: 0.03,
                amplitude: 90,
                specularIntensity: 5
              }
            }
          }),
          fragmentShaderSource: x
        }))), this[P("0x17d")][P("0x6d")](new e[P("0x226")]({
          allowPicking: !0,
          geometryInstances: new e.GeometryInstance({
            geometry: this[P("0x180")],
            id: "GEOFlood_ID"
          }),
          vertexCacheOptimize: !0,
          appearance: this[P("0x16d")],
          interleave: !0,
          asynchronous: !1,
          cull: !1,
          releaseGeometryInstances: !0,
          show: !0
        }));
      }, t[P("0x5")][P("0x192")] = function () {
        this[P("0x48")].style[P("0x170")] = P("0x18c"), this[P("0x182")] && this.primitives[P("0x17f")](this.primitive);
      }, t[P("0x5")].clearPrimitive = function (e) {
        e && this[P("0x17d")][P("0x17f")](e);
      }, t.prototype[P("0xf4")] = function () {
        this.clear(), this[P("0x13b")] = void 0, this[P("0x10f")] = void 0, this[P("0x48")] = void 0, this[P("0x17d")] = void 0, this[P("0x191")] = void 0;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x102")],
          i = e[P("0x377")] = function (i, r) {
        i = t(i, e.defaultValue[P("0x128")]), this[P("0x13b")] = i.viewer, this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x194")] = this[P("0x13b")].entities, this[P("0x378")] = void 0, this[P("0x379")] = void 0;
      };

      i.prototype.analysis = function (i) {
        i = t(i, e[P("0x102")][P("0x128")]), this[P("0x37a")] = t(i[P("0x37a")], 0);
        var r = i[P("0x37b")],
            n = i[P("0x37c")],
            o = i[P("0x37d")];
        r && this[P("0x37e")](r), n && this[P("0x37f")](n), o && this[P("0x380")](o);
      }, i[P("0x5")][P("0x37e")] = function (i) {
        return this[P("0x381")](), i = t(i, e[P("0x102")][P("0x128")]), this[P("0x378")] = this[P("0x194")][P("0x6d")]({
          position: t(i[P("0x382")], new e[P("0x10")](0, 0, 0)),
          label: {
            text: t(i[P("0x383")], ""),
            pixelOffset: t(i[P("0x384")], new e[P("0x10")](0, -60)),
            fillColor: t(i[P("0x385")], new e[P("0x16a")](0, 0, 1, 1)),
            font: t(i[P("0x386")], P("0x387")),
            outlineColor: t(i.labelOutlineColor, new e[P("0x16a")](0, 0, 1, 1)),
            outlineWidth: t(i[P("0x388")], 1.8),
            style: e[P("0x102")](i[P("0x389")], e.LabelStyle[P("0x2de")]),
            show: t(i.labelShow, !0),
            disableDepthTestDistance: Number.POSITIVE_INFINITY
          }
        }), !0;
      }, i[P("0x5")][P("0x37f")] = function (i) {
        return this.clearPolygonPlaneEntity(), i = t(i, e.defaultValue[P("0x128")]), this.polygonPlaneEntity = this.entities[P("0x6d")]({
          polygon: {
            hierarchy: t(i.polygonPlaneHierarchy, new e[P("0x11")](0, 0, 0)),
            perPositionHeight: t(i[P("0x38a")], !1),
            height: t(i[P("0x38b")], this[P("0x37a")]),
            material: t(i[P("0x38c")], e[P("0x16a")][P("0x2d5")][P("0x16c")](0.3)),
            outline: t(i[P("0x38d")], !0),
            outlineColor: t(i.polygonPlaneOutlineColor, e[P("0x16a")][P("0x2cf")]),
            show: t(i[P("0x38e")], !0)
          }
        }), !0;
      }, i[P("0x5")][P("0x380")] = function (i) {
        this[P("0x38f")]();
        var r = (i = t(i, e[P("0x102")].EMPTY_OBJECT))[P("0x390")];
        if (!r || 0 == r[P("0x0")]) return console[P("0x391")](P("0x392")), !1;
        var n,
            o,
            a,
            s,
            x = (n = r, o = t(i[P("0x393")], this[P("0x37a")]), a = t(i[P("0x394")], 1e4), s = t(i[P("0x395")], new e.Color(1, 0, 0, 0.5)), new e.GeometryInstance({
          geometry: new e[P("0x1af")]({
            polygonHierarchy: new e[P("0x372")](e.Cartesian3[P("0x1da")](n)),
            height: o,
            extrudedHeight: a
          }),
          attributes: {
            color: e[P("0x184")][P("0x1b2")](s)
          }
        })),
            l = new e[P("0x16e")]({
          flat: !0
        }),
            c = new e[P("0x35b")]({
          geometryInstances: [x],
          appearance: l,
          classificationType: e.ClassificationType.CESIUM_3D_TILE
        });
        return this.polygonFitPrimitive = this[P("0x10f")][P("0x17d")][P("0x6d")](c), !0;
      }, i[P("0x5")][P("0x381")] = function () {
        this[P("0x378")] && this[P("0x194")][P("0xd1")](this.labelEntity) && (this[P("0x194")][P("0x17f")](this[P("0x378")]), this[P("0x378")] = void 0);
      }, i[P("0x5")].clearPolygonPlaneEntity = function () {
        this[P("0x379")] && this[P("0x194")][P("0xd1")](this[P("0x379")]) && (this[P("0x194")].remove(this[P("0x379")]), this.polygonPlaneEntity = void 0);
      }, i.prototype[P("0x38f")] = function () {
        this[P("0x396")] && this[P("0x10f")][P("0x17d")][P("0xd1")](this[P("0x396")]) && (this[P("0x10f")][P("0x17d")][P("0x17f")](this[P("0x396")]), this[P("0x396")] = void 0);
      }, i[P("0x5")][P("0x397")] = function () {
        this[P("0x381")](), this[P("0x398")](), this[P("0x38f")]();
      };
    }(window.Cesium), function (e) {
      var t = "GeoPLSViewShed3D_TIP",
          i = P("0x399"),
          r = P("0x39a"),
          n = P("0x39b"),
          o = "GeoPLSViewShed3D_DSP",
          a = P("0x39c"),
          s = e[P("0x39d")] = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this.canvas = this.scene[P("0x48")], this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0x39e")] = this[P("0x10f")].groundPrimitives, this[P("0x191")] = i || null, this[P("0x39f")] = e[P("0x102")](t.pointLightHeight, 0.2), this[P("0x3a0")] = e[P("0x102")](t[P("0x3a1")], 5), this[P("0x3a2")] = e.defaultValue(t[P("0x3a3")], e[P("0x16a")][P("0x2d5")]), this[P("0x3a4")] = e.defaultValue(t[P("0x3a5")], 4), this[P("0x3a6")] = e[P("0x102")](t[P("0x3a7")], e[P("0x16a")][P("0x2d5")]), this[P("0x3a8")] = e[P("0x102")](t[P("0x3a9")], 8), this[P("0x3aa")] = e[P("0x102")](t[P("0x3ab")], new e[P("0x16a")](1, 1, 0, 0.5)), this._baseDEMLerpCfg = e.defaultValue(t[P("0x3ac")], {}), this[P("0x3ad")] = e[P("0x102")](t[P("0x3ae")], !0), this[P("0x3af")] = void 0, b()(e[P("0x373")]) < 1.5 && console.error(P("0x3b0") + e.VERSION + P("0x3b1"));
      };

      function x(t, i, r, n, o, a) {
        for (var s = [], x = [], l = p()(t[P("0x3ca")] / r), c = 0; c < l; c++) {
          var h = {
            longitude: i[0],
            latitude: i[1],
            height: i[2]
          },
              f = {
            longitude: i[3],
            latitude: i[4],
            height: i[5]
          },
              d = e[P("0x23")].lerp(h[P("0x112")], f[P("0x112")], 1 / l * (c + 1)),
              g = e[P("0x23")][P("0x308")](h[P("0x114")], f[P("0x114")], 1 / l * (c + 1)),
              m = {
            longitude: d,
            latitude: g
          },
              b = t.scene[P("0xa3")].getHeight(m),
              v = e[P("0x11")][P("0x3d0")](d, g, b);
          s[P("0x17c")](v);

          var C = {
            longitude: i[0],
            latitude: i[1],
            height: b
          },
              y = e.Cartographic[P("0x3d1")](C),
              _ = e[P("0x11")].distance(y, v),
              A = (b - i[2]) / _;

          x.push(A);
        }

        for (var I = [], w = [], G = [], E = [0], S = 0; S < x[P("0x0")] - 1; S++) {
          I[P("0x0")] || x[S + 1] < x[S] && (I.push(x[S]), w[P("0x17c")](S)), I.length && (x[S] > I[I[P("0x0")] - 1] && x[S + 1] < x[S] && (I[P("0x17c")](x[S]), w[P("0x17c")](S)), x[S] > I[I[P("0x0")] - 1] && x[S - 1] < I[I[P("0x0")] - 1] && (G[P("0x17c")](x[S]), E[P("0x17c")](S)));
        }

        w.push(x[P("0x0")] - 1);
        var T = w[P("0x1c6")](E);
        T[P("0x3d2")](function (e, t) {
          return e - t;
        });

        for (var M = [], N = 0; N < T[P("0x0")] - 1; N++) {
          var L = [s[T[N]], s[T[N + 1]]];
          M = N % 2 == 0 ? M.concat(u(L, a, n, !0)) : M[P("0x1c6")](u(L, a, o, !0));
        }

        return M;
      }

      function l(t, i, r) {
        var n = t.scene.pickPosition(i);

        if (n) {
          var o = e[P("0x13")][P("0x175")](n);

          if (o.height < 0) {
            t.scene[P("0xa3")].depthTestAgainstTerrain = !0, t[P("0x13b")][P("0x3d3")] = e[P("0x3d4")][P("0x3d5")];
            var a = t.scene[P("0x7e")][P("0x86")](i),
                s = t[P("0x10f")][P("0xa3")][P("0xa4")](a, t[P("0x10f")]);
            o = e[P("0x13")].fromCartesian(s);
          }

          r = r || 0;
          var x = e[P("0x11")][P("0x3d0")](o.longitude, o[P("0x114")], o.height + r),
              l = e.Cartographic[P("0x175")](x);
          return [e[P("0x23")].toDegrees(l.longitude), e[P("0x23")][P("0x113")](l.latitude), l[P("0x8b")]];
        }
      }

      function c(t, i, r, n) {
        var o = t.add(new e[P("0x1a5")]());
        return o.add({
          text: i,
          font: P("0x1a0"),
          showBackground: !0,
          position: r,
          pixelOffset: new e[P("0x10")](10, -30),
          style: e[P("0x323")][P("0x2de")]
        }), o.name = n, o;
      }

      function u(t, i, r, n) {
        var o = [],
            a = n ? t : e[P("0x11")][P("0x1da")](t),
            s = new e.GeometryInstance({
          geometry: new e[P("0x3d6")]({
            positions: a,
            width: i
          }),
          attributes: {
            color: e.ColorGeometryInstanceAttribute[P("0x1b2")](r)
          }
        });
        return o.push(s), o;
      }

      function h(t, i, r) {
        var n = t.add(new e[P("0x3d7")]({
          geometryInstances: i,
          appearance: new e.PolylineColorAppearance({
            translucent: !0
          })
        }));
        return n[P("0x176")] = r, n;
      }

      function f(e, t, i) {
        for (var r = 0; r < e[P("0x0")]; r++) {
          e[P("0x176")] == i && (t[P("0x8c")] && (e[P("0x187")](r)[P("0x8c")] = t[P("0x8c")]), t[P("0x31b")] && (e[P("0x187")](r).text = t[P("0x31b")]), void 0 !== t[P("0x3d8")] && (e.get(r).showBackground = t.showBackground), t.backgroundColor && (e[P("0x187")](r).backgroundColor = t[P("0x3d9")]), void 0 !== t[P("0x3da")] && (e[P("0x187")](r)[P("0x3da")] = t[P("0x3da")]), void 0 !== t[P("0x3db")] && (e[P("0x187")](r)[P("0x3db")] = t[P("0x3db")]), t[P("0x3dc")] && (e[P("0x187")](r)[P("0x3dc")] = t[P("0x3dc")]), t[P("0x3dd")] && (e[P("0x187")](r)[P("0x3dd")] = t.fillColor), t[P("0x3de")] && (e[P("0x187")](r)[P("0x3de")] = t[P("0x3de")]), t.outlineColor && (e.get(r).outlineColor = t[P("0x3df")]));
        }
      }

      function d(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t.get(i).name == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      s[P("0x5")][P("0x198")] = function () {
        this.clear(), this.canvas[P("0x150")].cursor = P("0x171");
        var s = null,
            g = null,
            p = null,
            m = null,
            b = !0,
            v = null,
            C = null,
            y = this;
        this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x16f")].setInputAction(function (n) {
          if (b) {
            v = l(y, n[P("0x8c")], y._pointLightHeight), C = e.Cartesian3[P("0x1a1")](v[0], v[1], v[2]), d(t, y.primitives), b = !1, y[P("0x3b2")] = b, s = null, d(i, y[P("0x17d")]);
            var o = y[P("0x17d")][P("0x6d")](new e[P("0x1a4")]());
            o[P("0x176")] = i, o.add({
              position: C,
              color: y[P("0x3a2")],
              pixelSize: y._pointLightPixelSize
            });
          } else if (y[P("0x10f")].globe[P("0x32a")] = !1, y[P("0x10f")][P("0x3b3")][P("0x3b4")] = !0, y[P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), y[P("0x16f")] && !y.handler[P("0xf3")]() && y[P("0x16f")][P("0xf4")](), d(t, y[P("0x17d")]), b = !0, y.firstLeftClick = b, s = null, y[P("0x3b5")][P("0x3b6")]) if (y[P("0x3ad")]) y[P("0x3b7")] = e[P("0x102")](y[P("0x3b5")][P("0x3b7")], 1), y[P("0x3b8")] = e.defaultValue(y[P("0x3b5")][P("0x3b8")], 100), y[P("0x3b9")] = 0, setTimeout(function () {
            !function t(i) {
              if (i[P("0x3b9")] % (2 * i[P("0x3b7")]) == 0) {
                var n = {
                  longitude: i[P("0x3ba")][i[P("0x3b9")]],
                  latitude: i[P("0x3ba")][i.num + 1]
                },
                    o = i[P("0x10f")][P("0xa3")].getHeight(n),
                    a = [i[P("0x3bb")], i[P("0x3bc")], i[P("0x3bd")], n.longitude, n[P("0x114")], o],
                    s = e[P("0x102")](i[P("0x3b5")][P("0x3be")], 10),
                    l = e[P("0x102")](i[P("0x3b5")][P("0x3bf")], new e[P("0x16a")](0, 1, 0, 0.8)),
                    c = e.defaultValue(i[P("0x3b5")][P("0x3c0")], new e[P("0x16a")](1, 0, 0, 0.8)),
                    u = e.defaultValue(i[P("0x3b5")][P("0x197")], 5),
                    f = x(i, a, s, l, c, u);
                h(i[P("0x10f")][P("0x39e")], f, r);
              }

              i.num += 2 * i[P("0x3b7")], i[P("0x3b9")] < 720 && setTimeout(function () {
                t(i);
              }, i.timeInterval);
            }(y);
          }, y.timeInterval);else {
            for (var a = [], c = 0; c < y.boundaryPositionArr[P("0x0")]; c++) {
              if (c % 2 == 0) {
                var u = {
                  longitude: y.boundaryPositionArr[c],
                  latitude: y[P("0x3ba")][c + 1]
                },
                    f = y[P("0x10f")].globe[P("0xed")](u),
                    g = [y[P("0x3bb")], y[P("0x3bc")], y[P("0x3bd")], u[P("0x112")], u[P("0x114")], f],
                    p = e[P("0x102")](y[P("0x3b5")][P("0x3be")], 10),
                    m = e[P("0x102")](y[P("0x3b5")][P("0x3bf")], new e[P("0x16a")](0, 1, 0, 0.8)),
                    _ = e.defaultValue(y[P("0x3b5")][P("0x3c0")], new e[P("0x16a")](1, 0, 0, 0.8)),
                    A = e[P("0x102")](y[P("0x3b5")][P("0x197")], 5);

                x(y, g, p, m, _, A), a = a[P("0x1c6")](radiusLineInstance);
              }
            }

            h(y[P("0x10f")][P("0x39e")], a, r);
          }
        }, e[P("0x161")].LEFT_CLICK), this[P("0x16f")][P("0x160")](function (i) {
          var x, v, _, A, I, w, G, E, S, T;

          if (y.tipPosition = y.scene.pickPosition(i[P("0x64")]), y.tipPosition && (b && (s ? f(s, {
            position: y[P("0x3c2")]
          }, t) : s = c(y[P("0x17d")], P("0x3c1"), y[P("0x3c2")], t)), !b)) {
            s ? f(s, {
              position: y[P("0x3c2")]
            }, t) : s = c(y[P("0x17d")], P("0x3c3"), y[P("0x3c2")], t);
            var M = l(y, i[P("0x64")]),
                N = e[P("0x11")][P("0x1a1")](M[0], M[1], M[2]);

            if (m = e[P("0x11")][P("0x8e")](C, N), d(r, y[P("0x39e")]), d(a, y[P("0x39e")]), m) {
              var L = e.Math[P("0x113")](e[P("0x13")][P("0x175")](C)[P("0x112")]),
                  R = e.Math.toDegrees(e[P("0x13")][P("0x175")](C)[P("0x114")]),
                  O = e[P("0x13")][P("0x175")](C).height,
                  F = function (e, t, i) {
                for (var r = [], n = 0; n <= 360; n++) {
                  var o = i * Math[P("0x98")](n * Math.PI / 180),
                      a = i * Math.cos(n * Math.PI / 180),
                      s = 6356725 + 21412 * (90 - t) / 90,
                      x = e + o / (s * Math[P("0x9a")](t * Math.PI / 180)) * 180 / Math.PI,
                      l = t + a / s * 180 / Math.PI;
                  r.push(x), r[P("0x17c")](l);
                }

                return r;
              }(L, R, m),
                  D = u(F, y[P("0x3a4")], y[P("0x3a6")]),
                  U = (h(y[P("0x39e")], D, r), [L, R, F[0], F[1]]),
                  k = (I = y.groundPrimitives, w = U, G = y._orientLineWidth, E = y[P("0x3aa")], S = a, T = new e[P("0x179")]({
                geometry: new e[P("0x3d6")]({
                  positions: e[P("0x11")][P("0x1da")](w),
                  width: G
                })
              }), I[P("0x6d")](new e[P("0x3d7")]({
                geometryInstances: T,
                appearance: new e[P("0x215")]({
                  material: new e.Material({
                    fabric: {
                      type: P("0x31e"),
                      uniforms: {
                        color: E
                      }
                    }
                  })
                })
              })).name = S, [L, R, O, L, R, O + m / 3]),
                  B = e[P("0x16a")][P("0x3c4")](e[P("0x16a")][P("0x2d5")], 0.7);

              p ? p[P("0x2eb")][P("0x19f")] = e[P("0x11")][P("0x19e")](k) : (x = y[P("0x13b")][P("0x194")], v = k, 2, _ = B, A = n, p = x[P("0x6d")]({
                name: A,
                polyline: {
                  positions: e[P("0x11")][P("0x19e")](v),
                  width: 2,
                  material: new e[P("0x2e9")]({
                    color: _,
                    dashLength: 5
                  })
                }
              }));
              var W = e[P("0x11")][P("0x1a1")](L, R, O + m / 3),
                  j = P("0x3c5") + y._pointLightHeight[P("0x2af")](2) + "米\n" + P("0x3c6") + m[P("0x2af")](4) + "米\n" + P("0x2f9") + L[P("0x2af")](6) + "度\n" + P("0x2fa") + R[P("0x2af")](6) + "度",
                  V = {
                position: W,
                text: j,
                showBackground: !0,
                backgroundColor: e[P("0x16a")][P("0x3c4")](e[P("0x16a")][P("0x2cf")], 0.8),
                horizontalOrigin: e[P("0x24b")][P("0x24c")],
                verticalOrigin: e.VerticalOrigin[P("0x3c7")],
                pixelOffset: new e.Cartesian2(0, 0),
                fillColor: e[P("0x16a")].BLACK
              };

              if (f(g || (g = c(y[P("0x17d")], j, W, o)), V, o), y[P("0x3b5")].enable || y[P("0x3c8")](C, m), y[P("0x3c9")] = C, y[P("0x3ca")] = m, y[P("0x3b2")] = b, y[P("0x3b5")][P("0x3b6")]) {
                y.startPointLng = e[P("0x23")][P("0x119")](L), y[P("0x3bc")] = e[P("0x23")][P("0x119")](R), y[P("0x3bd")] = O, y[P("0x3ba")] = [];

                for (var z = 0; z < F[P("0x0")]; z++) {
                  y[P("0x3ba")].push(e[P("0x23")].toRadians(F[z]));
                }

                y.realTimeRadius = m;
              }
            }
          }
        }, e[P("0x161")][P("0x163")]);
      }, s.prototype[P("0x3c8")] = function (t, i) {
        var r, n;
        t && i && (null == this._pointLightCamera ? (this[P("0x3af")] = new e[P("0x3cb")](this[P("0x10f")]), this[P("0x3af")][P("0x8c")] = t, r = {
          context: this[P("0x10f")][P("0x3cc")],
          lightCamera: this._pointLightCamera,
          isPointLight: !0
        }, this[P("0x10f")][P("0x3b3")].destroy(), this[P("0x10f")][P("0x3b3")] = new e.ShadowMap(r), (n = this.scene[P("0x3b3")])[P("0x3cd")] = 1024, n[P("0x3ce")] = i, n._terrainBias[P("0x3cf")] = 0, n[P("0x364")] = !0, n[P("0x3b4")] = !0) : (n = this[P("0x10f")][P("0x3b3")])[P("0x3ce")] = i);
      }, s[P("0x5")][P("0x192")] = function () {
        this[P("0x3b5")][P("0x3b6")] && (this.num = 721), this[P("0x10f")][P("0xa3")][P("0x32a")] = !1, this.scene[P("0x3b3")][P("0x364")] = !1, this[P("0x10f")][P("0x3b3")].enableGeoPLSViewShed3D = void 0, this[P("0x48")].style.cursor = P("0x18c"), this[P("0x3af")] = void 0, this[P("0x16f")] && !this[P("0x16f")][P("0xf3")]() && this[P("0x16f")][P("0xf4")](), d(t, this[P("0x17d")]), d(o, this[P("0x17d")]), d(i, this[P("0x17d")]), d(r, this[P("0x39e")]), d(a, this[P("0x39e")]), function (e, t) {
          for (var i = 0; i < t.values[P("0x0")]; i++) {
            t[P("0x190")][i][P("0x176")] == e && (t[P("0x17f")](t[P("0x190")][i]), i--);
          }
        }(n, this[P("0x13b")].entities);
      }, s[P("0x5")][P("0xf4")] = function () {
        this[P("0x192")](), this.viewer = void 0, this._pointLightHeight = void 0, this.scene = void 0, this[P("0x48")] = void 0, this[P("0x17d")] = void 0, this[P("0x191")] = void 0, this[P("0x3af")] = void 0;
      };
    }(window.Cesium), function (e) {
      var t = P("0x3e0"),
          i = e.GeoProfile = function (e, t) {
        this[P("0x13b")] = e[P("0x13b")], this[P("0x10f")] = this.viewer[P("0x10f")];
      };

      i[P("0x5")][P("0x3e1")] = function (t, i) {
        this[P("0x3e2")] = t[0], this[P("0x3e3")] = t[1], this[P("0x3e4")] = t[2], this[P("0x3e5")] = t[t[P("0x0")] - 3], this[P("0x3e6")] = t[t.length - 2], this[P("0x3e7")] = t[t[P("0x0")] - 1];

        for (var r = [], n = 0; n < t[P("0x0")] - 3; n += 3) {
          var o = e[P("0x11")].fromDegrees(t[n], t[n + 1]),
              a = e.Cartesian3.fromDegrees(t[n + 3], t[n + 4]),
              s = e[P("0x11")][P("0x8e")](o, a);
          r[P("0x17c")](s), e[P("0x11")][P("0x8e")](o, a);
        }

        for (var x = 0, l = [], c = 0; c < r.length; c++) {
          var u = Math[P("0x3e8")](r[c] / i);
          l[P("0x17c")](u), x += u;
        }

        this[P("0x3e9")] = x;
        var h = [],
            f = [];

        for (n = 0; n < l[P("0x0")]; n++) {
          for (var d = 0; d <= l[n]; d++) {
            var g = d * i;
            if (r[n] - g <= i) h[P("0x17c")](1);else {
              var p = g / r[n];
              h[P("0x17c")](p);
            }
          }

          f[P("0x17c")](h), h = [];
        }

        for (var m = [], b = [], v = [], C = [], y = (n = 0, 0); y < f[P("0x0")]; y++) {
          for (d = 0; d < f[y].length; d++) {
            var _ = e[P("0x23")].lerp(t[n], t[n + 3], f[y][d]),
                A = e[P("0x23")].lerp(t[n + 1], t[n + 4], f[y][d]),
                I = {
              longitude: e[P("0x23")][P("0x119")](_),
              latitude: e[P("0x23")][P("0x119")](A)
            },
                w = Number(this.scene[P("0xa3")][P("0xed")](I)[P("0x2af")](2));

            v.push(w), m[P("0x17c")](e[P("0x11")].fromDegrees(_, A, w)), b[P("0x17c")](e[P("0x11")].fromDegrees(_, A, 0));
          }

          n += 3;
        }

        var G = Math[P("0x7d")].apply(null, v);
        this[P("0x3ea")] = G;
        var E = Math.max[P("0x346")](null, v);
        this[P("0x3eb")] = E;
        var S = 0;

        for (n = 0; n < m.length - 1; n++) {
          S += e[P("0x11")].distance(m[n], m[n + 1]);
        }

        this[P("0x3ec")] = S;
        var T = e[P("0x11")].distance(m[0], m[m[P("0x0")] - 1]);
        this.straightLen = T;
        var M = 0;

        for (y = 0; y < b[P("0x0")] - 1; y++) {
          M += e[P("0x11")][P("0x8e")](b[y], b[y + 1]), C.push(M[P("0x2af")](2));
        }

        C.unshift(0);
        var N = {};
        return N[P("0x3ed")] = v, N[P("0x3ee")] = C, N[P("0x3ef")] = m, N;
      }, i[P("0x5")][P("0x3f0")] = function (e, t) {
        var i = document[P("0x3f1")](t);

        i[P("0x3f2")] = function (e) {
          var t = e || event,
              r = t[P("0x3f3")] - i[P("0x156")],
              n = t.clientY - i[P("0x15a")];
          document[P("0x3f4")] = function (e) {
            var t = e || event;
            i.style[P("0x149")] = t[P("0x3f3")] - r + "px", i[P("0x150")][P("0x151")] = t[P("0x3f5")] - n + "px";
          }, document[P("0x3f6")] = function () {
            document[P("0x3f4")] = null, document[P("0x3f6")] = null;
          };
        };

        var r = echarts[P("0x3f7")](i),
            n = {
          title: {
            x: P("0x11a"),
            padding: 15,
            text: P("0x3f8"),
            textStyle: {
              color: P("0x3f9"),
              fontStyle: "normal",
              fontWeight: P("0x3fa"),
              fontFamily: "sans-serif",
              fontSize: 18
            }
          },
          tooltip: {
            trigger: P("0x3fb"),
            confine: !0,
            formatter: function formatter(e) {
              return "长度: " + e[0][P("0x176")] + P("0x3fc") + "高程: " + e[0].value;
            }
          },
          grid: {
            left: "2%",
            right: P("0x3fd"),
            bottom: "3%",
            containLabel: !0
          },
          xAxis: {
            splitArea: {
              show: !1
            },
            splitLine: {
              show: !1,
              lineStyle: {
                color: [P("0x3fe")],
                width: 1,
                type: P("0x3ff")
              }
            },
            type: P("0x400"),
            boundaryGap: !1,
            data: e[P("0x3ee")],
            name: P("0x401"),
            nameTextStyle: {
              color: "#ccc",
              fontWeight: "bolder"
            },
            axisLine: {
              lineStyle: {
                color: P("0x402"),
                width: 4
              }
            },
            axisLabel: {
              color: P("0x3f9"),
              fontWeight: P("0x403")
            }
          },
          yAxis: {
            splitArea: {
              show: !1
            },
            splitLine: {
              show: !0,
              lineStyle: {
                color: [P("0x3fe")],
                width: 1,
                type: P("0x404")
              }
            },
            type: P("0x3"),
            name: P("0x405"),
            nameTextStyle: {
              color: P("0x3f9"),
              fontWeight: "bolder"
            },
            axisLine: {
              lineStyle: {
                color: P("0x402"),
                width: 4
              }
            },
            axisLabel: {
              color: P("0x3f9"),
              fontWeight: P("0x403")
            }
          },
          series: [{
            type: "line",
            data: e[P("0x3ed")],
            areaStyle: {
              color: P("0x406")
            }
          }]
        };
        r[P("0x407")](n);
        var o = document[P("0x15c")](P("0x408")),
            a = document[P("0x15c")](P("0x409")),
            s = document.createElement("tr"),
            x = document.createElement("td");
        x[P("0x40a")] = P("0x40b") + this[P("0x3e2")][P("0x2af")](6), s[P("0x167")](x);
        var l = document[P("0x15c")]("td");
        l[P("0x40a")] = "起点高程：" + e.YValueArray[0][P("0x2af")](2), s[P("0x167")](l);
        var c = document[P("0x15c")]("td");
        c[P("0x40a")] = P("0x40c") + Number(e[P("0x3ee")][e[P("0x3ee")].length - 1]).toFixed(2), s.appendChild(c), a[P("0x167")](s);
        var u = document[P("0x15c")]("tr"),
            h = document.createElement("td");
        h.innerHTML = P("0x40d") + this.lat_origin[P("0x2af")](6), u[P("0x167")](h);
        var f = document[P("0x15c")]("td");
        f[P("0x40a")] = P("0x40e") + e[P("0x3ed")][e[P("0x3ed")].length - 1].toFixed(2), u[P("0x167")](f);
        var d = document.createElement("td");
        d[P("0x40a")] = P("0x40f") + this.surfaceLen[P("0x2af")](2), u.appendChild(d), a[P("0x167")](u);
        var g = document.createElement("tr"),
            p = document[P("0x15c")]("td");
        p[P("0x40a")] = P("0x410") + this.lng_destination[P("0x2af")](6), g[P("0x167")](p);
        var m = document.createElement("td");
        m[P("0x40a")] = P("0x411") + this[P("0x3eb")], g[P("0x167")](m);
        var b = document.createElement("td");
        b.innerHTML = "直线距离：" + this[P("0x412")][P("0x2af")](2), g[P("0x167")](b), a.appendChild(g);
        var v = document.createElement("tr"),
            C = document[P("0x15c")]("td");
        C[P("0x40a")] = "终点纬度：" + this[P("0x3e6")][P("0x2af")](6), v.appendChild(C);
        var y = document[P("0x15c")]("td");
        y[P("0x40a")] = P("0x413") + this[P("0x3ea")], v[P("0x167")](y);

        var _ = document[P("0x15c")]("td");

        return _[P("0x40a")] = "采样点数：" + this[P("0x3e9")], v[P("0x167")](_), a[P("0x167")](v), o.appendChild(a), i[P("0x167")](o), this[P("0x414")] = o, this.chartContainer = i, this.myChart = r;
      }, i[P("0x5")].drawMark = function (i) {
        i = e.defaultValue(i, {});
        var r = this[P("0x10f")][P("0x17d")][P("0x6d")](new e[P("0x244")]());
        r.add({
          position: i[P("0x415")],
          image: i[P("0x416")],
          verticalOrigin: e[P("0x24d")][P("0x3c7")],
          scale: 0.2
        }), r[P("0x6d")]({
          position: i[P("0x417")],
          image: i.destinationImage,
          verticalOrigin: e.VerticalOrigin[P("0x3c7")],
          scale: 0.2
        }), r.name = t;
      }, i[P("0x5")].clearMark = function () {
        for (var e = 0; e < this.scene[P("0x17d")][P("0x0")]; e++) {
          this[P("0x10f")][P("0x17d")][P("0x187")](e)[P("0x176")] == t && (this[P("0x10f")][P("0x17d")][P("0x17f")](this[P("0x10f")][P("0x17d")][P("0x187")](e)), e--);
        }
      }, i[P("0x5")][P("0x418")] = function () {
        this[P("0x419")] && (this.myChart[P("0x192")](), this[P("0x419")] = null), this.oTable && this.chartContainer && this[P("0x41a")][P("0x41b")](this[P("0x414")]);
      }, i.prototype.clear = function () {
        this[P("0x418")](), this.clearMark();
      };
    }(window.Cesium), function (e) {
      var t = P("0x41c"),
          i = "GEOSIGHTLINEBILLBOARD",
          r = P("0x41d"),
          n = P("0x41e"),
          o = e[P("0x41f")] = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x420")] = t[P("0x420")], this[P("0x421")] = t[P("0x421")], this.observeImage = t[P("0x422")], this[P("0x423")] = t.targetImage, this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")].camera, this[P("0x48")] = this[P("0x10f")].canvas, this[P("0x17d")] = this.scene[P("0x17d")], this[P("0x194")] = this[P("0x13b")][P("0x194")], this[P("0x191")] = i || null, this[P("0x424")] = [], this[P("0x425")] = null, this[P("0x426")] = null, this[P("0x427")] = null, this[P("0x428")] = null, b()(e[P("0x373")]) < 1.5 && console[P("0x391")]("当前Cesium版本：" + e[P("0x373")] + P("0x429"));
      };

      function a(t, i, r) {
        if (t[P("0x10f")]) {
          var n = t[P("0x10f")].pickPosition(i);

          if (1.58 <= b()(e[P("0x373")])) {
            var o = t[P("0x13b")].scene[P("0x42f")](n);
            o && (n = o);
          }

          var a,
              s = e[P("0x13")][P("0x175")](n);

          if (s[P("0x8b")] < 0) {
            var x = t[P("0x7e")][P("0x86")](i),
                l = t.scene[P("0xa3")][P("0xa4")](x, t.scene);
            s = e[P("0x13")][P("0x175")](l), t[P("0x10f")][P("0xa3")][P("0x32a")] = !0;
          }

          return r = r || 1, a = s[P("0x8b")] + r, e.Cartesian3.fromRadians(s[P("0x112")], s[P("0x114")], a);
        }
      }

      function s(t, i, r, n) {
        var o = t[P("0x6d")](new e[P("0x1a5")]());
        return o[P("0x6d")]({
          text: i,
          font: P("0x1a0"),
          showBackground: !0,
          position: r,
          pixelOffset: new e[P("0x10")](10, -10)
        }), o.name = n, o;
      }

      function x(e, t, i) {
        for (var r = 0; r < e[P("0x0")]; r++) {
          e.name == i && (e.get(r)[P("0x8c")] = t);
        }
      }

      function l(e, t) {
        u(e, t);
      }

      function c(t, r, n) {
        var o = t.add(new e[P("0x244")]());
        return o[P("0x6d")]({
          position: r,
          image: n,
          scale: 0.4,
          verticalOrigin: e.VerticalOrigin.MIDDLE
        }), o[P("0x176")] = i, o;
      }

      function u(e, t) {
        for (var i = 0; i < t.length; i++) {
          t[P("0x187")](i).name == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      function h(e, t) {
        for (var i = 0; i < t._entities._array[P("0x0")]; i++) {
          t[P("0x430")][P("0x431")][i][P("0x176")] == e && (t[P("0x17f")](t[P("0x430")][P("0x431")][i]), i--);
        }
      }

      o[P("0x5")][P("0x198")] = function () {
        this[P("0x10f")][P("0xa3")][P("0x32a")] = !1, this[P("0x42a")](), this[P("0x192")](), 1.52 == b()(e[P("0x373")]) && (this.scene.enableGeoSightline = !0), 1.58 <= b()(e[P("0x373")]) && (this[P("0x10f")][P("0x42b")] = !1), this.canvas[P("0x150")][P("0x170")] = "crosshair";
        var i = null,
            r = !0,
            n = this;
        this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x16f")][P("0x160")](function (e) {
          r ? (n[P("0x192")](), n.observeActualPosition = a(n, e[P("0x8c")], n[P("0x420")]), c(n[P("0x17d")], n.observeActualPosition, n.observeImage), l(t, n[P("0x17d")]), i = null, r = !1) : (n[P("0x426")] = a(n, e.position, n[P("0x421")]), c(n[P("0x17d")], n[P("0x426")], n[P("0x423")]), n[P("0x42c")](), l(t, n.primitives), r = !(i = null), n[P("0x10f")][P("0x42b")] = !1, n[P("0x42a")]());
        }, e[P("0x161")][P("0x17e")]), this[P("0x16f")][P("0x160")](function (e) {
          n[P("0x3c2")] = n[P("0x10f")][P("0x174")](e[P("0x64")]), n[P("0x3c2")] && (r && (i ? x(i, n[P("0x3c2")], t) : i = s(n.primitives, P("0x42d"), n.tipPosition, t)), r || (i ? x(i, n.tipPosition, t) : i = s(n[P("0x17d")], "单击左键确定目标点", n[P("0x3c2")], t)));
        }, e[P("0x161")].MOUSE_MOVE);
      }, o.prototype.pickFromRays = function () {
        var t = new e[P("0x11")](0, 0, 0);
        this[P("0x424")] = [this.observeEntity, this[P("0x428")]];
        var i = e.Cartesian3[P("0x8d")](e[P("0x11")].subtract(this.targetActualPosition, this.observeActualPosition, new e[P("0x11")]()), new e[P("0x11")]()),
            o = new e[P("0x1e")](this.observeActualPosition, i),
            a = [],
            s = [],
            x = [];
        a = this[P("0x10f")][P("0x42e")](o, 1e3, this[P("0x424")]);
        var l = e.Cartesian3[P("0x8e")](this[P("0x425")], this[P("0x426")]);
        if (0 !== a.length && !a[0][P("0x8c")]) for (var c = 1; c < Math[P("0x3e8")](l) + 1; c++) {
          if (e[P("0x11")][P("0x308")](this[P("0x425")], this[P("0x426")], c * (1 / Math.floor(l)), t), i = e[P("0x11")][P("0x8d")](e[P("0x11")].subtract(this[P("0x426")], this.observeActualPosition, new e.Cartesian3()), new e[P("0x11")]()), o = new e[P("0x1e")](t, i), a = [], s = [], x = [], 0 < (a = this.scene[P("0x42e")](o, 1, this[P("0x424")])).length) {
            a[0][P("0x8c")] || (e.Cartesian3.lerp(this[P("0x425")], this.targetActualPosition, c * (1 / Math.floor(l)), t), a[0][P("0x8c")] = t);
            break;
          }
        }
        if (0 == a.length) s = [this[P("0x425")], this[P("0x426")]];else {
          var u = e.Cartesian3[P("0x8d")](e[P("0x11")][P("0x95")](a[0][P("0x8c")], this[P("0x425")], new e[P("0x11")]()), new e[P("0x11")]()),
              h = e.Cartesian3.normalize(e[P("0x11")].subtract(a[0].position, this.targetActualPosition, new e[P("0x11")]()), new e[P("0x11")]());
          if (u.x[P("0x2af")](8) == h.x[P("0x2af")](8) && u.y.toFixed(8) == h.y[P("0x2af")](8) && u.z[P("0x2af")](8) == h.z[P("0x2af")](8)) s = [this[P("0x426")], this[P("0x425")]];else {
            s = [this[P("0x425")], a[0][P("0x8c")]], x = [a[0][P("0x8c")], this[P("0x426")]];
            var f = {
              name: r,
              polyline: {
                positions: x,
                width: 7,
                followSurface: !1,
                material: new e[P("0x2e6")](e.Color[P("0x16b")])
              }
            };
            this.entities.add(f);
          }
        }
        var d = {
          name: n,
          polyline: {
            positions: s,
            width: 2,
            followSurface: !1,
            material: e[P("0x16a")][P("0x310")]
          }
        };
        this.entities.add(d);
      }, o.prototype.clear = function () {
        this[P("0x17d")] && (u(t, this.primitives), u(i, this.primitives)), this[P("0x194")] && (h(r, this[P("0x194")]), h(n, this[P("0x194")]));
      }, o[P("0x5")][P("0x42a")] = function () {
        this[P("0x16f")] = this.handler && this[P("0x16f")][P("0xf4")](), this[P("0x48")].style[P("0x170")] = P("0x18c");
      }, o[P("0x5")][P("0xf4")] = function () {
        this[P("0x10f")][P("0x42b")] = !1, this[P("0x10f")][P("0xa3")].depthTestAgainstTerrain = !1, this[P("0x42a")](), this[P("0x192")](), this.viewer = void 0, this[P("0x420")] = void 0, this[P("0x421")] = void 0, this[P("0x10f")] = void 0, this.camera = void 0, this.canvas = void 0, this.primitives = void 0, this[P("0x194")] = void 0, this[P("0xef")] = void 0, this[P("0x191")] = void 0, this[P("0x424")] = void 0, this[P("0x427")] = null, this.targetEntity = null;
      };
    }(window.Cesium), function (e) {
      var t = e[P("0x102")],
          i = P("0x432"),
          r = e.GeoSkyLine = function (i, r) {
        this[P("0x13b")] = i[P("0x13b")], this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x48")] = this[P("0x13b")][P("0x48")], this[P("0x194")] = this[P("0x13b")][P("0x194")], this[P("0x433")] = t(i[P("0x434")], !0), this[P("0x435")] = t(i[P("0x435")], 2), this.skyLineMaterial = t(i[P("0x436")], e[P("0x16a")][P("0x16b")][P("0x6e")]()), this.skyLineDepthFailMaterial = t(i.skyLineDepthFailMaterial, void 0), this[P("0x437")] = t(i[P("0x437")], e[P("0x16a")][P("0x438")][P("0x6e")]()), this[P("0x439")] = t(i[P("0x439")], !1), this.skyLineVolumeOutLineColor = t(i[P("0x43a")], e[P("0x16a")][P("0x43b")].clone()), this[P("0x43c")] = t(i[P("0x43c")], 1.2), this[P("0x43d")] = void 0, this[P("0x43e")] = void 0, this[P("0x419")] = void 0;
      };

      r[P("0x5")][P("0x43f")] = function () {
        if (!this[P("0x43d")]) {
          var t = [],
              i = {};
          i[P("0x3ee")] = [], i[P("0x3ed")] = [];

          for (var r = this[P("0x48")].width, n = this[P("0x48")][P("0x8b")], o = 50, a = [], s = 0; s < r; s += p()(r / 3)) {
            for (var x = 0; x < n; x++) {
              var l = new e[P("0x10")](s, x);

              if (this.scene.pickPosition(l)) {
                a[P("0x17c")](x);
                break;
              }
            }
          }

          Math[P("0xee")].apply(null, a) < 10 && (o = 1);

          for (var c = 0; c < r; c += 3) {
            for (var u = 0; u < n; u += o) {
              var h = new e[P("0x10")](c, u);
              if (this[P("0x10f")][P("0x174")](h)) for (s = u - 1; u - o <= s; --s) {
                var f = new e[P("0x10")](c, s);

                if (!this.scene.pickPosition(f)) {
                  var d = new e[P("0x10")](c, s + 1),
                      g = this.scene.pickPosition(d);
                  t[P("0x17c")](g), i[P("0x3ed")].push(n - s), i[P("0x3ee")][P("0x17c")](c), u = n;
                  break;
                }
              }
            }
          }

          this[P("0x440")] = i, this[P("0x441")] = t, this.cameraPosition = this[P("0x13b")].camera[P("0x8c")].clone(), this.cameraHeight = e.Cartographic[P("0x175")](this.cameraPosition)[P("0x8b")];
        }
      }, r[P("0x5")][P("0x442")] = function () {
        this[P("0x43d")] || (this[P("0x441")] || this[P("0x43f")](), this[P("0x43d")] = this.entities[P("0x6d")]({
          name: "GeoSkyLine",
          polyline: {
            positions: this[P("0x441")],
            width: this[P("0x435")],
            show: this.skyLineShow,
            material: this.skyLineMaterial,
            depthFailMaterial: this[P("0x443")]
          }
        }));
      }, r[P("0x5")][P("0x444")] = function () {
        this[P("0x43e")] || (this[P("0x441")] || this.calculateSkyLinePositions(), this[P("0x441")] = this.skyLinePositions.concat([this[P("0x445")]]), this[P("0x441")][P("0x17c")](this[P("0x441")][0]), this.skyLineVolume = this.entities.add({
          name: i,
          polygon: {
            hierarchy: this[P("0x441")],
            extrudedHeight: this[P("0x446")] / this[P("0x43c")],
            perPositionHeight: !0,
            material: this[P("0x437")],
            outline: this.skyLineVolumeOutLine,
            outlineColor: this.skyLineVolumeOutLineColor
          }
        }));
      }, r[P("0x5")][P("0x3f0")] = function (e) {
        if (!this.myChart && (this.skyLinePositions || this[P("0x43f")](), this[P("0x440")])) {
          var t = document[P("0x3f1")](e);

          t.onmousedown = function (e) {
            var i = e || event,
                r = i[P("0x3f3")] - t[P("0x156")],
                n = i[P("0x3f5")] - t.offsetTop;
            document[P("0x3f4")] = function (e) {
              var i = e || event;
              t[P("0x150")][P("0x149")] = i.clientX - r + "px", t.style[P("0x151")] = i.clientY - n + "px";
            }, document[P("0x3f6")] = function () {
              document[P("0x3f4")] = null, document.onmouseup = null;
            };
          };

          var i = echarts[P("0x3f7")](t),
              r = {
            title: {
              x: P("0x11a"),
              padding: 15,
              text: P("0x447"),
              textStyle: {
                color: P("0x3f9"),
                fontStyle: "normal",
                fontWeight: P("0x3fa"),
                fontFamily: "sans-serif",
                fontSize: 18
              }
            },
            tooltip: {
              trigger: P("0x3fb"),
              confine: !0,
              formatter: function formatter(e) {
                return "宽度: " + e[0][P("0x176")] + P("0x3fc") + "高度: " + e[0].value;
              }
            },
            grid: {
              left: "2%",
              right: P("0x3fd"),
              bottom: "3%",
              containLabel: !0
            },
            xAxis: {
              splitArea: {
                show: !1
              },
              splitLine: {
                show: !1,
                lineStyle: {
                  color: [P("0x3fe")],
                  width: 1,
                  type: P("0x3ff")
                }
              },
              type: P("0x400"),
              boundaryGap: !1,
              data: this[P("0x440")][P("0x3ee")],
              name: P("0x448"),
              nameTextStyle: {
                color: "#ccc",
                fontWeight: P("0x403")
              },
              axisLine: {
                lineStyle: {
                  color: "rgba(0.0, 128, 255, 0.6)",
                  width: 4
                }
              },
              axisLabel: {
                color: P("0x3f9"),
                fontWeight: P("0x403")
              }
            },
            yAxis: {
              splitArea: {
                show: !1
              },
              splitLine: {
                show: !0,
                lineStyle: {
                  color: [P("0x3fe")],
                  width: 1,
                  type: P("0x404")
                }
              },
              type: P("0x3"),
              name: "高度(PX)",
              nameTextStyle: {
                color: P("0x3f9"),
                fontWeight: "bolder"
              },
              axisLine: {
                lineStyle: {
                  color: "rgba(0.0, 128, 255, 0.6)",
                  width: 4
                }
              },
              axisLabel: {
                color: P("0x3f9"),
                fontWeight: "bolder"
              }
            },
            series: [{
              type: P("0x449"),
              data: this[P("0x440")][P("0x3ed")],
              areaStyle: {
                color: P("0x406")
              }
            }]
          };
          return i[P("0x407")](r), this[P("0x41a")] = t, this.myChart = i;
        }
      }, r[P("0x5")][P("0x418")] = function () {
        this.myChart && (this[P("0x419")][P("0x192")](), this[P("0x419")] = null);
      }, r[P("0x5")][P("0x192")] = function () {
        this[P("0x418")](), this[P("0x43d")] && (this[P("0x194")][P("0x17f")](this[P("0x43d")]), this[P("0x43d")] = void 0), this[P("0x43e")] && (this[P("0x194")][P("0x17f")](this.skyLineVolume), this.skyLineVolume = void 0), this[P("0x440")] = void 0, this[P("0x441")] = void 0, this[P("0x445")] = void 0, this[P("0x446")] = void 0, this[P("0x441")] = void 0;
      };
    }(window[P("0xfd")]), ((B = window.Cesium)[P("0x451")] = function (e) {
      this[P("0x13b")] = e[P("0x13b")], this.scene = this[P("0x13b")][P("0x10f")], this[P("0x48")] = this[P("0x10f")][P("0x48")], this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this._samplingPoints = e[P("0x452")], this[P("0x453")] = e[P("0x44f")], this._bottomMaterial = e.bottomMaterial, this[P("0x454")] = B[P("0x102")](e.interNumber, 20), this[P("0x455")] = B[P("0x102")](e[P("0x456")], -500), this[P("0x453")] = B.defaultValue(e[P("0x44f")], new B[P("0x457")]({
        evenColor: B[P("0x16a")][P("0x2d5")][P("0x16c")](1)
      })), this._bottomMaterial = B.defaultValue(e[P("0x450")], new B[P("0x457")]({
        evenColor: B[P("0x16a")][P("0x338")].withAlpha(1)
      })), this[P("0x458")] = [], !this[P("0x459")] || this[P("0x459")].length <= 2 || (function (e, t) {
        !function (e) {
          var t, i, r, n, o, a, s;
          e[P("0x0")] < 3 || (i = (t = e)[0], r = t[1], n = t[2], o = B[P("0x11")][P("0x95")](r, i, new B[P("0x11")]()), a = B[P("0x11")].subtract(n, i, new B.Cartesian3()), s = B[P("0x11")][P("0x99")](o, a, new B.Cartesian3()), 0 <= B[P("0x11")][P("0x92")](i, s) || e[P("0x1e3")]());
        }(e);

        for (var i = e[P("0x0")], r = [], n = 0; n < i; ++n) {
          var o = (n + 1) % i,
              a = B[P("0x11")][P("0x6d")](e[n], e[o], new B[P("0x11")]());
          a = B[P("0x11")][P("0x6c")](a, 0.5, a);
          var s = B[P("0x11")].normalize(a, new B[P("0x11")]()),
              x = B[P("0x11")][P("0x95")](e[o], a, new B[P("0x11")]());
          x = B[P("0x11")][P("0x8d")](x, x);
          var l = B[P("0x11")].cross(x, s, new B[P("0x11")]());
          l = B[P("0x11")][P("0x8d")](l, l);
          var c = new B[P("0x1c")](l, 0),
              u = B[P("0x1c")][P("0x44a")](c, a);
          r.push(new B[P("0x368")](l, u));
        }

        t.scene[P("0xa3")][P("0x365")] = new B[P("0x36a")]({
          planes: r,
          edgeWidth: 2,
          edgeColor: B[P("0x16a")][P("0x2cf")]
        });
      }(this[P("0x459")], this[P("0x13b")]), function (e) {
        for (var t = e[P("0x44b")], i = e[P("0x44c")], r = e[P("0x44d")], n = e[P("0x44e")], o = e[P("0x44f")], a = e[P("0x450")], s = e.entitys, x = [], l = 0; l < r.length; l++) {
          var c = n[P("0x10f")].globe[P("0xef")][P("0xd6")](r[l]);
          if (c.height = 0, x[P("0x17c")](c), l == r.length - 1) for (var u = 1; u <= t; u++) {
            var h = B.Cartesian3[P("0x308")](r[l], r[0], u / t, new B.Cartesian3());
            (f = B[P("0x13")][P("0x175")](h))[P("0x8b")] = 0, x.push(f);
          } else for (u = 1; u <= t; u++) {
            var f;
            h = B[P("0x11")][P("0x308")](r[l], r[l + 1], u / t, new B[P("0x11")]()), (f = B[P("0x13")][P("0x175")](h))[P("0x8b")] = 0, x[P("0x17c")](f);
          }
        }

        for (l = 0; l < x[P("0x0")]; l++) {
          var d = n.scene[P("0xa3")].getHeight(x[l]);
          x[l][P("0x8b")] = d;
        }

        var g = [];

        for (l = 0; l < x.length; l++) {
          var p = (l + 1) % x.length,
              m = [];
          m[P("0x17c")](B[P("0x23")].toDegrees(x[l][P("0x112")])), m[P("0x17c")](B[P("0x23")][P("0x113")](x[l][P("0x114")])), m.push(x[l][P("0x8b")]), m.push(B[P("0x23")][P("0x113")](x[p][P("0x112")])), m.push(B[P("0x23")][P("0x113")](x[p].latitude)), m.push(x[p][P("0x8b")]), m[P("0x17c")](B.Math[P("0x113")](x[p][P("0x112")])), m.push(B[P("0x23")][P("0x113")](x[p][P("0x114")])), m[P("0x17c")](x[p][P("0x8b")] + i), m[P("0x17c")](B[P("0x23")].toDegrees(x[l][P("0x112")])), m[P("0x17c")](B[P("0x23")].toDegrees(x[l].latitude)), m[P("0x17c")](x[l][P("0x8b")] + i), g[P("0x17c")](B[P("0x23")][P("0x113")](x[l][P("0x112")])), g[P("0x17c")](B[P("0x23")][P("0x113")](x[l][P("0x114")])), g[P("0x17c")](x[l][P("0x8b")] + i);
          var b = n[P("0x194")][P("0x6d")]({
            polygon: {
              hierarchy: B[P("0x11")].fromDegreesArrayHeights(m),
              material: o,
              perPositionHeight: !0
            }
          });
          s[P("0x17c")](b);
        }

        var v = n[P("0x194")][P("0x6d")]({
          polygon: {
            hierarchy: B[P("0x11")].fromDegreesArrayHeights(g),
            material: a,
            perPositionHeight: !0
          }
        });
        s.push(v);
      }({
        arrPoints: this[P("0x459")],
        earth: this[P("0x13b")],
        holeDepth: this[P("0x455")],
        interNumber: this[P("0x454")],
        sideMaterial: this._sideMaterial,
        bottomMaterial: this._bottomMaterial,
        entitys: this[P("0x458")]
      }));
    }).prototype[P("0xf4")] = function () {
      for (var e = 0; e < this[P("0x458")].length; e++) {
        this[P("0x13b")].entities.remove(this[P("0x458")][e]);
      }

      this[P("0x458")][P("0x0")] = 0, this.viewer[P("0x10f")][P("0xa3")][P("0x365")].destroy();
    }, function (e) {
      e[P("0x102")];

      var t = e.GeoTerrainExcavate = function (t, i) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x10f")] = this[P("0x13b")].scene, this[P("0x48")] = this[P("0x10f")].canvas, this[P("0x194")] = this[P("0x13b")].entities, this[P("0x45a")] = i, this.depth = e.defaultValue(t[P("0x456")], -500), this[P("0x453")] = t[P("0x44f")], this[P("0x45b")] = t.bottomMaterial, this._outPoints = [], this._arrayVertex = [], this[P("0x304")] = void 0, this[P("0x45c")] = void 0, this[P("0x45d")] = 0, this[P("0x45e")] = void 0, this[P("0x13b")][P("0x10f")][P("0xa3")].depthTestAgainstTerrain = !0;
      };

      t[P("0x5")][P("0x198")] = function () {
        if (this.clear(), !this.handler) {
          this[P("0x16f")] = new e.ScreenSpaceEventHandler(this[P("0x48")]), this[P("0x13b")][P("0x48")][P("0x150")].cursor = P("0x171");
          var t = this;
          this.handler[P("0x160")](function (i) {
            var r = t[P("0x13b")][P("0x7e")].getPickRay(i.position),
                n = t.viewer[P("0x10f")].globe[P("0xa4")](r, t.viewer[P("0x10f")]);
            t[P("0x45f")][P("0x17c")](n);
            var o = e.Cartographic[P("0x175")](n);
            t[P("0x460")][P("0x17c")](e[P("0x23")].toDegrees(o[P("0x112")])), t[P("0x460")][P("0x17c")](e[P("0x23")][P("0x113")](o.latitude)), t[P("0x460")][P("0x17c")](o[P("0x8b")]), null == t._polylineCollection && (t[P("0x304")] = t[P("0x13b")][P("0x10f")][P("0x17d")][P("0x6d")](new e.PolylineCollection()), t._polylineCollection[P("0x176")] = "draw_polyline", t[P("0x45c")] = t[P("0x304")][P("0x6d")]({
              polyline: {}
            }), t[P("0x45c")][P("0x19a")] = 2, t[P("0x45c")][P("0x19b")] = !1, t[P("0x45c")][P("0x19c")].uniforms[P("0x169")] = {
              red: 1,
              green: 0,
              blue: 0,
              alpha: 1
            }), t[P("0x45c")][P("0x19f")] = t[P("0x45f")], t[P("0x45d")]++;
          }, e[P("0x161")][P("0x17e")]), this[P("0x16f")][P("0x160")](function (e) {
            if (null != t[P("0x304")]) {
              var i = t[P("0x13b")][P("0x7e")][P("0x86")](e.endPosition),
                  r = t.viewer[P("0x10f")][P("0xa3")][P("0xa4")](i, t[P("0x13b")].scene);
              t[P("0x45f")][P("0x0")] > t[P("0x45d")] && t[P("0x45f")][P("0x25c")](), t._arrayVertex[P("0x17c")](r), t[P("0x45c")].positions = t[P("0x45f")];
            }
          }, e.ScreenSpaceEventType.MOUSE_MOVE), this.handler.setInputAction(function (i) {
            if (null != t._polylineCollection) {
              var r = t[P("0x13b")][P("0x7e")][P("0x86")](i.position),
                  n = t[P("0x13b")][P("0x10f")][P("0xa3")][P("0xa4")](r, t[P("0x13b")].scene),
                  o = e[P("0x13")].fromCartesian(n);
              t[P("0x460")][P("0x17c")](e.Math[P("0x113")](o.longitude)), t[P("0x460")][P("0x17c")](e.Math[P("0x113")](o.latitude)), t._outPoints.push(o[P("0x8b")]), t[P("0x304")][P("0x17f")](t[P("0x45c")]), t.viewer.scene[P("0x17d")][P("0x17f")](t[P("0x304")]), t.handler.destroy(), t.handler = void 0, t._polylineCollection = void 0, t[P("0x45c")] = void 0, t[P("0x45d")] = 0, t.viewer[P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), t._excavationRegion = new e.GeoExcavationRegion({
                viewer: t[P("0x13b")],
                samplingPoints: t[P("0x45f")],
                depth: t[P("0x456")],
                sideMaterial: t._sideMaterial,
                bottomMaterial: t._bottomMaterial,
                interNumber: 10
              }), t[P("0x45a")](t[P("0x460")]);
            }
          }, e[P("0x161")][P("0x189")]);
        }
      }, t[P("0x5")].clear = function () {
        this[P("0x45e")] && (this[P("0x460")][P("0x0")] = 0, this._arrayVertex[P("0x0")] = 0, this[P("0x45e")][P("0xf4")](), this[P("0x45e")] = void 0);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x102")];

      (e[P("0x461")] = function (e, i) {
        e = t(e, t[P("0x128")]), this.viewer = e.viewer, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this[P("0x48")] = this[P("0x10f")][P("0x48")], this.camera = this.scene[P("0x7e")], this[P("0x17d")] = this[P("0x10f")].primitives, this[P("0x191")] = i || null, this.contourUniforms = {}, this[P("0x462")] = {};
      }).prototype[P("0x463")] = function (o) {
        var a = !1;

        if (o && o[P("0x464")]) {
          a = t(o[P("0x464")][P("0x3b6")], !1);
          var s = t(o[P("0x464")][P("0x19a")], 2),
              x = t(o.contour[P("0x465")], 150),
              l = t(o[P("0x464")][P("0x169")], e[P("0x16a")].RED[P("0x6e")]());
        }

        var c = "none";
        if (o && o[P("0x466")] && (c = o[P("0x466")], -1 == ["elevation", P("0x467"), P("0x468"), P("0x2b4")][P("0x2d3")](c))) return alert("输入值可选elevation,slope,aspect,none中的一个！"), !1;
        var u,
            h = -414,
            f = 8777;
        return o && o.minHeight && (h = o[P("0x3ea")]), o && o[P("0x3eb")] && (f = o.maxHeight), a ? (c === P("0x469") ? (u = new e.Material({
          fabric: {
            type: P("0x485"),
            materials: {
              contourMaterial: {
                type: P("0x471")
              },
              elevationRampMaterial: {
                type: P("0x472")
              }
            },
            components: {
              diffuse: "contourMaterial.alpha == 0.0 ? elevationRampMaterial.diffuse : contourMaterial.diffuse",
              alpha: P("0x486")
            }
          },
          translucent: !1
        }), this[P("0x462")] = u[P("0x46a")][P("0x46b")][P("0x19d")], this[P("0x462")][P("0x46c")] = h, this[P("0x462")][P("0x46d")] = f, this.contourUniforms = u[P("0x46a")][P("0x46e")].uniforms) : c === P("0x467") ? (u = new e[P("0x212")]({
          fabric: {
            type: P("0x487"),
            materials: {
              contourMaterial: {
                type: P("0x471")
              },
              slopeRampMaterial: {
                type: P("0x473")
              }
            },
            components: {
              diffuse: "contourMaterial.alpha == 0.0 ? slopeRampMaterial.diffuse : contourMaterial.diffuse",
              alpha: P("0x488")
            }
          },
          translucent: !0
        }), this[P("0x462")] = u[P("0x46a")][P("0x46f")].uniforms, this[P("0x470")] = u[P("0x46a")][P("0x46e")][P("0x19d")]) : c === P("0x468") ? (u = new e[P("0x212")]({
          fabric: {
            type: P("0x489"),
            materials: {
              contourMaterial: {
                type: P("0x471")
              },
              aspectRampMaterial: {
                type: P("0x474")
              }
            },
            components: {
              diffuse: "contourMaterial.alpha == 0.0 ? aspectRampMaterial.diffuse : contourMaterial.diffuse",
              alpha: P("0x48a")
            }
          },
          translucent: !1
        }), this[P("0x462")] = u[P("0x46a")].aspectRampMaterial[P("0x19d")], this[P("0x470")] = u.materials[P("0x46e")][P("0x19d")]) : (u = e[P("0x212")][P("0x213")](P("0x471")), this[P("0x470")] = u[P("0x19d")]), this.contourUniforms.width = s, this[P("0x470")][P("0x465")] = x, this.contourUniforms.color = l) : c === P("0x469") ? (u = e.Material[P("0x213")](P("0x472")), this.shadingUniforms = u.uniforms, this[P("0x462")].minimumHeight = h, this[P("0x462")].maximumHeight = f) : c === P("0x467") ? (u = e.Material[P("0x213")](P("0x473")), this[P("0x462")] = u[P("0x19d")]) : c === P("0x468") && (u = e[P("0x212")][P("0x213")](P("0x474")), this[P("0x462")] = u.uniforms), c !== P("0x2b4") && (this.shadingUniforms[P("0x475")] = function (e) {
          var t = document[P("0x15c")](P("0x48"));
          t[P("0x19a")] = 100, t[P("0x8b")] = 1;
          var o,
              a = t[P("0x476")]("2d");
          e === P("0x469") ? o = i : e === P("0x467") ? o = r : "aspect" === e && (o = n);
          var s = a[P("0x477")](0, 0, 100, 0);
          return 7 == o[P("0x0")] ? (s.addColorStop(o[0], P("0x478")), s[P("0x479")](o[1], P("0x47a")), s[P("0x479")](o[2], "#D33B7D"), s[P("0x479")](o[3], "#D33038"), s[P("0x479")](o[4], "#FF9742"), s[P("0x479")](o[5], "#ffd700"), s[P("0x479")](o[6], P("0x47b"))) : (s[P("0x479")](o[0], P("0x47c")), s[P("0x479")](o[1], "#599668"), s.addColorStop(o[2], P("0x47d")), s[P("0x479")](o[3], "#fafcb4"), s.addColorStop(o[4], P("0x47e")), s.addColorStop(o[5], P("0x47f")), s[P("0x479")](o[6], P("0x480")), s[P("0x479")](o[7], P("0x481")), s[P("0x479")](o[8], P("0x482")), s[P("0x479")](o[9], P("0x483")), s[P("0x479")](o[10], "#420202")), a[P("0x484")] = s, a.fillRect(0, 0, 100, 1), t;
        }(c)), this[P("0x10f")][P("0xa3")][P("0x19c")] = u, !0;
      };

      var i = [0, 0.045, 0.1, 0.15, 0.37, 0.54, 1],
          r = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
          n = [0, 0.2, 0.4, 0.6, 0.8, 0.9, 1];
    }(window.Cesium), function (e) {
      var t = e.GeoTilesetFlatten = function (t) {
        t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), this[P("0x48b")] = !1, this[P("0x48c")] = !1, this[P("0x48d")] = [], this[P("0x48e")] = e[P("0x102")](t[P("0x48e")], !0), this.show = e.defaultValue(t[P("0x221")], !0), this[P("0xef")] = e.defaultValue(t[P("0xef")], e[P("0x16")].WGS84);
      };

      function i(t) {
        var i = t.content._model;
        e.defined(i) && e[P("0x14")](i.platSlot) && delete i[P("0x48f")];
      }

      function r(t) {
        var i = t[P("0x490")]._model;

        if (e.defined(i)) {
          var r = i[P("0x48f")];
          if (!e[P("0x14")](r)) throw new e.DeveloperError("storing of model vertex buffers is fail.");
        }
      }

      t.prototype[P("0x491")] = function (t) {
        if (!e[P("0x14")](t)) throw new e[P("0x15")]("parameter tileset is required.");
        if (e[P("0x14")](this[P("0x492")])) throw new e[P("0x15")](P("0x493"));
        this[P("0x492")] = t, (this._tileset[P("0x494")] = this)[P("0x48c")] = !0, this[P("0x492")].tileUnload[P("0x130")](i), this[P("0x492")][P("0x495")].addEventListener(r);
      }, t.prototype[P("0x496")] = function (e) {
        this.show != e && (this[P("0x48c")] = !0), this[P("0x221")] = e;
      }, t[P("0x5")][P("0x497")] = function (e) {
        return this[P("0x221")];
      }, t[P("0x5")][P("0x498")] = function () {
        return this[P("0x48c")];
      }, t[P("0x5")][P("0x499")] = function () {
        this[P("0x48c")] = !1;
      }, t[P("0x5")][P("0x49a")] = function (t) {
        var i = this;

        if (void 0 !== t && t instanceof Array) {
          var r = t.length;

          if (!(r < 3)) {
            for (var n = [], o = i[P("0x48e")], a = 0; a < r; a++) {
              var s = t[a];
              o ? void 0 !== s[P("0x8b")] ? n[P("0x17c")](e.Cartesian3.fromRadians(s[P("0x112")], s[P("0x114")], s[P("0x8b")], i[P("0xef")])) : n.push(e[P("0x11")][P("0x6e")](s, new e[P("0x11")]())) : void 0 !== s[P("0x8b")] ? n.push(e[P("0x13")].clone(s, new e[P("0x13")]())) : n[P("0x17c")](e.Cartographic[P("0x175")](s, i.ellipsoid, new e[P("0x13")]()));
            }

            if (i.isCartesian3Point) {
              if (!n[0].equals(n[r - 1])) {
                var x = e[P("0x11")][P("0x6e")](n[0], new e.Cartesian3());
                n[P("0x17c")](x);
              }
            } else e[P("0x13")].equals(n[0], n[r - 1]) || (x = e[P("0x13")][P("0x6e")](n[0], new e[P("0x13")]()), n[P("0x17c")](x));

            var l = {};
            l[P("0x49b")] = n, l[P("0x49c")] = !0, i[P("0x48d")][P("0x17c")](l);
            var c = i[P("0x48d")][P("0x0")] - 1;
            return i.dirty = !0, i.initPlatBodyDebug(), this._ready = !0, c;
          }
        }
      }, t.prototype[P("0x49d")] = function (t) {
        if (void 0 !== t && "number" == typeof t && t < this[P("0x48d")][P("0x0")]) {
          var i = this.polys[t];
          if (void 0 === i) return;
          var r = i[P("0x49b")];
          if (void 0 === r) return;

          for (var n = [], o = 0; o < r[P("0x0")]; o++) {
            var a = e[P("0x11")][P("0x6e")](r[o], new e[P("0x11")]());
            n.push(a);
          }

          return n;
        }
      }, t[P("0x5")][P("0x49e")] = function (e) {
        void 0 !== e && w()(e) === P("0x49f") && e < this.polys[P("0x0")] && (delete this[P("0x48d")][e], this[P("0x48c")] = !0);
      }, t[P("0x5")].showPlatArea = function (e, t) {
        void 0 !== e && w()(e) === P("0x49f") && e < this.polys[P("0x0")] && (this.polys[e][P("0x49c")] = t, this[P("0x48c")] = !0);
      }, t[P("0x5")].initRegionMatrixes = function (t) {
        var i = t,
            r = i[P("0x4a0")].content[P("0x4a1")];

        if (e[P("0x14")](i[P("0x4a2")][P("0x4a3")]) && !(i[P("0x4a2")][P("0x4a3")].length < 1)) {
          var n = r[P("0x4a4")]._orientedBoundingBox[P("0x4a5")],
              o = r[P("0x4a4")]._orientedBoundingBox[P("0x11a")],
              a = {};

          if (a[P("0x4a6")] = this[P("0x4a7")](n), a[P("0x4a8")] = this[P("0x4a9")](a.matOrg), e.defined(a[P("0x4a8")]) && (a[P("0x4aa")] = e.Transforms[P("0xbf")](o, this[P("0xef")], new e[P("0x1b")]()), a.matPrjI = this.invertMatrix(a[P("0x4aa")]), e[P("0x14")](a[P("0x4ab")]))) return a[P("0x4ac")] = e[P("0x1b")].clone(i[P("0x4a2")].rootNodes[0][P("0x4ad")], new e.Matrix4()), a;
        }
      }, t[P("0x5")][P("0x4ae")] = function (t) {
        var i = t,
            r = i._pickObject[P("0x490")][P("0x4a1")];

        if (e[P("0x14")](i[P("0x4a2")][P("0x4a3")]) && !(i[P("0x4a2")][P("0x4a3")].length < 1)) {
          var n = r[P("0x4a4")]._orientedBoundingBox[P("0x11a")],
              o = {};

          if (o[P("0x4aa")] = e[P("0x1f")][P("0xbf")](n, this[P("0xef")], new e[P("0x1b")]()), o[P("0x4ab")] = this[P("0x4a9")](o[P("0x4aa")]), e[P("0x14")](o[P("0x4ab")]) && (o[P("0x4ac")] = e.Matrix4[P("0x6e")](i._runtime[P("0x4a3")][0][P("0x4ad")], new e[P("0x1b")]()), o.modelMatrixI = this[P("0x4a9")](o.modelMatrix), e[P("0x14")](o[P("0x4af")]))) return o;
        }
      }, t[P("0x5")].toPlatRegionModel = function (t, i) {
        var r = i,
            n = r[P("0x48f")][P("0x4b0")],
            o = n[P("0x0")],
            a = this[P("0x4b1")](r);

        if (e[P("0x14")](a)) {
          this[P("0x4b2")](r);

          for (var s = 0; s < o; s++) {
            var x = n[s];

            if (void 0 !== x && 1 != x[P("0x496")]) {
              x.showPlat = !0;

              for (var l = x[P("0x4b3")][P("0x1d5")](0), c = new Float32Array(l[P("0x4b3")], l[P("0x4b4")], l[P("0x0")] / Float32Array[P("0x4b5")]), u = 0, h = [], f = [], d = 0; d < c[P("0x0")]; d += 3) {
                var g = new e.Cartesian3(c[d], c[d + 1], c[d + 2]);
                f.push(g), (p = e[P("0x1b")][P("0xd4")](a.matOrgI, g, new e[P("0x11")]())).z < u && (u = p.z), h[P("0x17c")](p);
              }

              for (d = 0; d < h[P("0x0")]; d++) {
                var p = h[d];
                g = f[d], g = e[P("0x1b")][P("0xd4")](a.modelMatrix, g, new e[P("0x11")]()), g = e[P("0x1b")][P("0xd4")](a[P("0x4ab")], g, new e[P("0x11")]()), this[P("0x4b6")](r, g) && (p.z = u), p = e.Matrix4.multiplyByPoint(a.matOrg, p, new e[P("0x11")]()), c[3 * d] = p.x, c[3 * d + 1] = p.y, c[3 * d + 2] = p.z;
              }

              this[P("0x4b7")](r, l, s, t);
            }
          }

          r.platSlot[P("0x4b8")] = void 0;
        }
      }, t[P("0x5")][P("0x4b9")] = function (t, i) {
        var r = this,
            n = i,
            o = n[P("0x48f")][P("0x4b0")],
            a = o[P("0x0")],
            s = r.initBoxMatrixes(n);

        if (e.defined(s)) {
          var x = {};
          r[P("0x4b2")](n);

          for (var l = 0; l < a; l++) {
            var c = o[l];

            if (!c[P("0x496")] || r.isPlatDirty()) {
              c[P("0x496")] = !0;

              for (var u = c[P("0x4b3")].slice(0), h = new Float32Array(u[P("0x4b3")], u[P("0x4b4")], u[P("0x0")] / Float32Array.BYTES_PER_ELEMENT), f = 0; f < h[P("0x0")]; f += 3) {
                var d = new e[P("0x11")](h[f], h[f + 1], h[f + 2]);
                d = e[P("0x11")].clone(d);
                var g = e[P("0x1b")][P("0xd4")](s[P("0x4ac")], d, new e.Cartesian3());
                x.pt = g, d = e.Matrix4[P("0xd4")](s[P("0x4ab")], g, new e[P("0x11")]()), r[P("0x4b6")](n, d, x) && (g = e[P("0x1b")].multiplyByPoint(s[P("0x4af")], x.pt, new e[P("0x11")]()), h[f] = g.x, h[f + 1] = g.y, h[f + 2] = g.z);
              }

              r[P("0x4b7")](n, u, l, t);
            }
          }

          n[P("0x48f")].platPolys = void 0;
        }
      }, t[P("0x5")][P("0x4ba")] = function (t, i) {
        var r = i[P("0x4a0")][P("0x490")]._tile[P("0x4bb")][P("0x4bc")][P("0x4bd")];

        e[P("0x14")](r) ? this[P("0x4be")](t, i) : this.toPlatBoxModel(t, i);
      }, t[P("0x5")].toUnplatModel = function (e, t) {
        for (var i = t, r = i[P("0x48f")][P("0x4b0")], n = r[P("0x0")], o = 0; o < n; o++) {
          var a = r[o];

          if (void 0 !== a && 0 != a[P("0x496")]) {
            a[P("0x496")] = !1;
            var s = a[P("0x4b3")][P("0x1d5")](0);
            this[P("0x4b7")](i, s, o, e);
          }
        }

        i[P("0x48f")][P("0x4b8")] = void 0;
      }, t[P("0x5")][P("0x4bf")] = function (e, t) {
        var i = t;

        if (this[P("0x48b")] && void 0 !== i.platSlot && void 0 !== i.platSlot[P("0x4b0")] && !(i.platSlot.buffers[P("0x0")] < 1)) {
          var r = this[P("0x4c0")](i);
          (r || i[P("0x48f")][P("0x4c1")]) && (i.platSlot[P("0x4c1")] = !0, r ? this[P("0x4ba")](e, t) : this[P("0x4c2")](e, t));
        }
      }, t[P("0x5")][P("0x4c0")] = function (e) {
        var t = e,
            i = this[P("0x48d")],
            r = i.length;
        if (r < 1) return !1;

        for (var n = 0; n < r; n++) {
          var o = i[n];
          if (void 0 !== o && void 0 !== o.platPickRegion && this.hitPlatTestByRegion(t, o[P("0x4c3")])) return !0;
        }

        return !1;
      }, t.prototype[P("0x4c4")] = function () {
        var t = this,
            i = t.ellipsoid;

        if (t.isCartesian3Point) {
          if (void 0 === (s = t.polys)) return;
          if (void 0 === (x = s[P("0x0")]) || x < 1) return;
          if (!t.dirty) return;

          for (var r = 0; r < x; r++) {
            if (void 0 !== (l = s[r]) && !e[P("0x14")](l[P("0x4c3")])) {
              if (void 0 === (d = l.platPickPoints)) return;
              if (void 0 === (g = d.length) || g < 1) return;

              for (var n = 0; n < g; n++) {
                var o = e[P("0x11")][P("0x6e")](d[n], new e[P("0x11")]()),
                    a = e[P("0x13")].fromCartesian(o, i);
                0 != n ? (u > a[P("0x112")] ? u = a[P("0x112")] : c < a[P("0x112")] && (c = a[P("0x112")]), h > a[P("0x114")] ? h = a.latitude : f < a[P("0x114")] && (f = a[P("0x114")])) : (c = u = a[P("0x112")], h = f = a[P("0x114")]);
              }

              l[P("0x4c3")] = {
                west: u,
                south: h,
                east: c,
                north: f
              };
            }
          }
        } else {
          var s, x;
          if (void 0 === (s = t[P("0x48d")])) return;
          if (void 0 === (x = s[P("0x0")]) || x < 1) return;
          if (!t.dirty) return;

          for (r = 0; r < x; r++) {
            var l;

            if (void 0 !== (l = s[r]) && !e[P("0x14")](l[P("0x4c3")])) {
              var c, u, h, f, d, g;
              if (void 0 === (d = l.platPickPoints)) return;
              if (void 0 === (g = d[P("0x0")]) || g < 1) return;

              for (c = u = d[0].longitude, h = f = d[0][P("0x114")], n = 1; n < g; n++) {
                u > (o = e.Cartographic.clone(d[n], new e[P("0x13")]()))[P("0x112")] ? u = o[P("0x112")] : c < o.longitude && (c = o[P("0x112")]), h > o[P("0x114")] ? h = o[P("0x114")] : f < o[P("0x114")] && (f = o[P("0x114")]);
              }

              l.platPickRegion = {
                west: u,
                south: h,
                east: c,
                north: f
              };
            }
          }
        }
      }, t.prototype.createTileRegion = function (t) {
        var i = t[P("0x4bb")][P("0x4bc")];

        if (e[P("0x14")](i)) {
          if (void 0 !== i[P("0x4bd")]) {
            var r = i.region;
            if (!e.defined(r)) return;
            return {
              west: r[0],
              south: r[1],
              east: r[2],
              north: r[3]
            };
          }

          if (i.box) {
            if (!e[P("0x14")](t[P("0x4a4")])) return;

            var n = t[P("0x4a4")]._orientedBoundingBox;

            if (!e[P("0x14")](n)) return;
            var o,
                a = e[P("0x11")].add,
                s = e[P("0x11")][P("0x95")],
                x = [];

            for (o = 0; o < 3; o++) {
              var l = new e[P("0x11")](n[P("0x4a5")][3 * o], n[P("0x4a5")][3 * o + 1], n[P("0x4a5")][3 * o + 2]),
                  c = [];
              c[P("0x17c")]({
                f: a,
                a: l
              }), c[P("0x17c")]({
                f: s,
                a: l
              }), x[P("0x17c")](c);
            }

            var u,
                h,
                f,
                d,
                g,
                p,
                m = this[P("0xef")],
                b = n[P("0x11a")],
                v = [],
                C = x[0],
                y = x[1],
                _ = x[2];

            for (o = 0; o < C[P("0x0")]; o++) {
              for (var A = C[o], I = e[P("0x11")].clone(b, new e[P("0x11")]()), w = A.f(I, A.a, new e.Cartesian3()), G = 0; G < y.length; G++) {
                for (var E = y[G], S = E.f(w, E.a, new e.Cartesian3()), T = 0; T < _.length; T++) {
                  var M = _[T],
                      N = M.f(S, M.a, new e.Cartesian3());
                  v[P("0x17c")](N);
                }
              }
            }

            for (u = h = v[0].x, f = d = v[0].y, g = p = v[0].z, o = 1; o < v.length; o++) {
              var L = v[o];
              u > L.x ? u = L.x : h < L.x && (h = L.x), f > L.y ? f = L.y : d < L.y && (d = L.y), g > L.z ? g = L.z : p < L.z && (p = L.z);
            }

            var R,
                O,
                F,
                D,
                U = [];

            for (U[P("0x17c")](e.Cartographic[P("0x175")](new e[P("0x11")](u, f, g), m, new e[P("0x13")]())), U.push(e[P("0x13")].fromCartesian(new e[P("0x11")](h, d, p), m, new e[P("0x13")]())), o = 0; o < U[P("0x0")]; o++) {
              var k = U[o];
              0 != o ? (R > k[P("0x112")] ? R = k[P("0x112")] : O < k[P("0x112")] && (O = k[P("0x112")]), D > k[P("0x114")] ? D = k[P("0x114")] : F < k[P("0x114")] && (F = k[P("0x114")])) : (R = O = k.longitude, F = D = k[P("0x114")]);
            }

            return {
              west: R,
              south: D,
              east: O,
              north: F
            };
          }
        }
      }, t[P("0x5")].hitPlatTestByRegion = function (t, i) {
        return !!e.defined(i);
      }, t.prototype.initializePlatPoly = function (e) {
        this.isCartesian3Point ? this.initializeCartesianPlatPoly(e) : this[P("0x4c7")](e);
      }, t.prototype[P("0x4c8")] = function (t) {
        var i = this,
            r = t,
            n = r[P("0x48f")];

        if (e[P("0x14")](n[P("0x4b8")])) {
          if (!i[P("0x498")]()) return;
          delete n.platPolys;
        }

        var o,
            a = i.ellipsoid,
            s = i.polys;

        if (e[P("0x14")](r[P("0x4a2")][P("0x4a3")]) && (o = r._runtime[P("0x4a3")][0][P("0x4ad")]), e[P("0x14")](o)) {
          var x = i[P("0x4a9")](o);

          if (e.defined(x)) {
            n.platPolys = [];
            var l,
                c,
                u = n.platPolys;

            for (c = 0; c < s[P("0x0")]; c++) {
              var h = s[c];

              if (e[P("0x14")](h)) {
                var f,
                    d,
                    g,
                    p,
                    m = h[P("0x49b")],
                    b = new e[P("0x11")](),
                    v = [];

                for (l = 1; l < m[P("0x0")]; l++) {
                  var C = m[l];
                  b = e[P("0x11")][P("0x6d")](b, C, new e.Cartesian3());
                  var y = e[P("0x1b")][P("0xd4")](x, C, new e[P("0x11")]());
                  v[P("0x17c")](y), e[P("0x14")](f) ? (f > y.x ? f = y.x : g < y.x && (g = y.x), d > y.y ? d = y.y : p < y.y && (p = y.y)) : (f = g = y.x, d = p = y.y);
                }

                b = e.Cartesian3[P("0x4c9")](b, v[P("0x0")], new e[P("0x11")]());
                var _ = {
                  pts: v,
                  minX: f,
                  minY: d,
                  maxX: g,
                  maxY: p,
                  compressPlane: i[P("0x4ca")](a, b),
                  show: h[P("0x49c")]
                };
                u[P("0x17c")](_);
              }
            }
          }
        }
      }, t[P("0x5")].initializeCartographicPlatPoly = function (t) {
        var i = this,
            r = t,
            n = r[P("0x4a0")][P("0x490")][P("0x4a1")],
            o = r[P("0x48f")];

        if (e[P("0x14")](o[P("0x4b8")])) {
          if (!i[P("0x498")]()) return;
          o[P("0x4b8")] = void 0;
        }

        var a,
            s = i[P("0xef")],
            x = i[P("0x48d")];

        if (e[P("0x14")](n._boundingVolume) && e[P("0x14")](n[P("0x4a4")][P("0x4cb")]) && (a = n[P("0x4a4")][P("0x4cb")][P("0x11a")]), e[P("0x14")](a)) {
          var l,
              c = e[P("0x1f")][P("0xbf")](a, s, new e[P("0x1b")]()),
              u = i.invertMatrix(c);

          if (e[P("0x14")](u) && (e[P("0x14")](r[P("0x4a2")]) && e.defined(r[P("0x4a2")][P("0x4a3")]) && 0 < r[P("0x4a2")][P("0x4a3")][P("0x0")] && e[P("0x14")](r[P("0x4a2")][P("0x4a3")][0]) && (l = r[P("0x4a2")][P("0x4a3")][0][P("0x4ad")]), e[P("0x14")](l))) {
            var h = i[P("0x4a9")](l);

            if (e[P("0x14")](h)) {
              o[P("0x4b8")] = [];
              var f,
                  d,
                  g = o.platPolys;

              for (d = 0; d < x[P("0x0")]; d++) {
                var p = x[d];

                if (e[P("0x14")](p)) {
                  var m = p[P("0x49b")];

                  if (e.defined(m) && !(m[P("0x0")] < 1)) {
                    var b,
                        v,
                        C,
                        y,
                        _ = new e[P("0x11")](),
                        A = [];

                    for (f = 0; f < m[P("0x0")]; f++) {
                      var I,
                          w = m[f];
                      if (i[P("0x48e")]) I = e[P("0x11")][P("0x6e")](w, new e[P("0x11")]()), _ = e[P("0x11")][P("0x6d")](_, I, new e[P("0x11")]()), I = e[P("0x1b")][P("0xd4")](h, I, new e[P("0x11")]());else {
                        I = e.Cartographic[P("0x6e")](w, new e.Cartographic());
                        var G = e[P("0x11")][P("0x3d0")](I[P("0x112")], I[P("0x114")], 0, s);
                        _ = e.Cartesian3[P("0x6d")](_, G, new e.Cartesian3()), I = e[P("0x1b")].multiplyByPoint(u, G, new e[P("0x11")]());
                      }
                      A[P("0x17c")](I), e[P("0x14")](b) ? (b > I.x ? b = I.x : C < I.x && (C = I.x), v > I.y ? v = I.y : y < I.y && (y = I.y)) : (b = C = I.x, v = y = I.y);
                    }

                    _ = e[P("0x11")][P("0x4c9")](_, A.length, new e[P("0x11")]());
                    var E = {
                      pts: A,
                      minX: b,
                      minY: v,
                      maxX: C,
                      maxY: y,
                      compressPlane: i.initCompressPlane(s, _)
                    };
                    g[P("0x17c")](E);
                  }
                }
              }
            }
          }
        }
      }, t[P("0x5")][P("0x4ca")] = function (t, i) {
        var r = e[P("0x11")][P("0x6e")](i, new e[P("0x11")]()),
            n = e[P("0x13")][P("0x175")](r, t, new e.Cartographic()),
            o = e[P("0x11")].fromRadians(n[P("0x112")], n.latitude, 0, t);
        if (!r[P("0x84")](o)) return e[P("0x1c")][P("0xb9")](r, e[P("0x11")][P("0x8d")](e.Cartesian3[P("0x95")](r, o, new e[P("0x11")]()), new e[P("0x11")]()));
      }, t[P("0x5")].isPlatPointNoResult = function (t, i) {
        for (var r = t[P("0x48f")][P("0x4b8")], n = e[P("0x11")][P("0x6e")](i, new e[P("0x11")]()), o = 0; o < r.length; o++) {
          var a = r[o];
          if (e.defined(a) && this.isInsidedPoint(a, n)) return !0;
        }

        return !1;
      }, t[P("0x5")][P("0x4cc")] = function (t, i, r) {
        for (var n = t.platSlot[P("0x4b8")], o = e[P("0x11")][P("0x6e")](i, new e[P("0x11")]()), a = e[P("0x11")][P("0x6e")](r.pt, new e[P("0x11")]()), s = !1, x = 0; x < n[P("0x0")]; x++) {
          var l = n[x];

          if (e.defined(l) && this.isInsidedPoint(l, o)) {
            var c = this[P("0x4cd")](l[P("0x4ce")], a);
            e[P("0x14")](c) && (a = c), s = !0;
          }
        }

        return s && (r.pt = a), s;
      }, t[P("0x5")][P("0x4b6")] = function (t, i, r) {
        return e[P("0x14")](r) ? this[P("0x4cc")](t, i, r) : this[P("0x4cf")](t, i);
      }, t[P("0x5")][P("0x4cd")] = function (t, i) {
        if (e.defined(t) && e[P("0x14")](i) && e.defined(t[P("0x4d0")])) {
          var r = e[P("0x11")].clone(t[P("0x4d0")], new e[P("0x11")]()),
              n = e.Cartesian3[P("0x6e")](i, new e[P("0x11")]()),
              o = new e[P("0x1e")](n, r),
              a = e[P("0x18")][P("0xba")](o, t);
          if (e[P("0x14")](a)) return n;
          var s = e[P("0x11")][P("0xc8")](r, new e[P("0x11")]()),
              x = new e.Ray(n, s),
              l = e[P("0x18")][P("0xba")](x, t);
          if (!e[P("0x14")](l)) return n;
          var c = e.Cartesian3.distance(l, n);
          return e[P("0x11")].add(n, e.Cartesian3[P("0x6c")](s, c, new e[P("0x11")]()), new e[P("0x11")]());
        }
      }, t[P("0x5")][P("0x4d1")] = function (t, i) {
        var r = this;
        if (!e[P("0x14")](t)) return !1;
        if (!e.defined(t[P("0x221")]) || !t[P("0x221")]) return !1;
        if (!e.defined(i)) return !1;
        var n,
            o,
            a = i.x,
            s = i.y;
        if (a < t.minX || a > t.maxX || s < t[P("0x4d2")] || s > t.maxY) return !1;
        var x,
            l,
            c,
            u,
            h,
            f,
            d = {
          z: !1,
          b: !1,
          t: !1
        },
            g = t.pts,
            p = g.length;

        for (n = 0, o = p - 1; n < p; o = n++) {
          if (x = g[n], l = g[o], c = x.x, u = x.y, h = l.x, f = l.y, r.isEqualFloat(f, u)) {
            if (r[P("0x4d3")](s, u)) {
              if (r[P("0x4d3")](a, c)) return !0;
              if (r.isEqualFloat(a, h)) return !0;
              if (a < c == h < a) return !0;
            }
          } else if (r[P("0x4d3")](s, u)) {
            if (r[P("0x4d3")](a, c)) return !0;
            c < a && (f < s ? d.b = !d.b : d.t = !d.t);
          } else if (r[P("0x4d3")](s, f)) {
            if (r[P("0x4d3")](a, h)) return !0;
            h < a && (u < s ? d.b = !d.b : d.t = !d.t);
          }

          if (s < u != s < f) {
            var m = (h - c) / (f - u);
            if (m *= s - u, m += c, r[P("0x4d3")](a, m)) return !0;
            a < m && (d.z = !d.z);
          }
        }

        return d.t == d.b ? d.t ? !d.z : d.z : void 0;
      }, t[P("0x5")][P("0x4d3")] = function (t, i, r) {
        if (e.defined(r) || (r = 1e-8), !e[P("0x14")](t)) return !1;
        if (!e[P("0x14")](i)) return !1;
        var n = t - i;
        return (n = Math.abs(n)) < r;
      }, t.prototype.replaceCommandVertexBuffer = function (t, i, r, n) {
        var o = t;

        if (e.defined(i) && e[P("0x14")](r) && w()(r) === P("0x49f") && e[P("0x14")](n) && e[P("0x14")](n[P("0x3cc")])) {
          var a = o[P("0x4d4")];

          if (e[P("0x14")](a) && !(a.length <= r)) {
            var s = e.Buffer.createVertexBuffer({
              context: n[P("0x3cc")],
              typedArray: i,
              usage: e[P("0x4d5")][P("0x4d6")]
            });

            if (e[P("0x14")](s)) {
              var x = a[r];

              if (e[P("0x14")](x)) {
                var l = x[P("0x4d7")];

                if (e[P("0x14")](l)) {
                  var c = l[P("0x4d8")];

                  if (e[P("0x14")](c)) {
                    var u = c[P("0x4d9")];

                    if (e[P("0x14")](u) && 0 < u[P("0x0")]) {
                      var h = u[0];
                      if (!e[P("0x14")](h)) return;
                      var f = h[P("0x4da")];
                      e[P("0x14")](f) && !f[P("0xf3")]() && f[P("0x4db")] && f[P("0xf4")](), h.vertexBuffer = s;
                      var d = c[P("0x4dc")];
                      e.defined(d) && (n.context[P("0x4dd")](c[P("0x4dc")]), c[P("0x4dc")] = void 0);
                    }
                  }
                }
              }
            }
          }
        }
      }, t[P("0x5")].storeVertexBuffer = function (t) {
        if (e[P("0x14")](t)) {
          var i = t;

          if (!e.defined(i[P("0x48f")])) {
            var r = i[P("0x4a0")];

            if (e[P("0x14")](r)) {
              var n = r.content;

              if (e[P("0x14")](n)) {
                var o = n[P("0x492")];

                if (e[P("0x14")](o) && e[P("0x14")](o[P("0x494")])) {
                  var a = i._loadResources;

                  if (e[P("0x14")](a)) {
                    var s = i[P("0x4de")][P("0x4df")];

                    if (e.defined(s)) {
                      var x = s.accessors;

                      if (e[P("0x14")](x)) {
                        var l = s[P("0x4e0")];

                        if (e[P("0x14")](l)) {
                          var c = s.meshes;

                          if (e.defined(c)) {
                            i[P("0x48f")] = {}, i[P("0x48f")][P("0x4b0")] = [], i[P("0x48f")][P("0x4c1")] = !1;

                            for (var u = 0; u < c[P("0x0")]; u++) {
                              var h = c[u];

                              if (e[P("0x14")](h)) {
                                var f = h[P("0x17d")];
                                if (e[P("0x14")](f)) for (var d = 0; d < f[P("0x0")]; d++) {
                                  var g = f[d];

                                  if (e[P("0x14")](g)) {
                                    var p = g[P("0x18f")];
                                    if (e[P("0x14")](p)) for (var m in p) {
                                      if ("POSITION" === m) {
                                        var b = l[x[p[m]].bufferView],
                                            v = a[P("0x4e1")](b),
                                            C = v[P("0x1d5")](0, v[P("0x0")]);
                                        i.platSlot[P("0x4b0")][P("0x17c")]({
                                          buffer: C,
                                          showPlat: !1
                                        });
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }, t[P("0x5")][P("0x4a9")] = function (t) {
        var i = void 0;

        try {
          i = e[P("0x1b")][P("0x4e2")](t, new e[P("0x1b")]());
        } catch (t) {}

        return i;
      }, t[P("0x5")].createMatrix = function (t) {
        if (e.defined(t)) {
          var i = new e[P("0x1b")]();
          return e[P("0x1b")][P("0x4e3")](i, 0, new e[P("0x12")](t[0].x, t[0].y, t[0].z, 0), i), e[P("0x1b")][P("0x4e3")](i, 1, new e[P("0x12")](t[1].x, t[1].y, t[1].z, 0), i), e[P("0x1b")][P("0x4e3")](i, 2, new e.Cartesian4(t[2].x, t[2].y, t[2].z, 0), i), e.Matrix4.setColumn(i, 3, new e[P("0x12")](0, 0, 0, 1), i), i;
        }
      }, t.prototype[P("0x4a7")] = function (t) {
        if (e[P("0x14")](t)) {
          for (var i = [], r = 0; r < 3; r++) {
            i.push(this[P("0x4e4")](t[3 * r], t[3 * r + 1], t[3 * r + 2]));
          }

          return this[P("0x4e5")](i);
        }
      }, t[P("0x5")][P("0x4e4")] = function (t, i, r) {
        return e[P("0x11")][P("0x8d")](new e[P("0x11")](t, i, r), new e[P("0x11")]());
      };
    }(window.Cesium), function (e) {
      var t = P("0x4e6"),
          i = P("0x4e7"),
          r = e[P("0x4e8")] = function (t, i) {
        this.viewer = t[P("0x13b")], this[P("0x4e9")] = e[P("0x102")](t.pointLightHeight, 0.2), this[P("0x4ea")] = e[P("0x102")](t[P("0x4ea")], 100), this[P("0x4eb")] = e.defaultValue(t.boundingSphereSlicePartitions, 80), this[P("0x4ec")] = e[P("0x102")](t.boundingSphereSubdivisions, 100), this.scene = this[P("0x13b")][P("0x10f")], this.canvas = this[P("0x10f")][P("0x48")], this[P("0x17d")] = this[P("0x10f")].primitives, this[P("0x191")] = i || null, b()(e.VERSION) < 1.5 ? console[P("0x391")](P("0x3b0") + e.VERSION + P("0x4ed")) : (this.pointLightPosition = void 0, this[P("0x3ca")] = void 0);
      };

      function n(t, i, r) {
        var n = t[P("0x10f")][P("0x174")](i);

        if (n) {
          var o = e[P("0x13")][P("0x175")](n);

          if (o[P("0x8b")] < 0) {
            t.scene[P("0xa3")][P("0x32a")] = !0, t[P("0x13b")][P("0x3d3")] = e[P("0x3d4")].CAST_ONLY;
            var a = t[P("0x10f")][P("0x7e")][P("0x86")](i),
                s = t[P("0x10f")][P("0xa3")].pick(a, t.scene);
            o = e[P("0x13")][P("0x175")](s);
          }

          r = r || 0;
          var x = e[P("0x11")][P("0x3d0")](o[P("0x112")], o[P("0x114")], o.height + r),
              l = e[P("0x13")][P("0x175")](x);
          return [e[P("0x23")][P("0x113")](l[P("0x112")]), e[P("0x23")][P("0x113")](l[P("0x114")]), l[P("0x8b")]];
        }
      }

      function o(t, i, r, n) {
        var o = t[P("0x6d")](new e[P("0x1a5")]());
        return o.add({
          text: i,
          font: P("0x1a0"),
          showBackground: !0,
          position: r,
          pixelOffset: new e[P("0x10")](10, -30)
        }), o[P("0x176")] = n, o;
      }

      function a(e, t, i) {
        for (var r = 0; r < e[P("0x0")]; r++) {
          e[P("0x176")] == i && (e.get(r)[P("0x8c")] = t);
        }
      }

      function s(e, t) {
        x(e, t);
      }

      function x(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t.get(i)[P("0x176")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      r.prototype[P("0x198")] = function () {
        this[P("0x192")](), this.canvas[P("0x150")][P("0x170")] = P("0x171");
        var i = null,
            r = null,
            x = !0,
            l = null,
            c = null,
            u = this;
        this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x16f")][P("0x160")](function (r) {
          x ? (l = n(u, r.position, u[P("0x4e9")]), c = e[P("0x11")][P("0x1a1")](l[0], l[1], l[2]), s(t, u[P("0x17d")]), x = !1, u[P("0x3b2")] = x) : (u[P("0x10f")][P("0x3b3")][P("0x4ee")] = !0, u[P("0x48")].style[P("0x170")] = P("0x18c"), u[P("0x16f")] && !u[P("0x16f")][P("0xf3")]() && u[P("0x16f")][P("0xf4")](), s(t, u[P("0x17d")]), x = !0, u.firstLeftClick = x), i = null;
        }, e.ScreenSpaceEventType[P("0x17e")]), this[P("0x16f")][P("0x160")](function (s) {
          if (u.tipPosition = u[P("0x10f")][P("0x174")](s[P("0x64")]), u.tipPosition && (x && (i ? a(i, u[P("0x3c2")], t) : i = o(u.primitives, P("0x4ef"), u[P("0x3c2")], t)), !x)) {
            i ? a(i, u[P("0x3c2")], t) : i = o(u[P("0x17d")], P("0x4f0"), u.tipPosition, t);
            var l = n(u, s[P("0x64")]),
                h = e[P("0x11")][P("0x1a1")](l[0], l[1], l[2]);
            r = e[P("0x11")][P("0x8e")](c, h), u[P("0x3c8")](c, r), u[P("0x3c9")] = c, u[P("0x3ca")] = r, u[P("0x3b2")] = x;
          }
        }, e[P("0x161")][P("0x163")]);
      }, r[P("0x5")][P("0x3c8")] = function (t, r) {
        if (t && r) {
          var n = new e[P("0x3cb")](this[P("0x10f")]);
          n[P("0x8c")] = t, x(i, this.primitives);
          var o,
              a = this[P("0x17d")][P("0x6d")](new e[P("0x1a4")]());
          a[P("0x176")] = i, a[P("0x6d")]({
            position: t,
            color: e[P("0x16a")][P("0x2d5")],
            pixelSize: 5
          }), o = {
            context: this[P("0x10f")][P("0x3cc")],
            lightCamera: n,
            isPointLight: !0
          }, this[P("0x10f")][P("0x3b3")].destroy(), this[P("0x10f")][P("0x3b3")] = new e[P("0x4f1")](o);
          var s = this.scene[P("0x3b3")];
          s[P("0x364")] = !0, s[P("0x4f2")] = !0, s[P("0x4ee")] = !0, s[P("0x3cd")] = 1024, s[P("0x3ce")] = r, s[P("0x4f3")].stackPartitions = this.boundingSphereStackPartitions, s[P("0x4f3")][P("0x4f4")] = this[P("0x4eb")], s[P("0x4f3")][P("0x4f5")] = this.boundingSphereSubdivisions;
        }
      }, r[P("0x5")][P("0x192")] = function () {
        this.scene[P("0x3b3")][P("0x364")] = !1, this[P("0x10f")].shadowMap[P("0x4ee")] = void 0, this.canvas.style[P("0x170")] = P("0x18c"), this[P("0x16f")] && !this.handler[P("0xf3")]() && this.handler[P("0xf4")](), s(t, this.primitives), x(i, this[P("0x17d")]);
      }, r[P("0x5")][P("0xf4")] = function () {
        this.clear(), this[P("0x13b")] = void 0, this[P("0x4e9")] = void 0, this[P("0x10f")] = void 0, this[P("0x48")] = void 0, this.primitives = void 0, this[P("0x191")] = void 0;
      };
    }(window.Cesium), function (e) {
      var t = P("0x4f6"),
          i = P("0x4f7"),
          r = e[P("0x4f8")] = function (t, i) {
        this.viewer = t.viewer, this[P("0x4f9")] = e[P("0x102")](t[P("0x4f9")], 1), this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x7e")] = this.viewer.camera, this[P("0x48")] = this[P("0x10f")][P("0x48")], this.primitives = this.scene[P("0x17d")], this[P("0x191")] = i || null, this[P("0x4fa")] = 0, this[P("0x4fb")] = [], null == this.scene.expandShadowMapList && (this[P("0x10f")][P("0x4fc")] = []), b()(e[P("0x373")]) < 1.5 ? console.error(P("0x3b0") + e[P("0x373")] + ",可视域分析暂不支持该版本，请更换至1.50以上的版本!") : (this[P("0x4fd")] = void 0, this[P("0x4fe")] = void 0, this[P("0x4ff")] = void 0, this[P("0x500")] = void 0, this[P("0x501")] = void 0);
      };

      function n(t, i, r) {
        var n = t[P("0x10f")].pickPosition(i);

        if (n) {
          var o = e[P("0x13")].fromCartesian(n);

          if (o[P("0x8b")] < 0) {
            t.scene[P("0xa3")][P("0x32a")] = !0, t[P("0x13b")][P("0x3d3")] = e.ShadowMode[P("0x3d5")];
            var a = t[P("0x7e")].getPickRay(i),
                s = t.scene[P("0xa3")].pick(a, t[P("0x10f")]);
            o = e[P("0x13")][P("0x175")](s);
          }

          r = r || 0;
          var x = e[P("0x11")][P("0x3d0")](o[P("0x112")], o[P("0x114")], o[P("0x8b")] + r),
              l = e[P("0x13")].fromCartesian(x);
          return [e[P("0x23")].toDegrees(l[P("0x112")]), e[P("0x23")][P("0x113")](l[P("0x114")]), l[P("0x8b")]];
        }
      }

      function o(t, i, r, n) {
        var o = t.add(new e[P("0x1a5")]());
        return o[P("0x6d")]({
          text: i,
          font: P("0x1a0"),
          showBackground: !0,
          position: r,
          pixelOffset: new e[P("0x10")](10, -10)
        }), o[P("0x176")] = n, o;
      }

      function a(e, t, i) {
        for (var r = 0; r < e[P("0x0")]; r++) {
          e[P("0x176")] == i && (e[P("0x187")](r).position = t);
        }
      }

      function s(e, t) {
        !function (e, t) {
          for (var i = 0; i < t.length; i++) {
            t[P("0x187")](i)[P("0x176")] == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
          }
        }(e, t);
      }

      function x(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          t[P("0x187")](i).id == e && (t[P("0x17f")](t[P("0x187")](i)), i--);
        }
      }

      r[P("0x5")].activate = function () {
        var i = null,
            r = this[P("0x4fb")][P("0x0")];
        this[P("0x4fb")][r] = new e[P("0x3cb")](this.scene), this[P("0x10f")][P("0x3b3")].enabled = !1;
        var x = null,
            l = null,
            c = null;
        this[P("0x16f")] && !this.handler[P("0xf3")]() && this[P("0x16f")].destroy(), this[P("0x48")][P("0x150")][P("0x170")] = "crosshair";
        var u = this,
            h = !0,
            f = null,
            d = null;
        this.handler = new e[P("0x15f")](this.canvas), this[P("0x16f")][P("0x160")](function (e) {
          h ? (f = n(u, e[P("0x8c")], u[P("0x4f9")]), h = !1, u.firstLeftClick = h, s(t, u[P("0x17d")]), i = null) : (u[P("0x16f")] && !u.handler[P("0xf3")]() && u[P("0x16f")][P("0xf4")](), h = !0, u[P("0x3b2")] = h, u.canvas[P("0x150")][P("0x170")] = "default", s(t, u[P("0x17d")]), i = null, u[P("0x4fa")]++);
        }, e[P("0x161")][P("0x17e")]), this[P("0x16f")][P("0x160")](function (r) {
          if (u[P("0x3c2")] = u[P("0x10f")][P("0x174")](r.endPosition), u[P("0x3c2")] && (h && (i ? a(i, u[P("0x3c2")], t) : i = o(u[P("0x17d")], P("0x502"), u[P("0x3c2")], t)), !h)) {
            i ? a(i, u.tipPosition, t) : i = o(u[P("0x17d")], P("0x503"), u.tipPosition, t), d = n(u, r.endPosition), x = turf[P("0x11b")](turf[P("0x2ec")]([f[0], f[1]]), turf[P("0x2ec")]([d[0], d[1]]));
            var s = turf.distance(turf.point([f[0], f[1]]), turf[P("0x2ec")]([d[0], d[1]])),
                g = d[2] - f[2];
            l = e[P("0x23")][P("0x113")](Math.atan(g / (1e3 * s)));
            var p = e[P("0x11")][P("0x1a1")](f[0], f[1], f[2]),
                m = e[P("0x11")][P("0x1a1")](d[0], d[1], d[2]);
            c = e[P("0x11")][P("0x8e")](p, m), u[P("0x504")]({
              observePtCoordinate: f,
              frustumLength: c,
              frustumHead: x,
              frustumPitch: l,
              frustumField: 30
            }), u[P("0x4fd")] = f, u.realTimeHeading = x, u[P("0x4ff")] = l, u.realTimeDistance = c, u[P("0x501")] = 30, u[P("0x3b2")] = h;
          }
        }, e.ScreenSpaceEventType[P("0x163")]);
      }, r[P("0x5")][P("0x504")] = function (t) {
        var r = t[P("0x505")],
            n = t[P("0x506")],
            o = t.frustumHead,
            a = t.frustumPitch,
            s = t[P("0x507")];

        if (null != r && null != n && null != o && null != a && null != s) {
          var l = e[P("0x11")][P("0x1a1")](r[0], r[1], r[2]),
              c = e[P("0x23")][P("0x119")](o),
              u = e.Math.toRadians(a),
              h = this[P("0x4fb")].length,
              f = i + (h - 1),
              d = this[P("0x10f")][P("0x4fc")][P("0x0")];
          d > this[P("0x4fa")] && this[P("0x10f")][P("0x4fc")][P("0x259")](d - 1, 1);
          var g,
              p = this[P("0x4fb")][h - 1];
          p.frustum = new e.PerspectiveFrustum({
            fov: e[P("0x23")][P("0x119")](s),
            aspectRatio: 1.6,
            near: 1,
            far: n
          }), g = {
            context: this[P("0x10f")][P("0x3cc")],
            lightCamera: p,
            cascadesEnabled: !1,
            darkness: 0.5,
            isPointLight: !1
          }, this[P("0x10f")][P("0x4fc")].push(new e.ShadowMap(g));
          var m = this[P("0x10f")].expandShadowMapList[this[P("0x10f")].expandShadowMapList.length - 1];
          m[P("0x508")][P("0x3cf")] = 0, m[P("0x364")] = !0, m.size = 2048, m[P("0x509")] = !0, p[P("0x50a")](l, new e[P("0xa9")](c, u, 1e-21)), x(f, this[P("0x17d")]), this.primitives.add(new e.DebugCameraPrimitive({
            camera: p,
            color: e[P("0x16a")][P("0x50b")](1, 1, 1, 1),
            id: f
          }));
        }
      }, r[P("0x5")][P("0x192")] = function () {
        this[P("0x10f")][P("0x3b3")][P("0x509")] = void 0;

        for (var e = this[P("0x4fb")].length, r = 0; r < e; r++) {
          x(i + r, this[P("0x17d")]);
        }

        s(t, this[P("0x17d")]), this._spotLightCameraList[P("0x0")] = 0, this[P("0x10f")][P("0x4fc")][P("0x0")] = 0;
      }, r[P("0x5")][P("0xf4")] = function () {
        this.scene[P("0x3b3")][P("0x509")] = void 0, this[P("0x16f")] && !this[P("0x16f")][P("0xf3")]() && this[P("0x16f")][P("0xf4")](), this[P("0x10f")].shadowMap[P("0x364")] = !1, this[P("0x48")][P("0x150")][P("0x170")] = P("0x18c"), this.clear(), this.viewer = void 0, this[P("0x4f9")] = void 0, this[P("0x10f")] = void 0, this[P("0x7e")] = void 0, this[P("0x48")] = void 0, this[P("0x17d")] = void 0, this[P("0xef")] = void 0, this[P("0x191")] = void 0;
      };
    }(window.Cesium), function (e) {
      var t = P("0x50c"),
          i = P("0x50d"),
          r = P("0x50e"),
          n = P("0x50f"),
          o = P("0x510"),
          a = e.GeoVolumeCalculate = function (e, t) {
        this[P("0x13b")] = e[P("0x13b")], this[P("0x10f")] = this[P("0x13b")].scene, this.canvas = this[P("0x10f")].canvas, this[P("0x7e")] = this[P("0x10f")][P("0x7e")], this[P("0x17d")] = this.scene[P("0x17d")], this.designElevation = e.designElevation ? e[P("0x511")] : 4e3, this[P("0x328")] = e[P("0x328")] ? e[P("0x328")] : 500, this.callback = t || null;
      };

      function s(e, t) {
        for (var i = 0, r = 0; r < t[P("0x0")]; r++) {
          if (t[r] == e && i++, 2 == i) return !0;
        }
      }

      function x(e, t, i, r, n, o, a) {
        var s = {},
            x = turf[P("0x2d4")]([[e[P("0x180")][P("0x2ed")][0][i[0]], t[0], t[1], e.geometry[P("0x2ed")][0][i[0]]]]),
            l = turf[P("0x2d9")](x),
            c = a - r,
            u = 1 / 3 * l * c,
            h = turf.polygon([[e.geometry[P("0x2ed")][0][i[1]], t[0], t[1], e.geometry[P("0x2ed")][0][i[1]]]]),
            f = turf[P("0x2d9")](h),
            d = a - n,
            g = turf[P("0x2d4")]([[e[P("0x180")][P("0x2ed")][0][i[1]], e[P("0x180")][P("0x2ed")][0][i[2]], t[0], t[1], e[P("0x180")][P("0x2ed")][0][i[1]]]]),
            p = turf.area(g),
            m = turf[P("0x2d4")]([[e.geometry.coordinates[0][i[1]], e[P("0x180")][P("0x2ed")][0][i[2]], t[1], t[0], e.geometry[P("0x2ed")][0][i[1]]]]),
            b = turf[P("0x2d9")](m),
            v = b < p ? p : b,
            C = 1 / 3 * f * d + 1 / 3 * (v - f) * (d + (a - o));
        return 0 <= c ? (s.fillVolume = u, s[P("0x34d")] = l, s[P("0x34a")] = C, s[P("0x34b")] = v) : (s[P("0x34c")] = C, s.fillArea = v, s[P("0x34a")] = u, s[P("0x34b")] = l), s;
      }

      function l(t, i, r, n, o, a, s, x, l) {
        var c = {},
            u = Math[P("0x78")](t / (t - i)),
            h = new e[P("0x11")](0, 0, 0),
            f = e.Cartesian3[P("0x3d0")](r[P("0x180")].coordinates[0][n][0], r.geometry[P("0x2ed")][0][o][1], x),
            d = e.Cartesian3.fromRadians(r.geometry[P("0x2ed")][0][o][0], r[P("0x180")][P("0x2ed")][0][o][1], l),
            g = e[P("0x13")][P("0x175")](e[P("0x11")].lerp(f, d, u, h));
        return c.intersection = [g[P("0x112")], g[P("0x114")]], c[P("0x349")] = [a, s], c;
      }

      function c(t, r) {
        return t.add({
          name: i,
          position: r,
          label: {
            text: P("0x51b"),
            font: P("0x51c"),
            showBackground: !0,
            pixeloffset: new e[P("0x10")](0, 20)
          }
        });
      }

      function u(e, t) {
        for (var i = 0; i < t.values[P("0x0")]; i++) {
          t[P("0x190")][i][P("0x176")] == e && (t[P("0x17f")](t.values[i]), i--);
        }
      }

      a[P("0x5")][P("0x198")] = function () {
        this.canvas[P("0x150")][P("0x170")] = P("0x171");
        var a = 0,
            s = this,
            x = [],
            l = [],
            h = [],
            f = [],
            d = [];
        this[P("0x16f")] = new e[P("0x15f")](this[P("0x48")]), this[P("0x16f")][P("0x160")](function (i) {
          var r = s[P("0x7e")][P("0x86")](i[P("0x8c")]),
              n = s.scene[P("0xa3")][P("0xa4")](r, s[P("0x10f")]);
          l[P("0x17c")](n);
          var o = e[P("0x13")][P("0x175")](n),
              c = e.Math[P("0x113")](o[P("0x112")]),
              u = e.Math[P("0x113")](o[P("0x114")]),
              g = o[P("0x8b")];
          h[P("0x17c")](c, u, g), f[P("0x17c")](c, u, s[P("0x511")]), x = a ? (d[a - 1][P("0x2eb")][P("0x19f")][P("0x512")]()[P("0x513")](), [d[0][P("0x2eb")][P("0x19f")][P("0x512")]()[1], n, d[a - 1][P("0x2eb")][P("0x19f")][P("0x512")]()[0]]) : [n, n, n], s[P("0x514")] = s[P("0x13b")].entities.add({
            name: t,
            polyline: {
              positions: x,
              clampToGround: !0,
              width: 5,
              material: new e.PolylineOutlineMaterialProperty({
                color: e[P("0x16a")].ORANGE,
                outlineWidth: 2,
                outlineColor: e[P("0x16a")][P("0x43b")]
              })
            }
          }), d.push(s[P("0x514")]), a++;
        }, e.ScreenSpaceEventType.LEFT_CLICK), this.handler.setInputAction(function (e) {
          if (x[P("0x0")]) {
            var t = s[P("0x7e")].getPickRay(e[P("0x64")]),
                i = s.scene[P("0xa3")][P("0xa4")](t, s[P("0x10f")]);
            x[P("0x259")](x.length - 2, 1, i), d[a - 1][P("0x2eb")][P("0x19f")] = x, s[P("0x378")] ? s.labelEntity.position = i : s[P("0x378")] = c(s[P("0x13b")][P("0x194")], i);
          } else s[P("0x378")] ? s.labelEntity.position = i : s[P("0x378")] = c(s[P("0x13b")][P("0x194")], i);
        }, e[P("0x161")][P("0x163")]), this[P("0x16f")][P("0x160")](function (a) {
          var x = s.camera[P("0x86")](a[P("0x8c")]),
              c = s.scene[P("0xa3")][P("0xa4")](x, s.scene);
          l.push(c);
          var d = e[P("0x13")][P("0x175")](c),
              g = e.Math[P("0x113")](d[P("0x112")]),
              p = e.Math[P("0x113")](d[P("0x114")]),
              m = d.height;
          h.push(g, p, m), f.push(g, p, s[P("0x511")]), s[P("0x16f")].destroy(), s[P("0x48")].style[P("0x170")] = P("0x18c"), s[P("0x378")] && u(i, s[P("0x13b")][P("0x194")]), s[P("0x514")] && u(t, s[P("0x13b")][P("0x194")]), s.VOLUME = s[P("0x515")](s.scene, h, s[P("0x511")], s[P("0x328")]), s[P("0x191")](s[P("0x516")]), s[P("0x517")] = s.viewer[P("0x194")][P("0x6d")]({
            name: n,
            polygon: {
              hierarchy: {
                positions: e[P("0x11")][P("0x19e")](f)
              },
              material: e[P("0x16a")].BLUE.withAlpha(0.8),
              perPositionHeight: !0
            }
          }), s.polygonEntity = s.viewer[P("0x194")][P("0x6d")]({
            name: r,
            polygon: {
              hierarchy: {
                positions: l
              },
              material: e.Color[P("0x310")][P("0x16c")](0.5)
            }
          }), s.designPolygonEntity_coral = s[P("0x13b")][P("0x194")].add({
            name: o,
            polygon: {
              hierarchy: {
                positions: e[P("0x11")].fromDegreesArrayHeights(f)
              },
              material: e.Color[P("0x518")].withAlpha(0.5),
              perPositionHeight: !0,
              outline: !0,
              outlineColor: e[P("0x16a")][P("0x2d5")][P("0x16c")](1),
              extrudedHeight: 0,
              closeTop: !0,
              closeBottom: !1
            }
          });
        }, e[P("0x161")][P("0x189")]);
      }, a.prototype[P("0x515")] = function (t, i, r, n) {
        for (var o, a = {
          features: []
        }, c = t.globe.ellipsoid, u = [], h = e[P("0x11")][P("0x19e")](i), f = 0; f < h.length; f++) {
          var d = e[P("0x23")][P("0x113")](c[P("0xd6")](h[f]).longitude),
              g = e[P("0x23")][P("0x113")](c[P("0xd6")](h[f])[P("0x114")]);
          u[P("0x17c")]([d, g]);
        }

        u[P("0x17c")]([e.Math[P("0x113")](c.cartesianToCartographic(h[0])[P("0x112")]), e[P("0x23")][P("0x113")](c[P("0xd6")](h[0])[P("0x114")])]);
        var p = turf[P("0x33e")](u),
            m = turf.bbox(p),
            b = turf.randomPoint(2 * n, {
          bbox: m
        }),
            v = turf.polygon([u]);

        for (f = 0; f < b[P("0x33a")][P("0x0")]; f++) {
          var y = turf[P("0x2ec")](b.features[f][P("0x180")][P("0x2ed")]);
          turf.booleanPointInPolygon(y, v) || (b[P("0x33a")][P("0x259")](f, 1), f--);
        }

        var _ = [],
            A = h[P("0x1c6")](h[0]);

        for (f = 0; f < A[P("0x0")] - 1; f++) {
          for (var I = 1; I < Math.ceil(n / 10); I++) {
            var w = new e[P("0x11")](0, 0, 0);
            w = e[P("0x11")][P("0x308")](A[f], A[f + 1], I * (1 / Math[P("0x342")](n / 10)), w), _[P("0x17c")](w);
          }
        }

        h = h[P("0x1c6")](_);
        var G = [],
            E = [];

        for (f = 0; f < h[P("0x0")]; f++) {
          var S = c.cartesianToCartographic(h[f])[P("0x112")],
              T = c[P("0xd6")](h[f]).latitude;
          G[P("0x17c")](new e.Cartographic(S, T)), E[P("0x17c")]([S, T]);
        }

        for (f = 0; f < b.features[P("0x0")]; f++) {
          var M = e[P("0x23")].toRadians(b.features[f][P("0x180")].coordinates[0]),
              N = e[P("0x23")][P("0x119")](b.features[f].geometry[P("0x2ed")][1]);
          G[P("0x17c")](new e[P("0x13")](M, N));
        }

        return t.sampleHeightMostDetailed(G).then(function (e) {
          a[P("0x165")] = P("0x343");

          for (var t = 0; t < e[P("0x0")]; t++) {
            a[P("0x33a")][P("0x17c")]({
              type: P("0x344"),
              geometry: {
                coordinates: [e[t][P("0x112")], e[t][P("0x114")]],
                type: P("0x345")
              },
              properties: {
                z: e[t].height
              }
            });
          }

          o = turf.tin(a, "z");
          var i = 0,
              n = 0,
              c = 0,
              u = 0,
              h = r;

          for (t = 0; t < o[P("0x33a")][P("0x0")]; t++) {
            var f = o[P("0x33a")][t].properties.a - h,
                d = o[P("0x33a")][t][P("0x33d")].b - h,
                g = o[P("0x33a")][t][P("0x33d")].c - h,
                p = [],
                m = [];

            if (f * d < 0 || f * g < 0 || d * g < 0) {
              if (f * d < 0) {
                var b = l(f, d, o[P("0x33a")][t], 0, 1, "a", "b", o[P("0x33a")][t][P("0x33d")].a, o[P("0x33a")][t][P("0x33d")].b);
                p[P("0x17c")](b[P("0x348")]), m[P("0x17c")](b[P("0x349")][0], b[P("0x349")][1]);
              }

              var v;
              f * g < 0 && (b = l(f, g, o[P("0x33a")][t], 0, 2, "a", "c", o.features[t][P("0x33d")].a, o[P("0x33a")][t][P("0x33d")].c), p[P("0x17c")](b[P("0x348")]), m[P("0x17c")](b[P("0x349")][0], b[P("0x349")][1])), d * g < 0 && (b = l(d, g, o[P("0x33a")][t], 1, 2, "b", "c", o[P("0x33a")][t][P("0x33d")].b, o[P("0x33a")][t][P("0x33d")].c), p[P("0x17c")](b[P("0x348")]), m[P("0x17c")](b.vertexSerial[0], b[P("0x349")][1])), s("a", m) && (n += (v = x(o[P("0x33a")][t], p, [0, 1, 2], o[P("0x33a")][t][P("0x33d")].a, o.features[t][P("0x33d")].b, o[P("0x33a")][t].properties.c, h)).fillVolume, u += v[P("0x34d")], i += v[P("0x34a")], c += v.excavationArea), s("b", m) && (n += (v = x(o.features[t], p, [1, 0, 2], o.features[t][P("0x33d")].b, o.features[t][P("0x33d")].a, o[P("0x33a")][t][P("0x33d")].c, h))[P("0x34c")], u += v.fillArea, i += v.excavationVolume, c += v[P("0x34b")]), s("c", m) && (n += (v = x(o[P("0x33a")][t], p, [2, 0, 1], o[P("0x33a")][t][P("0x33d")].c, o.features[t].properties.a, o[P("0x33a")][t][P("0x33d")].b, h))[P("0x34c")], u += v[P("0x34d")], i += v.excavationVolume, c += v[P("0x34b")]);
            } else {
              var y = turf[P("0x2d4")]([o[P("0x33a")][t][P("0x180")][P("0x2ed")][0]]),
                  _ = turf[P("0x2d9")](y),
                  A = 1 / 3 * [h - o[P("0x33a")][t][P("0x33d")].a + (h - o[P("0x33a")][t][P("0x33d")].b) + (h - o.features[t][P("0x33d")].c)];

              0 <= A ? (n += _ * A, u += _) : (i += _ * A, c += _);
            }
          }

          var I = {
            fillVolume: Number(n[P("0x2af")](3)),
            excavationVolume: Number(Math.abs(i)[P("0x2af")](3)),
            totalVolume: Number(n[P("0x2af")](3)) + Number(Math[P("0x78")](i)[P("0x2af")](3)),
            fillArea: Number(u[P("0x2af")](3)),
            excavationArea: Number(c[P("0x2af")](3)),
            totalArea: Number(u[P("0x2af")](3)) + Number(c[P("0x2af")](3))
          };
          return new C.a(function (e) {
            e(I);
          });
        });
      }, a[P("0x5")].clear = function () {
        this[P("0x48")][P("0x150")][P("0x170")] = "default", this[P("0x16f")] && !this[P("0x16f")][P("0xf3")]() && this[P("0x16f")][P("0xf4")](), this[P("0x514")] && u(t, this[P("0x13b")][P("0x194")]), this.labelEntity && u(i, this[P("0x13b")][P("0x194")]), this[P("0x519")] && u(r, this[P("0x13b")].entities), this[P("0x517")] && u(n, this[P("0x13b")][P("0x194")]), this[P("0x51a")] && u(o, this.viewer[P("0x194")]), this[P("0x514")] = void 0, this[P("0x378")] = void 0;
      }, a[P("0x5")][P("0xf4")] = function () {
        this[P("0x192")](), this[P("0x13b")] = void 0, this.scene = void 0, this[P("0x48")] = void 0, this.camera = void 0, this[P("0x17d")] = void 0, this[P("0x511")] = void 0, this[P("0x328")] = void 0, this[P("0x191")] = void 0;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x51d")] = function (t, i, r) {
        this[P("0x13b")] = t.viewer, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this.globe = this[P("0x13b")][P("0x10f")].globe, this[P("0x440")] = t[P("0x440")] ? t[P("0x440")] : {}, this.classificationPrimitiveCollection = new e[P("0x51e")](), this[P("0x10f")].primitives[P("0x6d")](this.classificationPrimitiveCollection), this.callback_click = i || function () {}, this.callback_move = r || function () {}, this[P("0x221")] = void 0 === t.show || t.show, this[P("0x3dd")] = t[P("0x3dd")] ? t[P("0x3dd")] : e[P("0x16a")][P("0x51f")][P("0x16c")](0.3), this.highlightColor_click = t[P("0x520")] ? t[P("0x520")] : e[P("0x16a")].YELLOW.withAlpha(0.3), this[P("0x521")] = t[P("0x521")] ? t.highlightColor_move : e[P("0x16a")][P("0x2cf")][P("0x16c")](0.2), this[P("0x522")] = null, this[P("0x523")] = null, this._INTERSECTED_FLOOR3 = null, this.handler = new e.ScreenSpaceEventHandler(this[P("0x13b")][P("0x48")]);
      };

      e[P("0xf")](t[P("0x5")], {
        show: {
          set: function set(e) {
            this._show = e, this[P("0x524")][P("0x221")] = e;
          },
          get: function get() {
            return this[P("0x49c")];
          }
        }
      }), t[P("0x5")][P("0x525")] = function () {
        var t = this;

        if (this[P("0x192")](), this[P("0x522")] = null, this[P("0x523")] = null, this[P("0x526")] = null, this[P("0x524")][P("0x221")] = this[P("0x49c")], t[P("0x440")] && t.data[P("0x180")]) {
          var i = 0;
          if (t[P("0x440")][P("0x33d")].baseHeight) i = t.data[P("0x33d")][P("0x527")];else if (t.scene[P("0x528")]) {
            var r = t[P("0x440")][P("0x180")].coordinates[0][0],
                n = new e[P("0x13")](e[P("0x23")][P("0x119")](r[0]), e[P("0x23")][P("0x119")](r[1]));
            i = t[P("0x10f")][P("0x529")](n);
          } else (i = t[P("0xa3")][P("0xed")]({
            longitude: e[P("0x23")][P("0x119")](t[P("0x440")][P("0x180")][P("0x2ed")][0][0][0]),
            latitude: e.Math.toRadians(t[P("0x440")][P("0x180")][P("0x2ed")][0][0][1])
          })) || console.error(P("0x52a"));
          if (!i) return void console.warn(P("0x52b"));

          for (var o = t[P("0x440")][P("0x33d")][P("0x52c")], a = [], s = 0; s < t[P("0x440")][P("0x180")][P("0x2ed")][0][P("0x0")]; s++) {
            a[P("0x17c")](t.data[P("0x180")][P("0x2ed")][0][s][0]), a[P("0x17c")](t[P("0x440")].geometry[P("0x2ed")][0][s][1]);
          }

          for (var x = 0, l = 0; l < o[P("0x0")]; l++) {
            var c = i + x,
                u = c + o[l],
                h = new e.GeometryInstance({
              geometry: e[P("0x1af")][P("0x231")]({
                positions: e[P("0x11")][P("0x1da")](a),
                height: c,
                extrudedHeight: u,
                vertexFormat: e[P("0x1b0")][P("0x1b1")]
              }),
              attributes: {
                color: e[P("0x184")][P("0x1b2")](this[P("0x3dd")])
              },
              id: {
                tag: P("0x52d"),
                description: t[P("0x440")],
                level: l + 1
              }
            }),
                f = new e[P("0x35b")]({
              geometryInstances: h,
              classificationType: e[P("0x17a")][P("0x17b")]
            });
            this[P("0x524")][P("0x6d")](f), x += o[l];
          }
        }
      }, t[P("0x5")].activate = function () {
        var t = this;
        t[P("0x16f")][P("0x160")](function (i) {
          var r = t[P("0x10f")].pick(i[P("0x8c")]);

          if (r && r.id && r.id[P("0x2cc")] == P("0x52d")) {
            if (t[P("0x52e")](r), t[P("0x522")] && t._INTERSECTED_FLOOR != r && (t._INTERSECTED_FLOOR.primitive.getGeometryInstanceAttributes(t._INTERSECTED_FLOOR.id)[P("0x169")] = e.ColorGeometryInstanceAttribute.toValue(t[P("0x3dd")])), t[P("0x522")] = r, t[P("0x526")]) {
              var n = t._INTERSECTED_FLOOR3[P("0x52f")][P("0x530")][0].id,
                  o = t[P("0x526")].getGeometryInstanceAttributes(n);

              o[P("0x169")][P("0x531")]() == e[P("0x184")][P("0x356")](t[P("0x520")]).toString() && (o[P("0x169")] = e[P("0x184")][P("0x356")](t[P("0x3dd")]));
            }

            var a = t[P("0x522")].primitive[P("0x354")](t[P("0x522")].id);
            if (a.color.toString() == e[P("0x184")][P("0x356")](t[P("0x520")]).toString()) return;
            a[P("0x169")] = e.ColorGeometryInstanceAttribute[P("0x356")](t[P("0x520")]);
          }
        }, e[P("0x161")][P("0x17e")]), t[P("0x16f")][P("0x160")](function (i) {
          var r = t[P("0x10f")].pick(i[P("0x64")]);

          if (r && r.id && r.id[P("0x2cc")] == P("0x52d")) {
            if (t[P("0x532")](r), t[P("0x523")] && t[P("0x523")] != r && (t._INTERSECTED_FLOOR2[P("0x182")][P("0x354")](t[P("0x523")].id).color = e.ColorGeometryInstanceAttribute[P("0x356")](t[P("0x3dd")])), t[P("0x523")] = r, t[P("0x522")]) {
              var n = t[P("0x522")].primitive.getGeometryInstanceAttributes(t[P("0x522")].id);
              n[P("0x169")][P("0x531")]() == e[P("0x184")].toValue(t[P("0x3dd")])[P("0x531")]() && (n.color = e[P("0x184")][P("0x356")](t[P("0x520")]));
            }

            var o = t._INTERSECTED_FLOOR2.primitive[P("0x354")](t[P("0x523")].id);

            if (o.color[P("0x531")]() == e[P("0x184")][P("0x356")](t[P("0x521")])[P("0x531")]()) return;
            o[P("0x169")] = e.ColorGeometryInstanceAttribute.toValue(t[P("0x521")]);
          }
        }, e[P("0x161")][P("0x163")]);
      }, t[P("0x5")][P("0x533")] = function (t) {
        var i = null;

        if (this[P("0x440")] && this.data[P("0x180")] && this[P("0x49c")] && (i = this[P("0x524")][P("0x187")](t - 1))) {
          if (this[P("0x526")] && this._INTERSECTED_FLOOR3 != i) {
            var r = this[P("0x526")][P("0x52f")][P("0x530")][0].id;
            this[P("0x526")][P("0x354")](r)[P("0x169")] = e[P("0x184")][P("0x356")](this.fillColor);
          }

          this._INTERSECTED_FLOOR3 = i;

          var n = this._INTERSECTED_FLOOR3[P("0x52f")][P("0x530")][0].id;

          this._INTERSECTED_FLOOR3.getGeometryInstanceAttributes(n).color = e.ColorGeometryInstanceAttribute[P("0x356")](this[P("0x520")]);
        }

        return i;
      }, t[P("0x5")].clear = function () {
        this[P("0x524")][P("0xf5")]();
      }, t.prototype[P("0x534")] = function () {
        this[P("0x16f")][P("0x535")](e[P("0x161")][P("0x163")]), this[P("0x16f")].removeInputAction(e[P("0x161")][P("0x17e")]);
      }, t[P("0x5")].destroy = function () {
        this[P("0x192")](), this[P("0x524")].destroy(), this[P("0x524")] = void 0, this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")][P("0xf4")](), this[P("0x13b")] = void 0, this.data = void 0, this[P("0x3dd")] = void 0, this[P("0x520")] = void 0, this[P("0x521")] = void 0, this[P("0x522")] = void 0, this[P("0x523")] = void 0, this[P("0x526")] = void 0;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x536")] = function (t) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x10f")] = this.viewer[P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x7f")] = e[P("0x23")][P("0x113")](this[P("0x7e")][P("0x7f")]), this._heading = this[P("0x7e")][P("0x7f")], this[P("0x80")] = e[P("0x23")][P("0x113")](this.camera.pitch), this[P("0x537")] = this.camera.pitch, this[P("0x81")] = e[P("0x23")][P("0x113")](this.camera[P("0x81")]), this[P("0x538")] = this[P("0x7e")][P("0x81")], this[P("0x539")] = t[P("0x539")], this[P("0x8e")] = 0, this[P("0x53a")] = 100, this[P("0x11a")] = [e[P("0x23")][P("0x113")](this[P("0x7e")][P("0x53b")][P("0x112")]), e.Math[P("0x113")](this[P("0x7e")][P("0x53b")].latitude), this[P("0x7e")][P("0x53b")][P("0x8b")]], this.height = this[P("0x7e")][P("0x53b")][P("0x8b")], this[P("0x53c")] = !!e[P("0x14")](t[P("0x53c")]) && t[P("0x53c")], this[P("0x53d")] = 0, this.deltaRadians = e[P("0x23")][P("0x119")](1), this.deltaDistance = 0, this[P("0x53e")](), this[P("0x10f")][P("0x53f")][P("0x130")](this[P("0x540")], this);
      };

      t[P("0x5")][P("0x540")] = function (t, i) {
        this.isFlying && (this.camera[P("0x9c")]({
          destination: e[P("0x11")][P("0x1a1")](this.center[0], this[P("0x11a")][1], this[P("0x11a")][2] + this[P("0x53d")]),
          orientation: {
            heading: this[P("0x541")] += e[P("0x23")][P("0x119")](this[P("0x539")]),
            pitch: this[P("0x537")],
            roll: this[P("0x538")]
          }
        }), this[P("0x7e")][P("0x11c")](this[P("0x53a")] + this[P("0x542")]), this[P("0x7f")] = e[P("0x23")][P("0x113")](this[P("0x7e")][P("0x7f")]), this[P("0x80")] = e[P("0x23")].toDegrees(this[P("0x7e")].pitch), this[P("0x81")] = e[P("0x23")].toDegrees(this.camera[P("0x81")]), this[P("0x8b")] = (this[P("0x11a")][2] + this.deltaHeight)[P("0x2af")](2), this.distance = (this._distance + this[P("0x542")])[P("0x2af")](2));
      }, t[P("0x5")][P("0x543")] = function (t, i) {
        if (e[P("0x14")](t) && e[P("0x14")](i)) {
          this[P("0x53c")] = !0, this[P("0x11a")] = i, this[P("0x53a")] = t, this.deltaDistance = 0, this[P("0x53d")] = 0, this[P("0x541")] = this[P("0x7e")][P("0x7f")], this._pitch = this[P("0x7e")][P("0x80")], this[P("0x538")] = this.camera[P("0x81")];

          for (var r = !1, n = 0; n < this[P("0x10f")][P("0x545")][P("0x2b8")].length; n++) {
            if (this.scene._preRender._listeners[n] === this[P("0x540")]) {
              r = !0;
              break;
            }
          }

          r || this[P("0x10f")][P("0x53f")][P("0x130")](this[P("0x540")], this);
        } else console[P("0x2e2")](P("0x544"));
      }, t[P("0x5")][P("0x546")] = function () {
        this[P("0x53c")] = !1;
      }, t[P("0x5")][P("0x547")] = function () {
        this[P("0x53c")] = !0;
      }, t[P("0x5")].stop = function () {
        this.scene.preRender[P("0x548")](this[P("0x540")], this);
      }, t.prototype[P("0xf4")] = function () {
        this[P("0x10f")][P("0x53f")][P("0x548")](this[P("0x540")], this), this[P("0x13b")] = void 0, this.scene = void 0, this[P("0x7e")] = void 0, e[P("0x22b")](this);
      }, t.prototype[P("0x53e")] = function () {
        var t = this;
        document.addEventListener(P("0x549"), function (i) {
          if (t.viewer) switch (i.keyCode) {
            case 40:
              i[P("0x54a")] ? t[P("0x53d")] -= 10 : (t[P("0x537")] -= t[P("0x54b")], t[P("0x537")] < -e[P("0x23")].TWO_PI && (t[P("0x537")] += e.Math[P("0xab")]));
              break;

            case 38:
              i[P("0x54a")] ? t.deltaHeight += 10 : (t[P("0x537")] += t[P("0x54b")], t[P("0x537")] > -e[P("0x23")][P("0xab")] && (t[P("0x537")] -= e[P("0x23")].TWO_PI));
              break;

            case 39:
              i[P("0x54a")] ? (t[P("0x538")] += t[P("0x54b")], t[P("0x538")] > e[P("0x23")][P("0xab")] && (t._roll -= e[P("0x23")][P("0xab")])) : t[P("0x542")] -= 50;
              break;

            case 37:
              i[P("0x54a")] ? (t[P("0x538")] -= t[P("0x54b")], t[P("0x538")] < e.Math[P("0xab")] && (t[P("0x538")] += e[P("0x23")][P("0xab")])) : t[P("0x542")] += 50;
          }
        });
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x54c")] = function (t) {
        this[P("0x13b")] = t.viewer, this[P("0x54d")] = t[P("0x54d")], this[P("0x80")] = t[P("0x80")], this[P("0x81")] = t[P("0x81")], this.height = t[P("0x8b")], this[P("0x539")] = t[P("0x539")], this.lon = t.lon, this.lat = t[P("0x54e")], this[P("0x54f")] = t.planePrimitive, this.hpRoll = t[P("0x550")], this[P("0x551")] = t[P("0x551")], this.isFlying = t.isFlying, this[P("0x8c")] = t[P("0x8c")], this[P("0x552")] = t.fixedFrameTransform, this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this.camera = this.viewer[P("0x7e")], this[P("0x553")] = new e[P("0x554")](), this[P("0x555")] = new e[P("0x11")](), this.center = new e.Cartesian3(), this[P("0x556")] = new e[P("0xa9")](), this.deltaRadians = e[P("0x23")][P("0x119")](3), this.init(), this[P("0x53e")]();
      };

      t[P("0x5")].init = function () {
        var t = this,
            i = this[P("0x10f")][P("0x24f")],
            r = 0;
        this[P("0x54f")][P("0x557")][P("0x333")](function (n) {
          n[P("0x558")].addAll({
            speedup: 0.5,
            loop: e[P("0x559")][P("0x55a")]
          }), r = 2 * Math[P("0xee")](n[P("0x55b")][P("0x181")], t[P("0x7e")].frustum.near), i[P("0x30")] = 0.5 * r, e[P("0x1b")][P("0xd4")](n.modelMatrix, n[P("0x55b")][P("0x11a")], t[P("0x11a")]);
          var o = e[P("0x23")][P("0x119")](230),
              a = e[P("0x23")][P("0x119")](-20);
          t[P("0x556")][P("0x7f")] = o, t[P("0x556")][P("0x80")] = a, t[P("0x556")][P("0x55c")] = 50 * r, t.camera[P("0x50a")](t.center, t[P("0x556")]);
        }), viewer[P("0x194")].add({
          position: this.pathPosition,
          name: "path",
          path: {
            show: !0,
            leadTime: 0,
            trailTime: 60,
            width: 2,
            resolution: 1,
            material: new e[P("0x55d")]({
              glowPower: 0.3,
              color: e.Color[P("0x55e")]
            })
          }
        });
      }, t[P("0x5")][P("0x104")] = function () {
        if (this[P("0x53c")]) {
          this[P("0x54d")] = e[P("0x23")].toDegrees(this.hpRoll[P("0x7f")])[P("0x2af")](1), this.pitch = e[P("0x23")][P("0x113")](this.hpRoll[P("0x80")])[P("0x2af")](1), this.roll = e[P("0x23")][P("0x113")](this[P("0x550")][P("0x81")])[P("0x2af")](1), this.speed = this.speed, this[P("0x555")] = e[P("0x11")][P("0x6c")](e[P("0x11")][P("0xb8")], this[P("0x539")] / 10, this[P("0x555")]);
          var t = e[P("0x1b")][P("0xd4")](this[P("0x54f")][P("0x4ac")], this[P("0x555")], this.position);
          this[P("0x553")][P("0x55f")](e[P("0x560")][P("0x561")](), t), e[P("0x1f")][P("0x562")](t, this[P("0x550")], e[P("0x16")][P("0x110")], this[P("0x552")], this[P("0x54f")][P("0x4ac")]);
          var i = e[P("0x13")][P("0x175")](t);
          this[P("0x563")] = e.Math[P("0x113")](i[P("0x112")]), this[P("0x54e")] = e[P("0x23")][P("0x113")](i[P("0x114")]), this.height = i[P("0x8b")], this.fromBehind && (e.Matrix4[P("0xd4")](this[P("0x54f")][P("0x4ac")], this[P("0x54f")][P("0x55b")].center, this[P("0x11a")]), this[P("0x556")][P("0x7f")] = this[P("0x550")].heading, this[P("0x556")][P("0x80")] = this[P("0x550")][P("0x80")], this[P("0x7e")][P("0x50a")](this[P("0x11a")], this[P("0x556")]));
        }
      }, t[P("0x5")].play = function () {
        this[P("0x13b")].scene[P("0x564")][P("0x130")](this[P("0x104")], this);
      }, t[P("0x5")][P("0x546")] = function () {
        this[P("0x13b")].scene[P("0x564")][P("0x548")](this[P("0x104")], this);
      }, t[P("0x5")][P("0x547")] = function () {
        0 != this[P("0x13b")][P("0x194")][P("0x430")][P("0x0")] ? (this[P("0x13b")][P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this), this[P("0x13b")][P("0x10f")].postRender.addEventListener(this[P("0x104")], this)) : this[P("0x13b")][P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this);
      }, t.prototype.stop = function () {
        this.viewer[P("0x10f")][P("0x564")].removeEventListener(this[P("0x104")], this), this[P("0x13b")].entities[P("0xf5")](), this[P("0x10f")][P("0x17d")][P("0xf5")](), document[P("0x548")](P("0x549"), this[P("0x565")]);
      }, t[P("0x5")][P("0x53e")] = function () {
        var t = this;
        document.addEventListener("keydown", function (i) {
          switch (i[P("0x566")]) {
            case 40:
              i[P("0x54a")] ? t[P("0x539")] = Math.max(--t.speed, 1) : (t[P("0x550")].pitch -= t[P("0x54b")], t.hpRoll[P("0x80")] < -e[P("0x23")][P("0xab")] && (t[P("0x550")][P("0x80")] += e[P("0x23")][P("0xab")]));
              break;

            case 38:
              i.shiftKey ? t[P("0x539")] = Math[P("0x7d")](++t[P("0x539")], 100) : (t[P("0x550")][P("0x80")] += t.deltaRadians, t[P("0x550")][P("0x80")] > e.Math[P("0xab")] && (t[P("0x550")][P("0x80")] -= e[P("0x23")][P("0xab")]));
              break;

            case 39:
              i.shiftKey ? (t[P("0x550")][P("0x81")] += t[P("0x54b")], t[P("0x550")].roll > e[P("0x23")][P("0xab")] && (t[P("0x550")][P("0x81")] -= e[P("0x23")].TWO_PI)) : (t[P("0x550")][P("0x7f")] += t.deltaRadians, t[P("0x550")][P("0x7f")] > e[P("0x23")].TWO_PI && (t.hpRoll[P("0x7f")] -= e[P("0x23")][P("0xab")]));
              break;

            case 37:
              i[P("0x54a")] ? (t.hpRoll.roll -= t[P("0x54b")], t.hpRoll.roll < 0 && (t[P("0x550")][P("0x81")] += e[P("0x23")][P("0xab")])) : (t[P("0x550")][P("0x7f")] -= t[P("0x54b")], t[P("0x550")][P("0x7f")] < 0 && (t.hpRoll[P("0x7f")] += e[P("0x23")].TWO_PI));
          }
        });
      };
    }(window.Cesium), function (e) {
      var t = e[P("0x567")] = function (t) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x568")] = t[P("0x568")], this[P("0x569")] = t.pointArray, this[P("0xe2")] = t[P("0xe2")], this[P("0x56a")] = t[P("0xe4")], this[P("0x539")] = t[P("0x539")], this.deltaHeight = e[P("0x102")](t[P("0x53d")], 10), this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0x56b")] = new e[P("0x11")](0, 0, 0), this[P("0x56c")] = [], this[P("0x565")] = null, this[P("0x2ec")] = [], this.bearing = [], this[P("0x56d")] = [], this[P("0x56e")] = [], this[P("0x56f")] = 0, this.VerticalRadians = 0, this.i = 0, this[P("0x53e")]();
      };

      t[P("0x5")][P("0x3f7")] = function () {
        for (var t = 0; t < this[P("0x569")][P("0x0")]; t++) {
          this[P("0x2ec")][P("0x17c")](turf[P("0x2ec")](this[P("0x569")][t]));
        }

        for (var i = 0; i < this[P("0x2ec")][P("0x0")] - 1; i++) {
          this[P("0x11b")].push(turf[P("0x11b")](this[P("0x2ec")][i], this[P("0x2ec")][i + 1]));
        }

        for (t = 0; t < this[P("0x11b")][P("0x0")]; t++) {
          this.initialHeading[P("0x17c")](e.Math[P("0x119")](this[P("0x11b")][t]));
        }

        for (var r = 0; r < this[P("0x11b")][P("0x0")] - 1; r++) {
          this[P("0x11b")][r + 1] - this[P("0x11b")][r] < -180 ? (this[P("0x56d")][P("0x17c")](e[P("0x23")].toRadians(this[P("0x11b")][r + 1] - this.bearing[r] + 360)), this[P("0x56e")].push(e[P("0x23")][P("0x119")](this.bearing[r + 1] - this.bearing[r] + 360))) : 180 < this.bearing[r + 1] - this.bearing[r] ? (this.differentBearing[P("0x17c")](e[P("0x23")].toRadians(this[P("0x11b")][r + 1] - this[P("0x11b")][r] - 360)), this.reduceBearing[P("0x17c")](e[P("0x23")][P("0x119")](Math[P("0x78")](this[P("0x11b")][r + 1] - this[P("0x11b")][r] - 360)))) : (this.differentBearing[P("0x17c")](e.Math[P("0x119")](this[P("0x11b")][r + 1] - this[P("0x11b")][r])), this.reduceBearing[P("0x17c")](e[P("0x23")].toRadians(Math[P("0x78")](this.bearing[r + 1] - this[P("0x11b")][r]))));
        }
      }, t[P("0x5")][P("0x570")] = function () {
        this.viewer[P("0x571")][P("0x572")] = this[P("0xe2")].clone(), this.viewer[P("0x571")][P("0x573")] = this[P("0x56a")].clone(), this[P("0x13b")][P("0x571")].currentTime = this[P("0xe2")][P("0x6e")](), this[P("0x13b")].clock[P("0x574")] = e.ClockRange[P("0x575")];
      }, t[P("0x5")][P("0x576")] = function (t) {
        for (var i = new e[P("0x554")](), r = 0; r < t[P("0x0")]; r++) {
          var n = e[P("0x560")][P("0x577")](this.start, r, new e[P("0x560")]()),
              o = e[P("0x11")][P("0x3d0")](Number(t[r][0]), Number(t[r][1]), Number(t[r][2]));
          i[P("0x55f")](n, o), this[P("0x13b")][P("0x194")][P("0x6d")]({
            position: o,
            point: {
              pixelSize: 2,
              color: e.Color[P("0x578")],
              outlineColor: e[P("0x16a")][P("0x2d5")],
              outlineWidth: 2
            }
          });
        }

        return i;
      }, t[P("0x5")][P("0x104")] = function () {
        if (this[P("0x568")]) {
          var t = this[P("0x576")](this.cartographicArray),
              i = this[P("0x13b")][P("0x194")][P("0x6d")]({
            availability: new e.TimeIntervalCollection([new e[P("0x579")]({
              start: this[P("0xe2")],
              stop: this[P("0x56a")]
            })]),
            position: t
          });
          this[P("0x56b")] = i[P("0x8c")][P("0x512")](this[P("0x13b")][P("0x571")][P("0x57a")]);
          var r = this[P("0x10f")][P("0xa3")][P("0xef")];
          if (null == this[P("0x56b")]) this[P("0x13b")][P("0x571")][P("0x57b")] = 0, document[P("0x548")]("keydown", this.keydownOption), this[P("0x13b")][P("0x10f")].postRender[P("0x548")](this[P("0x104")]);else {
            var n = r[P("0xd6")](this[P("0x56b")]),
                o = Math.floor(1e5 * e[P("0x23")][P("0x113")](n[P("0x114")])) / 1e5,
                a = Math[P("0x3e8")](1e5 * e[P("0x23")].toDegrees(n[P("0x112")])) / 1e5,
                s = (Math[P("0x3e8")](1e5 * n[P("0x8b")]), 1e3 * turf[P("0x8e")](turf[P("0x2ec")](this[P("0x569")][this.i + 1]), turf[P("0x2ec")]([a, o, 0]))),
                x = turf.distance(turf[P("0x2ec")](this.pointArray[this.i]), turf[P("0x2ec")](this[P("0x569")][this.i + 1]));
            s <= 1 * (50 + this[P("0x53d")]) / 10 ? (this[P("0x7e")].setView({
              destination: e[P("0x11")][P("0x1a1")](e[P("0x23")][P("0x113")](this.cartographicArray[this.i + 1][0]), e[P("0x23")][P("0x113")](this[P("0x568")][this.i + 1][1]), 50 + this[P("0x53d")]),
              orientation: {
                heading: this.initialHeading[this.i] + this.HorizontalRadian,
                pitch: e[P("0x23")].toRadians(0) + this[P("0x57c")],
                roll: 0
              }
            }), this[P("0x13b")][P("0x571")][P("0x57b")] = 0, this.i < this.reduceBearing[P("0x0")] ? this[P("0x56e")][this.i] < 1e-5 ? (this[P("0x56f")] = 0, this.i += 1, this[P("0x13b")][P("0x571")][P("0x57b")] = this[P("0x539")]) : (this[P("0x56f")] += this[P("0x56d")][this.i] / 200, this[P("0x56e")][this.i] -= Math[P("0x78")](this[P("0x56d")][this.i] / 200)) : (this[P("0x13b")][P("0x571")][P("0x57b")] = 0, document[P("0x548")]("keydown", this[P("0x565")]), this[P("0x13b")][P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this))) : (this[P("0x7e")].setView({
              destination: e[P("0x11")].fromDegrees(e[P("0x23")].toDegrees(n[P("0x112")]), e[P("0x23")][P("0x113")](n[P("0x114")]), 50 + this[P("0x53d")]),
              orientation: {
                heading: this[P("0x56c")][this.i],
                pitch: e[P("0x23")][P("0x119")](0) + this[P("0x57c")],
                roll: 0
              }
            }), this[P("0x13b")][P("0x571")][P("0x57b")] = 1 < x ? this[P("0x539")] * (1 / x) : this[P("0x539")] * (1 - x));
          }
        }
      }, t.prototype.play = function () {
        this[P("0x570")](), this.init(), this[P("0x10f")][P("0x564")][P("0x130")](this.animation, this);
      }, t[P("0x5")].pause = function () {
        this[P("0x10f")].postRender[P("0x548")](this[P("0x104")], this);
      }, t[P("0x5")]["continue"] = function () {
        this.scene[P("0x564")][P("0x548")](this[P("0x104")], this), this[P("0x10f")][P("0x564")][P("0x130")](this[P("0x104")], this);
      }, t[P("0x5")][P("0xe4")] = function () {
        this.scene.postRender.removeEventListener(this[P("0x104")], this), this[P("0x13b")][P("0x194")][P("0xf5")](), document[P("0x548")]("keydown", this.keydownOption), this[P("0x13b")] = null, this[P("0x568")] = null, this[P("0x569")] = null, this[P("0xe2")] = null, this[P("0x56a")] = null, this.speed = null, this.scene = null, this[P("0x7e")] = null, this[P("0x56b")] = new e[P("0x11")](0, 0, 0), this[P("0x56c")] = [], this[P("0x565")] = null, this.point = [], this[P("0x11b")] = [], this[P("0x56d")] = [], this[P("0x56e")] = [], this[P("0x53d")] = e[P("0x102")](this[P("0x53d")], 10), this[P("0x56f")] = 0, this[P("0x57c")] = 0, this.i = 0;
      }, t.prototype.reset = function (t) {
        this.viewer && (this[P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this), this.cartesian3 = new e[P("0x11")](0, 0, 0), this[P("0x56c")] = [], this.keydownOption = null, this[P("0x2ec")] = [], this[P("0x11b")] = [], this[P("0x56d")] = [], this[P("0x56e")] = [], this.deltaHeight = e[P("0x102")](this.deltaHeight, 10), this.HorizontalRadian = 0, this[P("0x57c")] = 0, this.i = 0, this[P("0x543")]());
      }, t.prototype[P("0x53e")] = function () {
        var e = this;
        this[P("0x565")] = function (t) {
          switch (t[P("0x566")]) {
            case 40:
              t[P("0x54a")] ? --e[P("0x53d")] : e[P("0x57c")] -= 0.01;
              break;

            case 38:
              t.shiftKey ? e[P("0x53d")] += 1 : e[P("0x57c")] += 0.01;
          }
        }, document[P("0x130")](P("0x549"), this[P("0x565")]);
      };
    }(window.Cesium), function (e) {
      var t = e[P("0x57d")] = function (e) {
        this[P("0x13b")] = e.viewer, this[P("0x569")] = e.pointArray, this[P("0x57e")] = [], this[P("0x57f")] = turf[P("0x2ec")](this[P("0x569")][0]), this[P("0x580")] = turf[P("0x2ec")](this[P("0x569")][1]), this[P("0x581")] = turf[P("0x2ec")](this.pointArray[2]), this[P("0x582")] = turf[P("0x11b")](this[P("0x57f")], this[P("0x580")]), this[P("0x583")] = turf[P("0x11b")](this.point2, this[P("0x581")]), this.drawMarker(), this[P("0x3f7")]();
      };

      t[P("0x5")].animation = function () {
        var t = this.viewer[P("0x10f")][P("0xa3")][P("0xef")],
            i = this[P("0x13b")].camera[P("0x8c")],
            r = t[P("0xd6")](i),
            n = Math[P("0x3e8")](1e5 * e[P("0x23")].toDegrees(r.latitude)) / 1e5,
            o = Math[P("0x3e8")](1e5 * e.Math[P("0x113")](r.longitude)) / 1e5;
        o == this[P("0x569")][1][0] && n == this[P("0x569")][1][1] ? (this[P("0x57e")][P("0x17c")](e[P("0x23")].toDegrees(this[P("0x13b")].camera[P("0x7f")])), 1e-12 <= this[P("0x583")] - e[P("0x23")].toDegrees(this.viewer[P("0x7e")].heading) ? (this[P("0x13b")][P("0x7e")][P("0x584")](0), this.viewer[P("0x7e")][P("0x585")](e[P("0x23")][P("0x119")]((this[P("0x583")] - this[P("0x57e")][0]) / 200))) : (this[P("0x57e")] = [], this[P("0x13b")][P("0x7e")][P("0x9c")]({
          destination: e.Cartesian3[P("0x1a1")](this[P("0x569")][1][0], this[P("0x569")][1][1], this[P("0x569")][1][2]),
          orientation: {
            heading: e.Math[P("0x119")](this[P("0x583")]),
            pitch: e[P("0x23")][P("0x119")](0)
          }
        }), this.viewer[P("0x7e")][P("0x584")](this.viewer[P("0x571")][P("0x57b")]))) : -1e-5 < o - this[P("0x569")][2][0] && -1e-5 < n - this[P("0x569")][2][1] ? this[P("0x13b")][P("0x7e")][P("0x584")](0) : this[P("0x13b")][P("0x7e")].moveForward(this[P("0x13b")][P("0x571")][P("0x57b")]);
      }, t[P("0x5")][P("0x3f7")] = function () {
        this.viewer[P("0x7e")].setView({
          destination: e.Cartesian3[P("0x1a1")](this[P("0x569")][0][0], this[P("0x569")][0][1], this[P("0x569")][0][2]),
          orientation: {
            heading: e[P("0x23")].toRadians(this.bearing1),
            pitch: e.Math[P("0x119")](0)
          }
        });
      }, t.prototype.drawMarker = function () {
        this[P("0x13b")].entities.add({
          position: e[P("0x11")][P("0x1a1")](this[P("0x569")][1][0], this[P("0x569")][1][1]),
          point: {
            pixelSize: 2,
            color: e[P("0x16a")][P("0x578")],
            outlineColor: e[P("0x16a")][P("0x2d5")],
            outlineWidth: 2
          }
        }), this[P("0x13b")][P("0x194")][P("0x6d")]({
          position: e.Cartesian3.fromDegrees(this[P("0x569")][2][0], this[P("0x569")][2][1]),
          point: {
            pixelSize: 2,
            color: e[P("0x16a")][P("0x578")],
            outlineColor: e[P("0x16a")].RED,
            outlineWidth: 2
          }
        });
      }, t[P("0x5")].play = function () {
        0 == this[P("0x13b")][P("0x194")][P("0x430")][P("0x0")] && this.drawMarker(), this[P("0x13b")][P("0x10f")].postRender[P("0x548")](this.animation, this), this[P("0x13b")].camera[P("0x9c")]({
          destination: e[P("0x11")][P("0x1a1")](this[P("0x569")][0][0], this[P("0x569")][0][1], this[P("0x569")][0][2]),
          orientation: {
            heading: e[P("0x23")].toRadians(this[P("0x582")]),
            pitch: e.Math.toRadians(0)
          }
        }), this[P("0x13b")].scene[P("0x564")][P("0x130")](this.animation, this);
      }, t.prototype[P("0x546")] = function () {
        this.viewer.scene[P("0x564")].removeEventListener(this[P("0x104")], this);
      }, t.prototype[P("0x547")] = function () {
        0 != this[P("0x13b")][P("0x194")]._entities[P("0x0")] ? (this[P("0x13b")][P("0x10f")][P("0x564")].removeEventListener(this[P("0x104")], this), this[P("0x13b")][P("0x10f")][P("0x564")].addEventListener(this.animation, this)) : this[P("0x13b")][P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this);
      }, t[P("0x5")].stop = function () {
        this[P("0x13b")][P("0x10f")][P("0x564")][P("0x548")](this[P("0x104")], this), this.viewer[P("0x194")].removeAll(), this[P("0x3f7")]();
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x586")] = function (t) {
        if (t[P("0x13b")] && t[P("0x587")] && t[P("0x588")] && t[P("0x0")] && t.position) {
          this[P("0x589")] = e[P("0x102")](t[P("0x58a")], 1), this[P("0x58b")] = e[P("0x102")](t[P("0x58c")], new e[P("0x16a")](0.5, 0.8, 1, 1)), this[P("0x58d")] = e.defaultValue(t[P("0x58e")], 0), this[P("0x58f")] = e.defaultValue(t[P("0x590")], 0), this._rotationZPerFrame = e[P("0x102")](t[P("0x591")], 0), this[P("0x592")] = e[P("0x102")](t.instanceName, "GeoCirclePipe"), this._startRadian = e.defaultValue(t.startRadian, 0), this._endRadian = e[P("0x102")](t[P("0x593")], 2 * Math.PI), this[P("0x594")] = !1, t.image ? (this._useImage = !0, this[P("0x595")] = t[P("0x475")]) : (this._useImage = !1, this[P("0x596")] = e[P("0x102")](t[P("0x169")], new e.Color(1, 0, 0, 1))), this[P("0x13c")] = t[P("0x13b")], this[P("0x306")] = this[P("0x13c")][P("0x10f")][P("0x17d")], t[P("0x8c")][P("0x0")] <= 2 && (t[P("0x8c")][2] = 0);
          var r,
              n,
              o = e[P("0x11")][P("0x1a1")](t[P("0x8c")][0], t[P("0x8c")][1], t[P("0x8c")][2]);
          n = this._useImage ? i(t.image, this[P("0x58b")]) : (r = this[P("0x596")], new e[P("0x212")]({
            fabric: {
              type: "Color",
              uniforms: {
                color: r,
                transparent: !0
              }
            }
          }));
          var a = e.Matrix4[P("0x597")](e.Transforms[P("0xbf")](o), new e[P("0x11")](0, 0, 0), new e[P("0x1b")]()),
              s = new e[P("0x598")]({
            length: t[P("0x0")],
            topRadius: t[P("0x587")],
            bottomRadius: t[P("0x588")],
            startRadian: this[P("0x599")],
            endRadian: this[P("0x59a")]
          }),
              x = new e[P("0x179")]({
            geometry: s,
            modelMatrix: a,
            id: this[P("0x592")]
          }),
              l = new e[P("0x226")]({
            geometryInstances: x,
            appearance: new e[P("0x59b")]({
              material: n,
              renderState: {
                depthTest: {
                  enabled: !1
                }
              }
            })
          });
          l[P("0x59c")] = !0, this._primitives[P("0x6d")](l), this._circlePipePrimitive = l, this._viewer.clock[P("0x59d")][P("0x130")](this[P("0x59e")], this);
        }
      };

      function i(t, i) {
        return new e.Material({
          fabric: {
            type: P("0x5a5"),
            uniforms: {
              image: t,
              color: i,
              transparent: !0
            }
          }
        });
      }

      t[P("0x5")][P("0x59e")] = function (t) {
        if (this[P("0x59f")]) {
          var i = this[P("0x59f")][P("0x4ac")],
              r = e[P("0x1b")].getTranslation(i, new e.Cartesian3());

          if (0 != r.x || 0 != r.y || 0 != r.z) {
            var n = e.Matrix3[P("0x5a0")](e[P("0x23")].toRadians(this._rotationXPerFrame)),
                o = e[P("0x1a")][P("0x5a1")](e.Math[P("0x119")](this[P("0x58f")])),
                a = e[P("0x1a")][P("0x5a2")](e[P("0x23")][P("0x119")](this[P("0x5a3")]));
            e[P("0x1b")].multiplyByMatrix3(i, n, i), e[P("0x1b")].multiplyByMatrix3(i, o, i), e[P("0x1b")][P("0x5a4")](i, a, i);
          }
        }
      }, t.prototype[P("0xf4")] = function () {
        this[P("0x13c")][P("0x571")][P("0x59d")].removeEventListener(this[P("0x59e")]), this._primitives[P("0x17f")](this[P("0x59f")]);
      }, e[P("0xf")](t.prototype, {
        rotationXPerFrame: {
          get: function get() {
            return this[P("0x58d")];
          },
          set: function set(e) {
            this._rotationXPerFrame = e;
          }
        },
        rotationYPerFrame: {
          get: function get() {
            return this[P("0x590")];
          },
          set: function set(e) {
            this[P("0x58f")] = e;
          }
        },
        rotationZPerFrame: {
          get: function get() {
            return this[P("0x5a3")];
          },
          set: function set(e) {
            this._rotationZPerFrame = e;
          }
        },
        image: {
          get: function get() {
            return this[P("0x595")];
          },
          set: function set(e) {
            this[P("0x595")] = e, this[P("0x59f")][P("0x16d")][P("0x19c")] = i(e, this[P("0x58b")]);
          }
        },
        imageColor: {
          get: function get() {
            return this[P("0x58b")];
          },
          set: function set(e) {
            this._imageColor = e, this._circlePipePrimitive[P("0x16d")][P("0x19c")] = i(this[P("0x595")], e);
          }
        },
        instanceName: {
          get: function get() {
            return this[P("0x592")];
          }
        }
      });
    }(window.Cesium), function (e) {
      var t = e.GeoCirclePipeCollection = function (t) {
        if (t[P("0x13b")] && t[P("0x587")] && t[P("0x588")] && t[P("0x0")] && t.position && t[P("0x5a6")] && !(t[P("0x5a6")] <= 0)) {
          this._circlePipeCollection = [], this[P("0x58b")] = e[P("0x102")](t[P("0x58c")], new e[P("0x16a")](0.5, 0.8, 1, 1)), this[P("0x13c")] = t.viewer, this._onMouseEnter = t[P("0x5a7")], this._onMouseLeave = t[P("0x5a8")], this[P("0x5a9")] = t[P("0x5aa")], this[P("0x5ab")] = void 0, this._rotationXPerFrame = e[P("0x102")](t[P("0x58e")], 0), this[P("0x58f")] = e[P("0x102")](t[P("0x590")], 0), this[P("0x5a3")] = e.defaultValue(t[P("0x591")], 0), this[P("0x5ac")] = new e.ScreenSpaceEventHandler(this[P("0x13c")][P("0x10f")][P("0x48")]), this[P("0x5ad")] = new e[P("0x15f")](this[P("0x13c")][P("0x10f")].canvas);

          for (var r = 2 * Math.PI, n = t[P("0x5a6")], o = r / n, a = 0; a < n; a++) {
            var s = a * o,
                x = (a + 1) * o,
                l = new e.GeoCirclePipe({
              viewer: t[P("0x13b")],
              topRadius: t.topRadius,
              bottomRadius: t[P("0x588")],
              length: t[P("0x0")],
              image: t[P("0x5ae")][a],
              imageColor: this[P("0x58b")],
              position: t[P("0x8c")],
              rotationZPerFrame: this[P("0x5a3")],
              rotationXPerFrame: this._rotationXPerFrame,
              rotationYPerFrame: this[P("0x58f")],
              instanceName: t[P("0x5af")][a],
              startRadian: s,
              endRadian: x
            });
            this[P("0x5b0")][P("0x17c")](l);
          }

          var c = this;
          this[P("0x5ad")].setInputAction(function (e) {
            if (c._onMouseLeftClick) {
              var t = c[P("0x13c")][P("0x10f")][P("0xa4")](e[P("0x8c")]);

              if (t) {
                var r = i(t.id, c._circlePipeCollection);
                c[P("0x5a9")](r);
              }
            }
          }, e[P("0x161")][P("0x17e")]), this[P("0x5ac")].setInputAction(function (e) {
            if (c[P("0x5b1")] || c[P("0x5b2")]) {
              var t = c[P("0x13c")].scene[P("0xa4")](e[P("0x64")]);

              if (t) {
                var r = i(t.id, c[P("0x5b0")]);
                r ? (c[P("0x5b1")] && (c[P("0x5ab")] && (c[P("0x5b2")](c._previousEnter), c[P("0x5ab")] = void 0), c[P("0x5b1")](r)), c[P("0x5ab")] = r) : (c[P("0x5ab")] && c[P("0x5b2")] && c[P("0x5b2")](c[P("0x5ab")]), c._previousEnter = void 0);
              }
            }
          }, e[P("0x161")][P("0x163")]);
        }
      };

      function i(e, t) {
        for (var i = 0; i < t[P("0x0")]; i++) {
          var r = t[i];
          if (r[P("0x5b3")] == e) return r;
        }
      }

      t[P("0x5")][P("0xf4")] = function () {
        for (var e = 0; e < this[P("0x5b0")][P("0x0")]; e++) {
          this[P("0x5b0")][e][P("0xf4")]();
        }

        this[P("0x5b0")][P("0x0")] = 0, this[P("0x5ac")][P("0xf4")](), this[P("0x5ad")][P("0xf4")](), this[P("0x5ac")] = void 0, this[P("0x5ad")] = void 0;
      }, e[P("0xf")](t[P("0x5")], {
        rotationXPerFrame: {
          get: function get() {
            return this[P("0x58d")];
          },
          set: function set(e) {
            this[P("0x58d")] = e;

            for (var t = 0; t < this[P("0x5b0")][P("0x0")]; t++) {
              this[P("0x5b0")][t].rotationXPerFrame = e;
            }
          }
        },
        rotationYPerFrame: {
          get: function get() {
            return this[P("0x590")];
          },
          set: function set(e) {
            this[P("0x58f")] = e;

            for (var t = 0; t < this[P("0x5b0")][P("0x0")]; t++) {
              this[P("0x5b0")][t][P("0x590")] = e;
            }
          }
        },
        rotationZPerFrame: {
          get: function get() {
            return this[P("0x5a3")];
          },
          set: function set(e) {
            this._rotationZPerFrame = e;

            for (var t = 0; t < this[P("0x5b0")].length; t++) {
              this[P("0x5b0")][t].rotationZPerFrame = e;
            }
          }
        }
      });
    }(window[P("0xfd")]), function (e) {
      var t = e.GeoCylinderApertureSpreadEffect = function (t) {
        t = t || {};
        var i = e[P("0x13")][P("0x1a1")].apply(this, t[P("0x11a")]);
        this[P("0x5b4")] = e[P("0x11")].fromRadians(i[P("0x112")], i[P("0x114")], i[P("0x8b")]), this._maxRadius = t[P("0x181")], this._height = t.height, this[P("0x5b5")] = null, this[P("0x5b6")] = null, this[P("0x5b7")] = !1, this[P("0x5b8")] = null, this[P("0x4a4")] = null, this._color = t[P("0x169")] ? t[P("0x169")][P("0x6e")]() : new e.Color(0.5, 0.8, 1, 1), this[P("0x5b9")] = t[P("0x539")] ? t[P("0x539")] : 1, this[P("0x5b9")] *= 4, this[P("0x5ba")] = !t.actived || t[P("0x5bb")], this._time = 0, this[P("0x5bc")] = 0, this._life = this[P("0x5bd")] / this[P("0x5b9")], this[P("0x5be")] = 2 * this[P("0x217")] / this[P("0x5bf")], this._modelTransform = null, this[P("0x5c0")] = t.metallicFactor ? t[P("0x5c1")] : 0.115, this[P("0x5c2")] = t[P("0x5c3")] ? t.roughnessFactor : 0.918, this[P("0x5c4")] = t[P("0x5c5")] ? t[P("0x5c5")][P("0x6e")]() : new e[P("0x11")](0.6, 0.6, 0.6), this[P("0x5c6")]();
      };

      e[P("0xf")](t[P("0x5")], {
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          },
          set: function set(e) {
            this[P("0x5ba")] = e;
          }
        }
      }), t[P("0x5")][P("0x5c6")] = function () {
        this[P("0x5c7")] = e[P("0x1f")][P("0xbf")](this[P("0x5b4")]);
      }, t[P("0x5")][P("0xd2")] = function (e) {
        if (this._actived && (this[P("0x5c8")](), this._fetchGeometry(e), this[P("0x5c9")](e), this[P("0x5b5")] && this[P("0x5b8")])) {
          var t = e[P("0x5ca")];
          t[P("0x17c")](this[P("0x5b5")]), t[P("0x17c")](this[P("0x5b6")]);
        }
      }, t[P("0x5")][P("0xf4")] = function () {
        this[P("0x5ba")] = !1, this._va && (this[P("0x5b8")][P("0xf4")](), this[P("0x5b8")] = null), this[P("0x5b5")] && (this[P("0x5b5")][P("0x5cb")] = null, this[P("0x5b5")][P("0x5cc")] && (this._drawCommandAlpha[P("0x5cc")][P("0xf4")](), this[P("0x5b5")][P("0x5cc")] = null), this._drawCommandAlpha.owner = null, this[P("0x5b5")] = null), this._drawCommandOpaque && (this[P("0x5b6")][P("0x5cb")] = null, this[P("0x5b6")].shaderProgram && (this._drawCommandOpaque[P("0x5cc")].destroy(), this[P("0x5b6")][P("0x5cc")] = null), this[P("0x5b6")][P("0x5cd")] = null, this._drawCommandOpaque = null);
      }, t[P("0x5")]._fetchGeometry = function (e) {
        this[P("0x5ce")](e);
      }, t[P("0x5")][P("0x5c8")] = function () {
        this[P("0x5cf")] >= this[P("0x5bf")] && (this[P("0x5cf")] = 0);
        var t = e[P("0x5d0")]() / 1e3;
        0 < this[P("0x5bc")] ? (this._time += t - this[P("0x5bc")], this[P("0x5bc")] = t, this[P("0x5cf")] > this[P("0x5bf")] && (this[P("0x5cf")] = this._life)) : this[P("0x5bc")] = t;
      }, t[P("0x5")][P("0x5c9")] = function (e) {
        this[P("0x5d1")](e), this[P("0x5d2")](e);
      }, t.prototype[P("0x5d1")] = function (t) {
        var s = t.context,
            x = this;

        if (!this[P("0x5b5")]) {
          var l = this[P("0x5b5")] = new e[P("0x5d3")]();
          l[P("0x5d4")] = e.Pass.TRANSLUCENT, l[P("0x5cd")] = this, l[P("0x4ac")] = this[P("0x5c7")], l[P("0x5d5")] = e[P("0x5d6")][P("0x5d7")]({
            cull: {
              enabled: !1
            },
            depthTest: {
              enabled: !0,
              func: e[P("0x5d8")][P("0x5d9")]
            },
            depthMask: !1,
            blending: e[P("0x5da")][P("0x5db")]
          }), l[P("0x5cc")] = e[P("0x5dc")][P("0x5d7")]({
            context: s,
            defines: [P("0x5dd")],
            vertexShaderSource: o,
            fragmentShaderSource: a,
            attributeLocations: {
              aPoint: 0,
              aNormal: 1,
              aT: 2
            }
          }), l[P("0x5de")] = {
            u_color: function u_color() {
              return x[P("0x596")];
            },
            u_metallicFactor: function u_metallicFactor() {
              return x[P("0x5c0")];
            },
            u_roughnessFactor: function u_roughnessFactor() {
              return x[P("0x5c2")];
            },
            u_emissiveFactor: function u_emissiveFactor() {
              return x[P("0x5c4")];
            },
            u_normalMatrix: function u_normalMatrix() {
              return e[P("0x1b")][P("0x5df")](t[P("0x7e")][P("0x5e0")], x[P("0x5c7")], i), e[P("0x1b")][P("0x4e2")](i, r), e[P("0x1b")][P("0x5e1")] ? e[P("0x1b")][P("0x5e1")](r, n) : e.Matrix4[P("0x5e2")] ? e.Matrix4[P("0x5e2")](r, n) : (n[0] = r[0], n[1] = r[1], n[2] = r[2], n[3] = r[4], n[4] = r[5], n[5] = r[6], n[6] = r[8], n[7] = r[9], n[8] = r[10]), e[P("0x1a")][P("0x5e3")](n, n);
            }
          };
        }

        this[P("0x5b5")][P("0x5cb")] = this[P("0x5b8")], this[P("0x5b5")].boundingVolume = this[P("0x4a4")];
      };
      var i = new e[P("0x1b")](),
          r = new e[P("0x1b")](),
          n = new e[P("0x1a")]();
      t[P("0x5")][P("0x5d2")] = function (t) {
        var a = t.context,
            x = this;

        if (!this[P("0x5b6")]) {
          var l = this._drawCommandOpaque = new e[P("0x5d3")]();
          l[P("0x5d4")] = e[P("0x5e4")][P("0x5e5")], l[P("0x5cd")] = this, l.modelMatrix = this._modelTransform, l.renderState = e[P("0x5d6")][P("0x5d7")]({
            cull: {
              enabled: !1
            },
            depthTest: {
              enabled: !0,
              func: e[P("0x5d8")].LEQUAL
            },
            depthMask: !1
          }), l[P("0x5cc")] = e[P("0x5dc")][P("0x5d7")]({
            context: a,
            defines: ["HDR"],
            vertexShaderSource: o,
            fragmentShaderSource: s,
            attributeLocations: {
              aPoint: 0,
              aNormal: 1,
              aT: 2
            }
          }), l[P("0x5de")] = {
            u_color: function u_color() {
              return x._color;
            },
            u_metallicFactor: function u_metallicFactor() {
              return x[P("0x5c0")];
            },
            u_roughnessFactor: function u_roughnessFactor() {
              return x._roughnessFactor;
            },
            u_emissiveFactor: function u_emissiveFactor() {
              return x._emissiveFactor;
            },
            u_normalMatrix: function u_normalMatrix() {
              return e[P("0x1b")][P("0x5df")](t[P("0x7e")][P("0x5e0")], x[P("0x5c7")], i), e[P("0x1b")][P("0x4e2")](i, r), e.Matrix4[P("0x5e1")] ? e.Matrix4[P("0x5e1")](r, n) : e.Matrix4[P("0x5e2")] ? e[P("0x1b")][P("0x5e2")](r, n) : (n[0] = r[0], n[1] = r[1], n[2] = r[2], n[3] = r[4], n[4] = r[5], n[5] = r[6], n[6] = r[8], n[7] = r[9], n[8] = r[10]), e[P("0x1a")][P("0x5e3")](n, n);
            }
          };
        }

        this[P("0x5b6")][P("0x5cb")] = this._va, this[P("0x5b6")][P("0x4bc")] = this[P("0x4a4")];
      }, t[P("0x5")]._updateVA = function (t) {
        this[P("0x5b8")] && (this._va[P("0xf4")](), this[P("0x5b8")] = null);
        var i = e[P("0x23")][P("0xab")],
            r = this[P("0x5cf")] * this[P("0x5b9")];

        if (!(r < 1e-5)) {
          var n = 0;
          if (this[P("0x5cf")] / this[P("0x5bf")] < 0.5) n = this[P("0x5be")] * this[P("0x5cf")];else {
            var o = this._life - this[P("0x5cf")];
            n = this[P("0x5be")] * o;
          }
          var a = this[P("0x5e6")](r);

          if (!(n < 1e-5)) {
            for (var s, x, l, c, u = t.context, h = i / a, f = 2 * a, d = 3 * f, g = e.ComponentDatatype[P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 3 * f), p = e.ComponentDatatype.createTypedArray(e[P("0x5e8")][P("0x5e9")], 3 * f), m = e.ComponentDatatype[P("0x5e7")](e[P("0x5e8")][P("0x5e9")], f), b = e.ComponentDatatype[P("0x5e7")](e[P("0x5e8")].UNSIGNED_SHORT, d), v = 0, C = 0, y = 0, _ = 0, A = 0; A < a; A++) {
              s = A * h, x = r * Math.cos(s), l = r * Math.sin(s), c = 0, g[v++] = x, g[v++] = l, g[v++] = c, p[C++] = x, p[C++] = l, p[C++] = 0, m[y++] = 0, c = n, g[v++] = x, g[v++] = l, g[v++] = c, p[C++] = x, p[C++] = l, p[C++] = 0, b[_++] = 2 * A, b[_++] = (A + 1) % a * 2, b[_++] = 2 * A + 1, b[_++] = 2 * A + 1, b[_++] = (A + 1) % a * 2, b[_++] = (A + 1) % a * 2 + 1, m[y++] = 1;
            }

            var I = e[P("0x5ea")][P("0x5eb")]({
              context: u,
              typedArray: g,
              usage: e.BufferUsage[P("0x4d6")]
            }),
                w = [];
            w[P("0x17c")]({
              index: 0,
              vertexBuffer: I,
              componentsPerAttribute: 3,
              componentDatatype: e.ComponentDatatype[P("0x5e9")],
              offsetInBytes: 0,
              strideInBytes: 12,
              normalize: !1
            });
            var G = e[P("0x5ea")].createVertexBuffer({
              context: u,
              typedArray: p,
              usage: e[P("0x4d5")][P("0x4d6")]
            });
            w[P("0x17c")]({
              index: 1,
              vertexBuffer: G,
              componentsPerAttribute: 3,
              componentDatatype: e[P("0x5e8")][P("0x5e9")],
              offsetInBytes: 0,
              strideInBytes: 12,
              normalize: !1
            });
            var E = e[P("0x5ea")][P("0x5eb")]({
              context: u,
              typedArray: m,
              usage: e[P("0x4d5")][P("0x4d6")]
            });
            w.push({
              index: 2,
              vertexBuffer: E,
              componentsPerAttribute: 1,
              componentDatatype: e[P("0x5e8")].FLOAT,
              offsetInBytes: 0,
              strideInBytes: 4,
              normalize: !1
            });
            var S = e[P("0x5ea")][P("0x5ec")]({
              context: u,
              typedArray: b,
              usage: e.BufferUsage.STATIC_DRAW,
              indexDatatype: e.IndexDatatype[P("0x5ed")]
            });
            this._va = new e[P("0x5ee")]({
              context: u,
              attributes: w,
              indexBuffer: S
            }), this[P("0x5ef")](r, n);
          }
        }
      }, t[P("0x5")][P("0x5e6")] = function (t) {
        var i = 10 < t ? 1 / t : 0.1,
            r = 2 * Math[P("0x97")](i);
        return Math[P("0x5f0")](e.Math[P("0xab")] / r);
      }, t.prototype[P("0x5ef")] = function (t, i) {
        var r = Math[P("0xca")](t * t + i + i);
        this[P("0x4a4")] = new e[P("0x5f1")](e[P("0x11")].ZERO, r + 1), e[P("0x5f1")].transform(this[P("0x4a4")], this._modelTransform, this._boundingVolume);
      };
      var o = P("0x5f2") + P("0x5f3") + P("0x5f4") + P("0x5f5") + P("0x5f6") + P("0x5f7") + P("0x5f8") + P("0x5f9") + P("0x5fa") + P("0x5fb") + "   gl_Position = czm_modelViewProjection * vec4(aPoint, 1.0);\n   v_t = aT;\n}",
          a = P("0x5fc") + P("0x5fd") + P("0x5fe") + P("0x5ff") + P("0x5f6") + P("0x5f7") + P("0x5f8") + P("0x600") + P("0x601") + "{\n" + P("0x602") + "}\n" + P("0x603") + "{\n    float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;\n" + P("0x604") + "}\n" + P("0x605") + "{\n" + P("0x606") + "}\n" + P("0x607") + "{\n" + P("0x608") + P("0x609") + P("0x60a") + "}\n" + P("0x60b") + "{\n" + P("0x60c") + "}\n" + P("0x60d") + "{\n" + P("0x60e") + P("0x60f") + P("0x610") + "    return linearIn;\n" + P("0x611") + "}\n" + P("0x5f9") + "   vec3 n = normalize(v_normalEC);\n" + P("0x612") + P("0x613") + P("0x614") + P("0x615") + P("0x616") + P("0x617") + P("0x614") + P("0x618") + P("0x619") + P("0x614") + P("0x61a") + P("0x61b") + P("0x61c") + "   vec3 v = -normalize(v_positionEC);\n" + P("0x61d") + "   vec3 l = normalize(czm_sunDirectionEC);\n" + P("0x61e") + P("0x61f") + "   float NdotV = abs(dot(n, v)) + 0.001;\n" + P("0x620") + "   float LdotH = clamp(dot(l, h), 0.0, 1.0);\n" + P("0x621") + P("0x622") + P("0x623") + "   vec3 specularColor = mix(f0, baseColor, metalness);\n" + P("0x624") + P("0x625") + P("0x626") + P("0x627") + "   vec3 F = fresnelSchlick2(r0, r90, VdotH);\n" + P("0x628") + P("0x629") + P("0x62a") + P("0x62b") + P("0x62c") + P("0x62d") + P("0x62e") + P("0x62f") + "}",
          s = "uniform vec4 u_color;\nuniform float u_metallicFactor;\n" + P("0x5fe") + "uniform vec3 u_emissiveFactor;\n" + P("0x5f6") + P("0x5f7") + "varying float v_t;\n" + P("0x600") + "vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) \n{\n" + P("0x602") + "}\n" + P("0x603") + "{\n" + P("0x630") + "    return NdotV / (NdotV * (1.0 - k) + k);\n}\nfloat smithVisibilityGGX(float roughness, float NdotL, float NdotV) \n{\n" + P("0x606") + "}\n" + P("0x607") + "{\n    float roughnessSquared = roughness * roughness;\n" + P("0x609") + P("0x60a") + "}\n" + P("0x60b") + "{\n" + P("0x60c") + "}\n" + P("0x60d") + "{\n" + P("0x60e") + "    return pow(linearIn, vec3(1.0/2.2));\n#else \n" + P("0x631") + "#endif \n}\n" + P("0x5f9") + P("0x632") + P("0x633") + P("0x612") + P("0x613") + P("0x614") + P("0x615") + P("0x634") + P("0x61a") + P("0x61b") + P("0x61c") + P("0x635") + P("0x61d") + P("0x636") + P("0x61e") + "   float NdotL = clamp(dot(n, l), 0.001, 1.0);\n   float NdotV = abs(dot(n, v)) + 0.001;\n" + P("0x620") + P("0x637") + P("0x621") + P("0x622") + P("0x623") + P("0x638") + P("0x624") + P("0x625") + "   vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));\n" + P("0x627") + P("0x639") + P("0x628") + P("0x629") + "   vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);\n   vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV);\n" + P("0x62c") + "   color += u_emissiveFactor;\n   color = LINEARtoSRGB(color);\n" + P("0x62f") + "}";
    }(window[P("0xfd")]), function (e) {
      function t(t) {
        if (t = e[P("0x102")](t, e[P("0x102")].EMPTY_OBJECT), !e[P("0x14")](t.viewer)) throw new DeveloperError(P("0x63a"));
        if (this[P("0x13c")] = t[P("0x13b")], !e.defined(t[P("0x11a")])) throw new DeveloperError("center is required.");
        this[P("0x5b4")] = e[P("0x102")](t.center, []);
        var i = e[P("0x102")](this[P("0x5b4")][2], e.GeoDynamicCircle[P("0x63b")]);
        this[P("0x217")] = i, this[P("0x63c")] = e[P("0x102")](t[P("0x181")], e[P("0x63d")].DEFAULT_RADIUS), this[P("0x596")] = e[P("0x102")](t[P("0x169")], e[P("0x63d")].DEFAULT_COLOR);
        var r = this[P("0x5b4")][0],
            n = this[P("0x5b4")][1],
            o = e[P("0x102")](this._radius, 0),
            a = this[P("0x596")];
        this[P("0x63e")] = e[P("0x102")](t[P("0x63f")], e[P("0x63d")][P("0x640")]), this[P("0x641")] = null, this[P("0x642")] = null, this[P("0x643")](r, n, i, o, a), this._isShow = e[P("0x102")](t[P("0x644")], !0), this[P("0x645")](this[P("0x646")]);
      }

      t.prototype[P("0xf4")] = function () {
        if (this[P("0x13c")]) {
          var e = this[P("0x13c")].entities;
          e[P("0x17f")](this[P("0x641")]), e[P("0x17f")](this._waveEllipse);
        }
      }, t[P("0x5")].setShow = function (t) {
        this._isShow = e.defaultValue(t, !0), this[P("0x641")][P("0x221")] = t, this[P("0x642")][P("0x221")] = t;
      }, t[P("0x5")][P("0x647")] = function (t) {
        this._color = e[P("0x102")](t, e.GeoDynamicCircle[P("0x648")]), this._bottomEllipse[P("0x649")][P("0x19c")][P("0x169")] = this[P("0x596")], this[P("0x642")][P("0x649")][P("0x19c")][P("0x169")] = this[P("0x596")];
      }, t[P("0x5")][P("0x64a")] = function () {
        return this[P("0x596")];
      }, t[P("0x5")][P("0x64b")] = function (t) {
        this[P("0x63c")] = e[P("0x102")](t, e[P("0x63d")][P("0x64c")]), this._bottomEllipse[P("0x649")][P("0x64d")] = this[P("0x63c")], this._bottomEllipse[P("0x649")][P("0x64d")] = this[P("0x63c")], this._waveEllipse[P("0x649")][P("0x64d")] = this[P("0x63c")], this[P("0x642")][P("0x649")][P("0x64d")] = this._radius;
      }, t.prototype[P("0x64e")] = function () {
        return this[P("0x63c")];
      }, t.prototype[P("0x64f")] = function (t) {
        if (!e.defined(t)) throw new DeveloperError(P("0x650"));
        this[P("0x641")][P("0x8c")] = position, this._waveEllipse[P("0x8c")] = position, this[P("0x5b4")] = position;
      }, t[P("0x5")][P("0x643")] = function (t, i, r, n, o) {
        var a = this[P("0x13c")],
            s = e[P("0x23")][P("0x119")](30),
            x = 0;

        if (!this[P("0x641")]) {
          var l = a[P("0x194")][P("0x6d")]({
            position: e[P("0x11")][P("0x1a1")](t, i, r),
            ellipse: {
              classificationType: this._classificationType,
              semiMinorAxis: n,
              semiMajorAxis: n,
              material: new e[P("0x651")]({
                color: o,
                image: function () {
                  var e = document.createElement(P("0x48"));
                  e.width = 512, e[P("0x8b")] = 512;
                  var t = e.getContext("2d"),
                      i = t.createRadialGradient(256, 256, 0, 256, 256, 256);
                  return i.addColorStop(0.1, P("0x653")), i.addColorStop(0.2, P("0x654")), i[P("0x479")](0.3, P("0x655")), i[P("0x479")](0.5, "rgba(255, 255, 255, 0.0)"), i[P("0x479")](0.9, P("0x656")), i.addColorStop(1, P("0x653")), t[P("0x657")](0, 0, 512, 512), t[P("0x658")](), t[P("0x659")](256, 256, 256, 0, 2 * Math.PI, !0), t[P("0x484")] = i, t.fill(), t[P("0x65a")](), e;
                }(),
                transparent: !0
              })
            }
          });
          this[P("0x641")] = l;
        }

        if (!this._waveEllipse) {
          var c = a[P("0x194")][P("0x6d")]({
            position: e[P("0x11")].fromDegrees(t, i, r),
            name: "Wave ellipse on surface",
            ellipse: {
              classificationType: this[P("0x63e")],
              semiMinorAxis: new e.CallbackProperty(h, !1),
              semiMajorAxis: new e[P("0x652")](h, !1),
              rotation: new e[P("0x652")](u, !1),
              stRotation: new e[P("0x652")](u, !1),
              material: new e[P("0x651")]({
                color: o,
                image: function () {
                  var e = document.createElement("canvas");
                  e[P("0x19a")] = 512, e[P("0x8b")] = 512;
                  var t = e[P("0x476")]("2d");
                  return t[P("0x657")](0, 0, 512, 512), t[P("0x65b")] = P("0x65c"), t[P("0x65d")]([80, 80]), t[P("0x197")] = 30, t[P("0x659")](256, 256, 241, 0, 2 * Math.PI, !0), t[P("0x65e")](), e;
                }(),
                transparent: !0
              })
            }
          });
          this[P("0x642")] = c;
        }

        function u() {
          return s += 0.05;
        }

        function h() {
          return n <= (x += 0.01 * n) && (x = 0), x;
        }
      }, e.GeoDynamicCircle = t, e.GeoDynamicCircle.DEFAULT_HEIGHT = 0, e[P("0x63d")][P("0x640")] = e.ClassificationType[P("0x17b")], e[P("0x63d")][P("0x64c")] = 25e3, e.GeoDynamicCircle[P("0x648")] = e.Color[P("0x2cf")];
    }(window[P("0xfd")]), function (e) {
      function t(t) {
        if (t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), !e[P("0x14")](t[P("0x13b")])) throw new DeveloperError("viewer is required.");
        if (this._viewer = t[P("0x13b")], !e[P("0x14")](t[P("0x11a")])) throw new DeveloperError(P("0x65f"));
        this._center = e[P("0x102")](t[P("0x11a")], []);
        var i = this[P("0x217")] = e[P("0x102")](this._center[2], e.GeoDynamicCylinder[P("0x63b")]),
            r = this[P("0x660")] = e[P("0x102")](t[P("0x0")], e[P("0x661")][P("0x662")]),
            n = this[P("0x663")] = e[P("0x102")](t[P("0x587")], e[P("0x661")][P("0x64c")]),
            o = this[P("0x664")] = e[P("0x102")](t[P("0x588")], e[P("0x661")][P("0x64c")]),
            a = this._particlesColor = e[P("0x102")](t[P("0x665")], e[P("0x661")][P("0x666")]),
            s = this[P("0x667")] = e[P("0x102")](t[P("0x668")], e.GeoDynamicCylinder.DEFAULT_CYLINDER_COLOR);
        this._particlesImageUrl = t[P("0x669")];
        var x = this[P("0x5b4")][0],
            l = this[P("0x5b4")][1];
        this[P("0x66a")] = null, this._particlesPrimitive = null, this[P("0x66b")](x, l, i, n, o, r, a, s);
      }

      t[P("0x5")][P("0xf4")] = function () {
        if (this[P("0x13c")]) {
          var e = this[P("0x13c")][P("0x10f")].primitives;
          e[P("0x17f")](this[P("0x66a")]), e[P("0x17f")](this[P("0x66c")]);
        }
      }, t[P("0x5")][P("0x66b")] = function (t, i, r, n, o, a, s, x) {
        var l = this._viewer,
            c = new e[P("0x598")]({
          length: a,
          topRadius: n,
          bottomRadius: o
        }),
            u = P("0x66d") + x[P("0x66e")] + ", " + x[P("0x66f")] + ", " + x[P("0x670")] + ", " + x[P("0x671")] + P("0x672"),
            h = new e[P("0x212")]({
          translucent: !1,
          fabric: {
            type: "Color"
          }
        }),
            f = new e[P("0x59b")]({
          fragmentShaderSource: u,
          translucent: !0,
          closed: !0,
          material: h
        }),
            d = new e[P("0x226")]({
          geometryInstances: new e[P("0x179")]({
            geometry: c,
            modelMatrix: e[P("0x1b")][P("0x597")](e[P("0x1f")][P("0xbf")](e[P("0x11")][P("0x1a1")](t, i)), new e[P("0x11")](0, 0, r), new e.Matrix4()),
            id: P("0x673"),
            attributes: {
              color: e[P("0x184")].fromColor(x)
            }
          }),
          appearance: f
        });

        if (l[P("0x10f")][P("0x17d")][P("0x6d")](d), this[P("0x66a")] = d, this[P("0x674")]) {
          var g = new e[P("0x598")]({
            length: a,
            topRadius: 1.6 * n,
            bottomRadius: 1.6 * o
          }),
              p = new e[P("0x212")]({
            fabric: {
              type: P("0x5a5"),
              uniforms: {
                image: this[P("0x674")],
                color: s,
                transparent: !0
              }
            }
          }),
              m = (u = P("0x675") + s[P("0x66e")] + ", " + s[P("0x66f")] + ", " + s[P("0x670")] + ", " + s.alpha + P("0x676"), P("0x677")),
              b = new e[P("0x59b")]({
            fragmentShaderSource: u,
            vertexShaderSource: m,
            material: p
          }),
              v = new e.Primitive({
            geometryInstances: new e[P("0x179")]({
              geometry: g,
              modelMatrix: e[P("0x1b")][P("0x597")](e[P("0x1f")][P("0xbf")](e[P("0x11")][P("0x1a1")](t, i)), new e.Cartesian3(0, 0, r), new e.Matrix4()),
              id: P("0xef"),
              attributes: {
                color: e[P("0x184")].fromColor(s)
              }
            }),
            appearance: b
          });
          this[P("0x66c")] = l.scene[P("0x17d")].add(v);
        }
      }, e[P("0x661")] = t, e[P("0x661")][P("0x63b")] = 0, e[P("0x661")][P("0x662")] = 1e6, e[P("0x661")][P("0x64c")] = 25e3, e[P("0x661")][P("0x666")] = e[P("0x16a")].WHITE, e[P("0x661")][P("0x678")] = e[P("0x16a")][P("0x679")];
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x67a")] = function (t, i) {
        return this[P("0x13b")] = t[P("0x13b")], this[P("0x67b")] = t[P("0x67b")], this.dataOptions = t.dataOptions, this.defaults = {
          minCanvasSize: 700,
          maxCanvasSize: 2e3,
          useEntities: !0,
          radiusFactor: 60,
          spacingFactor: 1.5,
          maxOpacity: 0.8,
          minOpacity: 0.1,
          blur: 0.85,
          gradient: {
            0.3: "blue",
            0.65: "yellow",
            0.8: P("0x67c"),
            0.95: P("0x66e")
          }
        }, this[P("0x67b")][P("0x67d")] = e.defaultValue(this.heatmapOptions[P("0x67d")], this[P("0x67e")][P("0x67d")]), this[P("0x67b")][P("0x67f")] = e[P("0x102")](this[P("0x67b")][P("0x67f")], this[P("0x67e")][P("0x67f")]), this[P("0x67b")][P("0x680")] = e.defaultValue(this[P("0x67b")][P("0x680")], this[P("0x67e")][P("0x680")]), this[P("0x67b")][P("0x681")] = e.defaultValue(this[P("0x67b")][P("0x681")], this[P("0x67e")].minOpacity), this[P("0x67b")].blur = e.defaultValue(this[P("0x67b")].blur, this[P("0x67e")].blur), this;
      };

      t.prototype[P("0x682")] = function (e) {
        if (e && e[P("0x33a")] && 0 < e[P("0x33a")][P("0x0")] && e[P("0x33a")][0][P("0x180")] && e[P("0x33a")][0][P("0x180")][P("0x2ed")]) {
          for (var t = {
            west: e[P("0x33a")][0][P("0x180")][P("0x2ed")][0],
            south: e.features[0][P("0x180")][P("0x2ed")][1],
            east: e[P("0x33a")][0][P("0x180")][P("0x2ed")][0],
            north: e[P("0x33a")][0][P("0x180")].coordinates[1]
          }, i = 0; i < e[P("0x33a")][P("0x0")]; i++) {
            var r = e[P("0x33a")][i][P("0x180")].coordinates[0],
                n = e[P("0x33a")][i][P("0x180")][P("0x2ed")][1];
            t[P("0x2a9")] = r > t.west ? t.west : r, t[P("0x2aa")] = r > t[P("0x2aa")] ? r : t[P("0x2aa")], t[P("0x2ab")] = n > t[P("0x2ab")] ? t[P("0x2ab")] : n, t[P("0x2ac")] = n > t[P("0x2ac")] ? n : t[P("0x2ac")];
          }

          return t;
        }

        return !1;
      }, t[P("0x5")][P("0x683")] = function (e, t, i) {
        var r = document[P("0x15c")](P("0x15d"));
        return i && r.setAttribute("id", i), r[P("0x21b")]("style", P("0x684") + e + P("0x685") + t + "px; margin: 0px; display: none;"), document[P("0x686")][P("0x167")](r), r;
      }, t[P("0x5")][P("0x687")] = function (t) {
        var i = t._heatmap[P("0x688")](),
            r = new e[P("0x10c")]({
          url: i,
          rectangle: t[P("0x689")]
        });

        return r[P("0x68a")] = new e[P("0x68b")]({
          rectangleSouthwestInMeters: new e[P("0x10")](t[P("0x68c")][P("0x2a9")], t[P("0x68c")][P("0x2ab")]),
          rectangleNortheastInMeters: new e[P("0x10")](t[P("0x68c")][P("0x2aa")], t._mbounds[P("0x2ac")])
        }), r;
      }, t.prototype[P("0x68d")] = function (e) {
        for (var t = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", r = 0; r < (e || 8); r++) {
          t += i[P("0x68e")](Math[P("0x3e8")](Math[P("0x266")]() * i[P("0x0")]));
        }

        return t;
      };
      var i = new e[P("0x68f")]();
      t[P("0x5")][P("0x690")] = function (t) {
        var r = i[P("0x5a")](e.Cartographic[P("0x1a1")](t.x, t.y));
        return {
          x: r.x,
          y: r.y
        };
      }, t[P("0x5")][P("0x691")] = function (t) {
        var r = i.project(e[P("0x13")][P("0x1a1")](t[P("0x2a9")], t[P("0x2ab")])),
            n = i[P("0x5a")](e[P("0x13")][P("0x1a1")](t[P("0x2aa")], t.north));
        return {
          north: n.y,
          east: n.x,
          south: r.y,
          west: r.x
        };
      }, t.prototype[P("0x692")] = function (t) {
        var r = i[P("0xbe")](new e[P("0x11")](t.x, t.y));
        return {
          x: r[P("0x112")],
          y: r[P("0x114")]
        };
      }, t.prototype[P("0x693")] = function (t) {
        var r = i[P("0xbe")](new e.Cartesian3(t[P("0x2a9")], t[P("0x2ab")])),
            n = i[P("0xbe")](new e[P("0x11")](t[P("0x2aa")], t.north));
        return {
          north: this[P("0x694")](n.latitude),
          east: this.rad2deg(n[P("0x112")]),
          south: this[P("0x694")](r[P("0x114")]),
          west: this[P("0x694")](r[P("0x112")])
        };
      }, t[P("0x5")][P("0x695")] = function (e) {
        return e * (Math.PI / 180);
      }, t.prototype[P("0x694")] = function (e) {
        return e / (Math.PI / 180);
      }, t[P("0x5")].wgs84PointToHeatmapPoint = function (e) {
        return this.mercatorPointToHeatmapPoint(this[P("0x690")](e));
      }, t[P("0x5")][P("0x696")] = function (e) {
        var t = {};
        return t.x = Math[P("0x5f0")]((e.x - this[P("0x697")]) / this[P("0x698")] + this._spacing), t.y = Math.round((e.y - this._yoffset) / this[P("0x698")] + this[P("0x699")]), t.y = this.height - t.y, t;
      }, t[P("0x5")]._setWidthAndHeight = function (e) {
        this[P("0x19a")] = 0 < e[P("0x2aa")] && e.west < 0 ? e[P("0x2aa")] + Math[P("0x78")](e.west) : Math[P("0x78")](e.east - e[P("0x2a9")]), this[P("0x8b")] = 0 < e.north && e[P("0x2ab")] < 0 ? e[P("0x2ac")] + Math.abs(e[P("0x2ab")]) : Math[P("0x78")](e[P("0x2ac")] - e[P("0x2ab")]), this[P("0x698")] = 1, this.width > this[P("0x8b")] && this[P("0x19a")] > this[P("0x67e")][P("0x69a")] ? (this._factor = this[P("0x19a")] / this.defaults[P("0x69a")], this[P("0x8b")] / this[P("0x698")] < this.defaults[P("0x69b")] && (this[P("0x698")] = this[P("0x8b")] / this[P("0x67e")][P("0x69b")])) : this.height > this[P("0x19a")] && this[P("0x8b")] > this[P("0x67e")][P("0x69a")] ? (this[P("0x698")] = this[P("0x8b")] / this[P("0x67e")][P("0x69a")], this[P("0x19a")] / this._factor < this[P("0x67e")][P("0x69b")] && (this[P("0x698")] = this[P("0x19a")] / this.defaults[P("0x69b")])) : this[P("0x19a")] < this.height && this[P("0x19a")] < this.defaults[P("0x69b")] ? (this[P("0x698")] = this[P("0x19a")] / this.defaults[P("0x69b")], this[P("0x8b")] / this._factor > this[P("0x67e")][P("0x69a")] && (this[P("0x698")] = this[P("0x8b")] / this.defaults[P("0x69a")])) : this.height < this[P("0x19a")] && this[P("0x8b")] < this[P("0x67e")][P("0x69b")] && (this[P("0x698")] = this[P("0x8b")] / this.defaults[P("0x69b")], this[P("0x19a")] / this[P("0x698")] > this.defaults[P("0x69a")] && (this[P("0x698")] = this[P("0x19a")] / this[P("0x67e")][P("0x69a")])), this[P("0x19a")] = this[P("0x19a")] / this[P("0x698")], this.height = this[P("0x8b")] / this[P("0x698")];
      }, t[P("0x5")][P("0x69c")] = function (t, i, r) {
        if (this._id = this[P("0x68d")](), this[P("0x69d")] = this._computeBounds(r), this[P("0x68c")] = this[P("0x691")](this[P("0x69d")]), this[P("0x69e")](this[P("0x68c")]), this[P("0x67b")][P("0x181")] = Math.round(this.heatmapOptions.radius ? this[P("0x67b")].radius : this[P("0x19a")] > this[P("0x8b")] ? this[P("0x19a")] / this[P("0x67e")][P("0x69f")] : this.height / this[P("0x67e")].radiusFactor), this[P("0x699")] = this[P("0x67b")][P("0x181")] * this[P("0x67e")].spacingFactor, this[P("0x697")] = this[P("0x68c")].west, this[P("0x6a0")] = this[P("0x68c")][P("0x2ab")], this[P("0x19a")] = Math.round(this[P("0x19a")] + 2 * this[P("0x699")]), this[P("0x8b")] = Math[P("0x5f0")](this[P("0x8b")] + 2 * this[P("0x699")]), this[P("0x68c")][P("0x2a9")] -= this[P("0x699")] * this[P("0x698")], this[P("0x68c")][P("0x2aa")] += this[P("0x699")] * this[P("0x698")], this._mbounds[P("0x2ab")] -= this._spacing * this._factor, this[P("0x68c")].north += this[P("0x699")] * this[P("0x698")], this.bounds = this[P("0x693")](this._mbounds), this[P("0x689")] = e[P("0x26b")].fromDegrees(this[P("0x6a1")][P("0x2a9")], this[P("0x6a1")][P("0x2ab")], this[P("0x6a1")].east, this[P("0x6a1")].north), this[P("0x6a2")] ? (this[P("0x224")] && this[P("0x6a2")].setAttribute("id", this[P("0x224")]), this._container.setAttribute("style", P("0x684") + this[P("0x19a")] + P("0x685") + this[P("0x8b")] + P("0x6a3"))) : this[P("0x6a2")] = this[P("0x683")](this[P("0x19a")], this[P("0x8b")], this[P("0x224")]), this.heatmapOptions[P("0x131")] = this[P("0x6a2")], this._heatmap ? this._heatmap[P("0x6a4")]() : this[P("0x6a5")] = h337[P("0xa")](this[P("0x67b")]), this._container[P("0x12f")][0].setAttribute("id", this[P("0x224")] + P("0x6a6")), r && 0 < r[P("0x33a")][P("0x0")] && null !== t && !1 !== t && null !== i && !1 !== i) {
          for (var n = [], o = 0; o < r[P("0x33a")][P("0x0")]; o++) {
            var a = {};
            a.x = r[P("0x33a")][o].geometry.coordinates[0], a.y = r[P("0x33a")][o][P("0x180")][P("0x2ed")][1], a[P("0x3")] = r.features[o][P("0x33d")].z, n[P("0x17c")](a);
          }

          for (var s = [], x = 0; x < n[P("0x0")]; x++) {
            var l = n[x],
                c = this[P("0x6a7")](l);
            !l[P("0x3")] && 0 !== l[P("0x3")] || (c.value = l.value), s[P("0x17c")](c);
          }

          return this[P("0x6a5")].setData({
            min: t,
            max: i,
            data: s
          }), this.updateLayer(), !0;
        }

        return !1;
      }, t[P("0x5")].show = function (e) {
        this[P("0x6a8")] && (this[P("0x6a8")].show = e);
      }, t[P("0x5")][P("0x17f")] = function () {
        this[P("0x6a8")] && (this[P("0x13b")].scene[P("0x6a9")][P("0x17f")](this[P("0x6a8")]), this.viewer.entities[P("0x17f")](this[P("0x6a8")]));
      }, t[P("0x5")][P("0x6aa")] = function () {
        if (this[P("0x67b")].useEntities && this[P("0x13b")][P("0x194")]) {
          this[P("0x6a8")] && this[P("0x13b")][P("0x194")].remove(this[P("0x6a8")]);
          var t = new e[P("0x651")]({
            image: this[P("0x6a5")][P("0x6ab")].canvas
          });
          e[P("0x373")] >= P("0x6ac") ? t[P("0x6ad")] = !0 : "1.16" <= e[P("0x373")] && (t[P("0x671")] = 0.99), this[P("0x6a8")] = this[P("0x13b")][P("0x194")][P("0x6d")]({
            show: !0,
            rectangle: {
              coordinates: this[P("0x689")],
              material: t
            }
          });
        } else this._layer && this.viewer[P("0x10f")][P("0x6a9")].remove(this[P("0x6a8")]), this[P("0x6a8")] = this[P("0x13b")][P("0x10f")].imageryLayers[P("0x6ae")](this._getImageryProvider(this));
      };
    }(window[P("0xfd")]), function (e) {
      function t(t) {
        if (t = e[P("0x102")](t, e[P("0x102")].EMPTY_OBJECT), !e.defined(t[P("0x13b")])) throw new DeveloperError(P("0x63a"));
        if (this[P("0x13c")] = t[P("0x13b")], !e[P("0x14")](t.center)) throw new DeveloperError(P("0x65f"));
        if (!e[P("0x14")](t[P("0x6af")])) throw new DeveloperError(P("0x6b0"));
        this[P("0x5b4")] = e[P("0x102")](t[P("0x11a")], []), this[P("0x6b1")] = t.url;
        var i = e[P("0x102")](this[P("0x5b4")][2], e.GeoImageCircle.DEFAULT_HEIGHT);
        this[P("0x217")] = i, this._radius = e.defaultValue(t[P("0x181")], e[P("0x6b2")][P("0x64c")]), this[P("0x596")] = e[P("0x102")](t[P("0x169")], e[P("0x6b2")][P("0x648")]);
        var r = this[P("0x5b4")][0],
            n = this._center[1],
            o = e[P("0x102")](this[P("0x63c")], 0),
            a = this._color,
            s = this[P("0x6b1")];
        this._ellipse = null, this[P("0x63e")] = e[P("0x102")](t.classificationType, e[P("0x6b2")][P("0x640")]), this._createImageCircle(r, n, i, o, s, a), this[P("0x646")] = e[P("0x102")](t.isShow, !0), this[P("0x645")](this._isShow);
      }

      t[P("0x5")][P("0xf4")] = function () {
        this._viewer && this._viewer[P("0x194")][P("0x17f")](this[P("0x6b3")]);
      }, t[P("0x5")].setShow = function (t) {
        this[P("0x646")] = e[P("0x102")](t, !0), this[P("0x6b3")][P("0x221")] = t;
      }, t[P("0x5")].setColor = function (t) {
        this[P("0x596")] = e[P("0x102")](t, e[P("0x6b2")][P("0x648")]), this[P("0x6b3")][P("0x649")][P("0x19c")][P("0x169")] = this[P("0x596")];
      }, t[P("0x5")][P("0x64a")] = function () {
        return this[P("0x596")];
      }, t[P("0x5")][P("0x64b")] = function (t) {
        this[P("0x63c")] = e[P("0x102")](t, e[P("0x6b2")][P("0x64c")]), this[P("0x6b3")][P("0x649")][P("0x64d")] = this._radius, this[P("0x6b3")].ellipse[P("0x64d")] = this._radius;
      }, t[P("0x5")].getRadius = function () {
        return this[P("0x63c")];
      }, t[P("0x5")].setCenter = function (t) {
        if (!e.defined(t)) throw new DeveloperError(P("0x650"));
        this[P("0x6b3")].position = position, this[P("0x5b4")] = position;
      }, t[P("0x5")][P("0x6b4")] = function (t, i, r, n, o, a) {
        var s = this[P("0x13c")],
            x = e[P("0x23")][P("0x119")](30);

        if (!this[P("0x6b3")]) {
          var l = s[P("0x194")].add({
            position: e[P("0x11")][P("0x1a1")](t, i, r),
            ellipse: {
              classificationType: this._classificationType,
              semiMinorAxis: n,
              semiMajorAxis: n,
              rotation: new e[P("0x652")](c, !1),
              stRotation: new e[P("0x652")](c, !1),
              material: new e[P("0x651")]({
                color: a,
                image: o,
                transparent: !0
              })
            }
          });
          this._ellipse = l;
        }

        function c() {
          return x += 0.05;
        }
      }, e.GeoImageCircle = t, e.GeoImageCircle[P("0x63b")] = 0, e[P("0x6b2")][P("0x640")] = e[P("0x17a")][P("0x6b5")], e.GeoImageCircle[P("0x64c")] = 25e3, e[P("0x6b2")][P("0x648")] = e[P("0x16a")].WHITE;
    }(window.Cesium), function (e) {
      function t() {
        this[P("0x6b6")] = null, this[P("0x5ba")] = !1, this._speed = 0, this[P("0x6b7")] = null, this[P("0x6b8")] = 1, this[P("0x5bf")] = 0, this[P("0x5cf")] = 0, this._mode = 0;
      }

      t[P("0x5")][P("0x69")] = function () {
        this[P("0x5ba")] = !0, this[P("0x5cf")] = 0;
      }, t[P("0x5")][P("0xd2")] = function (e) {
        this._actived && (this[P("0x5cf")] += e, this[P("0x5cf")] > this[P("0x5bf")] && (this[P("0x5ba")] = !1));
      }, e[P("0xf")](t.prototype, {
        position: {
          get: function get() {
            return this[P("0x6b6")];
          },
          set: function set(e) {
            e && (this._position = e[P("0x6e")](this[P("0x6b6")]));
          }
        },
        direction: {
          get: function get() {
            return this[P("0x6b7")];
          },
          set: function set(e) {
            e && (this._direction = e.clone(this[P("0x6b7")]));
          }
        },
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          }
        },
        speed: {
          get: function get() {
            return this._speed;
          },
          set: function set(e) {
            this._speed = e;
          }
        },
        baseScale: {
          get: function get() {
            return this[P("0x6b8")];
          },
          set: function set(e) {
            this._baseScale = e;
          }
        },
        life: {
          get: function get() {
            return this[P("0x5bf")];
          },
          set: function set(e) {
            this[P("0x5bf")] = e;
          }
        },
        time: {
          get: function get() {
            return this[P("0x5cf")];
          }
        },
        mode: {
          get: function get() {
            return this[P("0x6b9")];
          },
          set: function set(e) {
            this._mode = e;
          }
        }
      });

      var i = new e[P("0x11")](),
          r = e.GeoLineFireEffect = function (t) {
        t = t || {}, this[P("0x6b1")] = t.url ? e[P("0x6ba")](t[P("0x6af")]) : null, this[P("0x6bb")] = t[P("0x6bc")] ? e[P("0x6ba")](t[P("0x6bc")]) : null, this._explode = t.explode ? t[P("0x6bd")] : 0, this[P("0x6be")] = [], this._scene = t[P("0x13b")][P("0x10f")], this._clock = t.viewer[P("0x571")];
        var i = t[P("0xfc")] ? t[P("0xfc")] : 1;
        this[P("0x6bf")] = 2 * i, this[P("0x6c0")] = 0.1 * i, this[P("0x6c1")] = 1 * i, this._startColor = new e[P("0x16a")](1, 1, 1, 1), this[P("0x6c2")] = new e[P("0x16a")](0.8, 0, 0, 0.01), t.smoking && (this._endColor[P("0x66e")] = 1 - t[P("0x6c3")]);
        var r = t[P("0x6c4")] ? t.life : 1;
        this[P("0x6c5")] = 0.5 * r, this[P("0x6c6")] = 2 * r;
        var n = t[P("0x539")] ? t[P("0x539")] : 1;
        if (this[P("0x6c7")] = 7 * n, this[P("0x6c8")] = 20 * n, this[P("0x6c9")] = t[P("0x1a9")] ? t.count : 0, this[P("0x63c")] = t.radius ? t[P("0x181")] : 1, this[P("0x6ca")] = t[P("0x6cb")] ? t[P("0x6cb")] : 4, this._fires = [], this[P("0x6cc")] = null, this[P("0x6cd")] = null, this[P("0x6ce")] = null, this[P("0x6cf")] = null, this._directionsArray = null, this[P("0x6d0")] = null, this[P("0x5b7")] = !0, this[P("0x6d1")] = 0, this[P("0x5cf")] = 0, this[P("0x6d2")](), this[P("0x6d3")](this[P("0x6c9")]), t[P("0x19f")] && t[P("0x19f")][P("0x0")]) for (var o = t[P("0x19f")], a = 0; a < o[P("0x0")]; a++) {
          this[P("0x6d4")](o[a]);
        }
      };

      e[P("0xf")](r[P("0x5")], {
        explode: {
          get: function get() {
            return this[P("0x6d5")];
          },
          set: function set(e) {
            this[P("0x6d5")] = e;
          }
        },
        scale: {
          get: function get() {
            return this._imageSize;
          },
          set: function set(e) {
            this[P("0x6bf")] = 2 * e, this[P("0x6c0")] = 0.1 * e, this[P("0x6c1")] = 1 * e;
          }
        },
        life: {
          get: function get() {
            return this[P("0x6c6")] / 2;
          },
          set: function set(e) {
            this[P("0x6c5")] = 0.5 * e, this[P("0x6c6")] = 2 * e;
          }
        },
        speed: {
          get: function get() {
            return this[P("0x6c8")] / 20;
          },
          set: function set(e) {
            this._minSpeed = 7 * e, this[P("0x6c8")] = 20 * e;
          }
        },
        radius: {
          get: function get() {
            return this[P("0x63c")];
          },
          set: function set(e) {
            this._radius = e;
          }
        },
        grow: {
          get: function get() {
            return this[P("0x6ca")];
          },
          set: function set(e) {
            this[P("0x6ca")] = e;
          }
        },
        pntsCount: {
          get: function get() {
            return this[P("0x6be")][P("0x0")];
          }
        },
        smoking: {
          get: function get() {
            return 1 - this[P("0x6c2")][P("0x66e")];
          },
          set: function set(e) {
            this[P("0x6c2")][P("0x66e")] = 1 - e;
          }
        }
      }), r.prototype[P("0x6d4")] = function (t) {
        if (void 0 !== t) {
          t = e[P("0x13")][P("0x1a1")][P("0x346")](this, t), t = e[P("0x11")][P("0x3d0")](t[P("0x112")], t[P("0x114")], t.height);

          var r = 10,
              n = this._positions[P("0x0")];

          if (0 < n) {
            var o = this._positions[n - 1];
            i = e[P("0x11")].subtract(t, o, i), r = e.Cartesian3.magnitude(i);
          }

          r < 0.5 || (this[P("0x6be")][P("0x17c")](t.clone()), this._growFires(this[P("0x6ca")], r));
        }
      }, r[P("0x5")][P("0xf4")] = function () {
        this[P("0x42")] = null, this._clock = null, this[P("0x6ce")] && (this[P("0x6ce")][P("0x5cb")] && (this[P("0x6ce")][P("0x5cb")][P("0xf4")](), this._drawCommand.vertexArray = null), this[P("0x6ce")][P("0x5cc")] && (this[P("0x6ce")][P("0x5cc")][P("0xf4")](), this._drawCommand.shaderProgram = null), this[P("0x6ce")][P("0x6d6")] = null, this[P("0x6ce")] = null), this[P("0x6cc")] && (this._texture_0[P("0xf4")](), this._texture_0 = null), this[P("0x6cd")] && (this._texture_1.destroy(), this[P("0x6cd")] = null), this[P("0x6d7")][P("0x0")] = 0, this._positions[P("0x0")] = 0, this[P("0x6cf")] = null, this[P("0x6d8")] = null, this[P("0x6d0")] = null;
      }, r.prototype._loadTexture = function () {
        var t = this,
            i = t[P("0x42")][P("0x6d9")][P("0x3cc")];
        this._url && e[P("0x6da")].fetchImage(this[P("0x6b1")]).then(function (r) {
          t._texture_0 = new e[P("0x6db")]({
            context: i,
            source: r
          }, function (e) {});
        }), this[P("0x6bb")] && e.Resource[P("0x6dc")](this[P("0x6bb")])[P("0x333")](function (r) {
          t[P("0x6cd")] = new e[P("0x6db")]({
            context: i,
            source: r
          }, function (e) {});
        });
      }, r.prototype[P("0x6dd")] = function () {
        var t = this[P("0x6be")][P("0x0")];
        if (t < 1) return null;
        if (t < 2) return this[P("0x6be")][0].clone(i), i.x += e[P("0x23")].randomBetween(0, 1) * this[P("0x63c")], i.y += e.Math[P("0x6de")](0, 1) * this[P("0x63c")], i.z += e[P("0x23")][P("0x6de")](0, 1) * this[P("0x63c")], i;
        var r = e[P("0x23")].randomBetween(0, t - 1);
        r = Math.floor(r);
        var n = this[P("0x6be")][r],
            o = this[P("0x6be")][r + 1],
            a = e.Math.randomBetween(0, 1);
        return i = e.Cartesian3[P("0x308")](n, o, a, i);
      }, r[P("0x5")][P("0x6d3")] = function (e) {
        if (e && !(e < 1)) for (var i = 0; i < e; i++) {
          var r = new t();

          this._fires[P("0x17c")](r);
        }
      }, r[P("0x5")][P("0x6df")] = function (e, i) {
        e = Math[P("0x5f0")](e * i), this[P("0x6c9")] += e;

        for (var r = 0; r < e; r++) {
          var n = new t();
          this[P("0x6d7")][P("0x17c")](n);
        }
      }, r[P("0x5")]._initFire = function (t) {
        return t.position = this._emissionPosition(), t.position && (t[P("0x93")] = e[P("0x11")][P("0x8d")](t[P("0x8c")], new e.Cartesian3())), t[P("0x539")] = e[P("0x23")][P("0x6de")](this[P("0x6c7")], this[P("0x6c8")]), t[P("0x6c4")] = e[P("0x23")][P("0x6de")](this[P("0x6c5")], this._maxLife), t.baseScale = e[P("0x23")][P("0x6de")](0.5, 5), (t[P("0xd3")] = 0) < this._explode && e[P("0x23")][P("0x6de")](0, 1) > 1 - this._explode && (t[P("0xd3")] = 1, t[P("0x6e0")] *= 1.2, t[P("0x6c4")] *= 0.2, t[P("0x539")] *= 2), null != t.position;
      }, r[P("0x5")][P("0x6e1")] = function (e) {
        e.update(this[P("0x5cf")]), e.actived || this[P("0x6e2")](e) && e[P("0x69")]();
      }, r.prototype[P("0x5c8")] = function (t) {
        var i;
        if (i = this[P("0x6e3")][P("0x6e4")] ? t.time[P("0x6e5")] : e[P("0x5d0")]() / 1e3, 0 == this[P("0x6d1")]) this[P("0x6d1")] = i;else {
          var r = i - this[P("0x6d1")];
          r > this[P("0x6c6")] && (r = this[P("0x6c6")]), this[P("0x5cf")] = r, this[P("0x6d1")] = i;
        }
      }, r[P("0x5")].update = function (e) {
        this[P("0x5c8")](e);
        var t = this[P("0x6c9")];

        if (!(t < 1 || t != this[P("0x6d7")][P("0x0")] || this[P("0x6be")][P("0x0")] < 1) && this[P("0x6cc")]) {
          if (this[P("0x5b7")]) {
            for (var i = 0; i < t; i++) {
              var r = this[P("0x6d7")][i];
              this[P("0x6e1")](r);
            }

            this[P("0x6e6")](e), this._needUpdate = !1;
          } else this[P("0x5b7")] = !0;

          this[P("0x6e7")]() && e.commandList[P("0x17c")](this[P("0x6ce")]);
        }
      }, r[P("0x5")][P("0x6e8")] = function (e) {
        this[P("0x6e7")]() && e[P("0x5ca")].push(this[P("0x6ce")]);
      }, r[P("0x5")]._updateCommand = function (t) {
        var i = this[P("0x6ce")];
        i || ((i = this[P("0x6ce")] = new e[P("0x5d3")]()).pass = e[P("0x5e4")].TRANSLUCENT, i.owner = this, i[P("0x1a9")] = 6), i[P("0x6e9")] = this[P("0x6c9")], this._updateCommandVA(t, i), this[P("0x6ea")](t, i), this[P("0x6eb")](t, i), this[P("0x6ec")](t, i), this[P("0x6ed")](t, i), this._updateCommandModelMatrix(t, i);
      }, r[P("0x5")][P("0x6e7")] = function () {
        var e = this[P("0x6ce")];
        return !!(e && e[P("0x5cb")] && e.boundingVolume && e[P("0x5cc")] && e.uniformMap && e.renderState);
      };
      var n = {
        aPlane: 0
      };
      n[P("0x6ee")] = 1, n[P("0x6ef")] = 2, n[P("0x6f0")] = 3, n.aTexcoord = 4, r[P("0x5")][P("0x6f1")] = function (t, i) {
        var r = this[P("0x6c9")],
            o = t[P("0x3cc")];
        this[P("0x6cf")] || (this[P("0x6cf")] = e[P("0x5e8")][P("0x5e7")](e.ComponentDatatype[P("0x5e9")], 3 * r));
        var a = this[P("0x6cf")];
        this[P("0x6d8")] || (this[P("0x6d8")] = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 4 * r));
        var s = this._directionsArray;
        this._speedScaleLifeTimesArray || (this[P("0x6d0")] = e.ComponentDatatype[P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 4 * r));

        for (var x = this._speedScaleLifeTimesArray, l = 0; l < r; l++) {
          var c = this[P("0x6d7")][l],
              u = c[P("0x8c")];
          a[3 * l] = u.x, a[3 * l + 1] = u.y, a[3 * l + 2] = u.z;
          var h = c.direction;
          s[4 * l] = h.x, s[4 * l + 1] = h.y, s[4 * l + 2] = h.z, s[4 * l + 3] = c[P("0xd3")], x[4 * l] = c[P("0x539")], x[4 * l + 1] = c[P("0x6e0")], x[4 * l + 2] = c[P("0x6c4")], x[4 * l + 3] = c[P("0x6f2")];
        }

        var f = e[P("0x5ea")][P("0x5eb")]({
          context: o,
          typedArray: new Float32Array([-1, 0, 1, 0, 0.5, 2, -0.5, 2]),
          usage: e[P("0x4d5")][P("0x4d6")]
        }),
            d = e.Buffer[P("0x5eb")]({
          context: o,
          typedArray: a,
          usage: e[P("0x4d5")][P("0x4d6")]
        }),
            g = e[P("0x5ea")][P("0x5eb")]({
          context: o,
          typedArray: s,
          usage: e[P("0x4d5")].STATIC_DRAW
        }),
            p = e.Buffer[P("0x5eb")]({
          context: o,
          typedArray: x,
          usage: e[P("0x4d5")][P("0x4d6")]
        }),
            m = e[P("0x5ea")][P("0x5eb")]({
          context: o,
          typedArray: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]),
          usage: e[P("0x4d5")].STATIC_DRAW
        }),
            b = e[P("0x5ea")][P("0x5ec")]({
          context: o,
          typedArray: new Uint16Array([0, 1, 2, 0, 2, 3]),
          usage: e[P("0x4d5")][P("0x4d6")],
          indexDatatype: e.IndexDatatype[P("0x5ed")]
        }),
            v = [];
        v.push({
          index: n[P("0x6ee")],
          vertexBuffer: d,
          componentsPerAttribute: 3,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 12,
          normalize: !1,
          instanceDivisor: 1
        }), v[P("0x17c")]({
          index: n.aDirection,
          vertexBuffer: g,
          componentsPerAttribute: 4,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 16,
          normalize: !1,
          instanceDivisor: 1
        }), v[P("0x17c")]({
          index: n[P("0x6f0")],
          vertexBuffer: p,
          componentsPerAttribute: 4,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 16,
          normalize: !1,
          instanceDivisor: 1
        }), v[P("0x17c")]({
          index: n[P("0x6f3")],
          vertexBuffer: m,
          componentsPerAttribute: 2,
          componentDatatype: e.ComponentDatatype[P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 8,
          normalize: !1
        }), v.push({
          index: n[P("0x6f4")],
          vertexBuffer: f,
          componentsPerAttribute: 2,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 8,
          normalize: !1
        });
        var C = new e[P("0x5ee")]({
          context: o,
          attributes: v,
          indexBuffer: b
        });
        i[P("0x5cb")] && i[P("0x5cb")][P("0xf4")](), i[P("0x5cb")] = C;
      }, r[P("0x5")][P("0x6ea")] = function (t, i) {
        var r = this._positions[P("0x0")];

        if (!(r < 1)) if (r < 2) i[P("0x4bc")] = new e[P("0x5f1")](this[P("0x6be")][0].clone(), this[P("0x63c")]);else {
          for (var n = new e[P("0x5f1")](this[P("0x6be")][0][P("0x6e")](), this._radius), o = 1; o < r; o++) {
            n = e[P("0x5f1")].expand(n, this[P("0x6be")][o], n);
          }

          i[P("0x4bc")] = n;
        }
      }, r[P("0x5")][P("0x6eb")] = function (t, i) {
        if (!i[P("0x5cc")]) {
          var r = t[P("0x3cc")];
          i[P("0x5cc")] = e[P("0x5dc")][P("0x5d7")]({
            context: r,
            vertexShaderSource: o,
            fragmentShaderSource: a,
            attributeLocations: n
          });
        }
      }, r.prototype[P("0x6ec")] = function (e, t) {
        var i = t[P("0x5de")] = {};

        if (!i || !i._ready) {
          var r = this;
          i[P("0x48b")] = !0, i[P("0x6f5")] = function () {
            return r[P("0x6bf")];
          }, i[P("0x6f6")] = function () {
            return r[P("0x6c0")];
          }, i[P("0x6f7")] = function () {
            return r[P("0x6c1")];
          }, i.u_startColor = function () {
            return r._startColor;
          }, i[P("0x6f8")] = function () {
            return r[P("0x6c2")];
          }, i[P("0x6f9")] = function () {
            return r._texture_0;
          }, i[P("0x6fa")] = function () {
            return r[P("0x6cd")] ? r._texture_1 : r[P("0x6cc")];
          };
        }
      }, r.prototype[P("0x6ed")] = function (t, i) {
        i.renderState || (i[P("0x5d5")] = e[P("0x5d6")][P("0x5d7")]({
          cull: {
            enabled: !1
          },
          depthTest: {
            enabled: !0,
            func: e[P("0x5d8")].LEQUAL
          },
          depthMask: !1,
          blending: e[P("0x5da")][P("0x5db")]
        }));
      }, r[P("0x5")][P("0x6fb")] = function (t, i) {
        i[P("0x4ac")] || (i.modelMatrix = e[P("0x1b")].IDENTITY);
      };
      var o = P("0x6fc") + "attribute vec3 aPosition;\n" + P("0x6fd") + P("0x6fe") + P("0x6ff") + "uniform vec4 u_startColor;\nuniform vec4 u_endColor;\nuniform float u_startScale;\n" + P("0x700") + "uniform float u_imageSize;\n" + P("0x701") + P("0x702") + "varying float v_texIndex;\n" + P("0x703") + P("0x704") + "   v += position;\n" + P("0x705") + P("0x706") + P("0x707") + "}\n" + P("0x708") + "{\n" + P("0x709") + P("0x70a") + P("0x70b") + "   float time = aSpeedScaleLifeTime.w;\n   float t = time / life;\n" + P("0x70c") + "   vec4 positionEC = computePosition(aPosition, aPlane, aDirection.xyz, u_imageSize, baseScale, speed, time);\n" + P("0x70d") + "   v_texcoord_0.xy = aTexcoord;\n" + P("0x70e") + P("0x70f") + P("0x710") + P("0x614") + P("0x711") + P("0x712") + P("0x614") + "   else{\n" + P("0x713") + P("0x614") + "   if (t > 0.618){\n" + P("0x714") + P("0x614") + "   else{\n" + P("0x715") + "   }\n}",
          a = P("0x701") + P("0x702") + "varying float v_texIndex;\n" + P("0x716") + P("0x717") + P("0x708") + "{\n" + P("0x718") + P("0x719") + P("0x71a") + "       if (v_texIndex == 1.0){\n" + P("0x71b") + "       }\n       else{\n" + P("0x71c") + P("0x71d") + P("0x614") + P("0x71e") + "       if (v_texIndex == 1.0){\n" + P("0x71b") + P("0x71d") + "       else{\n" + P("0x71c") + P("0x71d") + P("0x71f") + P("0x614") + P("0x720") + P("0x721") + P("0x614") + P("0x722") + "       float mc = max(max(color.r, color.g), color.b);\n" + P("0x723") + P("0x614") + "   else{\n" + P("0x724") + "           color.a = 0.0;\n       }\n" + P("0x614") + "   color = czm_gammaCorrect(color);\n" + P("0x725") + P("0x726") + P("0x727") + P("0x728") + "}";
    }(window[P("0xfd")]), function (e) {
      function t() {
        this[P("0x6b6")] = null, this[P("0x5ba")] = !1, this[P("0x5b9")] = 0, this[P("0x6b7")] = null, this[P("0x6b8")] = 1, this._life = 0, this[P("0x5cf")] = 0, this[P("0x6b9")] = 0, this._alphaFact = 0, this._normalFact = 1;
      }

      t[P("0x5")].active = function () {
        this._actived = !0, this[P("0x5cf")] = 0;
      };

      var i = new e[P("0x11")](),
          r = new e.Cartesian3();
      t.prototype[P("0xd2")] = function (t) {
        if (this[P("0x5ba")]) if (this[P("0x5cf")] += t, this[P("0x5cf")] > this[P("0x5bf")]) this[P("0x5ba")] = !1;else {
          var n = e[P("0x11")].normalize(this._position, i),
              o = e[P("0x11")][P("0x6c")](this[P("0x6b7")], this[P("0x729")], r);
          e.Cartesian3[P("0x6d")](n, o, n), e.Cartesian3[P("0x8d")](n, this[P("0x6b7")]), e.Cartesian3[P("0x6c")](this[P("0x6b7")], t * this[P("0x5b9")], n), e[P("0x11")][P("0x6d")](this._position, n, this._position), 0.025 < this._speed && (this[P("0x5b9")] -= 0.025);
        }
      }, e[P("0xf")](t[P("0x5")], {
        position: {
          get: function get() {
            return this._position;
          },
          set: function set(e) {
            e && (this[P("0x6b6")] = e[P("0x6e")](this[P("0x6b6")]));
          }
        },
        direction: {
          get: function get() {
            return this[P("0x6b7")];
          },
          set: function set(e) {
            e && (this._direction = e.clone(this[P("0x6b7")]));
          }
        },
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          }
        },
        speed: {
          get: function get() {
            return this._speed;
          },
          set: function set(e) {
            this._speed = e;
          }
        },
        baseScale: {
          get: function get() {
            return this[P("0x6b8")];
          },
          set: function set(e) {
            this[P("0x6b8")] = e;
          }
        },
        life: {
          get: function get() {
            return this[P("0x5bf")];
          },
          set: function set(e) {
            this[P("0x5bf")] = e;
          }
        },
        time: {
          get: function get() {
            return this[P("0x5cf")];
          }
        },
        mode: {
          get: function get() {
            return this._mode;
          },
          set: function set(e) {
            this._mode = e;
          }
        },
        alphaFact: {
          get: function get() {
            return this._alphaFact;
          },
          set: function set(e) {
            this[P("0x72a")] = e;
          }
        },
        normalFact: {
          get: function get() {
            return this[P("0x729")];
          },
          set: function set(e) {
            this._normalFact = e;
          }
        }
      });

      var n = new e[P("0x11")](),
          o = e[P("0x72b")] = function (t) {
        if (t = t || {}, this[P("0x6b1")] = t[P("0x6af")] ? e[P("0x6ba")](t[P("0x6af")]) : null, this[P("0x6be")] = [], this[P("0x42")] = t.viewer[P("0x10f")], this._clock = t.viewer.clock, this[P("0xfc")] = t[P("0xfc")] ? t.scale : 1, this[P("0x72c")] = new e[P("0x16a")](), this._endColor = new e[P("0x16a")](), this[P("0x72d")] = t.density ? t.density : 0.5, this[P("0x6c4")] = t.life ? t.life : 1, this[P("0x539")] = t[P("0x539")] ? t.speed : 1, this[P("0x72e")] = t.normalFactor ? t[P("0x72e")] : 1, this[P("0x6c9")] = t[P("0x1a9")] ? t.count : 600, this[P("0x63c")] = t[P("0x181")] ? t.radius : 0.5, this[P("0x6ca")] = t[P("0x6cb")] ? t.grow : 60, this[P("0x72f")] = [], this[P("0x6cc")] = null, this._drawCommandAlpha = null, this._drawCommandOpaque = null, this._pointsArray = null, this._directionsArray = null, this[P("0x6d0")] = null, this._needUpdate = !0, this[P("0x730")] = 0, this._preTime = 0, this[P("0x5cf")] = 0, this[P("0x731")] = 0.075, this[P("0x6d2")](), this._initSmokes(this[P("0x6c9")]), t.positions && t[P("0x19f")].length) for (var i = t[P("0x19f")], r = i[P("0x0")], n = 0; n < r; n++) {
          this[P("0x6d4")](i[n]);
        }
      };

      e[P("0xf")](o.prototype, {
        scale: {
          get: function get() {
            return this[P("0x6c1")];
          },
          set: function set(e) {
            this[P("0x6bf")] = 0.7 * e, this._endScale = 1.6 * e, this[P("0x6c1")] = 1 * e;
          }
        },
        life: {
          get: function get() {
            return this[P("0x6c6")] / 4;
          },
          set: function set(e) {
            this[P("0x6c5")] = 2.5 * e, this._maxLife = 4 * e;
          }
        },
        speed: {
          get: function get() {
            return this[P("0x6c8")] / 6;
          },
          set: function set(e) {
            this[P("0x6c7")] = 1.5 * e, this[P("0x6c8")] = 6 * e;
          }
        },
        radius: {
          get: function get() {
            return this[P("0x63c")];
          },
          set: function set(e) {
            this[P("0x63c")] = e;
          }
        },
        grow: {
          get: function get() {
            return this[P("0x6ca")];
          },
          set: function set(e) {
            this._grow = e;
          }
        },
        pntsCount: {
          get: function get() {
            return this[P("0x6be")][P("0x0")];
          }
        },
        density: {
          get: function get() {
            return 1 - this[P("0x6c2")].red;
          },
          set: function set(e) {
            e = 1 - e, this._endColor[P("0x66e")] = e, this[P("0x6c2")].green = e, this[P("0x6c2")].blue = e, this[P("0x6c2")][P("0x671")] = 0.715, this._startColor[P("0x66e")] = Math[P("0x7d")](1, e + 0.3), this[P("0x72c")][P("0x66f")] = Math.min(1, e + 0.3), this[P("0x72c")][P("0x670")] = Math[P("0x7d")](1, e + 0.3), this[P("0x72c")][P("0x671")] = 1;
          }
        },
        normalFactor: {
          get: function get() {
            this[P("0x732")];
          },
          set: function set(e) {
            this[P("0x733")] = 5 * e, this[P("0x732")] = 16 * e;
          }
        }
      });
      var a = new e[P("0x11")]();
      o.prototype.addPosition = function (t) {
        if (void 0 !== t) {
          t = e[P("0x13")].fromDegrees.apply(this, t), t = e[P("0x11")][P("0x3d0")](t[P("0x112")], t.latitude, t.height, void 0, a);
          var i = 10,
              r = this[P("0x6be")][P("0x0")];

          if (0 < r) {
            var o = this[P("0x6be")][r - 1];
            n = e[P("0x11")][P("0x95")](t, o, n), i = e.Cartesian3[P("0x96")](n);
          }

          i < 0.5 || (this[P("0x6be")][P("0x17c")](t[P("0x6e")]()), this[P("0x734")](this[P("0x6ca")], i));
        }
      }, o[P("0x5")][P("0xf4")] = function () {
        this[P("0x42")] = null, this._clock = null, this._drawCommandAlpha && (this._drawCommandAlpha[P("0x5cb")] && (this._drawCommandAlpha[P("0x5cb")][P("0xf4")](), this[P("0x5b5")][P("0x5cb")] = null), this[P("0x5b5")][P("0x5cc")] && (this[P("0x5b5")][P("0x5cc")][P("0xf4")](), this[P("0x5b5")][P("0x5cc")] = null), this._drawCommandAlpha[P("0x6d6")] = null, this[P("0x5b5")] = null), this[P("0x5b6")] && (this[P("0x5b6")].vertexArray && (this._drawCommandOpaque.vertexArray[P("0xf4")](), this[P("0x5b6")][P("0x5cb")] = null), this[P("0x5b6")].shaderProgram && (this._drawCommandOpaque[P("0x5cc")][P("0xf4")](), this[P("0x5b6")][P("0x5cc")] = null), this._drawCommandOpaque[P("0x6d6")] = null, this[P("0x5b6")] = null), this[P("0x6cc")] && (this[P("0x6cc")].destroy(), this._texture_0 = null), this._smokes[P("0x0")] = 0, this[P("0x6be")][P("0x0")] = 0, this._pointsArray = null, this[P("0x6d8")] = null, this[P("0x6d0")] = null;
      }, o[P("0x5")][P("0x6d2")] = function () {
        var t = this,
            i = t[P("0x42")][P("0x6d9")].context;
        t[P("0x6b1")] && (t[P("0x6cc")] && (t[P("0x6cc")][P("0xf4")](), t[P("0x6cc")] = null), e[P("0x6da")][P("0x6dc")](t[P("0x6b1")])[P("0x333")](function (r) {
          t[P("0x6cc")] = new e[P("0x6db")]({
            context: i,
            source: r
          }, function (e) {});
        }));
      }, o[P("0x5")]._emissionPosition = function () {
        var t = this[P("0x6be")][P("0x0")];
        if (t < 1) return null;
        if (t < 2) return this[P("0x6be")][0][P("0x6e")](n), n.x += e[P("0x23")][P("0x6de")](0, 1) * this[P("0x63c")], n.y += e[P("0x23")][P("0x6de")](0, 1) * this[P("0x63c")], n.z += e[P("0x23")].randomBetween(0, 1) * this[P("0x63c")], n;
        var i = e.Math[P("0x6de")](0, t - 1);
        i = Math.floor(i);
        var r = this[P("0x6be")][i],
            o = this[P("0x6be")][i + 1],
            a = e[P("0x23")][P("0x6de")](0, 1);
        return n = e.Cartesian3.lerp(r, o, a, n);
      }, o[P("0x5")][P("0x735")] = function (e) {
        if (e && !(e < 1)) for (var i = 0; i < e; i++) {
          var r = new t();
          this[P("0x72f")][P("0x17c")](r);
        }
      }, o[P("0x5")]._growSmokes = function (e, i) {
        e = Math[P("0x5f0")](e * i), this[P("0x6c9")] += e;

        for (var r = 0; r < e; r++) {
          var n = new t();
          this[P("0x72f")].push(n);
        }
      };
      var s = new e[P("0x11")](),
          x = new e[P("0x1d")](),
          l = new e[P("0x1b")](),
          c = new e[P("0x1a")]();
      o[P("0x5")][P("0x736")] = function (t) {
        var i = this._emissionPosition();

        if (!i) return !1;

        if (t.position = i[P("0x6e")](t.position), t[P("0x8c")]) {
          t[P("0x93")] || (t[P("0x93")] = new e[P("0x11")]()), e[P("0x11")][P("0x8d")](t[P("0x8c")], t[P("0x93")]);
          var r = e.Math.randomBetween(0.5, 1.570789),
              n = e[P("0x23")].randomBetween(0, 6.28318),
              o = e.Quaternion.fromAxisAngle(t[P("0x93")], n, x);

          if (t[P("0x93")][P("0x84")](e[P("0x11")].UNIT_X)) {
            var a = e[P("0x11")][P("0x99")](t.direction, e[P("0x11")][P("0xc3")], s);
            e[P("0x11")][P("0x8d")](a, a), n = e[P("0x1d")][P("0xcc")](a, r, x);
          } else a = e.Cartesian3.cross(t[P("0x93")], e.Cartesian3[P("0xb8")], s), e.Cartesian3.normalize(a, a), n = e[P("0x1d")][P("0xcc")](a, r, x);

          var u = e.Quaternion[P("0x737")](o, n, o),
              h = e.Matrix4[P("0x738")](e[P("0x1a")][P("0xcd")](u, c), void 0, l);
          e[P("0x1b")][P("0x739")](h, t[P("0x93")], t.direction), e[P("0x11")].normalize(t[P("0x93")], t[P("0x93")]);
        }

        return t[P("0x539")] = e[P("0x23")][P("0x6de")](this[P("0x6c7")], this._maxSpeed), t[P("0x6c4")] = e[P("0x23")][P("0x6de")](this[P("0x6c5")], this._maxLife), t[P("0x6e0")] = e[P("0x23")][P("0x6de")](0.5, 5), t[P("0xd3")] = 0, t[P("0x73a")] = e.Math[P("0x6de")](this[P("0x72c")].alpha, this[P("0x6c2")].alpha), t[P("0x73b")] = e.Math.randomBetween(this._minNormalFactor, this[P("0x732")]), null != t[P("0x8c")];
      }, o[P("0x5")][P("0x73c")] = function (e) {
        e[P("0xd2")](this[P("0x5cf")]), e[P("0x5bb")] || this._initSmoke(e) && 0 < this[P("0x73d")] && (e[P("0x69")](), --this[P("0x73d")]);
      }, o[P("0x5")][P("0x5c8")] = function (t) {
        var i;
        if (i = this._clock[P("0x6e4")] ? t[P("0x6f2")].secondsOfDay : e[P("0x5d0")]() / 1e3, 0 == this[P("0x6d1")]) this[P("0x6d1")] = i;else {
          var r = i - this[P("0x6d1")];
          r > this[P("0x6c6")] && (r = this[P("0x6c6")]), this[P("0x5cf")] = r, this._preTime = i;
        }
      }, o[P("0x5")][P("0xd2")] = function (e) {
        this[P("0x5c8")](e);
        var t = this._count;

        if (!(t < 1 || t != this[P("0x72f")][P("0x0")] || this[P("0x6be")][P("0x0")] < 1) && this[P("0x6cc")]) {
          if (this._needUpdate) {
            this[P("0x73d")] = this._door * t;

            for (var i = 0; i < t; i++) {
              var r = this[P("0x72f")][i];

              this._updateSmoke(r);
            }

            this[P("0x6e6")](e), this[P("0x5b7")] = !1;
          } else this[P("0x5b7")] = !0;

          this._isCommandReady() && (e[P("0x5ca")][P("0x17c")](this._drawCommandAlpha), e[P("0x5ca")][P("0x17c")](this._drawCommandOpaque));
        }
      }, o[P("0x5")].updateNext = function (e) {
        this[P("0x6e7")]() && (e[P("0x5ca")].push(this[P("0x5b5")]), e[P("0x5ca")].push(this[P("0x5b6")]));
      }, o.prototype[P("0x6e6")] = function (t) {
        var i = this[P("0x5b5")];
        i || ((i = this._drawCommandAlpha = new e[P("0x5d3")]())[P("0x5d4")] = e[P("0x5e4")][P("0x73e")], i[P("0x5cd")] = this, i.count = 6), i.instanceCount = this[P("0x6c9")], this._updateCommandVA(t, i), this[P("0x6ea")](t, i), this[P("0x73f")](t, i), this[P("0x6ec")](t, i), this._updateCommandRenderStateAlpha(t, i), this[P("0x6fb")](t, i);
        var r = this[P("0x5b6")];
        r || ((r = this[P("0x5b6")] = new e[P("0x5d3")]())[P("0x5d4")] = e[P("0x5e4")][P("0x5e5")], r[P("0x5cd")] = this, r.count = 6), r.instanceCount = this._count, this[P("0x740")](t, r), this[P("0x6ea")](t, r), this[P("0x741")](t, r), this[P("0x6ec")](t, r), this._updateCommandRenderStateOpaque(t, r), this[P("0x6fb")](t, r);
      }, o[P("0x5")][P("0x6e7")] = function () {
        var e = this[P("0x5b5")];
        return !!(e && e[P("0x5cb")] && e[P("0x4bc")] && e[P("0x5cc")] && e[P("0x5de")] && e[P("0x5d5")]);
      };
      var u = {
        aPlane: 0
      };
      u[P("0x6ee")] = 1, u[P("0x6ef")] = 2, u[P("0x6f0")] = 3, u[P("0x6f3")] = 4, o[P("0x5")][P("0x6f1")] = function (t, i) {
        var r = this._count,
            n = t[P("0x3cc")];
        this[P("0x6cf")] || (this[P("0x6cf")] = e[P("0x5e8")][P("0x5e7")](e.ComponentDatatype[P("0x5e9")], 4 * r));
        var o = this[P("0x6cf")];
        this[P("0x6d8")] || (this[P("0x6d8")] = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 4 * r));
        var a = this[P("0x6d8")];
        this[P("0x6d0")] || (this[P("0x6d0")] = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 4 * r));

        for (var s = this._speedScaleLifeTimesArray, x = 0; x < r; x++) {
          var l = this[P("0x72f")][x],
              c = l[P("0x8c")];
          o[4 * x] = c.x, o[4 * x + 1] = c.y, o[4 * x + 2] = c.z, o[4 * x + 3] = l.alphaFact;
          var h = l.direction;
          a[4 * x] = h.x, a[4 * x + 1] = h.y, a[4 * x + 2] = h.z, a[4 * x + 3] = l[P("0xd3")], s[4 * x] = l.speed, s[4 * x + 1] = l[P("0x6e0")], s[4 * x + 2] = l[P("0x6c4")], s[4 * x + 3] = l[P("0x6f2")];
        }

        var f = e[P("0x5ea")][P("0x5eb")]({
          context: n,
          typedArray: new Float32Array([-0.5, 0, 0.5, 0, 1, 2, -1, 2]),
          usage: e.BufferUsage[P("0x4d6")]
        }),
            d = e[P("0x5ea")][P("0x5eb")]({
          context: n,
          typedArray: o,
          usage: e.BufferUsage[P("0x4d6")]
        }),
            g = e[P("0x5ea")][P("0x5eb")]({
          context: n,
          typedArray: a,
          usage: e.BufferUsage[P("0x4d6")]
        }),
            p = e[P("0x5ea")][P("0x5eb")]({
          context: n,
          typedArray: s,
          usage: e.BufferUsage[P("0x4d6")]
        }),
            m = e[P("0x5ea")][P("0x5eb")]({
          context: n,
          typedArray: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]),
          usage: e[P("0x4d5")].STATIC_DRAW
        }),
            b = e[P("0x5ea")].createIndexBuffer({
          context: n,
          typedArray: new Uint16Array([0, 1, 2, 0, 2, 3]),
          usage: e[P("0x4d5")].STATIC_DRAW,
          indexDatatype: e[P("0x742")][P("0x5ed")]
        }),
            v = [];
        v.push({
          index: u[P("0x6ee")],
          vertexBuffer: d,
          componentsPerAttribute: 4,
          componentDatatype: e.ComponentDatatype[P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 16,
          normalize: !1,
          instanceDivisor: 1
        }), v[P("0x17c")]({
          index: u[P("0x6ef")],
          vertexBuffer: g,
          componentsPerAttribute: 4,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 16,
          normalize: !1,
          instanceDivisor: 1
        }), v[P("0x17c")]({
          index: u[P("0x6f0")],
          vertexBuffer: p,
          componentsPerAttribute: 4,
          componentDatatype: e.ComponentDatatype[P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 16,
          normalize: !1,
          instanceDivisor: 1
        }), v.push({
          index: u[P("0x6f3")],
          vertexBuffer: m,
          componentsPerAttribute: 2,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 8,
          normalize: !1
        }), v[P("0x17c")]({
          index: u[P("0x6f4")],
          vertexBuffer: f,
          componentsPerAttribute: 2,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 8,
          normalize: !1
        });
        var C = new e[P("0x5ee")]({
          context: n,
          attributes: v,
          indexBuffer: b
        });
        i[P("0x5cb")] && i[P("0x5cb")][P("0xf4")](), i[P("0x5cb")] = C;
      }, o[P("0x5")][P("0x740")] = function (t, i) {
        this[P("0x6c9")];
        var r = t.context;

        if (this._pointsArray) {
          var n = this[P("0x6cf")],
              o = this._directionsArray,
              a = this[P("0x6d0")],
              s = e[P("0x5ea")][P("0x5eb")]({
            context: r,
            typedArray: new Float32Array([-0.5, 0, 0.5, 0, 1, 2, -1, 2]),
            usage: e[P("0x4d5")][P("0x4d6")]
          }),
              x = e[P("0x5ea")].createVertexBuffer({
            context: r,
            typedArray: n,
            usage: e[P("0x4d5")][P("0x4d6")]
          }),
              l = e[P("0x5ea")].createVertexBuffer({
            context: r,
            typedArray: o,
            usage: e[P("0x4d5")].STATIC_DRAW
          }),
              c = e[P("0x5ea")][P("0x5eb")]({
            context: r,
            typedArray: a,
            usage: e[P("0x4d5")][P("0x4d6")]
          }),
              h = e[P("0x5ea")][P("0x5eb")]({
            context: r,
            typedArray: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]),
            usage: e.BufferUsage[P("0x4d6")]
          }),
              f = e[P("0x5ea")][P("0x5ec")]({
            context: r,
            typedArray: new Uint16Array([0, 1, 2, 0, 2, 3]),
            usage: e[P("0x4d5")].STATIC_DRAW,
            indexDatatype: e[P("0x742")].UNSIGNED_SHORT
          }),
              d = [];
          d[P("0x17c")]({
            index: u[P("0x6ee")],
            vertexBuffer: x,
            componentsPerAttribute: 4,
            componentDatatype: e[P("0x5e8")][P("0x5e9")],
            offsetInBytes: 0,
            strideInBytes: 16,
            normalize: !1,
            instanceDivisor: 1
          }), d[P("0x17c")]({
            index: u.aDirection,
            vertexBuffer: l,
            componentsPerAttribute: 4,
            componentDatatype: e.ComponentDatatype[P("0x5e9")],
            offsetInBytes: 0,
            strideInBytes: 16,
            normalize: !1,
            instanceDivisor: 1
          }), d.push({
            index: u[P("0x6f0")],
            vertexBuffer: c,
            componentsPerAttribute: 4,
            componentDatatype: e[P("0x5e8")][P("0x5e9")],
            offsetInBytes: 0,
            strideInBytes: 16,
            normalize: !1,
            instanceDivisor: 1
          }), d[P("0x17c")]({
            index: u[P("0x6f3")],
            vertexBuffer: h,
            componentsPerAttribute: 2,
            componentDatatype: e[P("0x5e8")][P("0x5e9")],
            offsetInBytes: 0,
            strideInBytes: 8,
            normalize: !1
          }), d[P("0x17c")]({
            index: u[P("0x6f4")],
            vertexBuffer: s,
            componentsPerAttribute: 2,
            componentDatatype: e[P("0x5e8")].FLOAT,
            offsetInBytes: 0,
            strideInBytes: 8,
            normalize: !1
          });
          var g = new e.VertexArray({
            context: r,
            attributes: d,
            indexBuffer: f
          });
          i.vertexArray && i[P("0x5cb")].destroy(), i[P("0x5cb")] = g;
        }
      };
      var h = new e[P("0x5f1")]();
      o[P("0x5")][P("0x6ea")] = function (t, i) {
        var r = this._positions[P("0x0")];

        if (r < 1) i[P("0x4bc")] = null;else if (r < 2) h.center = this[P("0x6be")][0][P("0x6e")](h[P("0x11a")]), h[P("0x181")] = this[P("0x63c")] + this._maxSpeed * this[P("0x6c6")], i.boundingVolume = h;else {
          h[P("0x11a")] = this._positions[0][P("0x6e")](h[P("0x11a")]), h[P("0x181")] = this[P("0x63c")];

          for (var n = 1; n < r; n++) {
            e[P("0x5f1")].expand(h, this[P("0x6be")][n], h);
          }

          i.boundingVolume = h;
        }
      }, o[P("0x5")][P("0x73f")] = function (t, i) {
        if (!i[P("0x5cc")]) {
          var r = t[P("0x3cc")];
          i[P("0x5cc")] = e[P("0x5dc")][P("0x5d7")]({
            context: r,
            vertexShaderSource: f,
            fragmentShaderSource: d,
            attributeLocations: u
          });
        }
      }, o[P("0x5")]._updateCommandShaderProgramOpaque = function (t, i) {
        if (!i[P("0x5cc")]) {
          var r = t[P("0x3cc")];
          i[P("0x5cc")] = e[P("0x5dc")].fromCache({
            context: r,
            vertexShaderSource: g,
            fragmentShaderSource: p,
            attributeLocations: u
          });
        }
      }, o[P("0x5")][P("0x6ec")] = function (e, t) {
        var i = t[P("0x5de")] = {};

        if (!i || !i[P("0x48b")]) {
          var r = this;
          i._ready = !0, i[P("0x6f5")] = function () {
            return r._startScale;
          }, i[P("0x6f6")] = function () {
            return r._endScale;
          }, i[P("0x6f7")] = function () {
            return r[P("0x6c1")];
          }, i[P("0x743")] = function () {
            return r[P("0x72c")];
          }, i.u_endColor = function () {
            return r[P("0x6c2")];
          }, i[P("0x6f9")] = function () {
            return r[P("0x6cc")];
          };
        }
      }, o[P("0x5")]._updateCommandRenderStateAlpha = function (t, i) {
        i[P("0x5d5")] || (i[P("0x5d5")] = e.RenderState[P("0x5d7")]({
          cull: {
            enabled: !1
          },
          depthTest: {
            enabled: !0,
            func: e.WebGLConstants.LEQUAL
          },
          depthMask: !1,
          blending: e[P("0x5da")][P("0x5db")]
        }));
      }, o.prototype._updateCommandRenderStateOpaque = function (t, i) {
        i[P("0x5d5")] || (i[P("0x5d5")] = e[P("0x5d6")][P("0x5d7")]({
          cull: {
            enabled: !1
          },
          depthTest: {
            enabled: !0,
            func: e.WebGLConstants[P("0x5d9")]
          },
          depthMask: !0
        }));
      }, o.prototype[P("0x6fb")] = function (t, i) {
        i[P("0x4ac")] || (i[P("0x4ac")] = e[P("0x1b")][P("0xae")]);
      };
      var f = P("0x6fc") + P("0x744") + P("0x6fd") + "attribute vec4 aSpeedScaleLifeTime;\nattribute vec2 aTexcoord;\nuniform vec4 u_startColor;\n" + P("0x745") + "uniform float u_startScale;\n" + P("0x700") + P("0x746") + "varying vec3 v_texcoord_0;\nvarying vec4 v_colorFact;\n" + P("0x703") + P("0x747") + P("0x705") + P("0x748") + P("0x706") + P("0x707") + "}\nvoid main()\n{\n" + P("0x709") + P("0x70a") + P("0x70b") + P("0x749") + P("0x74a") + "   baseScale *= mix(u_startScale, u_endScale, t);\n" + P("0x74b") + P("0x70d") + P("0x74c") + P("0x74d") + "   v_colorFact = vec4(mix(u_startColor.rgb, u_endColor.rgb, aPosition.w * (u_startColor.a + u_endColor.a) / 2.0), aPosition.w);\n}",
          d = P("0x701") + P("0x702") + P("0x716") + P("0x708") + "{\n" + P("0x719") + P("0x74e") + "   color = czm_gammaCorrect(color);\n" + P("0x74f") + P("0x726") + P("0x750") + "   gl_FragColor = color;\n}",
          g = "attribute vec2 aPlane;\n" + P("0x744") + P("0x6fd") + P("0x6fe") + P("0x6ff") + P("0x751") + P("0x745") + P("0x752") + P("0x700") + "uniform float u_imageSize;\n" + P("0x701") + "varying vec4 v_colorFact;\n" + P("0x703") + P("0x747") + "   vec4 result = czm_modelView * vec4(v, 1.0);\n" + P("0x748") + P("0x706") + "   return result;\n}\n" + P("0x708") + "{\n" + P("0x709") + P("0x70a") + P("0x70b") + P("0x749") + P("0x74a") + P("0x70c") + P("0x74b") + P("0x70d") + P("0x74c") + "   v_texcoord_0.z = t;\n" + P("0x753") + "}",
          p = P("0x701") + P("0x702") + P("0x716") + "void main()\n{\n" + P("0x754") + P("0x719") + P("0x74e") + P("0x755") + P("0x74f") + P("0x726") + "   if (color.a < 0.746){discard;}\n" + P("0x728") + "}";
    }(window.Cesium), function (e) {
      function t(t) {
        t = i(t, i[P("0x128")]), this[P("0x13b")] = t[P("0x13b")], this[P("0x756")] = t[P("0x756")], this[P("0x440")] = t.data, this.sampleMaxHeight = i(t[P("0x757")], 2e4), this.sampleMaxPoint = i(t[P("0x758")], 50), this.isParabola = i(t[P("0x759")], !0), this.autoToGround = i(t[P("0x75a")], !1), this._data = [], this[P("0x75b")] = r + "_" + e[P("0x75c")](), this._lines = [], this[P("0x69c")](this[P("0x440")]), this[P("0x75d")]();
      }

      t[P("0x5")][P("0x69c")] = function (t) {
        var i = this;
        this[P("0x75e")] = [];
        var r = this;
        t instanceof Array && t.forEach(function (t) {
          var n = e.Cartesian3[P("0x1a1")][P("0x346")](i, t[P("0x75f")][0]),
              o = e[P("0x11")][P("0x1a1")][P("0x346")](i, t[P("0x75f")][1]),
              a = [];
          r[P("0x759")] ? a = function (t, i, r, n) {
            var o = [],
                a = e[P("0x13")].fromCartesian(t),
                s = e[P("0x13")].fromCartesian(i),
                x = 180 * a[P("0x112")] / Math.PI,
                l = 180 * a[P("0x114")] / Math.PI,
                c = 180 * s[P("0x112")] / Math.PI,
                u = 180 * s[P("0x114")] / Math.PI,
                h = Math[P("0xca")]((x - c) * (x - c) + (l - u) * (l - u)) * r,
                f = e[P("0x11")].clone(t),
                d = e.Cartesian3[P("0x6e")](i),
                g = e[P("0x11")][P("0x8e")](f, e[P("0x11")][P("0x6f")]),
                p = e[P("0x11")].distance(d, e[P("0x11")][P("0x6f")]);
            if (e[P("0x11")][P("0x8d")](f, f), e[P("0x11")][P("0x8d")](d, d), 0 == e.Cartesian3[P("0x8e")](f, d)) return o;
            var m = e[P("0x11")][P("0xcb")](f, d);
            o.push(t);

            for (var b = 1; b < n - 1; b++) {
              var v = 1 * b / (n - 1),
                  C = 1 - v,
                  y = Math[P("0x98")](C * m) / Math[P("0x98")](m),
                  _ = Math[P("0x98")](v * m) / Math.sin(m),
                  A = e[P("0x11")][P("0x6c")](f, y, new e[P("0x11")]()),
                  I = e[P("0x11")][P("0x6c")](d, _, new e.Cartesian3()),
                  w = e[P("0x11")][P("0x6d")](A, I, new e[P("0x11")]()),
                  G = v * Math.PI,
                  E = g * C + p * v + Math[P("0x98")](G) * h;

              w = e.Cartesian3[P("0x6c")](w, E, w), o.push(w);
            }

            return o[P("0x17c")](i), o;
          }(n, o, r.sampleMaxHeight, r.sampleMaxPoint) : t.posititons[P("0x1e4")](function (t) {
            a[P("0x17c")](e[P("0x11")].fromDegrees[P("0x346")](i, t));
          }), r[P("0x75e")][P("0x17c")]({
            posititons: a,
            color: t[P("0x169")],
            width: t[P("0x19a")],
            duration: t.duration
          });
        });
      }, t[P("0x5")][P("0x760")] = function () {
        return this[P("0x75e")];
      }, t[P("0x5")][P("0x761")] = function () {
        var t = this._data,
            i = this[P("0x762")],
            r = this[P("0x13b")].entities,
            o = this[P("0x75b")],
            a = this;
        this._clearPolylines(), t instanceof Array && t.forEach(function (t) {
          var s = new e[P("0x18e")]({
            name: o,
            polyline: {
              positions: t[P("0x75f")],
              width: t[P("0x19a")],
              clampToGround: !a[P("0x759")] && a.autoToGround,
              material: new n({
                color: t[P("0x169")],
                width: t[P("0x19a")],
                duration: t[P("0x763")],
                playing: a[P("0x756")]
              })
            }
          });
          i.push(s), r.add(s);
        });
      }, t[P("0x5")].render = function () {
        this[P("0x761")]();
      }, t[P("0x5")][P("0x764")] = function () {
        var e = this[P("0x762")],
            t = this[P("0x13b")][P("0x194")];
        e.forEach(function (e) {
          t[P("0x17f")](e);
        }), e[P("0x0")] = 0;
      }, t.prototype[P("0x543")] = function (e) {
        this[P("0x756")] = "boolean" == typeof e ? e : !this.playing;
        var t = this[P("0x762")];
        e = this.playing, t.forEach(function (t) {
          t[P("0x2eb")][P("0x19c")][P("0x756")] = e;
        });
      }, t[P("0x5")].destroy = function () {
        this[P("0x764")](), this[P("0x75e")] = void 0, this._lines = void 0, this[P("0x75b")] = void 0, this.viewer = void 0, this[P("0x440")] = void 0, this[P("0x759")] = void 0, this.playing = void 0, this[P("0x757")] = void 0, this[P("0x758")] = void 0;
      };
      var i = e[P("0x102")],
          r = (e.defined, "GEOODLINE");

      function n(t) {
        this[P("0x765")] = new e[P("0x766")](), this[P("0x596")] = void 0, this._colorSubscription = void 0, this.color = t[P("0x169")], this[P("0x19a")] = t[P("0x19a")], this[P("0x763")] = t.duration, this[P("0x756")] = t[P("0x756")], this._time = new Date()[P("0x68")]();
      }

      e.defineProperties(n[P("0x5")], {
        isConstant: {
          get: function get() {
            return !1;
          }
        },
        definitionChanged: {
          get: function get() {
            return this[P("0x765")];
          }
        },
        color: e[P("0x767")](P("0x169"))
      }), n[P("0x5")][P("0x768")] = function (e) {
        return r;
      }, n[P("0x5")][P("0x512")] = function (t, i) {
        return e[P("0x14")](i) || (i = {}), i[P("0x169")] = e.Property[P("0x769")](this._color, t, e[P("0x16a")][P("0x2cf")], i[P("0x169")]), i.totoalFrameCount = this[P("0x756")] ? 60 * this[P("0x763")] : 0, i;
      }, n[P("0x5")][P("0x84")] = function (e) {
        return this === e;
      }, delete e[P("0x212")][P("0x76a")]._materials[r], e.Material[P("0x76a")][P("0x76b")](r, {
        fabric: {
          type: r,
          uniforms: {
            color: new e[P("0x16a")](1, 1, 0, 1),
            totoalFrameCount: 450
          },
          source: "\n\t\tczm_material czm_getMaterial(czm_materialInput materialInput)\n\t\t{\n\t\t    czm_material material = czm_getDefaultMaterial(materialInput);\n\t\t    vec2 st = materialInput.st;\n\t\t    float t = mod(czm_frameNumber, totoalFrameCount) / totoalFrameCount; \n\t\t    t *= 1.03;\n\t\t    float alpha = smoothstep(t- 0.03, t, st.s) * step(-t, -st.s); \n\t\t    alpha += 0.1;\n\t\t    material.diffuse = color.rgb;\n\t\t    material.alpha = alpha;\n\t\t    return material;\n\t\t}\n    "
        },
        translucent: function translucent() {
          return !0;
        }
      }), e.GeoODLine = t;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x76c")] = function (t) {
        this[P("0x13c")] = t[P("0x13b")], this._actived = !!t[P("0x5bb")] && t[P("0x5bb")], this[P("0x76d")] = null, this[P("0x76e")] = null, this._viewMatrix = e[P("0x1b")][P("0xae")], this[P("0x76f")] = [], this._framebuffer = null, this[P("0x770")] = null, this[P("0x771")] = null, this._groundTexture = null, this._xPlane = null, this[P("0x772")] = null, this[P("0x773")] = null, this[P("0x774")] = null, this[P("0x5b7")] = !1, this[P("0x775")](t), this[P("0x776")](t), this._createFireEffect(t), this[P("0x777")](t), this[P("0x778")](t);
      };

      e[P("0xf")](t.prototype, {
        explode: {
          get: function get() {
            return this[P("0x76d")] ? this._fireEffect[P("0x6bd")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")].explode = e);
          }
        },
        scale: {
          get: function get() {
            return this._fireEffect ? this._fireEffect.scale : 1;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")][P("0xfc")] = e);
          }
        },
        life: {
          get: function get() {
            return this[P("0x76d")] ? this[P("0x76d")][P("0x6c4")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")].life = e);
          }
        },
        speed: {
          get: function get() {
            return this[P("0x76d")] ? this._fireEffect[P("0x539")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")].speed = e);
          }
        },
        radius: {
          get: function get() {
            return this[P("0x76d")] ? this[P("0x76d")][P("0x181")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")][P("0x181")] = e);
          }
        },
        grow: {
          get: function get() {
            return this[P("0x76d")] ? this[P("0x76d")][P("0x6cb")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this[P("0x76d")][P("0x6cb")] = e);
          }
        },
        smoking: {
          get: function get() {
            return this[P("0x76d")] ? this._fireEffect[P("0x6c3")] : 0;
          },
          set: function set(e) {
            this[P("0x76d")] && (this._fireEffect[P("0x6c3")] = e);
          }
        },
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          },
          set: function set(e) {
            this[P("0x5ba")] = e;
          }
        }
      }), t.prototype[P("0xd2")] = function (e) {
        this[P("0x5ba")] ? (this[P("0x779")](e), this._postProcess && (this[P("0x77a")] = e[P("0x7e")][P("0x77b")], this._groundTexture ? (this._postProcess[P("0x364")] = !0, this[P("0x13c")][P("0x10f")][P("0x77c")][P("0xd1")](this[P("0x76e")]) || (this[P("0x13c")][P("0x10f")][P("0x77c")].add(this[P("0x76e")]), this[P("0x76e")][P("0xd2")](e[P("0x3cc")], e[P("0x77d")]))) : this[P("0x76e")].enabled = !1)) : this._postProcess && (this[P("0x76e")][P("0x364")] = !1);
      }, t.prototype[P("0x77e")] = function (t) {
        if (t && !this._fireEffect) {
          var i = t[P("0x19f")];

          if (i && void 0 !== i[P("0x0")] && !(i.length < 1)) {
            var r = i[P("0x0")];
            i[0][0] == i[r - 1][0] && i[0][1] == i[r - 1][1] && i[0][2] == i[r - 1][2] || i[P("0x17c")]([i[0][0], i[0][1], i[0][2]]), t[P("0x6bd")] || (t[P("0x6bd")] = 0.21), t[P("0x6c3")] || (t.smoking = 0.15), t[P("0xfc")] || (t[P("0xfc")] = 1), t[P("0x6c4")] || (t[P("0x6c4")] = 1.1), t[P("0x539")] || (t[P("0x539")] = 1.7), this[P("0x76d")] = new e[P("0x77f")](t);
          }
        }
      };
      var i = new e[P("0x11")](),
          r = new e[P("0x11")]();
      t[P("0x5")][P("0x780")] = function (t, n) {
        var o = e[P("0x11")][P("0x99")](n, t, i);
        e[P("0x11")][P("0x8d")](o, o);
        var a = e.Cartesian3[P("0x308")](t, n, 0.5, r);
        return new e[P("0x12")](o.x, o.y, o.z, -e[P("0x11")].dot(o, a));
      }, t[P("0x5")]._appendAreaPlanes = function (e, t, i, r) {
        e[P("0x17c")](this[P("0x780")](t, i)), e[P("0x17c")](this._computePlane(i, r)), e[P("0x17c")](this._computePlane(r, t));
      }, t.prototype[P("0x781")] = function (t) {
        var i = this,
            r = t.context,
            n = r[P("0x782")],
            o = r[P("0x783")];
        i[P("0x770")] && (i[P("0x770")].destroy(), i._depthAttachment = null), i[P("0x784")] && (i[P("0x784")].destroy(), i._framebuffer = null);
        var a = new e[P("0x6db")]({
          context: r,
          width: n,
          height: o,
          pixelFormat: e[P("0x785")][P("0x786")],
          pixelDatatype: e[P("0x787")][P("0x788")],
          sampler: new e[P("0x789")]({
            wrapS: e.TextureWrap[P("0x78a")],
            wrapT: e[P("0x78b")][P("0x78a")],
            minificationFilter: e[P("0x78c")][P("0x78d")],
            magnificationFilter: e[P("0x78e")][P("0x78d")]
          })
        }),
            s = new e[P("0x78f")]({
          context: r,
          depthStencilTexture: a,
          destroyAttachments: !1
        });
        i._clearCommand || (i[P("0x771")] = new e[P("0x790")]({
          depth: 1,
          color: new e.Color()
        })), i[P("0x784")] = s, i[P("0x770")] = a;
      }, t[P("0x5")][P("0x791")] = function (t) {
        (t = t || {}).explode = t.explode ? 0.2 * t[P("0x6bd")] : 0.2, t.smoking = t[P("0x6c3")] ? 0.95 * t[P("0x6c3")] : 0.95, t[P("0x6c4")] = t[P("0x6c4")] ? 4.5 * t[P("0x6c4")] : 4.5, t[P("0xfc")] = t[P("0xfc")] ? t[P("0xfc")] : 1, t[P("0x181")] = t[P("0x181")] ? 0.5 * t[P("0x181")] : 0.5, t.speed = t[P("0x539")] ? 0.4 * t.speed : 0.4;
        var i = new e[P("0x77f")](t);
        this[P("0x76f")][P("0x17c")](i);
      }, t.prototype[P("0x792")] = function (t) {
        var i = new e[P("0x72b")](t);
        this[P("0x76f")].push(i);
      }, t[P("0x5")]._updateAssiged = function (e) {
        var t = this;
        this[P("0x76d")] && this[P("0x76d")][P("0xd2")](e);

        for (var i = t[P("0x76f")].length, r = 0; r < i; r++) {
          t[P("0x76f")][r][P("0xd2")](e);
        }

        if (t[P("0x784")] && t[P("0x784")][P("0x793")]._width == e[P("0x3cc")][P("0x782")] && t[P("0x784")][P("0x793")]._height == e.context[P("0x783")] || t._createAssignedFrameBuffer(e), t._framebuffer) {
          var n = e[P("0x3cc")],
              o = e[P("0x5ca")],
              a = e[P("0x5ca")] = [];

          for (a.push(t._clearCommand), r = 0; r < i; r++) {
            t._assigned[r].updateNext(e);
          }

          t[P("0x76d")][P("0x6e8")](e), e[P("0x5ca")] = o;
          var s = t[P("0x13c")].scene[P("0x794")][P("0x795")],
              x = s[P("0x796")];
          if (s[P("0x796")] = t[P("0x784")], 0 < a[P("0x0")]) for (var l = 0; l < a.length; l++) {
            a[l][P("0x797")](n, s);
          }
          s[P("0x796")] = x;
        }
      }, t[P("0x5")][P("0x778")] = function (t) {
        if (t && !this[P("0x76e")]) {
          var i = t[P("0x19f")];

          if (i) {
            var r = i[P("0x0")];

            if (r && !(r < 4)) {
              var n = this;
              r -= 2;

              for (var o = [], a = e[P("0x13")][P("0x1a1")][P("0x346")](this, i[0]), s = e[P("0x11")][P("0x3d0")](a[P("0x112")], a.latitude, a[P("0x8b")]), x = 1; x < r && !(12 <= x); x++) {
                a = e.Cartographic.fromDegrees[P("0x346")](this, i[x]);
                var l = e[P("0x11")].fromRadians(a[P("0x112")], a[P("0x114")], a[P("0x8b")]);
                a = e[P("0x13")].fromDegrees[P("0x346")](this, i[x + 1]);
                var c = e.Cartesian3[P("0x3d0")](a[P("0x112")], a[P("0x114")], a[P("0x8b")]);

                this._appendAreaPlanes(o, s, l, c);
              }

              var u = P("0x798") + P("0x799") + P("0x79a") + 12[P("0x531")]() + P("0x79b") + P("0x79c") + P("0x79d") + P("0x79e") + P("0x79f") + P("0x7a0") + P("0x7a1") + P("0x7a2") + P("0x7a3") + P("0x7a4") + P("0x7a5") + P("0x7a6") + "    vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0);\n" + P("0x7a7") + "    return posInCamera;\n}\n" + P("0x7a8") + P("0x7a9") + P("0x7aa") + P("0x7ab") + P("0x7ac") + P("0x7ad") + "}\n" + P("0x7ae") + "    float x = czm_planeDistance(u_xPlane, position) / u_xyRange.x;\n" + P("0x7af") + P("0x7b0") + "}\n" + P("0x5f9") + P("0x7b1") + P("0x7b2") + P("0x7b3") + P("0x7b4") + P("0x7b5") + "    }\n" + P("0x7b6") + "    if(assigned.r < 1.0){\n" + P("0x7b4") + P("0x7b5") + P("0x7b7") + P("0x7b8") + "    vec4 positionEC = toEye(v_textureCoordinates, depth);\n    vec4 position = u_nViewMatrix * positionEC;\n    position /= position.w;\n" + P("0x7b9") + P("0x7ba") + P("0x7bb") + P("0x7bc") + 12[P("0x531")]() + "; i += 3){\n" + P("0x7bd") + P("0x7be") + P("0x7bf") + P("0x7c0") + "        float d1 = czm_planeDistance(u_planes[i+1], position.xyz);\n" + P("0x7c1") + P("0x7c2") + P("0x7c3") + "           color += colorGround * vec4(0.5);\n" + P("0x7c4") + P("0x7bf") + P("0x7b7") + "    gl_FragColor = color;\n}";
              this._postProcess = new e[P("0x7c5")]({
                fragmentShader: u,
                uniforms: {
                  u_nViewMatrix: function u_nViewMatrix() {
                    return n[P("0x77a")];
                  },
                  u_planes: function u_planes() {
                    return o;
                  },
                  u_count: function u_count() {
                    return o[P("0x0")];
                  },
                  u_assignedTexture: function u_assignedTexture() {
                    return n[P("0x770")];
                  },
                  u_groundTexture: function u_groundTexture() {
                    return n[P("0x7c6")];
                  },
                  u_xPlane: function u_xPlane() {
                    return n[P("0x7c7")];
                  },
                  u_yPlane: function u_yPlane() {
                    return n[P("0x772")];
                  },
                  u_zPlane: function u_zPlane() {
                    return n[P("0x773")];
                  },
                  u_xyRange: function u_xyRange() {
                    return n[P("0x774")];
                  }
                }
              }), this._postProcess[P("0x364")] = !1;
            }
          }
        }
      }, t[P("0x5")][P("0x775")] = function (t) {
        var i = t[P("0x19f")];

        if (i && void 0 !== i[P("0x0")] && !(i[P("0x0")] < 4)) {
          var r = e.Cartographic.fromDegrees.apply(this, i[0]),
              n = e[P("0x11")][P("0x3d0")](r[P("0x112")], r[P("0x114")], r[P("0x8b")]);
          r = e[P("0x13")][P("0x1a1")][P("0x346")](this, i[1]);
          var o = e[P("0x11")][P("0x3d0")](r[P("0x112")], r[P("0x114")], r.height);
          r = e[P("0x13")][P("0x1a1")].apply(this, i[2]);
          var a = e[P("0x11")].fromRadians(r.longitude, r[P("0x114")], r[P("0x8b")]),
              s = e[P("0x11")][P("0x95")](o, n, new e[P("0x11")]()),
              x = e[P("0x11")][P("0x95")](a, n, new e.Cartesian3()),
              l = e[P("0x11")][P("0x99")](x, s, new e.Cartesian3());
          e[P("0x11")][P("0x92")](l, n) < 0 && i[P("0x1e3")]();
        }
      }, t[P("0x5")][P("0x777")] = function (t) {
        var i = t[P("0x19f")];

        if (i && void 0 !== i[P("0x0")] && !(i[P("0x0")] < 4)) {
          var r = e[P("0x13")][P("0x1a1")][P("0x346")](this, i[0]),
              n = e[P("0x11")][P("0x3d0")](r.longitude, r[P("0x114")], r[P("0x8b")]);
          r = e[P("0x13")][P("0x1a1")].apply(this, i[1]);
          var o = e[P("0x11")][P("0x3d0")](r[P("0x112")], r[P("0x114")], r[P("0x8b")]);
          r = e.Cartographic[P("0x1a1")].apply(this, i[2]);
          var a = e.Cartesian3[P("0x3d0")](r[P("0x112")], r[P("0x114")], r[P("0x8b")]),
              s = e[P("0x11")].subtract(o, n, new e.Cartesian3()),
              x = e.Cartesian3[P("0x95")](a, n, new e.Cartesian3()),
              l = e.Cartesian3.magnitude(s),
              c = e.Cartesian3[P("0x96")](x);
          e[P("0x11")].normalize(s, s), e.Cartesian3[P("0x8d")](x, x);
          var u = e.Cartesian3.cross(x, s, new e.Cartesian3());
          e[P("0x11")].normalize(u, u);
          var h = e.Cartesian3[P("0x92")](x, s) * l,
              f = Math.max(l, h),
              d = e.Cartesian3[P("0x99")](s, u, new e[P("0x11")]());
          e[P("0x11")][P("0x8d")](d, d);
          var g = e[P("0x11")][P("0x92")](x, d) * c;
          this[P("0x7c7")] = new e.Cartesian4(s.x, s.y, s.z, -e[P("0x11")][P("0x92")](s, n)), this[P("0x772")] = new e.Cartesian4(d.x, d.y, d.z, -e[P("0x11")].dot(d, n)), this[P("0x773")] = new e[P("0x12")](u.x, u.y, u.z, -e[P("0x11")][P("0x92")](u, n)), this._xyRange = new e[P("0x10")](f, g);
        }
      }, t[P("0x5")][P("0x776")] = function (t) {
        if (t[P("0x7c8")] && !this[P("0x7c6")]) {
          var i = this,
              r = i[P("0x13c")].scene.frameState.context,
              n = e[P("0x6ba")](t.urlGround);
          e.Resource.fetchImage(n)[P("0x333")](function (t) {
            i[P("0x7c6")] = new e[P("0x6db")]({
              context: r,
              source: t,
              sampler: new e[P("0x789")]({
                wrapS: e[P("0x78b")][P("0x55a")],
                wrapT: e[P("0x78b")][P("0x55a")],
                minificationFilter: e[P("0x78c")][P("0x78d")],
                magnificationFilter: e[P("0x78e")][P("0x78d")]
              })
            }, function (e) {});
          });
        }
      }, t.prototype.destroy = function () {
        this[P("0x76d")] && (this[P("0x76d")][P("0xf4")](), this[P("0x76d")] = null), this[P("0x76e")] && (this[P("0x76e")][P("0x364")] = !1, this[P("0x13c")][P("0x10f")][P("0x77c")][P("0x17f")](this[P("0x76e")]), this[P("0x76e")] = null), this[P("0x77a")] = null;

        for (var e = 0; e < this[P("0x76f")].length; e++) {
          this[P("0x76f")][e][P("0xf4")](), this._assigned[e] = null;
        }

        this._assigned = null, this._framebuffer && (this[P("0x784")].destroy(), this._framebuffer = null), this[P("0x770")] && (this[P("0x770")][P("0xf4")](), this._depthAttachment = null), this[P("0x771")] = null, this[P("0x7c6")] = null, this[P("0x7c7")] = null, this._yPlane = null, this[P("0x773")] = null, this[P("0x774")] = null, this[P("0x13c")] = null;
      };
    }(window.Cesium);
    var j,
        V = {};

    if (function () {
      function e(e, t, i, r, n) {
        var o = [P("0x7c9"), e, "(a,l,h,", r[P("0x7ca")](","), "){", n ? "" : "var i=", i ? P("0x7cb") : "h+1", P("0x7cc")];
        return n ? t[P("0x2d3")]("c") < 0 ? o.push(P("0x7cd")) : o[P("0x17c")](P("0x7ce")) : o[P("0x17c")](P("0x7cf"), t, P("0x7d0")), i ? o[P("0x17c")](P("0x7d1")) : o[P("0x17c")](P("0x7d2")), o[P("0x17c")]("}"), n ? o[P("0x17c")](P("0x7d3")) : o.push(P("0x7d4")), o[P("0x7ca")]("");
      }

      function t(t, i, r, n) {
        return new Function([e("A", "x" + t + "y", i, ["y"], n), e("P", P("0x7d5") + t + "0", i, ["y", "c"], n), P("0x7d6"), r, P("0x7d7"), r][P("0x7ca")](""))();
      }

      V["binary-search-bounds"] = {
        ge: t(">=", !1, "GE"),
        gt: t(">", !1, "GT"),
        lt: t("<", !0, "LT"),
        le: t("<=", !0, "LE"),
        eq: t("-", !0, "EQ", !0)
      };
    }(), function (e) {
      e[P("0x7d8")] = {};
      var t = e[P("0x7d9")];

      function i(e, t) {
        this[P("0x7da")] = e, this.edges = t;
      }

      var r,
          n = i[P("0x5")];

      function o(e, t, i) {
        for (var r = 1, n = e.length; r < n; r += 2) {
          if (e[r - 1] === t && e[r] === i) return e[r - 1] = e[n - 2], e[r] = e[n - 1], void (e[P("0x0")] = n - 2);
        }
      }

      function a(e, t) {
        return e[0] - t[0] || e[1] - t[1];
      }

      n.isConstraint = (r = [0, 0], function (e, i) {
        return r[0] = Math[P("0x7d")](e, i), r[1] = Math[P("0xee")](e, i), 0 <= t.eq(this[P("0x7db")], r, a);
      }), n[P("0x7dc")] = function (e, t, i) {
        var r = this[P("0x7da")];
        o(r[e], t, i), o(r[t], i, e), o(r[i], e, t);
      }, n[P("0x7dd")] = function (e, t, i) {
        var r = this[P("0x7da")];
        r[e].push(t, i), r[t][P("0x17c")](i, e), r[i][P("0x17c")](e, t);
      }, n.opposite = function (e, t) {
        for (var i = this[P("0x7da")][t], r = 1, n = i[P("0x0")]; r < n; r += 2) {
          if (i[r] === e) return i[r - 1];
        }

        return -1;
      }, n[P("0x7de")] = function (e, t) {
        var i = this[P("0x7df")](e, t),
            r = this[P("0x7df")](t, e);
        this[P("0x7dc")](e, t, i), this[P("0x7dc")](t, e, r), this[P("0x7dd")](e, r, i), this[P("0x7dd")](t, i, r);
      }, n[P("0x7db")] = function () {
        for (var e = this[P("0x7da")], t = [], i = 0, r = e[P("0x0")]; i < r; ++i) {
          for (var n = e[i], o = 0, a = n[P("0x0")]; o < a; o += 2) {
            t.push([n[o], n[o + 1]]);
          }
        }

        return t;
      }, n[P("0x7e0")] = function () {
        for (var e = this[P("0x7da")], t = [], i = 0, r = e.length; i < r; ++i) {
          for (var n = e[i], o = 0, a = n[P("0x0")]; o < a; o += 2) {
            var s = n[o],
                x = n[o + 1];
            i < Math[P("0x7d")](s, x) && t.push([i, s, x]);
          }
        }

        return t;
      }, e[P("0x7d8")].createTriangulation = function (e, t) {
        for (var r = new Array(e), n = 0; n < e; ++n) {
          r[n] = [];
        }

        return new i(r, t);
      };
    }(V), function (e) {
      var t,
          i = e[P("0x1f2")] = {},
          r = e[P("0x7d9")];

      function n(e, t, i, r, n, o, a) {
        this[P("0x7e0")] = e, this[P("0x7e1")] = t, this[P("0x7e2")] = r, this.constraint = i, this[P("0x69")] = n, this[P("0x7e3")] = o, this.boundary = a;
      }

      function o(e, t) {
        return e[0] - t[0] || e[1] - t[1] || e[2] - t[2];
      }

      n[P("0x5")].locate = (t = [0, 0, 0], function (e, i, n) {
        var a = e,
            s = i,
            x = n;
        return i < n ? i < e && (a = i, s = n, x = e) : n < e && (a = n, s = e, x = i), a < 0 ? -1 : (t[0] = a, t[1] = s, t[2] = x, r.eq(this.cells, t, o));
      }), i.classifyFaces = function (e, t, i) {
        var r = function (e, t) {
          for (var i = e.cells(), r = i[P("0x0")], a = 0; a < r; ++a) {
            var s = (m = i[a])[0],
                x = m[1],
                l = m[2];
            x < l ? x < s && (m[0] = x, m[1] = l, m[2] = s) : l < s && (m[0] = l, m[1] = s, m[2] = x);
          }

          i[P("0x3d2")](o);
          var c = new Array(r);

          for (a = 0; a < c[P("0x0")]; ++a) {
            c[a] = 0;
          }

          var u = [],
              h = [],
              f = new Array(3 * r),
              d = new Array(3 * r),
              g = null;
          t && (g = []);
          var p = new n(i, f, d, c, u, h, g);

          for (a = 0; a < r; ++a) {
            for (var m = i[a], b = 0; b < 3; ++b) {
              s = m[b], x = m[(b + 1) % 3];
              var v = f[3 * a + b] = p[P("0x7e4")](x, s, e[P("0x7df")](x, s)),
                  C = d[3 * a + b] = e.isConstraint(s, x);
              v < 0 && (C ? h.push(a) : (u[P("0x17c")](a), c[a] = 1), t && g[P("0x17c")]([x, s, -1]));
            }
          }

          return p;
        }(e, i);

        if (0 === t) return i ? r.cells[P("0x1c6")](r[P("0x7e5")]) : r[P("0x7e0")];

        for (var a = 1, s = r[P("0x69")], x = r[P("0x7e3")], l = r[P("0x7e2")], c = r[P("0x7e0")], u = r[P("0x7e6")], h = r[P("0x7e1")]; 0 < s[P("0x0")] || 0 < x.length;) {
          for (; 0 < s[P("0x0")];) {
            var f = s[P("0x25c")]();

            if (l[f] !== -a) {
              l[f] = a, c[f];

              for (var d = 0; d < 3; ++d) {
                var g = h[3 * f + d];
                0 <= g && 0 === l[g] && (u[3 * f + d] ? x[P("0x17c")](g) : (s[P("0x17c")](g), l[g] = a));
              }
            }
          }

          var p = x;
          x = s, s = p, x[P("0x0")] = 0, a = -a;
        }

        var m = function (e, t, i) {
          for (var r = 0, n = 0; n < e[P("0x0")]; ++n) {
            t[n] === i && (e[r++] = e[n]);
          }

          return e[P("0x0")] = r, e;
        }(c, l, t);

        return i ? m.concat(r[P("0x7e5")]) : m;
      };
    }(V), function (e) {
      e[P("0x7e7")] = {}, e["two-sum"].fastTwoSum = function (e, t, i) {
        var r = e + t,
            n = r - e,
            o = t - n,
            a = e - (r - n);
        return i ? (i[0] = a + o, i[1] = r, i) : [a + o, r];
      };
    }(V), function (e) {
      var t = +(Math[P("0x2ae")](2, 27) + 1);
      e["two-product"] = {}, e["two-product"][P("0x7e8")] = function (e, i, r) {
        var n = e * i,
            o = t * e,
            a = o - (o - e),
            s = e - a,
            x = t * i,
            l = x - (x - i),
            c = i - l,
            u = s * c - (n - a * l - s * l - a * c);
        return r ? (r[0] = u, r[1] = n, r) : [u, n];
      };
    }(V), function (e) {
      var t = e["two-product"][P("0x7e8")],
          i = e["two-sum"][P("0x7e9")];
      e["robust-scale"] = {}, e["robust-scale"].scaleLinearExpansion = function (e, r) {
        var n = e[P("0x0")];

        if (1 === n) {
          var o = t(e[0], r);
          return o[0] ? o : [o[1]];
        }

        var a = new Array(2 * n),
            s = [0.1, 0.1],
            x = [0.1, 0.1],
            l = 0;
        t(e[0], r, s), s[0] && (a[l++] = s[0]);

        for (var c = 1; c < n; ++c) {
          t(e[c], r, x);
          var u = s[1];
          i(u, x[0], s), s[0] && (a[l++] = s[0]);
          var h = x[1],
              f = s[1],
              d = h + f,
              g = f - (d - h);
          s[1] = d, g && (a[l++] = g);
        }

        return s[1] && (a[l++] = s[1]), 0 === l && (a[l++] = 0), a.length = l, a;
      };
    }(V), function (e) {
      e[P("0x7ea")] = {}, e[P("0x7ea")][P("0x7eb")] = function (e, t) {
        var i,
            r,
            n,
            o,
            a,
            s = 0 | e.length,
            x = 0 | t[P("0x0")];
        if (1 == s && 1 == x) return (a = (i = e[0]) - ((n = i + (r = -t[0])) - (o = n - i)) + (r - o)) ? [a, n] : [n];
        var l,
            c,
            u = new Array(s + x),
            h = 0,
            f = 0,
            d = 0,
            g = Math[P("0x78")],
            p = e[f],
            m = g(p),
            b = -t[d],
            v = g(b);
        m < v ? (c = p, (f += 1) < s && (m = g(p = e[f]))) : (c = b, (d += 1) < x && (v = g(b = -t[d]))), f < s && m < v || x <= d ? (l = p, (f += 1) < s && (m = g(p = e[f]))) : (l = b, (d += 1) < x && (v = g(b = -t[d])));

        for (var C, y, _ = l + c, A = _ - l, I = c - A, w = I, G = _; f < s && d < x;) {
          m < v ? (l = p, (f += 1) < s && (m = g(p = e[f]))) : (l = b, (d += 1) < x && (v = g(b = -t[d]))), (I = (c = w) - (A = (_ = l + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C;
        }

        for (; f < s;) {
          (I = (c = w) - (A = (_ = (l = p) + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C, (f += 1) < s && (p = e[f]);
        }

        for (; d < x;) {
          (I = (c = w) - (A = (_ = (l = b) + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C, (d += 1) < x && (b = -t[d]);
        }

        return w && (u[h++] = w), G && (u[h++] = G), h || (u[h++] = 0), u[P("0x0")] = h, u;
      };
    }(V), function (e) {
      e[P("0x7ec")] = {}, e["robust-sum"][P("0x7ed")] = function (e, t) {
        var i,
            r,
            n,
            o,
            a,
            s = 0 | e[P("0x0")],
            x = 0 | t[P("0x0")];
        if (1 == s && 1 == x) return (a = (i = e[0]) - ((n = i + (r = t[0])) - (o = n - i)) + (r - o)) ? [a, n] : [n];
        var l,
            c,
            u = new Array(s + x),
            h = 0,
            f = 0,
            d = 0,
            g = Math[P("0x78")],
            p = e[f],
            m = g(p),
            b = t[d],
            v = g(b);
        m < v ? (c = p, (f += 1) < s && (m = g(p = e[f]))) : (c = b, (d += 1) < x && (v = g(b = t[d]))), f < s && m < v || x <= d ? (l = p, (f += 1) < s && (m = g(p = e[f]))) : (l = b, (d += 1) < x && (v = g(b = t[d])));

        for (var C, y, _ = l + c, A = _ - l, I = c - A, w = I, G = _; f < s && d < x;) {
          m < v ? (l = p, (f += 1) < s && (m = g(p = e[f]))) : (l = b, (d += 1) < x && (v = g(b = t[d]))), (I = (c = w) - (A = (_ = l + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C;
        }

        for (; f < s;) {
          (I = (c = w) - (A = (_ = (l = p) + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C, (f += 1) < s && (p = e[f]);
        }

        for (; d < x;) {
          (I = (c = w) - (A = (_ = (l = b) + c) - l)) && (u[h++] = I), w = G - ((C = G + _) - (y = C - G)) + (_ - y), G = C, (d += 1) < x && (b = t[d]);
        }

        return w && (u[h++] = w), G && (u[h++] = G), h || (u[h++] = 0), u[P("0x0")] = h, u;
      };
    }(V), function (e) {
      var t = e[P("0x7ee")].twoProduct,
          i = e[P("0x7ec")][P("0x7ed")],
          r = e["robust-subtract"][P("0x7eb")],
          n = e[P("0x7ef")][P("0x7f0")];

      function o(e, t) {
        for (var i = new Array(e.length - 1), r = 1; r < e.length; ++r) {
          for (var n = i[r - 1] = new Array(e[P("0x0")] - 1), o = 0, a = 0; o < e[P("0x0")]; ++o) {
            o !== t && (n[a++] = e[r][o]);
          }
        }

        return i;
      }

      function a(e) {
        if (1 === e[P("0x0")]) return e[0];
        if (2 === e.length) return [P("0x7f1"), e[0], ",", e[1], ")"].join("");
        var t = e.length >> 1;
        return [P("0x7f1"), a(e[P("0x1d5")](0, t)), ",", a(e.slice(t)), ")"].join("");
      }

      function s(e, t) {
        if ("m" !== e[P("0x68e")](0)) return s(t, e);
        if ("w" !== t[P("0x68e")](0)) return [P("0x7f4"), e, ",", t, ")"][P("0x7ca")]("");
        var i = e[P("0x7f2")]("[");
        return ["w", t[P("0x7f3")](1), "m", i[0][P("0x7f3")](1)][P("0x7ca")]("");
      }

      function x(e) {
        if (2 === e[P("0x0")]) return [["diff(", s(e[0][0], e[1][1]), ",", s(e[1][0], e[0][1]), ")"][P("0x7ca")]("")];

        for (var t = [], i = 0; i < e[P("0x0")]; ++i) {
          t.push([P("0x7f5"), a(x(o(e, i))), ",", !0 & i ? "-" : "", e[0][i], ")"][P("0x7ca")](""));
        }

        return t;
      }

      function l(e, t) {
        for (var i = [], r = 0; r < t - 2; ++r) {
          i[P("0x17c")]([P("0x7f6"), e, "[", r, "],m", e, "[", r, "])"].join(""));
        }

        return a(i);
      }

      function c(e) {
        for (var s = [], c = [], u = function (e) {
          for (var t = new Array(e), i = 0; i < e; ++i) {
            t[i] = new Array(e);

            for (var r = 0; r < e; ++r) {
              t[i][r] = ["m", r, "[", e - i - 2, "]"].join("");
            }
          }

          return t;
        }(e), h = 0; h < e; ++h) {
          u[0][h] = "1", u[e - 1][h] = "w" + h;
        }

        for (h = 0; h < e; ++h) {
          0 == (1 & h) ? s[P("0x17c")][P("0x346")](s, x(o(u, h))) : c[P("0x17c")][P("0x346")](c, x(o(u, h)));
        }

        var f = a(s),
            d = a(c),
            g = "exactInSphere" + e,
            p = [];

        for (h = 0; h < e; ++h) {
          p[P("0x17c")]("m" + h);
        }

        var m = [P("0x7c9"), g, "(", p[P("0x7ca")](), "){"];

        for (h = 0; h < e; ++h) {
          m[P("0x17c")](P("0x7f7"), h, "=", l(h, e), ";");

          for (var b = 0; b < e; ++b) {
            b !== h && m[P("0x17c")](P("0x7f7"), h, "m", b, P("0x7f8"), h, ",m", b, P("0x7f9"));
          }
        }

        return m.push(P("0x7fa"), f, ",n=", d, ",d=diff(p,n);return d[d.length-1];}return ", g), new Function(P("0x7fb"), P("0x7fc"), "prod", P("0xfc"), m.join(""))(i, r, t, n);
      }

      var u = [function () {
        return 0;
      }, function () {
        return 0;
      }, function () {
        return 0;
      }];
      !function () {
        for (; u[P("0x0")] <= 6;) {
          u[P("0x17c")](c(u[P("0x0")]));
        }

        for (var t = [], i = [P("0x7fd")], r = 0; r <= 6; ++r) {
          t[P("0x17c")]("a" + r), i.push("o" + r);
        }

        var n = [P("0x7fe"), t[P("0x7ca")](), "){switch(arguments.length){case 0:case 1:return 0;"];

        for (r = 2; r <= 6; ++r) {
          n[P("0x17c")]("case ", r, P("0x7ff"), r, "(", t[P("0x1d5")](0, r)[P("0x7ca")](), ");");
        }

        n[P("0x17c")]("}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return testInSphere"), i[P("0x17c")](n[P("0x7ca")](""));
        var o = Function[P("0x346")](void 0, i),
            a = e[P("0x800")] = o[P("0x346")](void 0, [function (e) {
          var t = u[e[P("0x0")]];
          return (t = t || (u[e.length] = c(e.length))).apply(void 0, e);
        }][P("0x1c6")](u));

        for (r = 0; r <= 6; ++r) {
          a[r] = u[r];
        }
      }();
    }(V), function (e) {
      var t = e[P("0x801")] = {},
          i = e["robust-in-sphere"][4];

      function r(e, t, r, n, o, a) {
        var s = t[P("0x7df")](n, o);

        if (!(s < 0)) {
          if (o < n) {
            var x = n;
            n = o, o = x, x = a, a = s, s = x;
          }

          t[P("0x802")](n, o) || i(e[n], e[o], e[a], e[s]) < 0 && r[P("0x17c")](n, o);
        }
      }

      t.delaunayRefine = function (e, t) {
        for (var n = [], o = e.length, a = t[P("0x7da")], s = 0; s < o; ++s) {
          for (var x = a[s], l = 1; l < x[P("0x0")]; l += 2) {
            if (!((f = x[l]) < s || t.isConstraint(s, f))) {
              for (var c = x[l - 1], u = -1, h = 1; h < x[P("0x0")]; h += 2) {
                if (x[h - 1] === f) {
                  u = x[h];
                  break;
                }
              }

              u < 0 || i(e[s], e[f], e[c], e[u]) < 0 && n[P("0x17c")](s, f);
            }
          }
        }

        for (; 0 < n[P("0x0")];) {
          for (var f = n[P("0x25c")](), d = (c = -1, u = -1, x = a[s = n[P("0x25c")]()], 1); d < x.length; d += 2) {
            var g = x[d - 1],
                p = x[d];
            g === f ? u = p : p === f && (c = g);
          }

          c < 0 || u < 0 || 0 <= i(e[s], e[f], e[c], e[u]) || (t[P("0x7de")](s, f), r(e, t, n, c, s, u), r(e, t, n, s, u, c), r(e, t, n, u, f, c), r(e, t, n, f, c, u));
        }
      };
    }(V), function (e) {
      var t = e["two-product"][P("0x7e8")],
          i = e[P("0x7ec")].linearExpansionSum,
          r = e["robust-scale"][P("0x7f0")],
          n = e[P("0x7ea")][P("0x7eb")];

      function o(e, t) {
        for (var i = new Array(e.length - 1), r = 1; r < e.length; ++r) {
          for (var n = i[r - 1] = new Array(e[P("0x0")] - 1), o = 0, a = 0; o < e[P("0x0")]; ++o) {
            o !== t && (n[a++] = e[r][o]);
          }
        }

        return i;
      }

      function a(e) {
        if (1 === e.length) return e[0];
        if (2 === e[P("0x0")]) return [P("0x7f1"), e[0], ",", e[1], ")"][P("0x7ca")]("");
        var t = e[P("0x0")] >> 1;
        return [P("0x7f1"), a(e.slice(0, t)), ",", a(e.slice(t)), ")"].join("");
      }

      function s(e) {
        if (2 === e[P("0x0")]) return [["sum(prod(", e[0][0], ",", e[1][1], P("0x803"), e[0][1], ",", e[1][0], "))"][P("0x7ca")]("")];

        for (var t = [], i = 0; i < e.length; ++i) {
          t[P("0x17c")]([P("0x7f5"), a(s(o(e, i))), ",", 1 & i ? "-" : "", e[0][i], ")"][P("0x7ca")](""));
        }

        return t;
      }

      function x(e) {
        for (var x = [], l = [], c = function (e) {
          for (var t = new Array(e), i = 0; i < e; ++i) {
            t[i] = new Array(e);

            for (var r = 0; r < e; ++r) {
              t[i][r] = ["m", r, "[", e - i - 1, "]"].join("");
            }
          }

          return t;
        }(e), u = [], h = 0; h < e; ++h) {
          0 == (1 & h) ? x[P("0x17c")].apply(x, s(o(c, h))) : l[P("0x17c")][P("0x346")](l, s(o(c, h))), u[P("0x17c")]("m" + h);
        }

        var f = a(x),
            d = a(l),
            g = P("0x11e") + e + P("0x804"),
            p = ["function ", g, "(", u[P("0x7ca")](), P("0x805"), f, P("0x806"), d, P("0x807"), g][P("0x7ca")]("");
        return new Function(P("0x7fb"), P("0x808"), P("0xfc"), "sub", p)(i, t, r, n);
      }

      var l = x(3),
          c = x(4),
          u = [function () {
        return 0;
      }, function () {
        return 0;
      }, function (e, t) {
        return t[0] - e[0];
      }, function (e, t, i) {
        var r,
            n = (e[1] - i[1]) * (t[0] - i[0]),
            o = (e[0] - i[0]) * (t[1] - i[1]),
            a = n - o;

        if (0 < n) {
          if (o <= 0) return a;
          r = n + o;
        } else {
          if (!(n < 0)) return a;
          if (0 <= o) return a;
          r = -(n + o);
        }

        var s = 33306690738754716e-32 * r;
        return s <= a || a <= -s ? a : l(e, t, i);
      }, function (e, t, i, r) {
        var n = e[0] - r[0],
            o = t[0] - r[0],
            a = i[0] - r[0],
            s = e[1] - r[1],
            x = t[1] - r[1],
            l = i[1] - r[1],
            u = e[2] - r[2],
            h = t[2] - r[2],
            f = i[2] - r[2],
            d = o * l,
            g = a * x,
            p = a * s,
            m = n * l,
            b = n * x,
            v = o * s,
            C = u * (d - g) + h * (p - m) + f * (b - v),
            y = 7771561172376103e-31 * ((Math[P("0x78")](d) + Math[P("0x78")](g)) * Math[P("0x78")](u) + (Math[P("0x78")](p) + Math[P("0x78")](m)) * Math[P("0x78")](h) + (Math[P("0x78")](b) + Math[P("0x78")](v)) * Math[P("0x78")](f));
        return y < C || y < -C ? C : c(e, t, i, r);
      }];
      !function () {
        for (; u.length <= 5;) {
          u[P("0x17c")](x(u[P("0x0")]));
        }

        for (var t = [], i = ["slow"], r = 0; r <= 5; ++r) {
          t[P("0x17c")]("a" + r), i[P("0x17c")]("o" + r);
        }

        var n = [P("0x809"), t[P("0x7ca")](), "){switch(arguments.length){case 0:case 1:return 0;"];

        for (r = 2; r <= 5; ++r) {
          n[P("0x17c")](P("0x80a"), r, P("0x7ff"), r, "(", t[P("0x1d5")](0, r)[P("0x7ca")](), ");");
        }

        n.push(P("0x80b")), i[P("0x17c")](n.join(""));
        var o = Function[P("0x346")](void 0, i),
            a = e[P("0x80c")] = o[P("0x346")](void 0, [function (e) {
          var t = u[e.length];
          return (t = t || (u[e.length] = x(e[P("0x0")])))[P("0x346")](void 0, e);
        }].concat(u));

        for (r = 0; r <= 5; ++r) {
          a[r] = u[r];
        }
      }();
    }(V), function (e) {
      var t = e[P("0x7d9")],
          i = e[P("0x80c")][3];

      function r(e, t, i, r, n) {
        this.a = e, this.b = t, this[P("0x80e")] = i, this[P("0x80f")] = r, this.upperIds = n;
      }

      function n(e, t, i, r) {
        this.a = e, this.b = t, this.type = i, this[P("0x80e")] = r;
      }

      function o(e, t) {
        var r = e.a[0] - t.a[0] || e.a[1] - t.a[1] || e[P("0x165")] - t[P("0x165")];
        return r || (0 !== e[P("0x165")] && (r = i(e.a, e.b, t.b)) ? r : e[P("0x80e")] - t[P("0x80e")]);
      }

      function a(e, t) {
        return i(e.a, e.b, t);
      }

      function s(e, r, n, o, s) {
        for (var x = t.lt(r, o, a), l = t.gt(r, o, a), c = x; c < l; ++c) {
          for (var u = r[c], h = u.lowerIds, f = h[P("0x0")]; 1 < f && 0 < i(n[h[f - 2]], n[h[f - 1]], o);) {
            e[P("0x17c")]([h[f - 1], h[f - 2], s]), --f;
          }

          h[P("0x0")] = f, h[P("0x17c")](s);
          var d = u[P("0x810")];

          for (f = d[P("0x0")]; 1 < f && i(n[d[f - 2]], n[d[f - 1]], o) < 0;) {
            e[P("0x17c")]([d[f - 2], d[f - 1], s]), --f;
          }

          d[P("0x0")] = f, d[P("0x17c")](s);
        }
      }

      function x(e, t) {
        var r;
        return (r = e.a[0] < t.a[0] ? i(e.a, e.b, t.a) : i(t.b, t.a, e.a)) ? r : (r = t.b[0] < e.b[0] ? i(e.a, e.b, t.b) : i(t.b, t.a, e.b)) || e.idx - t[P("0x80e")];
      }

      function l(e, i, r) {
        var n = r.a;
        r.a = r.b, r.b = n;
        var o = t.eq(e, r, x),
            a = e[o];
        e[o - 1][P("0x810")] = a[P("0x810")], e.splice(o, 1);
      }

      (e[P("0x80d")] = {})[P("0x811")] = function (e, i) {
        for (var a = e[P("0x0")], c = i[P("0x0")], u = [], h = 0; h < a; ++h) {
          u.push(new n(e[h], null, 0, h));
        }

        for (h = 0; h < c; ++h) {
          var f = i[h],
              d = e[f[0]],
              g = e[f[1]];
          d[0] < g[0] ? u[P("0x17c")](new n(d, g, 2, h), new n(g, d, 1, h)) : d[0] > g[0] && u[P("0x17c")](new n(g, d, 2, h), new n(d, g, 1, h));
        }

        u[P("0x3d2")](o);

        for (var p, m, b, v, C, y, _ = u[0].a[0] - (1 + Math[P("0x78")](u[0].a[0])) * Math[P("0x2ae")](2, -52), A = [new r([_, 1], [_, 0], -1, [], [], [], [])], I = [], w = (h = 0, u.length); h < w; ++h) {
          var G = u[h],
              E = G.type;
          0 === E ? s(I, A, e, G.a, G[P("0x80e")]) : 2 === E ? (m = G, v = void 0, y = (C = (v = (p = A)[b = t.le(p, m, x)])[P("0x810")])[C.length - 1], v[P("0x810")] = [y], p[P("0x259")](b + 1, 0, new r(m.a, m.b, m.idx, [y], C))) : l(A, 0, G);
        }

        return I;
      };
    }(V), function (e) {
      var t = e[P("0x812")] = {},
          i = e[P("0x80d")][P("0x811")],
          r = e[P("0x7d8")].createTriangulation,
          n = e.delaunay[P("0x813")],
          o = e[P("0x1f2")][P("0x814")];

      function a(e) {
        return [Math[P("0x7d")](e[0], e[1]), Math[P("0xee")](e[0], e[1])];
      }

      function s(e, t) {
        return e[0] - t[0] || e[1] - t[1];
      }

      function x(e, t, i) {
        return t in e ? e[t] : i;
      }

      t.cdt2d = function (e, t, l) {
        t = d()(t) ? (l = l || {}, t || []) : (l = t || {}, []);
        var c = !!x(l, "delaunay", !0),
            u = !!x(l, "interior", !0),
            h = !!x(l, P("0x816"), !0),
            f = !!x(l, P("0x817"), !1);
        if (!u && !h || 0 === e.length) return [];
        var g = i(e, t);

        if (c || u != h || f) {
          for (var p = r(e[P("0x0")], t[P("0x815")](a).sort(s)), m = 0; m < g.length; ++m) {
            var b = g[m];
            p[P("0x7dd")](b[0], b[1], b[2]);
          }

          return c && n(e, p), h ? u ? f ? o(p, 0, f) : p[P("0x7e0")]() : o(p, 1, f) : o(p, -1);
        }

        return g;
      };
    }(V), function (e) {
      function t(t) {
        t = t || {}, this[P("0x563")] = void 0, this[P("0x54e")] = void 0;
        var i = t[P("0x0")];
        e[P("0x14")](i) && 2 <= i && (this[P("0x563")] = e[P("0x23")][P("0x119")](t[0]), this[P("0x54e")] = e[P("0x23")][P("0x119")](t[1]));
      }

      var i = V[P("0x812")][P("0x812")];

      function r(i) {
        i = i || {}, this[P("0x818")] = [];
        var r = i[P("0x0")];
        if (e[P("0x14")](r) && 3 == r) for (var n = 0; n < 3; n++) {
          var o = new t(i[n]);
          this[P("0x818")][P("0x17c")](o);
        }
      }

      function n(i) {
        i = i || {}, this[P("0x818")] = [];
        var r = i[P("0x0")];
        if (e[P("0x14")](r) && 3 <= r) for (var n = 0; n < r; n++) {
          var o = new t(i[n]);
          this[P("0x818")][P("0x17c")](o);
        }
      }

      function o(t) {
        t = t || {}, this[P("0x81c")] = [];
        var i = t[P("0x0")];
        if (e[P("0x14")](i)) for (var r = 0; r < i; r++) {
          var o = new n(t[r]);
          this[P("0x81c")][P("0x17c")](o);
        }
      }

      t[P("0x3d0")] = function (e) {
        var i = new t();
        return i[P("0x563")] = e[0], i[P("0x54e")] = e[1], i;
      }, t.prototype[P("0x6d")] = function (e, i) {
        return (i = i || new t())[P("0x563")] = this[P("0x563")] + e[P("0x563")], i.lat = this.lat + e.lat, i;
      }, t[P("0x5")].scale = function (e, i) {
        return (i = i || new t())[P("0x563")] = this.lon * e, i[P("0x54e")] = this[P("0x54e")] * e, i;
      }, r[P("0x3d0")] = function (i) {
        var n = new r(),
            o = i[P("0x0")];
        if (e[P("0x14")](o) && 3 == o) for (var a = 0; a < 3; a++) {
          var s = t[P("0x3d0")](i[a]);

          n._points[P("0x17c")](s);
        }
        return n;
      }, r.prototype[P("0x11a")] = function () {
        for (var e = new t([0, 0]), i = this._points, r = i[P("0x0")], n = 0; n < r; n++) {
          var o = i[n];
          e[P("0x6d")](o, e), e[P("0xfc")](0.5, e);
        }

        return e;
      }, r[P("0x5")].adjustOrder = function () {
        var t = this[P("0x818")];

        if (3 == t.length) {
          var i = new e.Cartesian3(t[0][P("0x563")], t[0][P("0x54e")]),
              r = new e[P("0x11")](t[1].lon, t[1][P("0x54e")]),
              n = new e[P("0x11")](t[2][P("0x563")], t[2].lat),
              o = e[P("0x11")][P("0x95")](r, i, new e[P("0x11")]()),
              a = e[P("0x11")][P("0x95")](n, i, new e[P("0x11")]()),
              s = e[P("0x11")][P("0x99")](o, a, new e[P("0x11")]());

          if (e[P("0x11")][P("0x8d")](s, s), !(0 < e[P("0x11")][P("0x92")](s, e.Cartesian3[P("0xc3")]))) {
            var x = t[0];
            t[0] = t[2], t[2] = x;
          }
        }
      }, r[P("0x5")][P("0x819")] = function (t, i) {
        var r = this[P("0x818")],
            n = r[P("0x0")];
        if (3 != n) return !1;

        for (var o = 0; o < n; o++) {
          var a = r[o],
              s = e[P("0x11")][P("0x3d0")](a[P("0x563")], a[P("0x54e")], 0);
          e[P("0x1b")][P("0xd4")](t, s, s), i.push(s);
        }

        return !0;
      }, r[P("0x5")].peekSource = function (t, i) {
        var r = [];

        if (this[P("0x819")](t, r)) {
          var n = r[0],
              o = r[1],
              a = e[P("0x11")][P("0x95")](o, n, new e[P("0x11")]());
          e[P("0x11")][P("0x8d")](a, a);
          var s = e[P("0x11")][P("0x99")](e[P("0x11")].UNIT_Z, a, new e[P("0x11")]());
          e.Cartesian3.normalize(s, s);
          var x = -e[P("0x11")][P("0x92")](s, n);
          i[P("0x17c")](new e[P("0x368")](s, x)), n = r[1], o = r[2], a = e.Cartesian3[P("0x95")](o, n, new e[P("0x11")]()), e.Cartesian3[P("0x8d")](a, a), s = e.Cartesian3.cross(e[P("0x11")].UNIT_Z, a, new e[P("0x11")]()), e[P("0x11")][P("0x8d")](s, s), x = -e.Cartesian3[P("0x92")](s, n), i[P("0x17c")](new e[P("0x368")](s, x)), n = r[2], o = r[0], a = e[P("0x11")][P("0x95")](o, n, new e[P("0x11")]()), e.Cartesian3[P("0x8d")](a, a), s = e[P("0x11")][P("0x99")](e[P("0x11")].UNIT_Z, a, new e[P("0x11")]()), e[P("0x11")].normalize(s, s), x = -e[P("0x11")][P("0x92")](s, n), i[P("0x17c")](new e[P("0x368")](s, x));
        }
      }, r.prototype[P("0x81a")] = function (t) {
        var i = [];
        if (!this[P("0x819")](t, i)) return null;
        var r = i[0],
            n = i[1],
            o = e.Cartesian3.subtract(n, r, new e.Cartesian3());
        return e[P("0x11")].normalize(o, o), o;
      }, r[P("0x5")].computeBoundingSphere = function (t) {
        var i = [];
        if (!this[P("0x819")](t, i)) return null;
        var r = i[0],
            n = e.Cartesian3.distance(r, i[1]),
            o = e.Cartesian3[P("0x8e")](r, i[2]);
        return o < n && (o = n), new e[P("0x5f1")](r, o);
      }, n[P("0x5")][P("0x81b")] = function (e, t) {
        var i = e[P("0x0")],
            r = i,
            n = this._points;
        i = n[P("0x0")];

        for (var o = 0; o < i; o++) {
          var a = o + 1;
          a == i && (a = 0);
          var s = n[o];
          e.push([s[P("0x563")], s[P("0x54e")]]), t[P("0x17c")]([r + o, r + a]);
        }
      }, o[P("0x5")][P("0x81d")] = function (e, t, i) {
        for (var r = i[P("0x0")], n = 0; n < r; n++) {
          var o = i[n];
          if (o[0] == e && o[1] == t) return !0;
          if (o[0] == t && o[1] == e) return !0;
        }

        return !1;
      }, o[P("0x5")]._checkCell = function (e, t) {
        for (var i = e[P("0x0")], r = 0; r < i; r++) {
          var n = r + 1;
          if (n == i && (n = 0), !this[P("0x81d")](e[r], e[n], t)) return !1;
        }

        return !0;
      }, o[P("0x5")][P("0x81e")] = function (e, t) {
        for (var i = [], r = e[P("0x0")], n = 0; n < r; n++) {
          var o = e[n];
          this[P("0x81f")](o, t) && i.push(o);
        }

        e.length = 0, r = i[P("0x0")];

        for (var a = 0; a < r; a++) {
          e[P("0x17c")](i[a]);
        }
      }, o[P("0x5")][P("0x820")] = function (t) {
        var n = [],
            o = [],
            a = this[P("0x81c")],
            s = a[P("0x0")];

        if (!(s < 1)) {
          for (var x = 0; x < s; x++) {
            a[x].take(n, o);
          }

          var l = i(n, o, {
            delaunay: !0,
            interior: !0,
            exterior: !1,
            infinity: !1
          });

          if (e[P("0x14")](l) && e[P("0x14")](l[P("0x0")])) {
            s = l.length;

            for (var c = 0; c < s; c++) {
              var u = l[c],
                  h = r.fromRadians([n[u[0]], n[u[1]], n[u[2]]]);
              t[P("0x17c")](h);
            }
          }
        }
      };

      var a = e[P("0x821")] = function (t) {
        t = t || {}, this[P("0x13c")] = t[P("0x13b")], this[P("0x822")] = e[P("0x102")](t[P("0x823")], a.Hide), this._enabled = e.defaultValue(t[P("0x364")], !0), this[P("0x824")] = e[P("0x102")](t[P("0x825")], e[P("0x16a")].RED), this[P("0x826")] = [], this[P("0x827")] = null, this._filterTexture = null, this._initialize(t.polygons, t[P("0x828")]);
      };

      a[P("0x829")] = 0, a[P("0x82a")] = 1, e.defineProperties(a[P("0x5")], {
        enabled: {
          get: function get() {
            return this[P("0x82b")];
          },
          set: function set(e) {
            this[P("0x82b")] = e;
          }
        },
        clipResult: {
          get: function get() {
            return this[P("0x822")];
          },
          set: function set(e) {
            this[P("0x82c")](), this[P("0x822")] = e;
          }
        }
      }), a[P("0x5")][P("0x82d")] = function (t, i) {
        if (i = e.defaultValue(i, !1)) this[P("0x82e")](t, this[P("0x826")]);else {
          var r = [];
          this._parsePolygons(t, r), this[P("0x82f")](r, this._polygons);
        }
        this[P("0x830")]();
      }, a[P("0x5")]._parseTriangles = function (t, i) {
        var n = t[P("0x0")];
        if (e[P("0x14")](n)) for (var o = 0; o < n; o++) {
          var a = new r(t[o]);
          i[P("0x17c")](a);
        }
      }, a.prototype[P("0x831")] = function (t, i) {
        var r = t[P("0x0")];
        if (e[P("0x14")](r)) for (var n = 0; n < r; n++) {
          var a = new o(t[n]);
          i.push(a);
        }
      }, a[P("0x5")][P("0x830")] = function () {
        for (var e = this[P("0x826")], t = e.length, i = 0; i < t; i++) {
          e[i][P("0x832")]();
        }
      }, a[P("0x5")][P("0x82f")] = function (e, t) {
        for (var i = 0; i < e[P("0x0")]; i++) {
          e[i].triangulate(t);
        }
      }, a[P("0x5")][P("0xd2")] = function (e) {
        this[P("0x826")][P("0x0")] < 1 || (this[P("0x82b")] ? this._enableAll() : this[P("0x82c")]());
      }, a[P("0x5")][P("0xf4")] = function () {
        this._polygons.length = 0, this[P("0x82b")] = !1;
      }, a[P("0x5")][P("0x833")] = function () {
        this[P("0x822")] == a.Hide ? this[P("0x834")]() : this[P("0x835")]();
      }, a[P("0x5")][P("0x82c")] = function () {
        this[P("0x822")] == a[P("0x829")] ? this[P("0x836")]() : this[P("0x837")]();
      }, a[P("0x5")]._enableHideAll = function () {
        var e = this[P("0x13c")][P("0x10f")][P("0x17d")];
        this[P("0x838")](e);
        var t = this[P("0x13c")][P("0x10f")].globe;
        this[P("0x839")](t), scene.skyBox[P("0x221")] = !1, scene[P("0x83a")][P("0x221")] = !1;
      }, a[P("0x5")]._disableHideAll = function () {
        var e = this[P("0x13c")].scene[P("0x17d")];
        this[P("0x83b")](e);
        var t = this[P("0x13c")].scene[P("0xa3")];
        this[P("0x83c")](t), scene[P("0x83d")].show = !0, scene[P("0x83a")][P("0x221")] = !0;
      }, a[P("0x5")]._enableShowAll = function () {
        var e = this[P("0x13c")].scene[P("0x17d")];
        this[P("0x838")](e);

        var t = this._viewer[P("0x10f")][P("0xa3")];

        this[P("0x839")](t), scene[P("0x83d")][P("0x221")] = !1, scene[P("0x83a")][P("0x221")] = !1;
      }, a[P("0x5")][P("0x837")] = function () {
        var e = this[P("0x13c")].scene[P("0x17d")];
        this[P("0x83b")](e);
        var t = this[P("0x13c")][P("0x10f")][P("0xa3")];

        this._disableGlobe(t);
      }, a[P("0x5")][P("0x838")] = function (e) {
        for (var t = e.length, i = 0; i < t; i++) {
          this[P("0x83e")](e[P("0x306")][i]);
        }
      }, a[P("0x5")][P("0x83b")] = function (e) {
        for (var t = e[P("0x0")], i = 0; i < t; i++) {
          this[P("0x83f")](e[P("0x306")][i]);
        }
      }, a[P("0x5")][P("0x83e")] = function (t) {
        t instanceof e[P("0x2e1")] ? this._enableTileset(t) : t instanceof e[P("0x51e")] ? this[P("0x838")](t) : t instanceof e.EntityCluster ? this[P("0x840")](t) : t instanceof e[P("0x841")] && this[P("0x842")](t);
      }, a[P("0x5")][P("0x83f")] = function (t) {
        t instanceof e[P("0x2e1")] ? this._removeEffectFromTileset(t) : t instanceof e.PrimitiveCollection ? this[P("0x83b")](t) : t instanceof e[P("0x843")] ? this[P("0x844")](t) : t instanceof e[P("0x841")] && this[P("0x845")](t);
      }, a[P("0x5")][P("0x840")] = function (e) {
        var t = e[P("0x846")];
        if (t) for (var i = t[P("0x847")], r = i[P("0x0")], n = 0; n < r; n++) {
          i[n];
        }
      }, a[P("0x5")][P("0x844")] = function (e) {
        var t = e._pointCollection;
        if (t) for (var i = t[P("0x847")], r = i[P("0x0")], n = 0; n < r; n++) {
          i[n];
        }
      }, a[P("0x5")]._enableGlobe = function (t) {
        if (e.defined(t[P("0x365")])) t[P("0x365")][P("0x364")] = !0;else {
          var i = this._calcClipCenter(),
              r = e[P("0x1f")][P("0xbf")](i);

          r = e[P("0x1b")][P("0x4e2")](r, new e.Matrix4());
          var n = this[P("0x848")](r);
          t.clippingPlanes = n;
        }
      }, a.prototype._disableGlobe = function (t) {
        e[P("0x14")](t) && e[P("0x14")](t.clippingPlanes) && (t[P("0x365")] = void 0, this[P("0x849")](t._surface));
      }, a[P("0x5")]._clearSurfaceClippingPlanes = function (t) {
        t[P("0x84a")] = !0, t[P("0x84b")][P("0x84c")] = void 0, t._tilesToRender[P("0x0")] = 0, e[P("0x14")](t._tileProvider) && e.defined(t._tileProvider[P("0x84d")]) && this[P("0x84e")](t[P("0x84b")]._surfaceShaderSet[P("0x84f")]);
      }, a[P("0x5")][P("0x84e")] = function (t) {
        if (e[P("0x14")](t) && e.defined(t[P("0x0")])) for (var i = t[P("0x0")], r = 0; r < i; r++) {
          t[r] = void 0;
        }
      }, a[P("0x5")][P("0x850")] = function () {
        var t = this[P("0x826")],
            i = t[P("0x0")];

        if (!(i < 1)) {
          for (var r = new e[P("0x13")](), n = 0; n < i; n++) {
            var o = t[n][P("0x11a")]();
            r[P("0x112")] += o[P("0x563")], r.latitude += o[P("0x54e")], r[P("0x112")] *= 0.5, r.latitude *= 0.5;
          }

          return e.Cartesian3[P("0x3d0")](r.longitude, r[P("0x114")], r[P("0x8b")]);
        }
      }, a[P("0x5")][P("0x842")] = function (t) {
        if (e[P("0x14")](t[P("0x365")])) t[P("0x365")][P("0x364")] = !0;else if (t[P("0x48b")]) {
          var i = e[P("0x11")][P("0x6c")](t[P("0x55b")][P("0x11a")], 0.5, new e[P("0x11")]()),
              r = e[P("0x1b")][P("0x851")](i, new e.Matrix4()),
              n = (i = e[P("0x1b")][P("0xd4")](t[P("0x4ac")], t[P("0x55b")][P("0x11a")], new e.Cartesian3()), e.Matrix4[P("0x737")](r, t.modelMatrix, new e.Matrix4()));
          n = e[P("0x1b")][P("0x4e2")](n, new e[P("0x1b")]());

          var o = this._generateClipPlanes(n);

          t[P("0x365")] = o;
        }
      }, a.prototype._disableModel = function (t) {
        e[P("0x14")](t[P("0x365")]) && (t.clippingPlanes = void 0, t[P("0x852")] = !0);
      }, a[P("0x5")][P("0x848")] = function (e) {
        return this[P("0x822")] == a[P("0x829")] ? this[P("0x853")](e) : this[P("0x854")](e);
      }, a[P("0x5")][P("0x853")] = function (t) {
        var i = this[P("0x855")](t);

        if (e.defined(i)) {
          var r = new e.ClippingPlaneCollection({
            planes: i,
            edgeWidth: 0.5,
            edgeColor: e[P("0x16a")][P("0x856")],
            unionClippingRegions: !0
          });
          return r[P("0x857")] = {}, r[P("0x857")][P("0x858")] = !0, r[P("0x857")][P("0x859")] = function (e) {
            return P("0x85a") + "{\n    vec4 position = czm_windowToEyeCoordinates(fragCoord);\n" + P("0x85b") + "    vec3 clipPosition = vec3(0.0);\n" + P("0x85c") + P("0x85d") + P("0x85e") + "    for (int i = 0; i < " + e + "; i+=3)\n" + P("0x85f") + "        int j = i;\n" + P("0x860") + P("0x861") + P("0x862") + P("0x863") + "        clipAmount = czm_branchFreeTernary(j == 0, amount, min(amount, clipAmount));\n" + P("0x864") + P("0x865") + P("0x866") + P("0x867") + P("0x868") + P("0x869") + "           amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n" + P("0x86a") + P("0x86b") + P("0x86c") + "               j++;\n" + P("0x86d") + P("0x86e") + "               clipPosition = -clippingPlane.w * clipNormal;\n" + P("0x86f") + P("0x870") + "               if (amount > 0.0)\n" + P("0x871") + P("0x872") + P("0x873") + P("0x874") + P("0x875") + P("0x7bf") + P("0x7b7") + P("0x876") + P("0x877") + "    }\n    return clipAmount;\n}\n";
          }, r.mularea[P("0x878")] = function (e, t, i) {
            return P("0x879") + P("0x87a") + P("0x87b") + "void main() \n" + P("0x87c") + P("0x87d") + "    float clipDistance = clip(gl_FragCoord, " + e + ", " + t + P("0x87e") + "    vec4 clippingPlanesEdgeColor = vec4(1.0); \n" + P("0x87f") + i + P("0x880") + P("0x881") + i + ".a; \n" + P("0x882") + "    { \n" + P("0x883") + P("0x884") + P("0x885");
          }, r;
        }
      }, a.prototype[P("0x854")] = function (t) {
        var i = this._generateSourcePlanes(t);

        if (e[P("0x14")](i)) {
          var r = new e[P("0x36a")]({
            planes: i,
            edgeWidth: this[P("0x824")][P("0x671")],
            edgeColor: this[P("0x824")],
            unionClippingRegions: !0
          });
          return r[P("0x857")] = {}, r[P("0x857")][P("0x858")] = !1, r[P("0x857")][P("0x859")] = function (e) {
            return P("0x85a") + "{\n    vec4 position = czm_windowToEyeCoordinates(fragCoord);\n    vec3 clipNormal = vec3(0.0);\n" + P("0x886") + P("0x85c") + P("0x85d") + P("0x85e") + P("0x7bc") + e + "; i+=3)\n" + P("0x85f") + P("0x887") + P("0x860") + P("0x861") + "        clipPosition = -clippingPlane.w * clipNormal;\n        float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n" + P("0x888") + P("0x864") + P("0x865") + "           j++;\n" + P("0x867") + P("0x868") + P("0x869") + P("0x889") + P("0x86a") + P("0x86b") + P("0x86c") + P("0x88a") + "               clippingPlane = getClippingPlane(clippingPlanes, j, clippingPlanesMatrix);\n" + P("0x86e") + "               clipPosition = -clippingPlane.w * clipNormal;\n" + P("0x86f") + P("0x870") + P("0x88b") + P("0x871") + "                   bDiscard = false;\n" + P("0x873") + "               }\n" + P("0x875") + P("0x7bf") + P("0x88c") + P("0x7b7") + P("0x876") + "        return -100.0;\n    }\n    return 100.0;\n}\n";
          }, r[P("0x857")][P("0x878")] = function (e, t, i) {
            return P("0x879") + P("0x87a") + P("0x87b") + P("0x88d") + "{ \n" + P("0x87d") + P("0x88e") + e + ", " + t + P("0x87e") + "    vec4 clippingPlanesEdgeColor = vec4(1.0); \n" + P("0x87f") + i + P("0x880") + P("0x881") + i + P("0x88f") + P("0x890") + P("0x891") + "        gl_FragColor = mix(gl_FragColor, clippingPlanesEdgeColor, clippingPlanesEdgeWidth);\n" + P("0x884") + P("0x885");
          }, r;
        }
      }, a[P("0x5")][P("0x855")] = function (e) {
        var t = this[P("0x826")],
            i = t[P("0x0")];

        if (!(i < 1)) {
          for (var r = [], n = 0; n < i; n++) {
            t[n][P("0x892")](e, r);
          }

          return r;
        }
      }, a.prototype[P("0x893")] = function (t) {
        var i = e[P("0x13")][P("0x1a1")](t[0], t[1], 0);
        this[P("0x894")][P("0x17c")](i);
      }, a.prototype._unloadTileCallback = function (e, t) {
        e[P("0x895")][P("0x896")](t), e[P("0x897")][P("0x898")](t[P("0x490")]), --e[P("0x897")][P("0x899")], t[P("0x89a")]();
      }, a[P("0x5")][P("0x89b")] = function (t) {
        if (e[P("0x14")](t[P("0x365")])) t[P("0x365")][P("0x364")] = !0;else if (t[P("0x89c")] && t[P("0x89c")][P("0x4bc")]) {
          var i = t._root[P("0x4bc")][P("0x55b")].center,
              r = e[P("0x1f")][P("0xbf")](i);

          r = e.Matrix4.inverse(r, new e[P("0x1b")]());
          var n = this[P("0x848")](r);
          t[P("0x365")] = n;
        }
      }, a[P("0x5")]._disableTileset = function (t) {
        e[P("0x14")](t[P("0x365")]) && (t[P("0x365")][P("0x364")] = !1);
      }, a[P("0x5")][P("0x89d")] = function (t) {
        e[P("0x14")](t.clippingPlanes) && (t.clippingPlanes = void 0, t[P("0x89e")][P("0xf1")](), t[P("0x89e")][P("0x89f")](), t[P("0x89e")][P("0x8a0")](t, this[P("0x8a1")]));
      };
    }(window.Cesium), function (e) {
      function t(t) {
        if (t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), !e[P("0x14")](t[P("0x13b")])) throw new DeveloperError(P("0x63a"));
        if (this[P("0x13c")] = t[P("0x13b")], !e[P("0x14")](t[P("0x11a")])) throw new DeveloperError("center is required.");
        this[P("0x5b4")] = e[P("0x102")](t[P("0x11a")], []);
        var i = e.defaultValue(t[P("0x8b")], e.GeoRadarScan.DEFAULT_HEIGHT);
        this._height = i, this[P("0x63c")] = e[P("0x102")](t[P("0x181")], e[P("0x8a2")][P("0x64c")]), this[P("0x596")] = e[P("0x102")](t[P("0x169")], e[P("0x8a2")][P("0x648")]), this[P("0x319")] = e[P("0x102")](t.lineColor, e[P("0x8a2")][P("0x648")]), this[P("0x31a")] = e[P("0x102")](t[P("0x197")], e[P("0x8a2")][P("0x8a3")]), this[P("0x8a4")] = e[P("0x102")](t.sectorColor, e.GeoRadarScan[P("0x648")]), this[P("0x8a5")] = e[P("0x102")](t[P("0x8a6")], e[P("0x8a2")][P("0x8a7")]);
        var r = this[P("0x5b4")][0],
            n = this._center[1],
            o = e.defaultValue(this[P("0x63c")], 0);
        this._radarScanEntity = null, this[P("0x8a8")](r, n, i, o, this[P("0x596")], this[P("0x319")], this[P("0x31a")], this[P("0x8a5")]);
      }

      e.defineProperties(t[P("0x5")], {
        lineColor: {
          get: function get() {
            return this._lineColor;
          },
          set: function set(e) {
            this[P("0x319")] = e, this[P("0x8a9")]();
          }
        },
        lineWidth: {
          get: function get() {
            return this._lineWidth;
          },
          set: function set(e) {
            this[P("0x31a")] = e, this[P("0x8a9")]();
          }
        },
        sectorColor: {
          get: function get() {
            return this[P("0x8a4")];
          },
          set: function set(e) {
            this[P("0x8a4")] = e, this[P("0x8aa")]();
          }
        },
        sectorWidth: {
          get: function get() {
            return this._sectorWidth;
          },
          set: function set(e) {
            this[P("0x8a5")] = e, this._updateSectorMaterial();
          }
        }
      }), t[P("0x5")][P("0xf4")] = function () {
        this[P("0x13c")] && this[P("0x13c")][P("0x194")][P("0x17f")](this._radarScanEntity);
      }, t[P("0x5")][P("0x645")] = function (t) {
        this._isShow = e[P("0x102")](t, !0), this[P("0x8ab")][P("0x221")] = t, this[P("0x8ac")][P("0x221")] = t;
      }, t[P("0x5")][P("0x8ad")] = function (t) {
        this[P("0x319")] = e[P("0x102")](t, e.GeoRadarScan[P("0x648")]);
      }, t[P("0x5")][P("0x8ae")] = function () {
        return this[P("0x319")];
      }, t.prototype[P("0x8af")] = function (t) {
        this[P("0x8a4")] = e.defaultValue(t, e[P("0x8a2")].DEFAULT_COLOR);
      }, t.prototype.getsectorColor = function () {
        return this[P("0x8a4")];
      }, t.prototype[P("0x647")] = function (t) {
        this[P("0x596")] = e[P("0x102")](t, e[P("0x8a2")][P("0x648")]), this[P("0x8ab")][P("0x649")][P("0x19c")][P("0x169")] = this._color;
      }, t[P("0x5")][P("0x64a")] = function () {
        return this[P("0x596")];
      }, t[P("0x5")].setRadius = function (t) {
        this[P("0x63c")] = e[P("0x102")](t, e[P("0x8a2")].DEFAULT_RADIUS), this[P("0x8ab")][P("0x649")][P("0x64d")] = this[P("0x63c")];
      }, t.prototype[P("0x64e")] = function () {
        return this[P("0x63c")];
      }, t.prototype[P("0x64f")] = function (t) {
        if (!e.defined(t)) throw new DeveloperError("position is required.");
        this[P("0x8ab")][P("0x8c")] = position, this[P("0x5b4")] = position;
      }, t[P("0x5")][P("0x8a8")] = function (t, i, r, n, o, a, s, x) {
        var l = this[P("0x13c")];
        a = this[P("0x319")], x = this[P("0x8a4")];
        var c = e[P("0x23")][P("0x119")](30);

        if (!this[P("0x8ab")]) {
          var u = l.entities[P("0x6d")]({
            position: e[P("0x11")].fromDegrees(t, i, r),
            ellipse: {
              semiMinorAxis: n,
              semiMajorAxis: n,
              rotation: new e[P("0x652")](f, !1),
              stRotation: new e[P("0x652")](f, !1),
              material: new e[P("0x651")]({
                image: function (e, t, i, r) {
                  var n = document[P("0x15c")]("canvas");
                  n[P("0x19a")] = 1024, n[P("0x8b")] = 1024;
                  var o = n[P("0x476")]("2d");
                  return e == P("0x449") && (o[P("0x65b")] = function (e) {
                    return P("0x8b1") + 255 * e.red + "," + 255 * e.green + "," + 255 * e[P("0x670")] + "," + 0.5 * e.alpha + ")";
                  }(t), o.lineWidth = i, o[P("0x658")](), o[P("0x659")](512, 512, 512 - (i / 2 + 2), 0, 2 * Math.PI, !0), o.stroke(), o[P("0x65a")]()), e == P("0x8b0") && function (e, t, i, r, n, o) {
                    var a = Math.PI / 180;
                    i = i || 0, r = r || 512, n = n || 200, o = o || P("0x8b2"), t = t || P("0x8b3"), e[P("0x658")](), e[P("0x65b")] = P("0x8b1") + o + P("0x8b4");

                    for (var s = r - 2, x = (d(s, i), n), l = 0; l < x; l++) {
                      var c = 0.5 - l,
                          u = d(s, 0.5 - l - 1),
                          h = d(s, c),
                          f = 1 - l / x - 0.3;
                      0 == l && (f = 1), e[P("0x658")](), e.fillStyle = P("0x8b1") + t.red + "," + t[P("0x66f")] + "," + t[P("0x670")] + "," + f + ")", e[P("0x8b5")](512, 512), e[P("0x8b6")](u.x, u.y), e.lineTo(h.x, h.y), e[P("0x8b7")]();
                    }

                    function d(e, t) {
                      return {
                        x: e * Math[P("0x9a")](a * t),
                        y: e * Math[P("0x98")](a * t)
                      };
                    }
                  }(o, r, null), n;
                }(P("0x8b0"), a, s, x),
                transparent: !0
              })
            }
          });
          this[P("0x8ab")] = u;
        }

        if (!this[P("0x8ac")]) {
          var h = l[P("0x194")][P("0x6d")]({
            position: e.Cartesian3[P("0x1a1")](t, i, r),
            ellipse: {
              semiMinorAxis: n,
              semiMajorAxis: n
            }
          });
          this[P("0x8ac")] = h, this._updateBorderMaterial();
        }

        function f() {
          return c += 0.05;
        }
      }, t.prototype._createCanvas = function (t, i, r, n) {
        var o = document[P("0x15c")](P("0x48"));
        o[P("0x19a")] = 1024, o.height = 1024;
        var a,
            s = o[P("0x476")]("2d");
        return t == P("0x449") && (s[P("0x65b")] = (a = i, P("0x8b1") + 255 * a[P("0x66e")] + "," + 255 * a[P("0x66f")] + "," + 255 * a.blue + "," + 0.5 * a[P("0x671")] + ")"), s[P("0x197")] = r, s[P("0x658")](), s.arc(512, 512, 512 - (r / 2 + 2), 0, 2 * Math.PI, !0), s[P("0x65e")](), s[P("0x65a")]()), "radar" == t && function (t, i, r, n, o, a) {
          var s = Math.PI / 180;
          r = r || 0, n = n || 512, o = o || 200, a = a || P("0x8b2"), i = i || e.GeoRadarScan[P("0x648")], t[P("0x658")](), t[P("0x65b")] = P("0x8b1") + a + ",1)";

          for (var x = n - 2, l = (g(x, r), o), c = 0; c < l; c++) {
            var u = 0.5 - c,
                h = g(x, 0.5 - c - 1),
                f = g(x, u),
                d = 1 - c / l - 0.3;
            0 == c && (d = 1), t.beginPath(), t[P("0x484")] = P("0x8b1") + i[P("0x66e")] + "," + i[P("0x66f")] + "," + i.blue + "," + d + ")", t[P("0x8b5")](512, 512), t.lineTo(h.x, h.y), t.lineTo(f.x, f.y), t[P("0x8b7")]();
          }

          function g(e, t) {
            return {
              x: e * Math[P("0x9a")](s * t),
              y: e * Math[P("0x98")](s * t)
            };
          }
        }(s, n, null), o;
      }, t[P("0x5")][P("0x8a9")] = function () {
        this[P("0x8ac")].ellipse[P("0x19c")] = new e[P("0x651")]({
          image: this[P("0x8b8")](P("0x449"), this[P("0x319")], this[P("0x197")], this[P("0x8a4")]),
          transparent: !0
        });
      }, t[P("0x5")][P("0x8aa")] = function () {
        this[P("0x8ab")].ellipse[P("0x19c")] = new e[P("0x651")]({
          image: this[P("0x8b8")](P("0x8b0"), this[P("0x319")], this[P("0x197")], this._sectorColor),
          transparent: !0
        });
      }, e.GeoRadarScan = t, e[P("0x8a2")].DEFAULT_HEIGHT = 0, e.GeoRadarScan[P("0x64c")] = 25e3, e[P("0x8a2")].DEFAULT_COLOR = e[P("0x16a")][P("0x2cf")], e.GeoRadarScan.DEFAULT_SECTOR_COLOR = e[P("0x16a")].WHITE, e.GeoRadarScan[P("0x8a3")] = 5, e[P("0x8a2")][P("0x8a7")] = 200;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x8b9")] = function (t) {
        this[P("0x13c")] = t.viewer, this[P("0x63c")] = t[P("0x181")], this[P("0x63c")] *= 1.65;
        var i = e.Cartographic[P("0x1a1")][P("0x346")](this, t[P("0x11a")]);
        this[P("0x5b4")] = e.Cartesian3.fromRadians(i[P("0x112")], i[P("0x114")], i[P("0x8b")]), this[P("0x596")] = t[P("0x169")] ? t.color[P("0x6e")]() : e[P("0x16a")].ORANGE.withAlpha(0.35)[P("0x6e")](), this[P("0x31a")] = t[P("0x197")] ? t[P("0x197")] : 1, this[P("0x5b9")] = t[P("0x539")] ? t[P("0x539")] : 1, this[P("0x8ba")] = !!t[P("0x8bb")] && t[P("0x8bb")], this._enabled = !t[P("0x364")] || t[P("0x364")], this[P("0x8bc")] = null, this[P("0x8bd")] = null, this[P("0x5bc")] = 0;
        var r = e[P("0x11")][P("0x8d")](this._center, new e[P("0x11")]());

        this[P("0x8be")] = function () {
          return r;
        };

        var n = this._radius / this[P("0x5b9")];
        this._life = function () {
          return n;
        }, this[P("0x8bf")] = function (e) {
          n = e;
        };
        var o = 0;
        this[P("0x5cf")] = function () {
          return o;
        }, this[P("0x8c0")] = function (e) {
          o = e;
        }, this._finishedEvent = new e.Event(), this[P("0x77b")] = null, this[P("0x8c1")] = e.Color.WHITE;
      };

      e[P("0xf")](t[P("0x5")], {
        normal: {
          get: function get() {
            return this[P("0x8be")]();
          }
        },
        life: {
          get: function get() {
            return this[P("0x5bf")]();
          }
        },
        time: {
          get: function get() {
            return this[P("0x5cf")]();
          },
          set: function set(e) {
            this[P("0x8c0")](e);
          }
        },
        speed: {
          get: function get() {
            return this[P("0x5b9")];
          },
          set: function set(e) {
            this[P("0x5b9")] != e && (this[P("0x5b9")] = e, this[P("0x8bf")](this[P("0x63c")] / this[P("0x5b9")]));
          }
        },
        lineWidth: {
          get: function get() {
            return this[P("0x31a")];
          },
          set: function set(e) {
            this._lineWidth = e;
          }
        },
        color: {
          get: function get() {
            return this[P("0x596")];
          },
          set: function set(e) {
            this._color = e[P("0x6e")]();
          }
        },
        repeat: {
          get: function get() {
            return this[P("0x8ba")];
          },
          set: function set(e) {
            this._repeat = e;
          }
        },
        finishedEvent: {
          get: function get() {
            return this[P("0x8c2")];
          }
        },
        enabled: {
          get: function get() {
            return this[P("0x82b")];
          },
          set: function set(e) {
            this[P("0x82b")] = e;
          }
        },
        center: {
          get: function get() {
            return this[P("0x5b4")];
          }
        },
        invViewMatrix: {
          get: function get() {
            return this[P("0x77b")];
          }
        }
      }), t[P("0x5")][P("0xd2")] = function (e) {
        if (!this[P("0x82b")]) return this._scanCirclePostProcess && (this._scanCirclePostProcess[P("0x364")] = !1), void (this._scanAperturePostProcess && (this[P("0x8bd")][P("0x364")] = !1));
        this._updateTime(), this[P("0x82b")] && this[P("0x8c3")](e);
      }, t[P("0x5")][P("0xf4")] = function () {
        this[P("0x8bd")] && (this[P("0x8bd")].enabled = !1, this[P("0x13c")][P("0x10f")][P("0x77c")][P("0x17f")](this._scanAperturePostProcess), this[P("0x8bd")] = null), this._scanCirclePostProcess && (this._scanCirclePostProcess.enabled = !1, this[P("0x13c")][P("0x10f")][P("0x77c")][P("0x17f")](this[P("0x8bc")]), this[P("0x8bc")] = null);
      }, t[P("0x5")][P("0x5c8")] = function () {
        var t = e[P("0x5d0")]() / 1e3;
        if (0 == this._lastTime) this[P("0x5bc")] = t, this[P("0x6f2")] = 0;else {
          var i = t - this[P("0x5bc")],
              r = this.life;
          r < i && (i = r), this[P("0x6f2")] += i, this[P("0x6f2")] > r && (this._repeat || this[P("0x8c4")](), this[P("0x6f2")] = 0), this[P("0x5bc")] = t;
        }
      }, t[P("0x5")][P("0x8c4")] = function () {
        this[P("0x82b")] = !1, this[P("0x8c2")][P("0x896")]();
      }, t[P("0x5")][P("0x8c3")] = function (e) {
        var t = e[P("0x7e")];
        this[P("0x77b")] = t[P("0x8c5")].clone(this._invViewMatrix), this._updateScanCirclePostProcess(e), this[P("0x8c6")](e);
      }, t[P("0x5")][P("0x8c7")] = function (t) {
        var i = this;
        if (i[P("0x8bc")]) return this[P("0x8bc")][P("0x364")] = !0, void (this[P("0x13c")].scene[P("0x77c")][P("0xd1")](this[P("0x8bc")]) || (this[P("0x13c")][P("0x10f")].postProcessStages[P("0x6d")](this[P("0x8bc")]), this[P("0x8bc")][P("0xd2")](t.context, t[P("0x77d")])));
        var r = P("0x7a0") + P("0x7a1") + P("0x8c8") + P("0x8c9") + "uniform vec3 u_normal;\n" + P("0x5fc") + "uniform vec4 u_param0;\n" + P("0x7a4") + P("0x5f9") + P("0x8ca") + P("0x8cb") + P("0x8cc") + "       gl_FragColor = color;\n" + P("0x8cd") + P("0x614") + P("0x8ce") + P("0x8cf") + P("0x8d0") + P("0x8d1") + P("0x8d2") + "   position = u_invViewMatrix * position;\n   position /= position.w;\n   float t = (u_param0.y > u_param0.x) ? u_param0.x : u_param0.y;\n   float al = (u_param0.y <= u_param0.x) ? 1.0 : clamp(1.0 - (u_param0.y - u_param0.x) / (0.65 * u_param0.x), 0.0, 1.0);\n" + P("0x8d3") + "   vec3 b = normalize(position.xyz - u_center);\n   vec3 n = normalize(u_normal);\n" + P("0x8d4") + P("0x8d5") + "       b = cross(n, nc);\n" + P("0x8d6") + P("0x8d7") + P("0x614") + "   float d = u_param0.z * t;\n" + P("0x8d8") + P("0x8d9") + P("0x8da") + P("0x8db") + P("0x8dc") + "       float r = abs(z - d5);\n       float z1 = clamp(u_color.a, 0.1, 0.6) * (1.0 - r / hw5);\n" + P("0x8dd") + "   }\n   if (z < (d + hw) && z > (d - hw)){\n" + P("0x8de") + P("0x8df") + P("0x8e0") + P("0x71d") + P("0x8e1") + "   }\n   gl_FragColor = color;\n}",
            n = new e[P("0x12")]();
        i[P("0x8bc")] = new e.PostProcessStage({
          fragmentShader: r,
          uniforms: {
            u_invViewMatrix: function u_invViewMatrix() {
              return i[P("0x8e2")];
            },
            u_center: function u_center() {
              return i[P("0x11a")];
            },
            u_normal: function u_normal() {
              return i[P("0x4d0")];
            },
            u_color: function u_color() {
              return i[P("0x169")];
            },
            u_param0: function u_param0() {
              return n.x = 0.607 * i.life, n.y = i.time, n.z = i[P("0x539")], n.w = i.lineWidth, n;
            }
          }
        }), i[P("0x8bc")].enabled = !1;
      }, t.prototype._updateScanAperturePostProcess = function (t) {
        var i = this;
        if (i[P("0x8bd")]) return this[P("0x8bd")][P("0x364")] = !0, void (this._viewer.scene[P("0x77c")][P("0xd1")](this._scanAperturePostProcess) || (this[P("0x13c")][P("0x10f")][P("0x77c")][P("0x6d")](this[P("0x8bd")]), this[P("0x8bd")][P("0xd2")](t.context, t[P("0x77d")])));
        var r = "uniform sampler2D colorTexture;\nuniform sampler2D depthTexture;\nuniform mat4 u_invViewMatrix;\nuniform vec3 u_center;\n" + P("0x8e3") + "uniform vec4 u_color;\n" + P("0x8e4") + "varying vec2 v_textureCoordinates;\n" + P("0x5f9") + "   vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" + P("0x8cb") + P("0x8cc") + "       gl_FragColor = color;\n" + P("0x8cd") + P("0x614") + P("0x8ce") + P("0x8cf") + "   zd = (2.0 * zd - czm_depthRange.near - czm_depthRange.far) / (czm_depthRange.far - czm_depthRange.near);\n" + P("0x8d1") + "   vec4 position = czm_inverseProjection * vec4(xy, zd, 1.0);\n   position = u_invViewMatrix * position;\n" + P("0x8e5") + P("0x8e6") + "   float al = (u_param0.y <= u_param0.x) ? 1.0 : clamp(1.0 - (u_param0.y - u_param0.x) / (0.65 * u_param0.x), 0.0, 1.0);\n" + P("0x8d3") + P("0x8e7") + "   vec3 n = normalize(u_normal);\n" + P("0x8d4") + P("0x8d5") + P("0x8e8") + P("0x8d6") + P("0x8d7") + "   }\n" + P("0x8e9") + "   float d5 = u_param0.z * u_param0.y;\n" + P("0x8d9") + "   float hw5 = hw * 12.0;\n   float hd = dot(u_normal, position.xyz) - dot(u_normal, u_center);\n   if (z < (d5 + hw5) && z > (d5 - hw5)){\n" + P("0x8ea") + P("0x8eb") + P("0x8ec") + P("0x614") + P("0x8ed") + "       float r = abs(z - d);\n" + P("0x8ee") + P("0x8ef") + P("0x614") + P("0x728") + "}",
            n = new e[P("0x12")]();
        i[P("0x8bd")] = new e[P("0x7c5")]({
          fragmentShader: r,
          uniforms: {
            u_invViewMatrix: function u_invViewMatrix() {
              return i[P("0x8e2")];
            },
            u_center: function u_center() {
              return i[P("0x11a")];
            },
            u_normal: function u_normal() {
              return i.normal;
            },
            u_color: function u_color() {
              return i[P("0x8c1")];
            },
            u_param0: function u_param0() {
              return n.x = 0.607 * i.life, n.y = i[P("0x6f2")], n.z = i.speed, n.w = i[P("0x197")], n;
            }
          }
        }), i[P("0x8bd")].enabled = !1;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x8f0")] = function (t) {
        this[P("0x13c")] = t[P("0x13b")];
        var i = e[P("0x13")][P("0x1a1")].apply(this, t[P("0x11a")]);
        this[P("0x5b4")] = e[P("0x11")].fromRadians(i[P("0x112")], i.latitude, i[P("0x8b")]), this[P("0x63c")] = t[P("0x181")], this[P("0x596")] = t[P("0x169")] ? t[P("0x169")].clone() : e[P("0x16a")][P("0x438")][P("0x6e")](), this[P("0x5b9")] = t.speed ? t.speed : 1, this[P("0x8ba")] = !!t[P("0x8bb")] && t[P("0x8bb")], this._enabled = !t.enabled || t[P("0x364")], this._longest = e.defined(t[P("0x8f1")]) ? t[P("0x8f1")] : 15e3, this[P("0x8f2")] = e.defined(t.url) ? t.url : null, this[P("0x8f3")] = null, this[P("0x5bc")] = 0, this[P("0x48b")] = !1, this[P("0x8be")] = e.Cartesian3[P("0x8d")](this[P("0x5b4")], new e[P("0x11")]()), this[P("0x5bf")] = this._radius / this._speed, this[P("0x5cf")] = 0, this[P("0x77b")] = null, this[P("0x8f4")] = null, this._param0 = null, this[P("0x8f5")] = null, this._param2 = null, this[P("0x8f6")] = null, this._param4 = null, this[P("0x8f7")] = !1;
      };

      e.defineProperties(t.prototype, {
        enabled: {
          get: function get() {
            return this[P("0x82b")];
          },
          set: function set(e) {
            this[P("0x82b")] = e;
          }
        },
        radius: {
          get: function get() {
            return this[P("0x63c")];
          },
          set: function set(t) {
            e[P("0x14")](t) && 0 != t && t != this._radius && (this[P("0x63c")] = t, this[P("0x5bf")] = this[P("0x63c")] / this[P("0x5b9")]);
          }
        },
        speed: {
          get: function get() {
            return this._speed;
          },
          set: function set(t) {
            e[P("0x14")](t) && 0 != t && t != this[P("0x5b9")] && (this[P("0x5b9")] = t, this[P("0x5bf")] = this._radius / this[P("0x5b9")]);
          }
        },
        color: {
          get: function get() {
            return this[P("0x596")];
          },
          set: function set(e) {
            this[P("0x596")] = e;
          }
        }
      }), t.prototype[P("0xd2")] = function (e) {
        var t = this;
        t[P("0x8f8")](e[P("0x7e")]) ? (t[P("0x8f9")](e), t[P("0x82b")] ? (t._updateTime(), t._enabled && (t[P("0x8fa")](), t._updatePostProcesses(e))) : t[P("0x8f3")] && (t[P("0x8f3")][P("0x364")] = !1)) : t[P("0x8f3")] && (t[P("0x8f3")][P("0x364")] = !1);
      }, t[P("0x5")][P("0x8fb")] = function (e) {
        var t = this;
        t[P("0x8f2")] != e && (t[P("0x8f2")] = e, t._ready = !1, t[P("0x8fc")] = null, t[P("0x8f5")] = null, t._param2 = null, t[P("0x8f6")] = null, t[P("0x8fd")] = null, t[P("0x8f3")] && (t._scanPostProcess[P("0x364")] = !1, t[P("0x13c")][P("0x10f")].postProcessStages[P("0x17f")](t._scanPostProcess), t[P("0x8f3")] = null), t._texture && (t._texture[P("0xf4")](), t._texture = null), t[P("0x8f7")] = !1);
      };
      var i = new e[P("0x11")]();
      t[P("0x5")][P("0x8f8")] = function (t) {
        return !(e[P("0x11")][P("0x96")](e.Cartesian3[P("0x95")](t.position, this[P("0x5b4")], i)) > this[P("0x8fe")]);
      }, t.prototype[P("0xf4")] = function () {
        this[P("0x8f3")] && (this._scanPostProcess[P("0x364")] = !1, this[P("0x13c")][P("0x10f")].postProcessStages[P("0x17f")](this[P("0x8f3")]), this._scanPostProcess = null);
      }, t[P("0x5")][P("0x5c8")] = function () {
        var t = e[P("0x5d0")]() / 1e3;
        if (0 == this[P("0x5bc")]) this[P("0x5bc")] = t, this._time = 0;else {
          var i = t - this._lastTime,
              r = this[P("0x5bf")];
          r < i && (i = r), this[P("0x5cf")] += i, this[P("0x5cf")] > r && (this[P("0x8ba")] || this[P("0x8c4")](), this[P("0x5cf")] = 0), this._lastTime = t;
        }
      }, t.prototype[P("0x8c4")] = function () {
        this[P("0x82b")] = !1;
      }, t[P("0x5")][P("0x8f9")] = function (t) {
        var i = this;

        if (null != i[P("0x8f2")]) {
          if (i._texture) i[P("0x48b")] = !0;else if (i[P("0x48b")] = !1, !i._loading) {
            i._loading = !0;
            var r = t.context,
                n = e[P("0x6ba")](i._textureUrl);
            e[P("0x6da")][P("0x6dc")]({
              url: n,
              headers: {
                "cache-control": P("0x8ff")
              }
            })[P("0x333")](function (t) {
              i[P("0x8f7")] = !1, i[P("0x8f4")] = new e[P("0x6db")]({
                context: r,
                source: t
              }, function (e) {
                hat[P("0x8f2")] = null;
              });
            });
          }
        } else i[P("0x48b")] = !0;
      }, t[P("0x5")][P("0x8fa")] = function () {
        var t = this,
            i = t[P("0x5b4")],
            r = t[P("0x8be")],
            n = e[P("0x11")][P("0x99")](e[P("0x11")][P("0xc3")], r, new e[P("0x11")]()),
            o = e[P("0x11")].cross(r, n, new e[P("0x11")]());
        e.Cartesian3[P("0x8d")](n, n), e[P("0x11")][P("0x8d")](o, o);

        var a = e.Cartesian3[P("0xc8")](n, new e[P("0x11")]()),
            s = e[P("0x11")][P("0xc8")](o, new e.Cartesian3()),
            x = t[P("0x5b9")] * t._time;

        if (null == t[P("0x8f2")]) x /= 1.532, t._param0 = new e[P("0x12")](i.x, i.y, i.z), t[P("0x8f5")] = new e.Cartesian4(r.x, r.y, r.z), t[P("0x900")] = new e[P("0x12")](x), t[P("0x8f6")] = new e[P("0x12")](r.x, r.y, r.z, -e[P("0x11")][P("0x92")](r, i));else {
          var l = e.Cartesian3[P("0x6d")](i, e[P("0x11")][P("0x6c")](a, x, new e[P("0x11")]()), new e[P("0x11")]()),
              c = e[P("0x11")][P("0x6d")](i, e[P("0x11")][P("0x6c")](n, x, new e[P("0x11")]()), new e[P("0x11")]()),
              u = e[P("0x11")][P("0x6d")](i, e[P("0x11")][P("0x6c")](s, x, new e.Cartesian3()), new e[P("0x11")]()),
              h = e[P("0x11")].add(i, e[P("0x11")][P("0x6c")](o, x, new e[P("0x11")]()), new e[P("0x11")]());
          t._param0 = new e[P("0x12")](n.x, n.y, n.z, -e[P("0x11")][P("0x92")](n, l)), t._param1 = new e[P("0x12")](a.x, a.y, a.z, -e[P("0x11")][P("0x92")](a, c)), t[P("0x900")] = new e[P("0x12")](o.x, o.y, o.z, -e[P("0x11")].dot(o, u)), t[P("0x8f6")] = new e[P("0x12")](s.x, s.y, s.z, -e.Cartesian3[P("0x92")](s, h)), t[P("0x8fd")] = new e[P("0x12")](r.x, r.y, r.z, -e[P("0x11")][P("0x92")](r, i));
        }
      }, t[P("0x5")][P("0x8c3")] = function (t) {
        var i = this;

        if (i._ready) {
          var r = t[P("0x7e")];
          if (i._invViewMatrix = r[P("0x8c5")][P("0x6e")](i[P("0x77b")]), i[P("0x8f3")]) return i[P("0x8f3")][P("0x364")] = !0, void (i._viewer[P("0x10f")][P("0x77c")][P("0xd1")](i[P("0x8f3")]) || (i[P("0x13c")][P("0x10f")][P("0x77c")].add(i[P("0x8f3")]), i._scanPostProcess.update(t.context, t[P("0x77d")])));

          if (null == i[P("0x8f2")]) {
            var n = P("0x7a0") + "uniform sampler2D depthTexture;\n" + P("0x8c8") + P("0x5fc") + "uniform vec4 u_param0;\nuniform vec4 u_param1;\nuniform vec4 u_param2;\n" + P("0x901") + P("0x7a4") + "void main(){\n   vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" + P("0x8cb") + P("0x8cc") + P("0x902") + P("0x8cd") + P("0x614") + P("0x8ce") + P("0x8cf") + P("0x8d0") + P("0x8d1") + P("0x8d2") + P("0x903") + "   position /= position.w;\n" + P("0x904") + P("0x905") + "       gl_FragColor = color;\n       return;\n" + P("0x614") + P("0x906") + P("0x907") + P("0x908") + "   if(z2 > u_param2.x){\n" + P("0x902") + P("0x8cd") + P("0x614") + P("0x909") + P("0x90a") + P("0x902") + P("0x8cd") + P("0x614") + P("0x90b") + "}";
            i[P("0x8f3")] = new e.PostProcessStage({
              fragmentShader: n,
              uniforms: {
                u_invViewMatrix: function u_invViewMatrix() {
                  return i[P("0x77b")];
                },
                u_color: function u_color() {
                  return i[P("0x596")];
                },
                u_param0: function u_param0() {
                  return i._param0;
                },
                u_param1: function u_param1() {
                  return i[P("0x8f5")];
                },
                u_param2: function u_param2() {
                  return i[P("0x900")];
                },
                u_param3: function u_param3() {
                  return i._param3;
                }
              }
            });
          } else n = "uniform sampler2D colorTexture;\n" + P("0x7a1") + "uniform sampler2D u_texture;\n" + P("0x8c8") + "uniform vec4 u_color;\n" + P("0x8e4") + "uniform vec4 u_param1;\n" + P("0x90c") + P("0x901") + P("0x90d") + P("0x7a4") + P("0x5f9") + "   vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" + P("0x8cb") + "   if(currD.r >= 1.0){\n" + P("0x902") + "       return;\n" + P("0x614") + P("0x8ce") + P("0x8cf") + P("0x8d0") + P("0x8d1") + P("0x8d2") + P("0x903") + P("0x8e5") + P("0x90e") + P("0x90f") + P("0x902") + P("0x8cd") + P("0x614") + P("0x910") + P("0x911") + P("0x902") + P("0x8cd") + P("0x614") + P("0x912") + P("0x913") + P("0x902") + P("0x8cd") + P("0x614") + P("0x914") + P("0x915") + P("0x902") + "       return;\n" + P("0x614") + P("0x916") + "   if(z4 < -800.0 || z4 > 800.0){\n" + P("0x902") + "       return;\n" + P("0x614") + "   float u = z0 / (z0 + z1);\n   float v = z2 / (z2 + z3);\n   vec4 sColor = texture2D(u_texture, vec2(u, v));\n" + P("0x917") + "   sColor = sColor * (1.0 - a) + a * u_color;\n" + P("0x918") + "}", i[P("0x8f3")] = new e[P("0x7c5")]({
            fragmentShader: n,
            uniforms: {
              u_invViewMatrix: function u_invViewMatrix() {
                return i._invViewMatrix;
              },
              u_color: function u_color() {
                return i._color;
              },
              u_texture: function u_texture() {
                return i._texture;
              },
              u_param0: function u_param0() {
                return i._param0;
              },
              u_param1: function u_param1() {
                return i._param1;
              },
              u_param2: function u_param2() {
                return i[P("0x900")];
              },
              u_param3: function u_param3() {
                return i[P("0x8f6")];
              },
              u_param4: function u_param4() {
                return i[P("0x8fd")];
              }
            }
          });

          i[P("0x8f3")].enabled = !1;
        }
      };
    }(window[P("0xfd")]), function (e) {
      function t(e) {
        this[P("0x63c")] = e[P("0x181")], this._direction = e[P("0x93")], this[P("0x919")] = e[P("0x91a")];
      }

      var i = new e.Cartesian3(),
          r = new e[P("0x11")](),
          n = new e[P("0x17")](),
          o = new e.Quaternion(),
          a = new e[P("0x1a")](),
          s = new e[P("0x1b")]();

      t[P("0x5")][P("0x91b")] = function (t) {
        var x, l, c, u, h, f;
        x = this[P("0x6b7")], (l = n)[P("0x7f")] = x.heading, l[P("0x80")] = x[P("0x81")], l.roll = x[P("0x80")], c = n, u = o, e[P("0x1d")].fromHeadingPitchRoll(c, u), h = o, f = a, e[P("0x1a")][P("0xcd")](h, f);

        var d,
            g,
            p,
            m,
            b,
            v,
            C,
            y,
            _ = (d = a, g = s, e[P("0x1b")][P("0x738")](d, void 0, g));

        p = i, m = r, b = this[P("0x63c")], v = this[P("0x919")], C = e[P("0x23")][P("0x6de")](0, e.Math.TWO_PI), y = (b = e[P("0x23")][P("0x6de")](0, b)) + Math.tan(e[P("0x23")][P("0x119")](v)), p.x = b * Math[P("0x9a")](C), p.y = e[P("0x23")][P("0x6de")](0, 10), p.z = -b * Math[P("0x98")](C), m.x = y * Math[P("0x9a")](C), m.y = p.y + 1, m.z = -y * Math.sin(C), e[P("0x1b")][P("0xd4")](_, i, i), e[P("0x1b")][P("0xd4")](_, r, r), t.position = e.Cartesian3.clone(i, t[P("0x8c")]), t[P("0x91c")] = e[P("0x11")][P("0x95")](r, i, t[P("0x91c")]), e[P("0x11")].normalize(t[P("0x91c")], t[P("0x91c")]);
      };

      var x = e.GeoSprinklerParticleSystem = function (t) {
        this._image = t[P("0x475")], this[P("0x6b6")] = t[P("0x11a")], this[P("0x6b7")] = t[P("0x93")], this[P("0x6c1")] = e[P("0x14")](t.imageSize) ? t[P("0x91d")] : new e[P("0x10")](4.9, 4.9), this[P("0x91e")] = e[P("0x14")](t[P("0x91f")]) ? t[P("0x91f")] : 4.9, this[P("0x5b9")] = e.defined(t.speed) ? t[P("0x539")] : 27.46, this[P("0x920")] = e.defined(t.emissionRate) ? t[P("0x921")] : 800, this[P("0x63c")] = e.defined(t[P("0x181")]) ? t[P("0x181")] : 0.2, this[P("0x922")] = e.defined(t.lifetime) ? t[P("0x923")] : 1, this[P("0x919")] = e[P("0x14")](t[P("0x91a")]) ? t[P("0x91a")] : 0.89, this[P("0x8fe")] = e.defined(t[P("0x8f1")]) ? t[P("0x8f1")] : 2e3;
        var i = e.Color[P("0x2cf")];
        this[P("0x72c")] = i[P("0x16c")](0.8), this[P("0x6c2")] = i.withAlpha(0), this[P("0x924")] = null, this[P("0x925")]();
      };

      x[P("0x5")][P("0xd2")] = function (e) {
        this[P("0x924")] && (this[P("0x8f8")](e[P("0x7e")]) ? this[P("0x924")][P("0xd2")](e) : this[P("0x926")]());
      }, x[P("0x5")][P("0x925")] = function () {
        if (!this[P("0x924")]) {
          var i = e[P("0x13")][P("0x1a1")].apply(this, this[P("0x6b6")]);
          i = e[P("0x11")].fromRadians(i.longitude, i.latitude, i[P("0x8b")]);
          var r = e[P("0x1f")][P("0xbf")](i);
          return this._system = new e.ParticleSystem({
            image: this[P("0x595")],
            startColor: this[P("0x72c")],
            endColor: this[P("0x6c2")],
            particleLife: this[P("0x91e")],
            speed: this[P("0x5b9")],
            imageSize: this[P("0x6c1")],
            emissionRate: this[P("0x920")],
            emitter: new t({
              radius: this._radius,
              direction: this._direction,
              angle: this._angle
            }),
            lifetime: this[P("0x922")],
            updateCallback: h,
            modelMatrix: r
          }), this[P("0x924")];
        }
      }, x[P("0x5")].destroy = function () {
        this[P("0x924")] && (this[P("0x924")].destroy(), this._system = null);
      }, x[P("0x5")][P("0x926")] = function () {
        this._system && function (t) {
          if (e[P("0x14")](t[P("0x927")])) {
            for (var i = t[P("0x927")], r = i[P("0x0")], n = 0; n < r; n++) {
              var o = i[n];
              e[P("0x14")](o[P("0x928")]) && (o._billboard[P("0x221")] = !1), t[P("0x929")][P("0x17c")](o), i[n] = i[r - 1], n--, r--;
            }

            t[P("0x927")].length = 0;
          }
        }(this[P("0x924")]);
      };
      var l = new e.Cartographic(),
          c = new e[P("0x11")]();

      x[P("0x5")]._checkVisible = function (t) {
        var i = e[P("0x13")][P("0x1a1")](this[P("0x6b6")][0], this[P("0x6b6")][1], this[P("0x6b6")][2], l);
        return i = e[P("0x11")][P("0x3d0")](i[P("0x112")], i[P("0x114")], i[P("0x8b")], void 0, c), !(e[P("0x11")][P("0x96")](e[P("0x11")].subtract(t[P("0x8c")], i, c)) > this[P("0x8fe")]);
      };

      var u = new e[P("0x11")]();

      function h(t, i) {
        var r = e.Cartesian3[P("0x8d")](t[P("0x8c")], u);
        e.Cartesian3[P("0xc8")](r, r), e[P("0x11")][P("0x6c")](r, 8.16 * i, r), t[P("0x91c")] = e[P("0x11")].add(t[P("0x91c")], r, t[P("0x91c")]);
      }
    }(window.Cesium), function (e) {
      var t = e[P("0x92a")] = function (e) {
        this[P("0x92b")] = e.fieldName, this[P("0x92c")] = e[P("0x92d")], this._minValue = e[P("0x92e")], this[P("0x92f")] = e[P("0x930")], this[P("0x931")] = e[P("0x932")];
      };

      t[P("0x5")][P("0x934")] = function () {
        var t = function (t) {
          if (!e[P("0x14")](t)) return "";
          var i = 255 * t.red,
              r = 255 * t[P("0x66f")],
              n = 255 * t[P("0x670")],
              o = t.alpha;
          return P("0x933") + i + "," + r + "," + n + "," + o + ");";
        }(this[P("0x92c")]),
            i = P("0x935");

        if (!e[P("0x14")](this[P("0x92b")])) return (i += P("0x936") + t + ";\n") + "} \n";
        var r = "";
        return this[P("0x92b")] == P("0x469") && (r = "v_elevationPos.z"), i += 1 == (this[P("0x92f")] == this[P("0x937")]) ? "if (" + r + P("0x938") + this._minValue + P("0x939") : P("0x93a") + r + " >= " + this[P("0x937")] + P("0x93b") + r + " <= " + this[P("0x92f")] + P("0x939"), i += "{ \n", i += P("0x936") + t + ";\n", (i += P("0x885")) + P("0x885");
      }, t.prototype[P("0x93c")] = function () {
        if (!e[P("0x14")](this[P("0x92b")]) || this[P("0x92b")] != P("0x469")) return "";
        var t = "",
            i = "";
        this[P("0x92b")] == P("0x469") && (i = "v_elevationPos.z");
        var r = this[P("0x92f")] == this[P("0x937")],
            n = this[P("0x937")][P("0x531")]();
        -1 == n[P("0x2d3")](".") && (n += ".0");

        var o = this._maxValue.toString();

        -1 == o[P("0x2d3")](".") && (o += ".0");
        var a = this[P("0x92c")][P("0x531")]();
        return -1 == a[P("0x2d3")](".") && (a += ".0"), t += 1 == r ? P("0x93a") + i + P("0x938") + n + P("0x93d") : P("0x93a") + i + P("0x93e") + n + P("0x93f") + i + " <= " + o + P("0x93d"), t += P("0x87c"), (t += "luminanceValue = " + a + ";\n") + P("0x885");
      }, t.prototype.makeShader = function () {
        var e;
        return this._topic == P("0x940") && (e = this[P("0x934")]()), this[P("0x931")] == P("0x941") && (e = this[P("0x93c")]()), e;
      }, t[P("0x5")][P("0x942")] = function (t) {
        if (this[P("0x931")] == P("0x941")) {
          if (!e[P("0x14")](this[P("0x92b")])) return this[P("0x92c")];

          if (this._fieldName != P("0x469")) {
            if (this[P("0x92b")] == P("0x943")) return this._fieldValue;
            var i = t[P("0x944")](this[P("0x92b")]);
            return i >= this[P("0x937")] && i <= this[P("0x92f")] ? this._fieldValue : void 0;
          }
        }
      };
    }(window[P("0xfd")]), function (e) {
      (e[P("0x945")] = function () {})[P("0x5")][P("0x946")] = function (t, i, r) {
        var n = i,
            o = {};
        return o[P("0x932")] = t, 4 == i[P("0x0")] ? (o[P("0x92d")] = n[0], o.fieldName = n[1], "$" == o[P("0x947")][P("0x7f3")](0, 1) && (o[P("0x947")] = o.fieldName[P("0x7f3")](1, o[P("0x947")][P("0x0")] - 1)), o.minValue = n[2], o.maxValue = n[3], i[1] == P("0x469") && (r[P("0x948")] = !0)) : 1 == i[P("0x0")] ? o[P("0x92d")] = i[0] : 2 == i[P("0x0")] && (o[P("0x92d")] = n[0], o[P("0x947")] = n[1]), new e[P("0x92a")](o);
      };
    }(window.Cesium), function (e) {
      function t(e, t, i) {
        var r = i[P("0x10f")][P("0x77c")][P("0x949")];
        r[P("0x364")] = e, r[P("0x19d")][P("0x94a")] = !1, r[P("0x19d")][P("0x94b")] = 119, r.uniforms[P("0x94c")] = -0.4, r[P("0x19d")].delta = 0.9, r[P("0x19d")][P("0x94d")] = 3.78, r.uniforms[P("0x94e")] = t, r[P("0x19d")][P("0x94f")] = !1;
      }

      var i = e[P("0x950")] = function (i) {
        if (e[P("0x14")](i)) {
          if (this[P("0x951")] = !1, this[P("0x952")] = !1, this._enabledLightBand = !1, this[P("0x953")] = !1, this[P("0x954")] = 5, this[P("0x955")] = i[P("0x815")], this._useElevation = !1, this[P("0x956")] = new e[P("0x945")](), e[P("0x14")](i.mixedColor)) {
            this[P("0x951")] = e[P("0x102")](i[P("0x940")][P("0x364")], !1);
            var r = i[P("0x940")].conditions;

            if (e[P("0x14")](r)) {
              this._mixedColorConditions = [];

              for (var n = 0; n < r.length; n++) {
                var o = r[n],
                    a = this._conditionParser[P("0x946")](P("0x940"), o, this);

                this[P("0x957")][P("0x17c")](a);
              }
            }
          }

          e.defined(i[P("0x941")]) && this[P("0x958")](i[P("0x941")]), e[P("0x14")](i[P("0x959")]) && (this[P("0x95a")] = e[P("0x102")](i[P("0x959")][P("0x364")], !1)), e[P("0x14")](i[P("0x949")]) && (this._enabledBloom = e[P("0x102")](i[P("0x949")][P("0x364")], !1), this._bloomStep = e[P("0x102")](i.bloom.step, 5), t(this._enabledBloom, this[P("0x954")], this[P("0x955")]));
        }
      };

      i[P("0x5")].needCalculateElevation = function () {
        return !!this[P("0x948")] || !!this[P("0x95a")];
      }, i[P("0x5")][P("0x958")] = function (t) {
        e[P("0x14")](this[P("0x95b")]) ? this[P("0x95b")].length = 0 : this[P("0x95b")] = [], this[P("0x952")] = e[P("0x102")](t[P("0x364")], !1);
        var i = t[P("0x95c")];
        if (e[P("0x14")](i)) for (var r = 0; r < i.length; r++) {
          var n = i[r],
              o = this[P("0x956")][P("0x946")]("luminanceAtZenith", n, this);

          this._luminanceAtZenithConditions[P("0x17c")](o);
        }
      }, e[P("0xf")](i[P("0x5")], {
        enabledMixedColor: {
          get: function get() {
            return this[P("0x951")];
          },
          set: function set(e) {
            this[P("0x951")] = e;
          }
        },
        enabledLuminanceAtZenith: {
          get: function get() {
            return this[P("0x952")];
          },
          set: function set(e) {
            this[P("0x952")] = e;
          }
        },
        luminanceAtZenith: {
          set: function set(e) {
            this[P("0x958")](e);
          }
        },
        enabledlightBand: {
          get: function get() {
            return this[P("0x95a")];
          },
          set: function set(e) {
            this[P("0x95a")] = e;
          }
        },
        enabledBloom: {
          get: function get() {
            return this[P("0x953")];
          },
          set: function set(e) {
            this[P("0x953")] = e, t(this[P("0x953")], this[P("0x954")], this[P("0x955")]);
          }
        },
        bloomStep: {
          get: function get() {
            return this[P("0x954")];
          },
          set: function set(e) {
            this[P("0x954")] = e, t(this[P("0x953")], this[P("0x954")], this[P("0x955")]);
          }
        }
      }), i[P("0x5")][P("0x95d")] = function () {
        var t = "";
        if (e.defined(this[P("0x957")])) for (var i = 0; i < this._mixedColorConditions[P("0x0")]; i++) {
          t += this[P("0x957")][i].makeShader();
        }
        return t;
      }, i.prototype.makeFragmentLuminanceShader = function () {
        if (!this[P("0x95b")]) return "";
        var e = P("0x95e");
        e += P("0x95f");

        for (var t = 0; t < this[P("0x95b")].length; t++) {
          e += this[P("0x95b")][t][P("0x960")]();
        }

        return e + P("0x885");
      }, i[P("0x5")][P("0x961")] = function () {
        var e = "if (visualSenseStyle_enabledLightBand == 1.0) \n";
        return e += "{\n", e += P("0x962"), e += P("0x963"), e += P("0x964"), e += P("0x965"), (e += P("0x966")) + "}\n";
      }, i.prototype[P("0x942")] = function (t, i) {
        for (var r = void 0, n = 0; n < this[P("0x95b")].length; n++) {
          var o = this[P("0x95b")][n];

          if (!r || o[P("0x92b")] != P("0x943")) {
            var a = o[P("0x942")](t);
            e[P("0x14")](a) && (r = a);
          }
        }

        return e[P("0x14")](r) || (r = i), r;
      };
    }(window.Cesium), function (e) {
      var t = e[P("0x967")] = function (t) {
        return this[P("0x13b")] = t[P("0x13b")], this[P("0x440")] = t[P("0x440")], this[P("0x968")] = t.level, this[P("0x969")] = t[P("0x969")], this.options = t[P("0x132")], this.options.velocityScale = e[P("0x102")](this[P("0x132")][P("0x96a")], 0.11), this.options[P("0x96b")] = e.defaultValue(this[P("0x132")][P("0x96b")], 0.002), this[P("0x132")].maxWindIntensity = e[P("0x102")](this[P("0x132")][P("0x96c")], 30), this.options[P("0x197")] = e.defaultValue(this[P("0x132")].lineWidth, 2), this[P("0x132")].opacity = e[P("0x102")](this[P("0x132")].opacity, 0.6), this[P("0x132")][P("0x96d")] = e.defaultValue(this[P("0x132")][P("0x96d")], [P("0x96e"), P("0x96f"), P("0x970"), P("0x971"), "#b5c0ff", P("0x972"), P("0x973"), "#e185ff", P("0x974"), P("0x975")]), this[P("0x48")] = document.createElement(P("0x48")), this[P("0x976")] = this[P("0x48")][P("0x476")]("2d"), this[P("0x977")](), this[P("0x69c")](this[P("0x440")]), this;
      };

      t[P("0x5")][P("0x977")] = function () {
        var e = this;

        this[P("0x978")] = function () {
          function t(e, t, i, r, n, o) {
            var a = 1 - e,
                s = 1 - t,
                x = a * s,
                l = e * s,
                c = a * t,
                u = e * t,
                h = i[0] * x + r[0] * l + n[0] * c + o[0] * u,
                f = i[1] * x + r[1] * l + n[1] * c + o[1] * u;
            return [h, f, Math[P("0xca")](h * h + f * f)];
          }

          function i(e) {
            var i,
                r,
                n,
                o,
                a = null,
                s = null;
            return e[P("0x1e4")](function (e) {
              switch (e[P("0x979")][P("0x97a")] + "," + e[P("0x979")][P("0x97b")]) {
                case P("0x97c"):
                  a = e;
                  break;

                case P("0x97d"):
                  s = e;
              }
            }), r = s, n = (i = a)[P("0x440")], o = r[P("0x440")], {
              header: i[P("0x979")],
              data: function data(e) {
                return [n[e], o[e]];
              },
              interpolate: t
            };
          }

          function r(e) {
            return e / 180 * Math.PI;
          }

          function n(e) {
            return e / (Math.PI / 180);
          }

          function o(e) {
            return Math.log(Math.tan(e / 2 + Math.PI / 4));
          }

          function a(e, t, i) {
            var r = {},
                o = s,
                a = [],
                x = e.x;

            function l(i) {
              for (var s, x, l, c, u, h, f, d, g, p, m, b, C, y, A, I, w, G, E, S = [], T = e.y; T <= e.yMax; T += 2) {
                var M = (b = i, C = T, A = (y = t)[P("0x2aa")] - y[P("0x2a9")], w = (I = y[P("0x19a")] / n(A) * 360 / (2 * Math.PI)) / 2 * Math[P("0x133")]((1 + Math[P("0x98")](y[P("0x2ab")])) / (1 - Math[P("0x98")](y[P("0x2ab")]))), G = (y.height + w - C) / I, E = 180 / Math.PI * (2 * Math[P("0x321")](Math[P("0x61")](G)) - Math.PI / 2), [n(y.west) + b / y.width * n(A), E]),
                    N = M[0],
                    L = M[1];

                if (isFinite(N)) {
                  var R = _(N, L);

                  R && (s = r, x = N, l = L, c = i, u = T, h = o, d = t, g = (f = R)[0] * h, p = f[1] * h, m = v(s, x, l, c, u, d), f[0] = m[0] * g + m[2] * p, f[1] = m[1] * g + m[3] * p, R = f, S[T + 1] = S[T] = R);
                }
              }

              a[i + 1] = a[i] = S;
            }

            !function t() {
              for (var r, n, o, s = Date[P("0x561")](); x < e[P("0x19a")];) {
                if (l(x), x += 2, 1e3 < h()() - s) return void setTimeout(t, 25);
              }

              function c(e, t) {
                var i = r[Math[P("0x5f0")](e)];
                return i && i[Math[P("0x5f0")](t)] || d;
              }

              r = a, n = e, o = i, c[P("0x985")] = function () {
                r = [];
              }, c[P("0x986")] = function (e) {
                for (var t, i, r = 0; null === c(t = Math[P("0x5f0")](Math[P("0x3e8")](Math[P("0x266")]() * n[P("0x19a")]) + n.x), i = Math[P("0x5f0")](Math[P("0x3e8")](Math[P("0x266")]() * n[P("0x8b")]) + n.y))[2] && r++ < 30;) {
                  ;
                }

                return e.x = t, e.y = i, e;
              }, o(n, c);
            }();
          }

          var s = e[P("0x132")][P("0x96a")],
              x = e[P("0x132")].maxWindIntensity,
              l = e[P("0x132")][P("0x197")],
              c = e.options[P("0x96b")],
              u = e[P("0x132")].opacity,
              f = e[P("0x132")][P("0x96d")],
              d = [NaN, NaN, null],
              g = 2 * Math.PI,
              m = Math[P("0x2ae")](10, -5.2),
              b = function b(e) {
            return null != e;
          },
              v = function v(e, t, i, r, n, o) {
            var a = t < 0 ? m : -m,
                s = i < 0 ? m : -m,
                x = C(i, t + a, o),
                l = C(i + s, t, o),
                c = Math[P("0x9a")](i / 360 * g);
            return [(x[0] - r) / a / c, (x[1] - n) / a / c, (l[0] - r) / s, (l[1] - n) / s];
          },
              C = function C(e, t, i) {
            var n = o(i[P("0x2ab")]),
                a = o(i[P("0x2ac")]),
                s = i[P("0x19a")] / (i[P("0x2aa")] - i[P("0x2a9")]),
                x = i[P("0x8b")] / (a - n),
                l = o(r(e));
            return [(r(t) - i[P("0x2a9")]) * s, l = (a - l) * x];
          },
              y = function y() {
            A[P("0x98e")] && A[P("0x98e")].release(), A[P("0x98d")] && clearTimeout(A[P("0x98d")]);
          },
              _ = function (e) {
            var t = i(e),
                r = t[P("0x979")],
                n = r[P("0x97e")],
                o = r[P("0x97f")],
                a = r.dx,
                s = r.dy,
                x = r.nx,
                l = r.ny,
                c = new Date(r[P("0x980")]);
            c[P("0x981")](c[P("0x982")]() + r[P("0x983")]);

            for (var u = [], h = 0, f = 360 <= Math[P("0x3e8")](x * a), d = 0; d < l; d++) {
              for (var g = [], p = 0; p < x; p++, h++) {
                g[p] = t[P("0x440")](h);
              }

              f && g.push(g[0]), u[d] = g;
            }

            return function (e, i) {
              var r,
                  x = function (e, t) {
                return e - t * Math[P("0x3e8")](e / t);
              }(e - n, 360) / a,
                  l = (o - i) / s,
                  c = Math[P("0x3e8")](x),
                  h = c + 1,
                  f = Math[P("0x3e8")](l),
                  d = f + 1;

              if (r = u[f]) {
                var g = r[c],
                    p = r[h];

                if (b(g) && b(p) && (r = u[d])) {
                  var m = r[c],
                      v = r[h];
                  if (b(m) && b(v)) return t[P("0x984")](x - c, l - f, g, p, m, v);
                }
              }

              return null;
            };
          }(e.data),
              A = {
            start: function start(t, i, n, o) {
              var s = {
                south: r(o[0][1]),
                north: r(o[1][1]),
                east: r(o[1][0]),
                west: r(o[0][0]),
                width: i,
                height: n
              };
              y(), a(function (e, t, i) {
                var r = e[0],
                    n = e[1],
                    o = Math[P("0x5f0")](r[0]),
                    a = Math[P("0xee")](Math[P("0x3e8")](r[1], 0), 0);
                return Math[P("0x7d")](Math.ceil(n[0], t), t - 1), {
                  x: o,
                  y: a,
                  xMax: t,
                  yMax: Math[P("0x7d")](Math[P("0x342")](n[1], i), i - 1),
                  width: t,
                  height: i
                };
              }(t, i, n), s, function (t, i) {
                A.field = i, function (t, i) {
                  function r(e) {
                    return "#" == e[P("0x68e")](0) ? e[P("0x987")](1, 7) : e;
                  }

                  var n,
                      o,
                      a = (n = x, o = [], f[P("0x1e4")](function (e) {
                    o[P("0x17c")](P("0x8b1") + p()(r(e).substring(0, 2), 16) + ", " + p()(r(e)[P("0x987")](2, 4), 16) + ", " + p()(r(e).substring(4, 6), 16) + ", " + u + ")");
                  }), o[P("0x988")] = function (e) {
                    return Math[P("0x3e8")](Math[P("0x7d")](e, n) / n * (o[P("0x0")] - 1));
                  }, o),
                      s = a.map(function () {
                    return [];
                  }),
                      h = Math[P("0x5f0")](t[P("0x19a")] * t.height * c);
                  /android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i[P("0x270")](navigator.userAgent) && (h *= 0.075);

                  for (var d = P("0x989"), g = [], m = 0; m < h; m++) {
                    g[P("0x17c")](i[P("0x986")]({
                      age: Math.floor(100 * Math[P("0x266")]()) + 0
                    }));
                  }

                  var b = e.canvasContext;
                  b[P("0x197")] = l, b.fillStyle = d, function e() {
                    try {
                      A[P("0x98d")] = setTimeout(function () {
                        var r;
                        requestAnimationFrame(e), s[P("0x1e4")](function (e) {
                          e[P("0x0")] = 0;
                        }), g[P("0x1e4")](function (e) {
                          100 < e[P("0x98a")] && (i[P("0x986")](e)[P("0x98a")] = 0);
                          var t = e.x,
                              r = e.y,
                              n = i(t, r),
                              o = n[2];
                          if (null === o) e[P("0x98a")] = 100;else {
                            var x = t + n[0],
                                l = r + n[1];
                            null !== i(x, l)[2] ? (e.xt = x, e.yt = l, s[a.indexFor(o)].push(e)) : (e.x = x, e.y = l);
                          }
                          e[P("0x98a")] += 1;
                        }), r = b[P("0x98b")], b[P("0x98b")] = "destination-in", b[P("0x98c")](t.x, t.y, t[P("0x19a")], t[P("0x8b")]), b[P("0x98b")] = r, s.forEach(function (e, t) {
                          0 < e[P("0x0")] && (b[P("0x658")](), b[P("0x65b")] = a[t], e.forEach(function (e) {
                            b.moveTo(e.x, e.y), b.lineTo(e.xt, e.yt), e.x = e.xt, e.y = e.yt;
                          }), b[P("0x65e")]());
                        });
                      }, 50);
                    } catch (e) {
                      console[P("0x391")](e);
                    }
                  }();
                }(t, i);
              });
            },
            stop: y
          };

          return A;
        };
      }, t.prototype._calculateBounds = function () {
        var t = this[P("0x969")][0][0],
            i = this[P("0x969")][1][1],
            r = this.rectangle[1][0],
            n = this[P("0x969")][0][1],
            o = this[P("0x968")],
            a = this._locationCoordinate(t, n, o),
            s = this[P("0x98f")](r, i, o);

        this[P("0x990")] = [512 * Math[P("0x78")](a[0] - s[0]), 512 * Math.abs(a[1] - s[1])], this[P("0x991")] = [[t, n], [r, i]], this._rectangle = e[P("0x26b")][P("0x1a1")](t, n, r, i);
      }, t.prototype[P("0x98f")] = function (e, t, i) {
        return [(180 + e) * Math[P("0x2ae")](2, i) / 360, (180 - 180 / Math.PI * Math[P("0x133")](Math[P("0x992")](Math.PI / 4 + t * Math.PI / 360))) * Math[P("0x2ae")](2, i) / 360];
      }, t[P("0x5")]._getCenterPoint = function () {
        var t = this.viewer[P("0x48")],
            i = new e[P("0x10")](t.clientWidth / 2, t.clientHeight / 2),
            r = this.viewer.camera.getPickRay(i);
        return this[P("0x13b")][P("0x10f")][P("0xa3")][P("0xa4")](r, this.viewer[P("0x10f")]) || this[P("0x13b")][P("0x7e")][P("0xa2")](i);
      }, t[P("0x5")][P("0x993")] = function () {
        var t = e[P("0x16")].WGS84,
            i = this[P("0x994")]();

        if (!i) {
          var r = this[P("0x13b")][P("0x10f")][P("0xa3")],
              n = this[P("0x13b")][P("0x7e")].positionCartographic[P("0x6e")](),
              o = r.getHeight(n);
          n[P("0x8b")] = o || 0, i = t.cartographicToCartesian(n);
        }

        var a = e[P("0x11")][P("0x8e")](i, this[P("0x13b")][P("0x7e")].position) / 1405.5;
        return Math.log2(78271.51696402031 / a) - 1.2;
      }, t.prototype[P("0x221")] = function (e) {
        this[P("0x6a8")] && (this[P("0x6a8")][P("0x221")] = e);
      }, t[P("0x5")][P("0x17f")] = function () {
        this[P("0x6a8")] && this[P("0x13b")].entities[P("0x17f")](this[P("0x6a8")]);
      }, t[P("0x5")][P("0x6aa")] = function () {
        var t = this;
        this[P("0x995")](), this.canvas.width = Math[P("0x5f0")](this[P("0x990")][0]), this[P("0x48")][P("0x8b")] = Math[P("0x5f0")](this[P("0x990")][1]), setTimeout(function () {
          t.windy[P("0xe2")]([[0, 0], t[P("0x990")]], t._size[0], t[P("0x990")][1], t[P("0x991")]);
        }, 1), this[P("0x6a8")] && this[P("0x13b")][P("0x194")].remove(this._layer);
        var i = new e[P("0x651")]({
          image: new e[P("0x652")](function () {
            return t[P("0x48")].toDataURL();
          }, !1)
        });
        "1.21" <= e[P("0x373")] ? i[P("0x6ad")] = !0 : e[P("0x373")] >= P("0x996") && (i[P("0x671")] = 0.99), this[P("0x6a8")] = this.viewer[P("0x194")][P("0x6d")]({
          rectangle: {
            coordinates: this._rectangle,
            material: i
          }
        });
      }, t[P("0x5")].setData = function (e) {
        this[P("0x440")] = e, this[P("0x997")] = new this[P("0x978")](), this[P("0x6aa")]();
      };
    }(window[P("0xfd")]), function (e) {
      var t = "GEO_OVERVIEW_ICO_SOURCE",
          i = P("0x998"),
          r = P("0x999");

      function n(t, i) {
        t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), this[P("0x13b")] = t[P("0x13b")], this.map2D = null, this[P("0x99a")] = e[P("0x102")](t[P("0x99a")], {
          mapCRS: {
            topTileExtent: [-180, -270, 180, 90],
            coordtransform: "none"
          },
          style: {
            version: 8,
            sources: {
              tdt_source_overview: {
                type: P("0x99b"),
                tiles: [P("0x99c")],
                tileSize: 256
              }
            },
            layers: [{
              id: P("0x99d"),
              type: "raster",
              source: "tdt_source_overview",
              layout: {
                visibility: P("0x99e")
              }
            }]
          },
          zoom: 4,
          center: [112.939, 31.377],
          renderWorldCopies: !1,
          isIntScrollZoom: !0,
          isAttributionControl: !1
        }), this[P("0x19a")] = t[P("0x19a")], this[P("0x8b")] = t[P("0x8b")], this.layout = e.defaultValue(t.layout, "BR"), this[P("0x99f")] = t[P("0x99f")], this[P("0x9a0")] = e[P("0x102")](t[P("0x9a0")], 1), this[P("0x9a1")] = e.defaultValue(t.movingTargetZoomLevel, 14), this.callback = "function" == typeof i ? i : function () {}, this.scalable = !1, this[P("0x9a2")] = !1, this._latelyUpdateStamp = 0, this._modelType = n[P("0x9a3")][P("0x9a4")], this[P("0x9a5")](), this._bindEvent();
      }

      n[P("0x5")]._initOverview = function () {
        var e = this[P("0x13b")].cesiumWidget[P("0x131")].parentElement,
            t = document[P("0x15c")]("div");
        t.className = P("0x9a6"), t[P("0x150")].display = "block", t.style[P("0x8c")] = "absolute", t.style[P("0x19a")] = this.width + "px", t.style.height = this[P("0x8b")] + "px", this[P("0x9a7")][P("0x9a8")]()[P("0x9a9")]("B") ? t[P("0x150")][P("0x9aa")] = P("0x9ab") : this.layout[P("0x9a8")]().startsWith("T") && (t[P("0x150")][P("0x151")] = P("0x9ab")), this[P("0x9a7")][P("0x9a8")]().endsWith("R") ? t[P("0x150")][P("0x9b")] = P("0x9ab") : this.layout[P("0x9a8")]().endsWith("L") && (t[P("0x150")][P("0x149")] = "5px"), e[P("0x167")](t);
        var i = document[P("0x15c")](P("0x15d"));
        i.style[P("0x8c")] = P("0x9ac"), i[P("0x150")][P("0x19a")] = i[P("0x150")][P("0x8b")] = "100%", t[P("0x167")](i), this[P("0x99a")][P("0x131")] || (this[P("0x99a")][P("0x131")] = i), this.map2D = new GeoGlobe[P("0x101")](this[P("0x99a")]);
      }, n.prototype[P("0x9ad")] = function () {
        var e = this;
        this[P("0x9ae")].on(P("0x9af"), function () {
          var n = e.map2D;
          n[P("0x9b0")](e[P("0x99f")], function (o, a) {
            var s = e[P("0x9a0")],
                x = n.getCenter().toArray();
            n[P("0x9b1")](r, a), n[P("0x9b2")](t, {
              type: "geojson",
              data: {
                type: "Point",
                coordinates: x
              }
            }), n[P("0x9b3")]({
              id: i,
              source: t,
              type: P("0x1f4"),
              layout: {
                "icon-image": r,
                "icon-size": s,
                "icon-rotate": 0
              }
            }), e[P("0x9a2")] = !0, e[P("0x191")] && e[P("0x191")](e);
          });
        }), this[P("0x13b")].scene[P("0x53f")][P("0x130")](function () {
          e[P("0x9b4")]();
        });
      }, n[P("0x5")][P("0x9b5")] = function () {
        for (var e = this[P("0x13b")][P("0x10f")][P("0x53f")]._listeners, t = 0; t < e[P("0x0")]; t++) {
          e[t].name === P("0x9b6") && e[P("0x259")](t, 1);
        }
      }, n[P("0x5")][P("0x9b7")] = function () {
        return this[P("0x9ae")];
      }, n[P("0x5")][P("0x9b8")] = function (e) {
        return this[P("0x9ae")] ? this[P("0x9ae")][P("0x9b9")](e) : null;
      }, n[P("0x5")][P("0x9ba")] = function (e, t) {
        return this[P("0x9ae")] ? this[P("0x9ae")][P("0x9b3")](e, t) : null;
      }, n[P("0x5")].removeMap2DLayer = function (e) {
        return this[P("0x9ae")] ? this[P("0x9ae")][P("0x9bb")](e) : null;
      }, n[P("0x5")][P("0x9bc")] = function (e) {
        return this.map2D ? this[P("0x9ae")].getSource(e) : null;
      }, n.prototype[P("0x9bd")] = function (e, t) {
        return this.map2D ? this[P("0x9ae")][P("0x9b2")](e, t) : null;
      }, n[P("0x5")][P("0x9be")] = function (e) {
        return this.map2D ? this[P("0x9ae")].removeSource(e) : null;
      }, n.prototype[P("0x9b4")] = function () {
        var r = new Date()[P("0x68")]();

        if (!(r - this[P("0x9bf")] < 600) && (this[P("0x9bf")] = r, this[P("0x13b")] && this._isReady)) {
          this[P("0x13b")], this[P("0x13b")][P("0x10f")];
          var o,
              a,
              s = this[P("0x13b")][P("0x48")],
              x = this[P("0x13b")][P("0x7e")],
              l = this[P("0x13b")].scene[P("0xa3")],
              c = this[P("0x9ae")];

          if (this[P("0x9c0")] === n[P("0x9a3")].ROAM) {
            var u = e.Ellipsoid[P("0x110")],
                h = null,
                f = new e[P("0x10")](s[P("0x94")] / 2, s[P("0x7c")] / 2),
                d = this[P("0x13b")][P("0x7e")][P("0x86")](f);

            if (!(h = (h = this.viewer[P("0x10f")].globe[P("0xa4")](d, this[P("0x13b")][P("0x10f")])) || x.pickEllipsoid(f))) {
              var g = x[P("0x91")][P("0x6e")](),
                  p = l[P("0xed")](g);
              g.height = p || 0, h = u[P("0xa7")](g);
            }

            var m = e[P("0x11")][P("0x8e")](h, x[P("0x8c")]) / 1405.5;
            o = Math[P("0x111")](78271.51696402031 / m) - 5.2;
            var b = u[P("0xd6")](h);
            a = [e[P("0x23")][P("0x113")](b[P("0x112")]), e[P("0x23")].toDegrees(b.latitude)], this.scalable || c.setZoom(o), c[P("0x64f")](a), c[P("0x9c1")](t)[P("0x69c")]({
              type: P("0x345"),
              coordinates: a
            });
          } else this._modelType === n.modelType.WALK && (o = this[P("0x9a1")], this.scalable || c.setZoom(o), h = x[P("0x91")][P("0x6e")](), a = [e.Math[P("0x113")](h[P("0x112")]), e.Math[P("0x113")](h.latitude)], c.setCenter(a), c[P("0x9c1")](t)[P("0x69c")]({
            type: P("0x345"),
            coordinates: a
          }));

          c[P("0x9c2")](i, P("0x9c3"), e[P("0x23")][P("0x113")](x[P("0x7f")]));
        }
      }, n[P("0x5")][P("0x9c4")] = function (t) {
        0 < c()(e.GeoOverviewWidget[P("0x9a3")])[P("0x1f2")](function (i) {
          return e.GeoOverviewWidget[P("0x9a3")][i] === t;
        })[P("0x0")] && (this[P("0x9c0")] = t);
      }, n[P("0x5")][P("0x9c5")] = function (e) {
        this.scalable = w()(e) !== P("0x9c6") || e;
      }, n[P("0x9a3")] = {
        ROAM: 0,
        WALK: 1
      }, e[P("0x9c7")] = n;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x9c8")] = function (t) {
        t = e[P("0x102")](t, {}), this[P("0x9c9")] = t[P("0x9ca")], this[P("0x9cb")] = this[P("0x9c9")][P("0x0")] - 1, this[P("0x9cc")] = t[P("0x87")], this[P("0x9cd")] = t[P("0x9ce")], this[P("0x9cf")] = new e[P("0x26b")].fromDegrees(this._fullExtent[0], this[P("0x9cd")][1], this[P("0x9cd")][2], this[P("0x9cd")][3]), this[P("0x9d0")] = t.matrixWidth, this._matrixHeight = t.matrixHeight;
        var i = Math[P("0xee")](Number(this[P("0x9d0")]), Number(this[P("0x9d1")])),
            r = Math[P("0x342")](Math[P("0x133")](i) / Math[P("0x9d2")]),
            n = Math[P("0x2ae")](2, r);
        this._topTileExtent = [], this[P("0x9d3")][0] = this._origin[0], this[P("0x9d3")][3] = this[P("0x9cc")][1], this[P("0x9d3")][1] = this[P("0x9d3")][3] - 256 * this._resolutions[0] * n, this[P("0x9d3")][2] = this._topTileExtent[0] + 256 * this[P("0x9c9")][0] * n, this._numberOfLevelZeroTilesX = e[P("0x102")](t.numberOfLevelZeroTilesX, 2), this[P("0x9d4")] = e[P("0x102")](t.numberOfLevelZeroTilesY, 1), this[P("0x44")] = e[P("0x102")](t[P("0xef")], e[P("0x16")][P("0x110")]), this[P("0x689")] = new e[P("0x26b")].fromDegrees(this[P("0x9d3")][0], this[P("0x9d3")][1], this[P("0x9d3")][2], this[P("0x9d3")][3]), this[P("0xc6")] = new e.GeographicProjection(this[P("0x44")]), this[P("0x9d5")] = [(this[P("0x9cd")][0] + this[P("0x9cd")][2]) / 2, (this[P("0x9cd")][1] + this[P("0x9cd")][3]) / 2];
        var o,
            a = 0 == r ? r : r - 1;
        this[P("0x9d6")] = (o = a, 2 * Math.PI * 6378137 / 512 / Math[P("0x2ae")](2, o) * 1405.5);
      };

      t[P("0x5")] = new e[P("0x9d7")](), delete t[P("0x5")][P("0x9d8")], delete t.prototype[P("0x9d4")], delete t[P("0x5")][P("0x44")], delete t[P("0x5")][P("0x689")], delete t[P("0x5")][P("0xc6")], e[P("0xf")](t[P("0x5")], {
        ellipsoid: {
          get: function get() {
            return this[P("0x44")];
          }
        },
        rectangle: {
          get: function get() {
            return this[P("0x689")];
          }
        },
        projection: {
          get: function get() {
            return this[P("0xc6")];
          }
        },
        dataRectangle: {
          get: function get() {
            return this[P("0x9cf")];
          }
        },
        topTileExtent: {
          get: function get() {
            return this[P("0x9d3")];
          }
        },
        maximumLevel: {
          get: function get() {
            return this[P("0x9cb")];
          }
        },
        centerPoint: {
          get: function get() {
            return this[P("0x9d5")];
          }
        },
        proposalHeight: {
          get: function get() {
            return this._proposalHeight;
          }
        }
      }), t[P("0x5")][P("0x9d9")] = function (e) {
        return (this._topTileExtent[2] - this[P("0x9d3")][0]) / this._resolutions[e] / 256;
      }, t[P("0x5")].getNumberOfYTilesAtLevel = function (e) {
        return (this[P("0x9d3")][3] - this[P("0x9d3")][1]) / this[P("0x9c9")][e] / 256;
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x9da")] = function (t) {
        t = e[P("0x102")](t, {}), this[P("0x44")] = e[P("0x102")](t[P("0xef")], e[P("0x16")][P("0x110")]), this[P("0xc6")] = new e[P("0x68f")](this._ellipsoid), this[P("0x9c9")] = t.resolutions, this[P("0x9cb")] = this[P("0x9c9")].length - 1, this[P("0x9cc")] = t[P("0x87")], this._fullExtent = t[P("0x9ce")];
        var i = this[P("0xc6")][P("0xbe")](new e[P("0x10")](this[P("0x9cd")][0], this[P("0x9cd")][1])),
            r = this[P("0xc6")].unproject(new e[P("0x10")](this[P("0x9cd")][2], this[P("0x9cd")][3]));
        this._dataRectangle = new e[P("0x26b")](i.longitude, i[P("0x114")], r.longitude, r.latitude), this[P("0x9d0")] = t[P("0x9db")], this[P("0x9d1")] = t.matrixHeight;
        var n = Math.max(Number(this[P("0x9d0")]), Number(this[P("0x9d1")])),
            o = Math[P("0x342")](Math.log(n) / Math[P("0x9d2")]),
            a = Math[P("0x2ae")](2, o);
        this[P("0x9d3")] = [], this[P("0x9d3")][0] = this[P("0x9cc")][0], this[P("0x9d3")][3] = this._origin[1], this._topTileExtent[1] = this[P("0x9d3")][3] - 256 * this[P("0x9c9")][0] * a, this[P("0x9d3")][2] = this[P("0x9d3")][0] + 256 * this[P("0x9c9")][0] * a, this[P("0x9d8")] = e[P("0x102")](t[P("0x9dc")], 1), this[P("0x9d4")] = e.defaultValue(t[P("0x9dd")], 1), this[P("0x9de")] = e.defaultValue(t[P("0x9df")], new e[P("0x10")](this._topTileExtent[0], this[P("0x9d3")][1])), this._rectangleNortheastInMeters = e[P("0x102")](t[P("0x9e0")], new e[P("0x10")](this[P("0x9d3")][2], this[P("0x9d3")][3]));

        var s = this[P("0xc6")].unproject(this._rectangleSouthwestInMeters),
            x = this._projection.unproject(this[P("0x9e1")]);

        this[P("0x689")] = new e[P("0x26b")](s[P("0x112")], s[P("0x114")], x[P("0x112")], x.latitude), this[P("0x9d5")] = [(e[P("0x23")][P("0x113")](i[P("0x112")]) + e[P("0x23")][P("0x113")](r[P("0x112")])) / 2, (e.Math[P("0x113")](i.latitude) + e[P("0x23")][P("0x113")](r[P("0x114")])) / 2];
        var l,
            c = 0 == o ? o : o - 1;
        this._proposalHeight = (l = c, 2 * Math.PI * 6378137 / 512 / Math.pow(2, l) * 1405.5);
      };

      t[P("0x5")] = new e[P("0x68b")](), delete t.prototype._numberOfLevelZeroTilesX, delete t[P("0x5")][P("0x9d4")], delete t[P("0x5")][P("0x44")], delete t.prototype[P("0x689")], delete t[P("0x5")]._projection, delete t[P("0x5")][P("0x9de")], delete t.prototype._rectangleNortheastInMeters, e[P("0xf")](t[P("0x5")], {
        ellipsoid: {
          get: function get() {
            return this[P("0x44")];
          }
        },
        rectangle: {
          get: function get() {
            return this._rectangle;
          }
        },
        projection: {
          get: function get() {
            return this[P("0xc6")];
          }
        },
        dataRectangle: {
          get: function get() {
            return this[P("0x9cf")];
          }
        },
        topTileExtent: {
          get: function get() {
            return this._topTileExtent;
          }
        },
        maximumLevel: {
          get: function get() {
            return this[P("0x9cb")];
          }
        },
        centerPoint: {
          get: function get() {
            return this._centerPoint;
          }
        },
        proposalHeight: {
          get: function get() {
            return this._proposalHeight;
          }
        }
      }), t.prototype[P("0x9d9")] = function (e) {
        return (this[P("0x9d3")][2] - this[P("0x9d3")][0]) / this[P("0x9c9")][e] / 256;
      }, t[P("0x5")][P("0x9e2")] = function (e) {
        return (this._topTileExtent[3] - this[P("0x9d3")][1]) / this[P("0x9c9")][e] / 256;
      };
    }(window[P("0xfd")]), function (e) {
      function t(e) {
        this.type = P("0x345"), this[P("0x2ed")] = e;
      }

      function i(e) {
        this.type = P("0x9e3"), this[P("0x2ed")] = e;
      }

      var r = e[P("0x9e4")] = function () {};

      r.lineString = function (t) {
        return e[P("0x14")](t) && e[P("0x14")](t[P("0x0")]) ? t[P("0x0")] < 2 ? null : new i(t) : null;
      }, r.degreesToRadians = function (e) {
        return e % 360 * Math.PI / 180;
      }, r[P("0x9e5")] = function (e) {
        return e % (2 * Math.PI) * 180 / Math.PI;
      }, r[P("0x8e")] = function (e, t) {
        var i = e,
            n = t,
            o = r[P("0x9e6")](n[1] - i[1]),
            a = r[P("0x9e6")](n[0] - i[0]),
            s = r[P("0x9e6")](i[1]),
            x = r.degreesToRadians(n[1]),
            l = Math[P("0x2ae")](Math.sin(o / 2), 2) + Math[P("0x2ae")](Math[P("0x98")](a / 2), 2) * Math[P("0x9a")](s) * Math[P("0x9a")](x);
        return 2 * Math[P("0x9e7")](Math.sqrt(l), Math[P("0xca")](1 - l)) * 6371008.8;
      }, r._bearing = function (e, t) {
        var i = e,
            n = t,
            o = r[P("0x9e6")](i[0]),
            a = r[P("0x9e6")](n[0]),
            s = r[P("0x9e6")](i[1]),
            x = r[P("0x9e6")](n[1]),
            l = Math.sin(a - o) * Math[P("0x9a")](x),
            c = Math[P("0x9a")](s) * Math[P("0x98")](x) - Math[P("0x98")](s) * Math.cos(x) * Math.cos(a - o);
        return r.radiansToDegrees(Math.atan2(l, c));
      }, r[P("0x9e8")] = function (e, i, n) {
        var o = e,
            a = r[P("0x9e6")](o[0]),
            s = r[P("0x9e6")](o[1]),
            x = r[P("0x9e6")](n),
            l = i / 6371008.8,
            c = Math[P("0x97")](Math.sin(s) * Math[P("0x9a")](l) + Math.cos(s) * Math[P("0x98")](l) * Math.cos(x)),
            u = a + Math.atan2(Math[P("0x98")](x) * Math[P("0x98")](l) * Math.cos(s), Math.cos(l) - Math[P("0x98")](s) * Math[P("0x98")](c));
        return new t([r[P("0x9e5")](u), r[P("0x9e5")](c)]);
      }, r[P("0x9e9")] = function (e, i) {
        var n;
        if (e[P("0x165")] !== P("0x9e3")) return null;
        n = e[P("0x2ed")];

        for (var o = 0, a = 0; a < n[P("0x0")] && !(o <= i && a === n[P("0x0")] - 1); a++) {
          if (i <= o) {
            var s = i - o;

            if (s) {
              var x = r[P("0x9ea")](n[a], n[a - 1]) - 180;
              return r[P("0x9e8")](n[a], s, x);
            }

            return point(n[a]);
          }

          o += r[P("0x8e")](n[a], n[a + 1]);
        }

        return new t(n[n[P("0x0")] - 1]);
      };
    }(window[P("0xfd")]), (j = window[P("0xfd")]) && j[P("0x2e1")] && (j.Cesium3DTileset.prototype[P("0x9eb")] = function (e, t, i) {
      var r = j[P("0x9e4")];

      if (r) {
        var n = this.boundingSphere[P("0x11a")],
            o = j.Cartographic.fromCartesian(n),
            a = j.Math[P("0x113")](o.longitude),
            s = j[P("0x23")][P("0x113")](o[P("0x114")]),
            x = o.height,
            l = new j[P("0x13")](a, s, x + i);

        if (e < 0) {
          var c = a,
              u = a - 1;
          e = -e;
          var h = r.lineString([[c, s], [u, s]]),
              f = r[P("0x9e9")](h, e);
          l[P("0x112")] = f[P("0x2ed")][0];
        } else 0 < e && (c = a, u = a + 1, h = r.lineString([[c, s], [u, s]]), f = r[P("0x9e9")](h, e), l.longitude = f[P("0x2ed")][0]);

        t < 0 ? (c = s, u = s - 1, t = -t, h = r[P("0x33e")]([[a, c], [a, u]]), f = r[P("0x9e9")](h, t), l[P("0x114")] = f[P("0x2ed")][1]) : 0 < t && (c = s, u = s + 1, h = r[P("0x33e")]([[a, c], [a, u]]), f = r[P("0x9e9")](h, t), l.latitude = f.coordinates[1]);
        var d = j[P("0x11")][P("0x1a1")](l.longitude, l[P("0x114")], l.height),
            g = j[P("0x11")][P("0x95")](d, n, new j[P("0x11")]());
        this[P("0x4ac")] = j[P("0x1b")].fromTranslation(g);
      }
    }), function (e) {
      var t = e[P("0x9ec")] = function (t) {
        t = e.defaultValue(t, {}), this[P("0x9d8")] = e[P("0x102")](t[P("0x9dc")], 1), this[P("0x9d4")] = e[P("0x102")](t[P("0x9dd")], 0.5), this[P("0x44")] = e[P("0x102")](t[P("0xef")], e[P("0x16")][P("0x110")]), this[P("0x689")] = e[P("0x102")](t[P("0x969")], e[P("0x26b")].MAX_VALUE), this._projection = new e[P("0x9ed")](this._ellipsoid);
      };

      t.prototype = new e[P("0x9d7")](), delete t[P("0x5")]._numberOfLevelZeroTilesX, delete t[P("0x5")][P("0x9d4")], delete t[P("0x5")][P("0x44")], delete t[P("0x5")][P("0x689")], delete t.prototype._projection, t[P("0x5")][P("0x9e2")] = function (e) {
        return this[P("0x9d4")] * Math[P("0x2ae")](2, e);
      };
    }(window[P("0xfd")]), function (e) {
      function t(t) {
        if (!e[P("0x14")](t)) throw new e[P("0x15")]("options is required.");
        this[P("0x9fc")] = new e[P("0x766")](), this._modelFloorMasks = {}, this[P("0x9fd")] = t.credit, w()(this[P("0x9fd")]) == P("0x9fe") && (this[P("0x9fd")] = new e[P("0x9ff")](this[P("0x9fd")])), t[P("0xa00")] = e[P("0x102")](t[P("0xa00")], 32), t[P("0xa01")] = e[P("0x102")](t.heightMapHeight, 32), this._options = t, this[P("0x557")] = e.when[P("0x9f8")](!0), this[P("0xa02")] = t.subdomains, t[P("0xa03")] = t[P("0x6af")].replace(P("0xa04"), this[P("0xa05")](0, 0, 0)), this[P("0xa06")] = t[P("0xa03")] + "?request=GetMap&Version=1.3.0&Service=WMS&CRS=EPSG:4326&bbox=-90,-180,90,180&height=32&width=32&optimizedOnly=0&v=1&layers=" + t[P("0xa07")] + P("0xa08");
        var r = e.defaultValue(t[P("0xa09")], !1);
        void 0 !== t[P("0xa0a")] && isNaN(t[P("0xa0a")]) && (t[P("0xa0a")] = void 0), this[P("0xa0b")] = e[P("0x102")](t[P("0xa0a")], null), r ? this[P("0xa0c")](!1) : this[P("0xa0c")](!0), this[P("0xa0d")] = t.url + "?" + P("0xa0e") + t[P("0xa07")] + "&Styles=&Format=image/" + this[P("0xa0f")], this._allElevationLayers = null, this[P("0x68a")] = new e[P("0x9d7")](), this[P("0xa10")] = e[P("0xa11")].getEstimatedLevelZeroGeometricErrorForAHeightmap(this[P("0x68a")][P("0xef")], 4 * t.heightMapWidth, this[P("0x68a")][P("0x9d9")](0)), this[P("0xa12")] = new i({
          workerPath: L() + "ThirdParty/sfsterrainprovider/ParseElevationWorker.js"
        }), this[P("0xa13")] = 0, this._requestGridSize = 8, this[P("0xa14")] = {}, this[P("0xa15")] = [], this[P("0xa16")].addEventListener(function (e) {}, this);
      }

      e[P("0xa17")] = t, t[P("0xa18")] = 2, e[P("0xf")](t[P("0x5")], {
        errorEvent: {
          get: function get() {
            return this[P("0x9fc")];
          }
        },
        credit: {
          get: function get() {
            return this[P("0x9fd")];
          }
        },
        hasVertexNormals: {
          get: function get() {
            return !1;
          }
        },
        tilingScheme: {
          get: function get() {
            return this[P("0x68a")];
          }
        },
        ready: {
          get: function get() {
            return !0;
          }
        },
        hasWaterMask: {
          get: function get() {
            return !1;
          }
        },
        heightMapHeight: {
          get: function get() {
            return this._options[P("0xa01")];
          }
        },
        heightMapWidth: {
          get: function get() {
            return this[P("0x248")][P("0xa00")];
          }
        },
        pendingRequests: {
          get: function get() {
            return this[P("0xa13")];
          }
        }
      }), t[P("0x5")][P("0xa0c")] = function (e) {
        if (!e || !this[P("0xa09")]) {
          var t = this._format;
          this[P("0xa0f")] = P(e ? "0xa19" : "0xa1a"), t !== this[P("0xa0f")] && (this[P("0xa1b")] = e, void 0 !== this[P("0xa0d")] && (this[P("0xa0d")] = this._urlTemplate[P("0xa1c")]("image/" + t, "image/" + this[P("0xa0f")])));
        }
      }, t.prototype.getLevelMaximumGeometricError = function (e) {
        return this[P("0xa10")] / (1 << e) * t[P("0xa18")];
      }, t.prototype.createKeyFromTile = function (e, t, i) {
        return e + "_" + t + "_" + i;
      }, t.prototype[P("0x9fb")] = function (e, t, i) {
        var r = Math.min(this._maxTerrainLevel, 25);
        return !!this[P("0xa1b")] || i < r;
      }, t[P("0x5")][P("0xa1d")] = function (e) {
        var t = Math[P("0x133")](this[P("0xa1e")]) / Math[P("0x133")](2);
        return t = Math.min(t, e), Math[P("0x2ae")](2, t);
      }, t.prototype[P("0xa1f")] = function (e, t, i, r) {
        return this.getRequestUrl(e, t, i, r);
      }, t[P("0x5")][P("0xa20")] = function (e, t, i) {
        return this[P("0xa21")](e, t, i, !1, !0);
      }, t[P("0x5")][P("0xa21")] = function (e, t, i, r, n) {
        var o = i,
            a = null != r ? this[P("0xa1d")](i) : 1,
            s = (e = null != r ? (e - e % a) / a : e, t = null != r ? (t - t % a) / a : t, i = null != r ? i - Math.log(a) / Math.log(2) : i, this[P("0xa22")][P("0xa23")](e, t, i)),
            x = this[P("0xa00")] * a == 256 && r ? 1 : 0;
        return n && (x = 0), this[P("0xa0d")].replace("{south}", s.south)[P("0xa1c")](P("0xa24"), s[P("0x2ac")]).replace(P("0xa25"), s[P("0x2a9")])[P("0xa1c")](P("0xa26"), s[P("0x2aa")])[P("0xa1c")](P("0xa27"), x)[P("0xa1c")]("{width}", this[P("0xa00")] * a).replace(P("0xa28"), this[P("0xa01")] * a)[P("0xa1c")](P("0xa04"), this[P("0xa05")](e, t, i)) + "&level=" + i + "&origLevel=" + o;
      }, t[P("0x5")][P("0xa29")] = function (t, i) {
        return t[P("0x2a9")] >= i[P("0x2a9")] * e.Math[P("0xa2a")] && t.east <= i.east * e[P("0x23")][P("0xa2a")] && t[P("0x2ab")] >= i[P("0x2ab")] * e[P("0x23")][P("0xa2a")] && t.north <= i[P("0x2ac")] * e[P("0x23")][P("0xa2a")];
      }, t.prototype[P("0xa2b")] = function (t, i) {
        var r = t[P("0x2a9")] * e[P("0x23")].RADIANS_PER_DEGREE,
            n = t[P("0x2aa")] * e[P("0x23")][P("0xa2c")],
            o = t[P("0x2ab")] * e[P("0x23")].RADIANS_PER_DEGREE,
            a = t[P("0x2ac")] * e[P("0x23")].RADIANS_PER_DEGREE,
            s = new e.Rectangle(r, o, n, a);
        return e[P("0x26b")].intersection(s, i, new e[P("0x26b")]());
      }, t.prototype[P("0xa05")] = function (e, t, i) {
        if (null == this[P("0xa02")]) return "";
        var r = (e + t + i) % this[P("0xa02")][P("0x0")];
        return this[P("0xa02")][r];
      }, t[P("0x5")][P("0xa2d")] = function (e) {
        e[P("0x969")] && void 0 !== viewer[P("0x10f")].globe[P("0xa2e")][P("0xa2f")] && this[P("0xa30")](e.rectangle, !0)[P("0xa31")]();
      }, t[P("0x5")][P("0xa30")] = function (t, i) {
        function r(t, i, n) {
          var o = n ? 4.1 : 2.1;
          if (t[P("0x689")].width <= i[P("0x19a")] * o && e[P("0x26b")].contains(t._rectangle, e.Rectangle.center(i))) return t;

          for (var a = t[P("0x12f")].length, s = 0; s < a; s++) {
            var x = t.children[s];
            if (e[P("0x26b")][P("0xd1")](x._rectangle, e.Rectangle.center(i))) return r(x, i, n);
          }

          return null;
        }

        if (t.width == Math.PI) return null;

        for (var n = 0; n < viewer[P("0x10f")].globe[P("0xa2e")][P("0xa2f")][P("0x0")]; n++) {
          var o = r(viewer[P("0x10f")][P("0xa3")]._surface[P("0xa2f")][n], t, i);
          if (o) return o;
        }

        return null;
      }, t.prototype[P("0xa32")] = function (t, i, r) {
        var n = this._tilingScheme[P("0xa33")](t, i, r, new e.Rectangle()),
            o = this[P("0xa30")](n);

        if (o && o[P("0x440")] && o[P("0x440")][P("0xa34")]) {
          if (!(0 < o.data.terrainData._childTileMask)) return !1;

          for (var a = o[P("0x12f")][P("0x0")], s = 0; s < a; s++) {
            var x = o.children[s];
            if (e[P("0x26b")][P("0x84")](x[P("0x689")], n)) return o[P("0x440")][P("0xa34")][P("0xa35")] & 1 << s;
          }
        }

        return !0;
      }, t[P("0x5")][P("0xa36")] = function (t, i, r) {
        var n = this[P("0x68a")][P("0xa33")](t, i, r, new e[P("0x26b")]()),
            o = this[P("0xa30")](n);
        o && o[P("0x440")] && o[P("0x440")][P("0xa34")] && 0 < o[P("0x440")][P("0xa34")][P("0xa35")] && o[P("0x12f")][P("0x1e4")](function (t, i) {
          if (e[P("0x26b")].equals(t[P("0x689")], n)) switch (i) {
            case 0:
              o[P("0x440")].terrainData._childTileMask &= -5;
              break;

            case 1:
              o[P("0x440")].terrainData[P("0xa35")] &= -9;
              break;

            case 2:
              o.data[P("0xa34")][P("0xa35")] &= -2;
              break;

            case 3:
              o[P("0x440")][P("0xa34")][P("0xa35")] &= -3;
          }
        });
      }, t[P("0x5")].requestBaseTerrainTileGeometry = function (e, t, i, r) {
        return this.requestTileGeometryBuffers(e, t, i, r);
      }, t.prototype.requestElevationLayerTileGeometry = function (e, t, i, r, n) {
        return this.requestTileGeometryBuffers(e, t, i, r, n);
      }, t[P("0x5")][P("0xa37")] = function (t, i, r, n, o) {
        var a = this,
            s = {};
        s[P("0xa38")] = this.tilingScheme[P("0xa23")](t, i, r), s[P("0xa39")] = o;
        var x,
            l,
            c,
            u,
            h = e[P("0x9ee")][P("0x9ef")]();
        return void 0 === (u = this[P("0xa3a")](t, i, r, n, void 0, o)) ? void 0 : (x = this[P("0xa3a")](t + 1, i, r, n, !0, o), l = this[P("0xa3a")](t, i + 1, r, n, !0, o), c = this.requestTileHeightBuffer(t + 1, i + 1, r, n, !0, o), e[P("0x9ee")][P("0xa3b")]([u, x, l, c], function (e) {
          if (null != e[0].myReject && e[0][P("0xa3c")]) h[P("0xa3d")]();else {
            for (var t = a[P("0xa00")] + 1, i = a[P("0xa01")] + 1, r = new Float32Array(t * i), n = e[0][P("0xa3e")], o = 0; o < t; o++) {
              for (var x = 0; x < i; x++) {
                var l = o,
                    c = x,
                    u = 0;
                x === t - 1 && (c = 0, u = 1, n && (u = 0, c = t - 2)), o === i - 1 && (l = 0, u = 2);
                var f = o * t + x,
                    d = l * a[P("0xa00")] + c;
                null === e[u] || null != e[u].myReject && e[u].myReject || (r[f] = e[u][d]);
              }
            }

            null != e[3][P("0xa3c")] && e[3].myReject || (r[t * i - 1] = e[3][0]);
            var g = a[P("0xa3f")](r, t, i, 15);
            s.buffer = g, h[P("0x9f8")](s);
          }
        })[P("0xa40")](function () {
          h.reject();
        }), h);
      }, t[P("0x5")].requestTileGeometry = function (t, i, r, n) {
        var o = this,
            a = [],
            s = o[P("0xa22")].tileXYToNativeRectangle(t, i, r);
        null != this[P("0xa41")] && 0 < this[P("0xa41")].length && 7 < r ? [][P("0xa42")](function (e, x) {
          if (x[P("0x221")]) {
            var l = x[P("0x969")];
            o[P("0xa29")](s, l) ? (o[P("0xa0c")](!1), a[P("0x17c")](o[P("0xa43")](t, i, r, n, x))) : null != o[P("0xa2b")](s, l) ? (o.setFormatMPT(!1), a[P("0x17c")](o.requestElevationLayerTileGeometry(t, i, r, n, x)), a[P("0x17c")](o[P("0xa44")](t, i, r, n))) : (o[P("0xa0c")](!0), a[P("0x17c")](o.requestBaseTerrainTileGeometry(t, i, r, n)));
          } else o[P("0xa0c")](!0), a[P("0x17c")](o.requestBaseTerrainTileGeometry(t, i, r, n));
        }) : (o[P("0xa0c")](!0), a.push(o[P("0xa44")](t, i, r, n)));
        var x = e.when[P("0x9ef")]();
        return e.when[P("0xa3b")](a, function (t) {
          if (1 === t.length) void 0 !== t[P("0xa39")] && console[P("0x133")]("missing scale and offset"), x.resolve(t[0][P("0x4b3")]);else if (1 < t[P("0x0")]) {
            var i = t[P("0x1f2")](function (e) {
              return void 0 !== e.layer;
            }),
                r = t[P("0x1f2")](function (e) {
              return void 0 === e.layer;
            });
            if (0 === i.length) x.resolve(t[0].buffer);else {
              var n = i[i[P("0x0")] - 1],
                  a = r[r[P("0x0")] - 1],
                  s = {
                tolerance: n[P("0xa39")][P("0xa45")],
                nullValueNumber: n[P("0xa39")][P("0xa46")],
                verticesX: n[P("0xa39")][P("0xa47")],
                verticesY: n[P("0xa39")][P("0xa48")],
                scale: e[P("0x102")](n[P("0xa39")][P("0xfc")], 1),
                offset: e.defaultValue(n[P("0xa39")].offset, 0)
              };
              x[P("0x9f8")](o.mergeBuffers(a.buffer, n[P("0x4b3")], s, a.requestedRectangle));
            }
          } else x[P("0xa3d")]();
        }).otherwise(function () {
          x[P("0xa3d")]();
        }), x;
      }, t[P("0x5")][P("0xa49")] = function (t, i, r, n) {
        n[P("0x2a9")], n.north;
        var o,
            a,
            s,
            x = (n[P("0x2aa")], n.south, n[P("0x19a")] / 33),
            l = n[P("0x8b")] / 33,
            c = r[P("0xfc")],
            u = r[P("0xa4a")],
            h = r[P("0xa46")],
            f = r[P("0xa4b")],
            d = void 0 !== h && void 0 !== f;
        if (d) var g = e.defaultValue(r[P("0xa46")], 0),
            p = e[P("0x102")](Number(r.tolerance), 0);
        var m = new Float32Array(1089);

        for (o = 0; o < 33; o++, l) {
          for (a = 0; a < 33; a++, x) {
            m[s = 33 * o + a] = d ? !i[P("0xa4c")][s] || i[P("0xa4c")][s] >= g - p && i[P("0xa4c")][s] <= g + p ? t[P("0xa4c")][s] : i[P("0xa4c")][s] * c + u : i._buffer[s] ? i[P("0xa4c")][s] * c + u : t[P("0xa4c")][s];
          }
        }

        return this[P("0xa3f")](m, 33, 33, 15);
      }, t[P("0x5")].requestTileHeightBuffer = function (t, i, r, n, o, a) {
        if (!isNaN(t + i + r)) {
          e.defined(n) && !1 !== n || (n = new e[P("0xa4d")]({
            defer: !0
          }));
          var s = 0 == n.defer;
          o = e.defaultValue(s, !1);
          var x,
              l = e[P("0x9ee")][P("0x9ef")]();
          if (void 0 !== a) a.getUrlFromSTag = function (e, t, i) {
            return void 0 === a.subdomains ? a[P("0x6af")] : a[P("0xa4e")][0] + P("0xa4f");
          }, x = this.getRequestElevationLayer(t, i, r).replace(this[P("0x248")][P("0x6af")], a.getUrlFromSTag(t, i, r) + P("0xa50"))[P("0xa1c")](this[P("0x248")][P("0xa07")], a[P("0x176")]), a[P("0xa51")] === P("0xa19") && (x = x[P("0xa1c")](P("0xa52"), P("0xa53")));else {
            x = this[P("0xa1f")](t, i, r, s || o);

            var c = this._tilingScheme.tileXYToRectangle(t, i, r),
                u = this[P("0xa54")],
                h = e[P("0x9ee")][P("0x9ef")]();

            if (void 0 !== u) {
              var f = [];
              if (u[P("0x1e4")](function (t) {
                t[P("0x221")] && null != e[P("0x26b")][P("0x348")](c, t.rectangle, new e[P("0x26b")]()) && f[P("0x17c")](t);
              }), 0 < f[P("0x0")]) {
                if (1 === f[P("0x0")] && f[0][P("0xa55")] && r > f[0][P("0xa55")]) h[P("0x9f8")]("NoMerge");else {
                  var d = function (t, i) {
                    var r = e.when[P("0x9ef")](),
                        n = [];
                    return t[P("0x1e4")](function (t) {
                      var r, o, a, s;
                      n[P("0x17c")]((r = t, o = i, s = e[P("0x9ee")][P("0x9ef")](), (a = TerraExplorer.tools[P("0x9f0")][P("0x9f1")][P("0x9f2")].fillArrayFromVerticesAndHeight(r[P("0x9f3")], o, r[P("0x9f4")][0])).timeStamp = r.timeStamp, a[P("0x9f5")] = r[P("0x9f4")], a[P("0x9f6")] = r[P("0x9f6")], a[P("0x9f7")] = r[P("0x9f7")], a.rect = r[P("0x969")], a[P("0x968")] = r[P("0x968")], s[P("0x9f8")](a), s));
                    }), e[P("0x9ee")].all(n, function (e) {
                      if (e[0][P("0x9f9")], 1 === e[P("0x0")]) r[P("0x9f8")](e[0]);else {
                        var t = e[P("0x3d2")](function (e, t) {
                          return t[P("0x9fa")] - e[P("0x9fa")];
                        }),
                            i = t.shift();
                        t.forEach(function (e) {
                          i.forEach(function (t, r) {
                            1 === t && 1 !== e[r] && (i[r] = e[r]);
                          });
                        }), r[P("0x9f8")](i);
                      }
                    }), r;
                  }(f, c);

                  e[P("0x9ee")](d, function (e) {
                    h.resolve(e);
                  })[P("0xa40")](function (e) {
                    console[P("0x133")](e);
                  });
                }
              } else h[P("0x9f8")]("NoMerge");
            } else h[P("0x9f8")](P("0xa56"));

            var g = e.when[P("0x9ef")](),
                p = [].filter(function (e) {
              return 0 < e[P("0xa57")].length;
            });
            if (1 === p.length && p[0].level && r > p[0][P("0x968")]) g[P("0x9f8")](P("0xa58"));else {
              var m = !1;
              p[P("0x1e4")](function (t) {
                if (t.ready && t[P("0x221")] && void 0 !== t[P("0xa59")] && void 0 !== e[P("0x26b")][P("0x348")](c, t[P("0xa59")])) {
                  for (var i, r = new Uint16Array(1024), n = c.west, o = (c[P("0x2ab")], (c[P("0x2aa")] - c[P("0x2a9")]) / 32), a = (c[P("0x2ac")] - c[P("0x2ab")]) / 32, s = 0; s < 32; s++) {
                    for (var x = 0; x < 32; x++) {
                      var l = n + o * x + o / 2,
                          u = c[P("0x2ac")] - a * s - a / 2,
                          h = new e[P("0x13")](l, u);
                      i = 65535;
                      var f = t[P("0xa5a")](t, h, !0);
                      null != f && f[P("0x490")] && f[P("0x490")][P("0xa5b")] && f[P("0x490")][P("0xa5b")].floor && (i = f[P("0x490")]._model[P("0x3e8")][P("0xed")](h.longitude, h[P("0x114")])), 65535 !== i && (i += 1.5), r[32 * s + x] = i;
                    }
                  }

                  m = !0, g[P("0x9f8")](r);
                }
              }), m || g[P("0x9f8")]("NoFloor");
            }
            this[P("0x68a")][P("0xef")];
          }

          if (!1 === this[P("0xa14")][P("0xa5c")](x)) {
            if (this._requestsCache[x] = {}, this[P("0xa15")][P("0x17c")](x), 100 < this[P("0xa15")].length) {
              for (var b = 0; b < 50; b++) {
                delete this._requestsCache[this[P("0xa15")][b]];
              }

              this[P("0xa15")].splice(0, 50);
            }
          } else {
            var v = this[P("0xa15")].indexOf(x);
            this._requestsCacheKeys[P("0x259")](v, 1), this[P("0xa15")].push(x);
          }

          var C = this[P("0xa14")][x];

          if (void 0 !== C[P("0xa5d")] || (C[P("0xa5d")] = s ? e.Resource.fetchArrayBuffer(x) : e[P("0x6da")][P("0xa5e")](x), e[P("0x14")](C[P("0xa5d")]))) {
            var y = this;
            return this._pendingRequests++, e.when(C[P("0xa5d")], function (n) {
              void 0 === C.workerFinished && (C[P("0xa5f")] = y[P("0xa12")][P("0xa60")]({
                buffer: n,
                isElevation: void 0 !== a,
                level: r
              })), e[P("0x9ee")][P("0xa3b")]([C[P("0xa5f")], h, g], function (e) {
                var n = void 0 !== e[1] && e[1] !== P("0xa56"),
                    o = void 0 !== e[2] && "NoFloor" !== e[2];

                if (e[0][P("0xa61")]) {
                  for (var a = y[P("0xa00")] * y[P("0xa01")], s = new Int16Array(a), x = 0; x < a; x++) {
                    s[x] = 300;
                  }

                  return 2 < r && (s[P("0xa3c")] = !0), l[P("0x9f8")](s), l;
                }

                var c = y[P("0xa62")](e[0][P("0x4b3")], t, i, r);
                if (y[P("0xa13")]--, n) for (x = 0; x < 32; x++) {
                  for (var u = 0; u < 32; u++) {
                    var h = 32 * x + u;
                    e[1].fromKML ? c[h] = 1 === e[1][h] ? c[h] : 1 == e[1][P("0x9f6")] ? c[h] + e[1].mtHeight : 2 == e[1][P("0x9f6")] ? Math[P("0x7d")](c[h], e[1][P("0x9f5")]) : 3 == e[1][P("0x9f6")] ? Math[P("0xee")](c[h], e[1][P("0x9f5")]) : e[1][P("0x9f5")] : c[h] = 1 === e[1][h] ? c[h] : 1 == e[1][P("0x9f6")] ? c[h] + e[1][h] : 2 == e[1][P("0x9f6")] ? Math[P("0x7d")](c[h], e[1][h]) : 3 == e[1][P("0x9f6")] ? Math[P("0xee")](c[h], e[1][h]) : e[1][h];
                  }
                }

                if (o) {
                  for (x = 0; x < 32; x++) {
                    for (u = 0; u < 32; u++) {
                      c[h = 32 * x + u] = 65535 === e[2][h] || 10500 < e[2][h] ? c[h] : e[2][h];
                    }
                  }

                  c[P("0xa3e")] = !0;
                }

                l[P("0x9f8")](c);
              })[P("0xa40")](function () {
                for (var e = y[P("0xa00")] * y[P("0xa01")], t = new Int16Array(e), i = 0; i < e; i++) {
                  t[i] = 300;
                }

                return 2 < r && (t.myReject = !0), l[P("0x9f8")](t), l;
              });
            })[P("0xa40")](function () {
              y[P("0xa13")]--, l[P("0xa3d")]();
            }), l;
          }
        }
      }, t.prototype.extractTileHeightBuffer = function (e, t, i, r) {
        try {
          for (var n = this[P("0xa1d")](r), o = t % n, a = i % n, s = new Float32Array(this.heightMapWidth * this[P("0xa01")]), x = 1e6, l = -1e5, c = 0; c < this[P("0xa01")]; c++) {
            for (var u = 0; u < this.heightMapWidth; u++) {
              var h = c + a * this.heightMapHeight,
                  f = u + o * this.heightMapWidth,
                  d = c * this[P("0xa00")] + u,
                  g = h * this.heightMapWidth * n + f;
              e[g] > l && (l = e[g]), e[g] < x && (x = e[g]), s[d] = e[g];
            }
          }
        } catch (e) {
          console[P("0x133")](e[P("0xa63")]);
        }

        return s;
      }, t[P("0x5")].arrayToHeightmapTerrainData = function (t, i, r, n) {
        !1 === e[P("0x14")](t) && (t = new Int16Array(i * r));
        var o = {
          buffer: t,
          width: i,
          height: r,
          childTileMask: n
        };
        return new e[P("0xa64")](o);
      };
      var i = (e[P("0xf")](r[P("0x5")], {
        errorEvent: {
          get: function get() {
            return this[P("0xa16")];
          }
        },
        poolSize: {
          get: function get() {
            return this[P("0xa68")];
          }
        }
      }), r[P("0x5")][P("0xa60")] = function (t, i) {
        for (var r = e[P("0x9ee")][P("0x9ef")](), n = null, o = 999999, a = 0; a < this[P("0xa6a")][P("0x0")]; a++) {
          n = this._workers[a], this[P("0xa6a")][a].jobQueueSize < o && (n = this[P("0xa6a")][a], o = this[P("0xa6a")][a][P("0xa6c")]);
        }

        if (0 < o && this[P("0xa6a")].length < this[P("0xa69")]) {
          n = new Worker(this[P("0xa66")]);
          var s = this;
          n[P("0x130")]("message", function (e) {
            s.onWorkerMessage(e);
          }, !1), n[P("0x130")](P("0x391"), function (e) {
            s[P("0xa6d")](e);
          }, !1), n[P("0xa6c")] = 0, this[P("0xa6a")][P("0x17c")](n), n.id = e.createGuid();
        }

        t[P("0xa6e")] = n.id;
        var x = e[P("0x75c")]();
        return t[P("0xa6f")] = x, this._defered[x] = r, n[P("0xa6c")]++, n[P("0xa70")](t, i), r;
      }, r[P("0x5")][P("0xa71")] = function (e) {
        var t = this;
        if (null == e) return null != this[P("0xa72")] && clearTimeout(this.timerId), void (this[P("0xa72")] = setTimeout(function () {
          t[P("0xa71")](!0);
        }, 5e3));

        for (var i = 0; i < this[P("0xa6a")][P("0x0")]; i++) {
          0 == this._workers[i][P("0xa6c")] && (this[P("0xa6a")][i][P("0xa73")](), this[P("0xa6a")][P("0x259")](i, 1), i--);
        }

        this[P("0xa6a")][P("0x0")] ? this[P("0xa72")] = setTimeout(function () {
          t[P("0xa71")](!0);
        }, 5e3) : this[P("0xa72")] = null;
      }, r[P("0x5")][P("0xa74")] = function (e) {
        var t = e[P("0x440")],
            i = function (e, t) {
          for (var i = 0; i < e[P("0x0")]; i++) {
            if (t(e[i])) return i;
          }
        }(this[P("0xa6a")], function (e) {
          return e.id === t.workerId;
        });

        null != i && (this[P("0xa6a")][i].jobQueueSize--, this[P("0xa71")]());
        var r = this[P("0xa6b")][t.deferedId];
        delete this._defered[t[P("0xa6f")]], r.resolve(t);
      }, r[P("0x5")][P("0xa6d")] = function (e) {
        console.log(e);
      }, r);

      function r(t) {
        if (t = t || [], !e[P("0x14")](t.workerPath)) throw new e[P("0x15")](P("0xa65"));
        this[P("0xa66")] = t[P("0xa67")], this[P("0xa68")] = e[P("0x102")](t[P("0xa69")], 16), this[P("0xa6a")] = [], this[P("0xa6b")] = [];
      }
    }(window.Cesium), function (e) {
      var t = e.GeoTerrainProvider = function (i) {
        if (i = e[P("0x102")](i, e[P("0x102")][P("0x128")]), !e[P("0x14")](i.urls)) throw new e[P("0x15")](P("0xa75"));
        this[P("0xa76")] = e.defaultValue(i[P("0xa77")], e[P("0xa78")][P("0xa79")]), this[P("0xa7a")] = e[P("0x102")](i[P("0xa7b")], t[P("0xa7c")]), this[P("0xa7d")] = i[P("0xa7e")], this[P("0xa7f")] = this[P("0xa7d")].length, this[P("0xa80")] = 0, this[P("0xa81")] = 0, this[P("0xa0b")] = e.defaultValue(i[P("0xa77")], e[P("0xa78")][P("0xa79")]), this[P("0x9fc")] = new e[P("0x766")](), this[P("0x48b")] = !1, this[P("0xa82")] = e.when[P("0x9ef")](), this._proxy = i.proxy, this._terrainDataStructure = {
          heightScale: 0.001,
          heightOffset: -1e3,
          elementsPerHeight: 3,
          stride: 4,
          elementMultiplier: 256,
          isBigEndian: !0
        };
        var r = i[P("0xa83")];
        w()(r) === P("0x9fe") && (r = new e[P("0x9ff")](r)), this[P("0x9fd")] = r, this._tilingScheme = void 0, this._rectangles = [];
        var n = e[P("0x102")](i[P("0xef")], e[P("0x16")][P("0x110")]);
        this[P("0x68a")] = new e[P("0x9d7")]({
          ellipsoid: n
        }), this[P("0xa84")] = 64, this[P("0xa85")] = 64, this._levelZeroMaximumGeometricError = e[P("0xa11")][P("0xa86")](n, Math[P("0x7d")](this[P("0xa84")], this[P("0xa85")]), this[P("0x68a")].getNumberOfXTilesAtLevel(0)), this[P("0x48b")] = !0, this[P("0xa82")][P("0x9f8")](!0), this[P("0x75b")] = i[P("0x176")], this[P("0xa87")] = i[P("0xa88")], this[P("0xa89")] = i[P("0xa8a")], this[P("0xa8b")] = e[P("0x102")](i.topLevel, 5), this[P("0xa8c")] = e[P("0x102")](i[P("0xa8d")], 25);
      };

      function i(t, i) {
        return (i = e[P("0x14")](i) ? i : new e.Request())[P("0x6af")] = t, i[P("0xa9e")] = function () {
          var i,
              r,
              n = P("0xa9f"),
              o = new XMLHttpRequest();
          return o[P("0xaa0")](n, t, !0), o[P("0xaa1")] = P("0xaa2"), o[P("0xaa3")] = !1, o.send(null), i = o, r = e[P("0x9ee")].defer(), i.onreadystatechange = function () {
            if (4 === i[P("0xaa6")]) if (200 === i[P("0xaa7")]) {
              if (e[P("0x14")](i[P("0xaa8")])) {
                for (var t = new DataView(i[P("0xaa8")]), n = new Uint8Array(t[P("0xaa9")]), o = 0; o < t.byteLength;) {
                  n[o] = t.getUint8(o, !0), o++;
                }

                var a = function (t) {
                  if (!(t[P("0x0")] < 1e3)) {
                    var i = new Zlib[P("0xaaa")](t);
                    return e[P("0x14")](i) ? i[P("0xaab")]() : void 0;
                  }
                }(n);

                e[P("0x14")](a) ? r[P("0x9f8")](a) : r[P("0xa3d")](void 0);
              }
            } else (400 <= i[P("0xaa7")] || 0 == i[P("0xaa7")]) && r.reject(void 0);
          }, r.promise;
        }, e[P("0xaa4")][P("0xaa5")](i);
      }

      e.defineProperties(t[P("0x5")], {
        errorEvent: {
          get: function get() {
            return this[P("0x9fc")];
          }
        },
        credit: {
          get: function get() {
            return this[P("0x9fd")];
          }
        },
        tilingScheme: {
          get: function get() {
            if (!this[P("0xa8e")]) throw new e[P("0x15")](P("0xa8f"));
            return this._tilingScheme;
          }
        },
        ready: {
          get: function get() {
            return this._ready;
          }
        },
        readyPromise: {
          get: function get() {
            return this[P("0xa82")][P("0xa90")];
          }
        },
        hasWaterMask: {
          get: function get() {
            return !1;
          }
        },
        hasVertexNormals: {
          get: function get() {
            return !1;
          }
        }
      }), t[P("0x5")][P("0xa91")] = function (r, o, a, s) {
        if (!this.ready) throw new e.DeveloperError(P("0xa8f"));
        1 < this[P("0xa7f")] && (this[P("0xa81")] < 8 ? this[P("0xa81")]++ : (this[P("0xa81")] = 0, this[P("0xa80")]++, this[P("0xa80")] >= this._urls_length && (this[P("0xa80")] = 0)));
        var x = this[P("0xa7d")][this[P("0xa80")]];

        if (this[P("0x68a")][P("0x9e2")](a), a < this[P("0xa8c")] && a >= this[P("0xa8b")]) {
          var l,
              c = -1 === x[P("0x2d3")]("?") ? "?" : "&",
              u = x + c + "x=" + r + P("0xa92") + o + P("0xa93") + (a + 1),
              h = this[P("0xa94")];

          if (e.defined(h) && (u = h[P("0xa95")](u)), s = e[P("0x102")](s, !0)) {
            if (l = i(u, s), !e.defined(l)) return;
          } else l = i(u);

          if (this._tileType == t[P("0xa96")]) return l.then(function (e) {
            return function (e, t, i, r, n) {
              var o = 0,
                  a = 3 * Float64Array[P("0x4b5")],
                  s = 4 * Float64Array[P("0x4b5")],
                  x = 3 * Uint16Array.BYTES_PER_ELEMENT,
                  l = Uint16Array[P("0x4b5")],
                  c = 3 * l,
                  u = new DataView(t),
                  h = new Cartesian3(u[P("0xaad")](o, !0), u[P("0xaad")](o + 8, !0), u[P("0xaad")](o + 16, !0));
              o += a;
              var f = u[P("0xaae")](o, !0);
              o += Float32Array.BYTES_PER_ELEMENT;
              var d = u[P("0xaae")](o, !0);
              o += Float32Array.BYTES_PER_ELEMENT;
              var g = new BoundingSphere(new Cartesian3(u.getFloat64(o, !0), u[P("0xaad")](o + 8, !0), u[P("0xaad")](o + 16, !0)), u[P("0xaad")](o + a, !0));
              o += s;
              var p = new Cartesian3(u[P("0xaad")](o, !0), u[P("0xaad")](o + 8, !0), u[P("0xaad")](o + 16, !0));
              o += a;
              var m = u.getUint32(o, !0);
              o += Uint32Array.BYTES_PER_ELEMENT;
              var b = new Uint16Array(t, o, 3 * m);
              o += m * x, 65536 < m && (c = 3 * (l = Uint32Array[P("0x4b5")]));
              var v = b[P("0xaaf")](0, m),
                  C = b[P("0xaaf")](m, 2 * m),
                  y = b[P("0xaaf")](2 * m, 3 * m);
              AttributeCompression.zigZagDeltaDecode(v, C, y), o % l != 0 && (o += l - o % l);

              var _ = u[P("0xab0")](o, !0);

              o += Uint32Array[P("0x4b5")];
              var A = IndexDatatype[P("0xab1")](m, t, o, 3 * _);
              o += _ * c;

              for (var I = 0, w = A[P("0x0")], G = 0; G < w; ++G) {
                var E = A[G];
                A[G] = I - E, 0 === E && ++I;
              }

              var S = u[P("0xab0")](o, !0);
              o += Uint32Array.BYTES_PER_ELEMENT;
              var T = IndexDatatype[P("0xab1")](m, t, o, S);
              o += S * l;
              var M = u[P("0xab0")](o, !0);
              o += Uint32Array[P("0x4b5")];
              var N = IndexDatatype[P("0xab1")](m, t, o, M);
              o += M * l;
              var L = u[P("0xab0")](o, !0);
              o += Uint32Array.BYTES_PER_ELEMENT;
              var R = IndexDatatype[P("0xab1")](m, t, o, L);
              o += L * l;
              var O = u[P("0xab0")](o, !0);
              o += Uint32Array[P("0x4b5")];
              var F,
                  D,
                  U = IndexDatatype.createTypedArrayFromArrayBuffer(m, t, o, O);

              for (o += O * l; o < u[P("0xaa9")];) {
                var k = u[P("0xab2")](o, !0);
                o += Uint8Array[P("0x4b5")];
                var B = u.getUint32(o, !0);
                if (o += Uint32Array[P("0x4b5")], k === QuantizedMeshExtensionIds[P("0xab3")] && e[P("0xab4")]) F = new Uint8Array(t, o, 2 * m);else if (k === QuantizedMeshExtensionIds[P("0xab5")] && e._requestWaterMask) D = new Uint8Array(t, o, B);else if (k === QuantizedMeshExtensionIds[P("0xab6")] && e[P("0xab7")]) {
                  var W = u[P("0xab0")](o, !0);

                  if (0 < W) {
                    var j = getStringFromTypedArray(new Uint8Array(t), o + Uint32Array[P("0x4b5")], W),
                        V = JSON[P("0x946")](j)[P("0xab8")];
                    if (defined(V)) for (var z = 0; z < V[P("0x0")]; ++z) {
                      for (var H = i + z + 1, q = V[z], X = (e._tilingScheme[P("0x9e2")](H), 0); X < q[P("0x0")]; ++X) {
                        var Y = q[X];
                        Y[P("0xab9")], Y.startY;
                      }
                    }
                  }
                }
                o += B;
              }

              var K,
                  Q = 5 * e[P("0xa99")](i),
                  Z = e[P("0x68a")][P("0xa33")](r, n, i);
              return Z.width < CesiumMath.PI_OVER_TWO + CesiumMath[P("0xaba")] && (K = OrientedBoundingBox[P("0xabb")](Z, f, d, e[P("0x68a")][P("0xef")])), new QuantizedMeshTerrainData({
                center: h,
                minimumHeight: f,
                maximumHeight: d,
                boundingSphere: g,
                orientedBoundingBox: K,
                horizonOcclusionPoint: p,
                quantizedVertices: b,
                encodedNormals: F,
                indices: A,
                westIndices: T,
                southIndices: N,
                eastIndices: R,
                northIndices: U,
                westSkirtHeight: Q,
                southSkirtHeight: Q,
                eastSkirtHeight: Q,
                northSkirtHeight: Q,
                waterMask: D,
                credits: e[P("0xabc")]
              });
            }(provider, e, a, r, o);
          });
          var f = this;
          return e[P("0x9ee")](l, function (t) {
            var i = f.transformBuffer(t);

            if (e.defined(i)) {
              var s = new e[P("0xa64")]({
                buffer: i,
                width: f[P("0xa84")],
                height: f[P("0xa85")],
                childTileMask: n(f, r, o, a),
                structure: f[P("0xa97")]
              });
              return s[P("0xa98")] = 6e3, s;
            }
          });
        }

        if (a < this[P("0xa8b")]) {
          var d = this[P("0xa84")],
              g = this[P("0xa85")],
              p = n(this, r, o, a),
              m = this._terrainDataStructure;
          return new e[P("0xa64")]({
            buffer: this.getvHeightBuffer(),
            width: d,
            height: g,
            childTileMask: p,
            structure: m
          });
        }

        return a >= this[P("0xa8c")] ? new C.a(function (e, t) {
          t("该级别不发送请求！");
        }) : void 0;
      }, t[P("0x5")][P("0xa99")] = function (t) {
        if (!this[P("0xa8e")]) throw new e[P("0x15")]("requestTileGeometry must not be called before ready returns true.");
        return this._levelZeroMaximumGeometricError / (1 << t);
      }, t[P("0x5")][P("0x9fb")] = function (e, t, i) {
        if (i < 25) return !0;
      }, t[P("0x5")][P("0xa9a")] = function () {
        var t = this[P("0xa9b")];

        if (!e[P("0x14")](t)) {
          t = new Uint8ClampedArray(this._heightmapWidth * this._heightmapHeight * 4);

          for (var i = 0; i < this[P("0xa84")] * this[P("0xa85")] * 4;) {
            t[i++] = 15, t[i++] = 66, t[i++] = 64, t[i++] = 255;
          }

          this[P("0xa9b")] = t;
        }

        return t;
      }, t[P("0x5")][P("0xa9c")] = function (t) {
        var i = 2;
        this._dataType === e.GeoTerrainProvider[P("0xa79")] ? i = 2 : this._dataType === e[P("0xa78")].FLOAT && (i = 4);
        var r = t;
        if (r[P("0x0")] !== 22500 * i) return null;

        for (var n, o, a, s, x, l = new ArrayBuffer(i), c = new DataView(l), u = this[P("0xa84")], h = this[P("0xa85")], f = new Uint8Array(u * h * 4), d = 0; d < h; d++) {
          for (var g = 0; g < u; g++) {
            s = p()(149 * d / (h - 1)), x = p()(149 * g / (u - 1)), (1e4 < (n = 4 === i ? (o = i * (150 * s + x), c.setInt8(0, r[o]), c[P("0xa9d")](1, r[o + 1]), c[P("0xa9d")](2, r[o + 2]), c.setInt8(3, r[o + 3]), c.getFloat32(0, !0)) : r[o = i * (150 * s + x)] + 256 * r[o + 1]) || n < -2e3) && (n = 0);
            var m = (n + 1e3) / 0.001;
            f[a = 4 * (d * u + g)] = m / 65536, f[1 + a] = (m - 256 * f[a] * 256) / 256, f[2 + a] = m - 256 * f[a] * 256 - 256 * f[1 + a], f[3 + a] = 255;
          }
        }

        return f;
      };
      var r = new e[P("0x26b")]();

      function n(t, i, n, a) {
        for (var s = t._tilingScheme, x = t[P("0xaac")], l = s[P("0xa33")](i, n, a), c = 0, u = 0; u < x[P("0x0")] && 15 !== c; ++u) {
          var h = x[u];

          if (!(h[P("0x109")] <= a)) {
            var f = h[P("0x969")],
                d = e[P("0x26b")][P("0x348")](f, l, r);
            e[P("0x14")](d) && (o(s, f, 2 * i, 2 * n, a + 1) && (c |= 4), o(s, f, 2 * i + 1, 2 * n, a + 1) && (c |= 8), o(s, f, 2 * i, 2 * n + 1, a + 1) && (c |= 1), o(s, f, 2 * i + 1, 2 * n + 1, a + 1) && (c |= 2));
          }
        }

        return c;
      }

      function o(t, i, n, o, a) {
        var s = t[P("0xa33")](n, o, a);
        return e[P("0x14")](e.Rectangle.intersection(s, i, r));
      }

      t[P("0xa79")] = P("0xabd"), t[P("0x5e9")] = P("0xabe"), t.QUANTIZED_MESH = P("0xabf"), t[P("0xa7c")] = P("0xac0");
    }(window[P("0xfd")]), k = (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && "symbol" == w()(Symbol[P("0x1f3")]) ? function (e) {
      return w()(e);
    } : function (e) {
      return e && (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && e[P("0x2b7")] === A.a && e !== Symbol[P("0x5")] ? "symbol" : w()(e);
    }, function (e) {
      var t = e.defaultValue;

      function i(i) {
        i = t(i, t[P("0x128")]), this.viewer = i[P("0x13b")], this[P("0xac1")] = i.tileset, this[P("0xac2")] = i[P("0xac2")], this[P("0xac3")] = t(i[P("0xac3")], !0), this[P("0x69")] = t(i[P("0x69")], null), this[P("0xac4")] = t(i.originalColor, e[P("0x16a")][P("0xac5")](255, 50, 50, 1)), this[P("0xac6")] = t(i[P("0xac6")], e.Color[P("0xac5")](255, 50, 50, 122)), this.selectedColor = t(i.selectedColor, e.Color.fromBytes(50, 255, 50, 122)), this[P("0xac7")] = void 0, this[P("0xac8")] = new e.PrimitiveCollection(), this[P("0xac2")] && this[P("0xac2")][P("0x165")] === P("0xac9") && this._loadGeoJSON(this[P("0xac2")].data), this[P("0x16f")] = new e[P("0x15f")](this[P("0x13b")][P("0x10f")][P("0x48")]), this[P("0xac3")] && this[P("0xaca")](), this[P("0xacb")] = new e[P("0x766")]();
      }

      e[P("0x14")], e[P("0xf")](i[P("0x5")], {
        seletedEvent: {
          get: function get() {
            return this[P("0xacb")];
          }
        }
      }), i[P("0x5")]._loadGeoJSON = function (e) {
        var t = this;
        if ("object" === (w()(e) === P("0x2b6") ? P("0x2b6") : k(e))) this._loadGroundPrimitives(e);else if ("string" == typeof e) {
          var i = new window[P("0xacc")]();
          i[P("0xaa0")](P("0xa9f"), e, !0), i[P("0xacd")] = !1, i.setRequestHeader(P("0xace"), P("0xacf")), i[P("0xad0")] = function () {
            console[P("0x391")](i[P("0xad1")]);
          }, i[P("0xad2")] = function () {
            if (200 <= i.status && i[P("0xaa7")] < 300 && i[P("0xaa8")]) {
              var e = JSON[P("0x946")](i[P("0xaa8")]);
              t[P("0xad3")](e);
            }
          }, i.send();
        } else console.warn(P("0xad4"));
      }, i[P("0x5")][P("0xad3")] = function (t) {
        this[P("0xac8")][P("0xf3")]() && (this[P("0xac8")] = new e[P("0x51e")]());

        for (var i = 0; i < t[P("0x33a")][P("0x0")]; i++) {
          var r = t[P("0x33a")][i];

          if (r[P("0x180")][P("0x165")] === P("0xad5")) {
            for (var n = [], o = 0; o < r[P("0x180")].coordinates[0][P("0x0")]; o++) {
              n[P("0x17c")](r[P("0x180")].coordinates[0][o][0]), n[P("0x17c")](r[P("0x180")][P("0x2ed")][0][o][1]);
            }

            var a = new e.GeometryInstance({
              geometry: e.PolygonGeometry[P("0x231")]({
                positions: e.Cartesian3[P("0x1da")](n),
                vertexFormat: e[P("0x1b0")][P("0x1b1")]
              }),
              attributes: {
                color: e[P("0x184")][P("0x1b2")](this[P("0xac4")])
              },
              id: {
                tag: P("0xad7"),
                description: r
              }
            }),
                s = new e.GroundPrimitive({
              geometryInstances: a,
              appearance: new e[P("0x16e")](),
              show: !0,
              classificationType: e[P("0x17a")].BOTH
            });
            this[P("0xac8")][P("0x6d")](s);
          } else console[P("0x2e2")]("要素类型是" + r[P("0x180")][P("0x165")] + P("0xad6"));
        }

        this.viewer[P("0x10f")][P("0x17d")][P("0x6d")](this[P("0xac8")]);
      }, i.prototype[P("0xad8")] = function (e) {
        this.groundPrimitiveCollection && this[P("0xac8")][P("0xf4")](), this[P("0xad9")](e);
      }, i[P("0x5")].isContaintFeature = function (e) {
        return this[P("0xac8")][P("0xd1")](e[P("0x182")]);
      }, i[P("0x5")][P("0xaca")] = function () {
        if (!0 !== this.active) {
          this[P("0x69")] = !0;
          var t = this,
              i = null,
              r = null;
          t[P("0x16f")].setInputAction(function (n) {
            if (i && i.id && i.id[P("0x2cc")] == P("0xad7")) {
              if (r && r.id && i && i.id && i.id.description === r.id.description) return;
              i[P("0x182")][P("0x354")](i.id)[P("0x169")] = e.ColorGeometryInstanceAttribute[P("0x356")](t[P("0xac4")]), i = void 0;
            }

            for (var o = void 0, a = t.viewer[P("0x10f")].drillPick(n[P("0x64")], 10), s = 0; s < a[P("0x0")]; s++) {
              if (a[s] && a[s].id && a[s].id[P("0x2cc")] == P("0xad7")) {
                o = a[s];
                break;
              }
            }

            if (e[P("0x14")](o) && (!r && o && o.id && o.id[P("0x2cc")] == P("0xad7") || o && o.id && r && r.id && o.id[P("0xada")] !== r.id.description)) {
              if (!t[P("0xadb")](o)) return;
              (i = o)[P("0x182")][P("0x354")](o.id).color = e[P("0x184")][P("0x356")](t[P("0xac6")]);
            }
          }, e.ScreenSpaceEventType[P("0x163")]), t[P("0x16f")][P("0x160")](function (n) {
            r && (r[P("0x182")][P("0x354")](r.id)[P("0x169")] = e[P("0x184")].toValue(t[P("0xac4")]), r = void 0);

            for (var o = void 0, a = t.viewer[P("0x10f")][P("0xadc")](n[P("0x8c")], 10), s = 0; s < a[P("0x0")]; s++) {
              if (a[s] && a[s].id && a[s].id[P("0x2cc")] == P("0xad7")) {
                o = a[s];
                break;
              }
            }

            if (e[P("0x14")](o) && r !== o) {
              if (o && o.id && r !== o) {
                if (!t[P("0xadb")](o)) return;
                (r = o)[P("0x182")][P("0x354")](o.id)[P("0x169")] = e[P("0x184")][P("0x356")](t[P("0xadd")]), t.selectedFeature = r;
              }

              o && r && i && o.id === i.id && (i = void 0), o && o.id && t._seletedEvent[P("0x896")](o);
            }
          }, e.ScreenSpaceEventType.LEFT_CLICK);
        }
      }, i[P("0x5")][P("0xade")] = function () {
        !0 === this[P("0x69")] && (this[P("0x69")] = !1, this.selectedFeature && this.selectedFeature.id && (this.selectedFeature[P("0x182")][P("0x354")](this.selectedFeature.id)[P("0x169")] = e[P("0x184")][P("0x356")](this[P("0xac4")]), this.selectedFeature = null), this.handler[P("0x535")](e.ScreenSpaceEventType[P("0x163")]), this[P("0x16f")][P("0x535")](e[P("0x161")][P("0x17e")]));
      }, i[P("0x5")][P("0xf4")] = function () {
        this[P("0xade")](), this.handler = this.handler && this.handler.destroy(), this[P("0xac8")] = this[P("0xac8")] && this[P("0xac8")].destroy(), this.viewer = void 0, this[P("0xac1")] = void 0, this[P("0xac2")] = void 0, this[P("0xac4")] = void 0, this[P("0xac6")] = void 0, this[P("0xadd")] = void 0, this[P("0xac7")] = void 0;
      }, e[P("0xadf")] = i;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x5f1")],
          i = e[P("0x10")],
          r = e[P("0x11")],
          n = e[P("0x12")],
          o = e[P("0x13")],
          a = e.defaultValue,
          s = e[P("0x14")],
          x = e[P("0xf")],
          l = e[P("0x15")],
          c = e[P("0xae0")],
          u = e[P("0x16")],
          h = e[P("0x282")],
          f = e[P("0x766")],
          d = e[P("0xa9")],
          g = e[P("0x17")],
          p = e[P("0xae1")],
          m = e[P("0x18")],
          b = e[P("0x23")],
          v = e.Matrix3,
          C = e[P("0x1b")],
          y = e[P("0xae2")],
          _ = e.OrthographicOffCenterFrustum,
          A = e[P("0xae3")],
          I = e[P("0x1d")],
          w = e.Ray,
          G = e[P("0x26b")],
          E = e[P("0x1f")],
          S = e[P("0xae4")],
          T = e[P("0x21")],
          M = e.SceneMode;

      function N(e) {
        if (!s(e)) throw new l(P("0x24"));
        this[P("0x42")] = e, this[P("0xae5")] = C[P("0x6e")](C[P("0xae")]), this[P("0xae6")] = C[P("0x6e")](C.IDENTITY), this[P("0xae7")] = C.clone(C[P("0xae")]), this._actualInvTransform = C[P("0x6e")](C[P("0xae")]), this[P("0xae8")] = !1, this[P("0xae9")] = !1, this[P("0x8c")] = new r(), this[P("0x6b6")] = new r(), this[P("0xaea")] = new r(), this._positionCartographic = new o(), this[P("0x93")] = new r(), this[P("0x6b7")] = new r(), this[P("0xaeb")] = new r(), this.up = new r(), this[P("0xaec")] = new r(), this[P("0xaed")] = new r(), this[P("0x9b")] = new r(), this[P("0xaee")] = new r(), this._rightWC = new r(), this[P("0xe8")] = new A(), this[P("0xe8")][P("0xaef")] = e[P("0x782")] / e[P("0x783")], this[P("0xe8")][P("0xaf0")] = b.toRadians(60), this[P("0xaf1")] = 1e5, this[P("0xaf2")] = Math.PI / 60, this[P("0xaf3")] = Math.PI / 3600, this[P("0xaf4")] = 1e5, this[P("0xc7")] = void 0, this[P("0xaf5")] = 1.5, this._moveStart = new f(), this[P("0xaf6")] = new f(), this[P("0xaf7")] = new f(), this._changedPosition = void 0, this[P("0xaf8")] = void 0, this[P("0xaf9")] = void 0, this[P("0xafa")] = 0.5, this[P("0x77a")] = new C(), this[P("0x77b")] = new C(), L(this), this._mode = M.SCENE3D, this[P("0xafb")] = !0;
        var t = e[P("0xbd")];
        this[P("0xc6")] = t, this[P("0x59")] = t.project(new o(Math.PI, b.PI_OVER_TWO)), this[P("0xafc")] = void 0, this[P("0xafd")] = !1, Qe(this, N[P("0xafe")], this.position, !0);
        var i = r[P("0x96")](this.position);
        i += i * N[P("0xaff")], r[P("0x8d")](this[P("0x8c")], this[P("0x8c")]), r[P("0x6c")](this.position, i, this.position);
      }

      function L(e) {
        C[P("0xb03")](e[P("0x6b6")], e._direction, e[P("0xaec")], e[P("0xaee")], e[P("0x77a")]), C[P("0x737")](e[P("0x77a")], e._actualInvTransform, e._viewMatrix), C.inverseTransformation(e[P("0x77a")], e[P("0x77b")]);
      }

      N[P("0xb00")] = new C(0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), N[P("0xb01")] = C.inverseTransformation(N[P("0xb00")], new C()), N[P("0xafe")] = G[P("0x1a1")](-95, -20, -70, 90), N[P("0xaff")] = 0.5, N.DEFAULT_OFFSET = new d(0, -b[P("0xb02")], 0), N[P("0x5")][P("0xb04")] = function () {
        var e = this;

        if (0 !== e._changed[P("0xb05")]) {
          var t = e[P("0xafa")];

          if (e[P("0x6b9")] !== M[P("0x85")]) {
            if (!s(e[P("0xaf8")])) return e[P("0xb06")] = r.clone(e[P("0xa5")], e[P("0xb06")]), void (e[P("0xaf8")] = r[P("0x6e")](e[P("0xa6")], e[P("0xaf8")]));
            var i,
                n = b[P("0x9d")](r[P("0x92")](e.directionWC, e[P("0xaf8")]));
            i = s(e.frustum[P("0xb07")]) ? n / (0.5 * e[P("0xe8")][P("0xb07")]) : n;
            var o = r[P("0x8e")](e.positionWC, e[P("0xb06")]) / e.positionCartographic[P("0x8b")];
            (t < i || t < o) && (e._changed[P("0x896")](Math[P("0xee")](i, o)), e._changedPosition = r[P("0x6e")](e[P("0xa5")], e[P("0xb06")]), e._changedDirection = r[P("0x6e")](e[P("0xa6")], e[P("0xaf8")]));
          } else {
            if (!s(e._changedFrustum)) return e[P("0xb06")] = r[P("0x6e")](e[P("0x8c")], e._changedPosition), void (e[P("0xaf9")] = e[P("0xe8")][P("0x6e")]());

            var a,
                x = e[P("0x8c")],
                l = e[P("0xb06")],
                c = e[P("0xe8")],
                u = e[P("0xaf9")],
                h = x.x + c[P("0x149")],
                f = x.x + c.right,
                d = l.x + u.left,
                g = l.x + u[P("0x9b")],
                p = x.y + c[P("0x9aa")],
                m = x.y + c[P("0x151")],
                v = l.y + u.bottom,
                C = l.y + u[P("0x151")],
                y = Math[P("0xee")](h, d),
                _ = Math[P("0x7d")](f, g),
                A = Math[P("0xee")](p, v),
                I = Math[P("0x7d")](m, C);

            if (_ <= y || m <= A) a = 1;else {
              var w = u;
              h < d && g < f && p < v && C < m && (w = c), a = 1 - (_ - y) * (I - A) / ((w.right - w.left) * (w[P("0x151")] - w.bottom));
            }
            t < a && (e[P("0xaf7")].raiseEvent(a), e[P("0xb06")] = r.clone(e.position, e[P("0xb06")]), e[P("0xaf9")] = e[P("0xe8")].clone(e[P("0xaf9")]));
          }
        }
      };
      var R = new C(),
          O = new o();

      N[P("0x5")][P("0xb08")] = function () {
        var e = this[P("0x42")],
            t = e.screenSpaceCameraController,
            i = t[P("0x41")],
            n = t[P("0x3d")],
            o = t[P("0x30")];

        if (!this[P("0xafd")] && i) {
          var a = this[P("0x6b9")],
              x = e[P("0xa3")];

          if (s(x) && a !== M[P("0x85")] && a !== M.MORPHING) {
            var l,
                c,
                u = x[P("0xef")],
                h = e.mapProjection;
            C[P("0x84")](this[P("0xaf")], C[P("0xae")]) || (l = C[P("0x6e")](this[P("0xaf")], R), c = r.magnitude(this[P("0x8c")]), this[P("0xc2")](C.IDENTITY));
            var f = O;
            a === M[P("0x90")] ? u.cartesianToCartographic(this.position, f) : h.unproject(this[P("0x8c")], f);
            var d = !1;

            if (f[P("0x8b")] < n) {
              var g = x[P("0xed")](f);
              s(g) && (g += o, f[P("0x8b")] < g && (f[P("0x8b")] = g, a === M[P("0x90")] ? u[P("0xa7")](f, this[P("0x8c")]) : h.project(f, this[P("0x8c")]), d = !0));
            }

            s(l) && (this[P("0xc2")](l), d && (r[P("0x8d")](this[P("0x8c")], this[P("0x8c")]), r[P("0xc8")](this[P("0x8c")], this[P("0x93")]), r[P("0x6c")](this[P("0x8c")], Math[P("0xee")](c, o), this[P("0x8c")]), r[P("0x8d")](this[P("0x93")], this[P("0x93")]), r.cross(this[P("0x93")], this.up, this.right), r[P("0x99")](this[P("0x9b")], this[P("0x93")], this.up)));
          }
        }
      };

      var F = new o(),
          D = new r(),
          U = new r(),
          k = new n(),
          B = new n(),
          W = new n(),
          j = new n(),
          V = new n(),
          z = new r();

      function H(e) {
        var t = e[P("0x6b9")],
            i = !1,
            o = 0;
        t === M[P("0x85")] && (i = (o = e.frustum[P("0x9b")] - e.frustum.left) !== e[P("0x53b")].height);
        var a = e[P("0x6b6")],
            s = !r[P("0x84")](a, e[P("0x8c")]) || i;
        s && (a = r[P("0x6e")](e[P("0x8c")], e[P("0x6b6")]));
        var x = e[P("0x6b7")],
            l = !r[P("0x84")](x, e.direction);
        l && (r[P("0x8d")](e[P("0x93")], e[P("0x93")]), x = r[P("0x6e")](e[P("0x93")], e[P("0x6b7")]));
        var c = e[P("0xaec")],
            u = !r[P("0x84")](c, e.up);
        u && (r.normalize(e.up, e.up), c = r[P("0x6e")](e.up, e[P("0xaec")]));
        var h = e[P("0xaee")],
            f = !r[P("0x84")](h, e.right);
        f && (r[P("0x8d")](e[P("0x9b")], e[P("0x9b")]), h = r[P("0x6e")](e[P("0x9b")], e[P("0xaee")]));
        var d,
            g = e[P("0xae8")] || e[P("0xafb")];
        e[P("0xae8")] = !1, g && (C[P("0xb0c")](e[P("0xae5")], e[P("0xae6")]), e._mode === M[P("0x8a")] || e[P("0x6b9")] === M.SCENE2D ? C.equals(C[P("0xae")], e[P("0xae5")]) ? C.clone(N[P("0xb00")], e[P("0xae7")]) : e[P("0x6b9")] === M[P("0x8a")] ? (d = e, E[P("0xb09")](d._projection, d[P("0xae5")], d._actualTransform)) : function (e) {
          var t = e[P("0xc6")],
              i = t.ellipsoid,
              o = C.getColumn(e._transform, 3, k),
              a = i[P("0xd6")](o, F),
              s = t[P("0x5a")](a, D),
              x = B;
          x.x = s.z, x.y = s.x, x.z = s.y, x.w = 1;
          var l = n.clone(n[P("0xb8")], V),
              c = n[P("0x6d")](C[P("0xb0a")](e[P("0xae5")], 0, U), o, U);
          i[P("0xd6")](c, a), t[P("0x5a")](a, s);
          var u = W;
          u.x = s.z, u.y = s.x, u.z = s.y, u.w = 0, r.subtract(u, x, u), u.x = 0;
          var h = j;
          if (r[P("0xe6")](u) > b.EPSILON10) r[P("0x99")](l, u, h);else {
            var f = n[P("0x6d")](C.getColumn(e[P("0xae5")], 1, U), o, U);
            i[P("0xd6")](f, a), t.project(a, s), h.x = s.z, h.y = s.x, h.z = s.y, h.w = 0, r.subtract(h, x, h), h.x = 0, r.magnitudeSquared(h) < b[P("0xb0b")] && (n[P("0x6e")](n.UNIT_Y, u), n[P("0x6e")](n[P("0xc3")], h));
          }
          r[P("0x99")](h, l, u), r.normalize(u, u), r[P("0x99")](l, u, h), r.normalize(h, h), C[P("0x4e3")](e[P("0xae7")], 0, u, e[P("0xae7")]), C.setColumn(e[P("0xae7")], 1, h, e._actualTransform), C[P("0x4e3")](e._actualTransform, 2, l, e._actualTransform), C[P("0x4e3")](e[P("0xae7")], 3, x, e[P("0xae7")]);
        }(e) : C[P("0x6e")](e[P("0xae5")], e[P("0xae7")]), C[P("0xb0c")](e[P("0xae7")], e[P("0xb0d")]), e[P("0xafb")] = !1);
        var p = e._actualTransform;
        if (s || g) if (e[P("0xaea")] = C[P("0xd4")](p, a, e[P("0xaea")]), t === M[P("0x90")] || t === M.MORPHING) e[P("0x53b")] = e[P("0xc6")][P("0xef")][P("0xd6")](e._positionWC, e[P("0x53b")]);else {
          var m = z;
          m.x = e[P("0xaea")].y, m.y = e[P("0xaea")].z, m.z = e[P("0xaea")].x, t === M[P("0x85")] && (m.z = o), e._projection.unproject(m, e[P("0x53b")]);
        }

        if (l || u || f) {
          var v = r[P("0x92")](x, r.cross(c, h, z));

          if (Math[P("0x78")](1 - v) > b[P("0xe9")]) {
            var y = 1 / r[P("0xe6")](c),
                _ = r[P("0x92")](c, x) * y,
                A = r[P("0x6c")](x, _, z);

            c = r[P("0x8d")](r[P("0x95")](c, A, e[P("0xaec")]), e._up), r[P("0x6e")](c, e.up), h = r[P("0x99")](x, c, e[P("0xaee")]), r[P("0x6e")](h, e[P("0x9b")]);
          }
        }

        (l || g) && (e[P("0xaeb")] = C[P("0x739")](p, x, e[P("0xaeb")]), r.normalize(e[P("0xaeb")], e[P("0xaeb")])), (u || g) && (e[P("0xaed")] = C[P("0x739")](p, c, e._upWC), r.normalize(e[P("0xaed")], e._upWC)), (f || g) && (e[P("0xb0e")] = C[P("0x739")](p, h, e._rightWC), r[P("0x8d")](e[P("0xb0e")], e[P("0xb0e")])), (s || l || u || f || g) && L(e);
      }

      function q(e, t) {
        var i;
        return i = b[P("0x62")](Math[P("0x78")](e.z), 1, b.EPSILON3) ? Math[P("0x9e7")](t.y, t.x) - b[P("0x5b")] : Math.atan2(e.y, e.x) - b[P("0x5b")], b[P("0xab")] - b[P("0xb0f")](i);
      }

      function X(e) {
        return b[P("0x5b")] - b[P("0x9d")](e.z);
      }

      function Y(e, t, i) {
        var r = 0;
        return b[P("0x62")](Math.abs(e.z), 1, b[P("0xdf")]) || (r = Math[P("0x9e7")](-i.z, t.z), r = b[P("0xb0f")](r + b[P("0xab")])), r;
      }

      var K = new C(),
          Q = new C();
      x(N[P("0x5")], {
        transform: {
          get: function get() {
            return this._transform;
          }
        },
        inverseTransform: {
          get: function get() {
            return H(this), this[P("0xae6")];
          }
        },
        viewMatrix: {
          get: function get() {
            return H(this), this[P("0x77a")];
          }
        },
        inverseViewMatrix: {
          get: function get() {
            return H(this), this._invViewMatrix;
          }
        },
        positionCartographic: {
          get: function get() {
            return H(this), this[P("0x53b")];
          }
        },
        positionWC: {
          get: function get() {
            return H(this), this[P("0xaea")];
          }
        },
        directionWC: {
          get: function get() {
            return H(this), this._directionWC;
          }
        },
        upWC: {
          get: function get() {
            return H(this), this[P("0xaed")];
          }
        },
        rightWC: {
          get: function get() {
            return H(this), this._rightWC;
          }
        },
        heading: {
          get: function get() {
            if (this[P("0x6b9")] !== M[P("0xb10")]) {
              var e = this[P("0xc6")].ellipsoid,
                  t = C.clone(this[P("0xae5")], K),
                  i = E[P("0xbf")](this[P("0xa5")], e, Q);

              this._setTransform(i);

              var r = q(this[P("0x93")], this.up);
              return this[P("0xc2")](t), r;
            }
          }
        },
        pitch: {
          get: function get() {
            if (this[P("0x6b9")] !== M[P("0xb10")]) {
              var e = this[P("0xc6")].ellipsoid,
                  t = C[P("0x6e")](this._transform, K),
                  i = E[P("0xbf")](this[P("0xa5")], e, Q);

              this._setTransform(i);

              var r = X(this[P("0x93")]);
              return this[P("0xc2")](t), r;
            }
          }
        },
        roll: {
          get: function get() {
            if (this[P("0x6b9")] !== M[P("0xb10")]) {
              var e = this[P("0xc6")][P("0xef")],
                  t = C[P("0x6e")](this[P("0xae5")], K),
                  i = E[P("0xbf")](this[P("0xa5")], e, Q);
              this[P("0xc2")](i);
              var r = Y(this.direction, this.up, this.right);
              return this[P("0xc2")](t), r;
            }
          }
        },
        moveStart: {
          get: function get() {
            return this[P("0xb11")];
          }
        },
        moveEnd: {
          get: function get() {
            return this[P("0xaf6")];
          }
        },
        changed: {
          get: function get() {
            return this[P("0xaf7")];
          }
        }
      }), N[P("0x5")].update = function (e) {
        if (!s(e)) throw new l(P("0xb12"));
        if (e === M.SCENE2D && !(this[P("0xe8")] instanceof _)) throw new l(P("0xb13"));
        if (!(e !== M[P("0x90")] && e !== M[P("0x8a")] || this[P("0xe8")] instanceof A || this[P("0xe8")] instanceof y)) throw new l(P("0xb14"));
        var t = !1;

        if (e !== this[P("0x6b9")] && (this[P("0x6b9")] = e, this[P("0xafb")] = e !== M.MORPHING, t = this[P("0x6b9")] === M[P("0x85")]), t) {
          var i = this[P("0xafc")] = this[P("0xe8")][P("0x6e")]();
          if (!(i instanceof _)) throw new l(P("0xb15"));
          var r = i[P("0x151")] / i[P("0x9b")];
          i[P("0x9b")] = 2 * this[P("0x59")].x, i.left = -i.right, i[P("0x151")] = r * i[P("0x9b")], i[P("0x9aa")] = -i[P("0x151")];
        }

        this._mode === M[P("0x85")] && me(this, this[P("0x8c")]);

        var n = this._scene[P("0xa3")],
            o = !s(n) || n._surface[P("0xb16")].ready && 0 === n[P("0xa2e")][P("0xb17")].length && 0 === n[P("0xa2e")][P("0xb18")].length && 0 === n[P("0xa2e")][P("0xb19")].length && 0 === n._surface[P("0xb1a")][P("0xb1b")];

        this[P("0xafd")] && (this[P("0xafd")] = !o), this[P("0xb08")]();
      };
      var Z = new r(),
          J = new r(),
          $ = new r();

      N[P("0x5")][P("0xc2")] = function (e) {
        var t = r[P("0x6e")](this[P("0xa5")], Z),
            i = r[P("0x6e")](this.upWC, J),
            n = r[P("0x6e")](this[P("0xa6")], $);
        C[P("0x6e")](e, this._transform), this[P("0xae8")] = !0, H(this);
        var o = this[P("0xb0d")];
        C[P("0xd4")](o, t, this[P("0x8c")]), C[P("0x739")](o, n, this[P("0x93")]), C[P("0x739")](o, i, this.up), r.cross(this[P("0x93")], this.up, this.right), H(this);
      };

      var ee = new i(),
          te = new w(),
          ie = new r(),
          re = new r();

      N[P("0x5")][P("0x83")] = function (e) {
        if (this[P("0xe8")] instanceof y && (e || !(this[P("0x53b")].height < 15e4))) if (C[P("0x84")](C[P("0xae")], this[P("0xaf")])) {
          var t,
              i,
              n = this[P("0x42")],
              o = n[P("0x43")];

          if (s(o)) {
            var a = ee;
            a.x = n[P("0x782")] / 2, a.y = n[P("0x783")] / 2;
            var x = this[P("0x86")](a, te);

            if (t = o[P("0xa4")](x, n, ie), n.pickPositionSupported && (i = n[P("0xb1c")](a, re)), s(t) && s(i)) {
              var l = s(i) ? r[P("0x8e")](i, this[P("0xa5")]) : Number[P("0x31")],
                  c = s(t) ? r[P("0x8e")](t, this.positionWC) : Number[P("0x31")];
              this[P("0xe8")][P("0x19a")] = Math[P("0x7d")](l, c);
            } else s(i) ? this[P("0xe8")][P("0x19a")] = r[P("0x8e")](i, this.positionWC) : s(t) && (this[P("0xe8")].width = r[P("0x8e")](t, this.positionWC));
          }

          if (!s(o) || !s(t) && !s(i)) {
            var u = Math[P("0xee")](this.positionCartographic[P("0x8b")], 0);
            this.frustum[P("0x19a")] = u;
          }
        } else this[P("0xe8")][P("0x19a")] = r[P("0x96")](this[P("0x8c")]);
      };

      var ne = new r(),
          oe = new C(),
          ae = new C(),
          se = new I(),
          xe = new v(),
          le = new o(),
          ce = new r(),
          ue = new r(),
          he = new r();

      function fe(e, t, i, n) {
        var o = r.clone(i[P("0x93")], ce),
            a = r.clone(i.up, ue);

        if (e[P("0x42")][P("0xd3")] === M[P("0x90")]) {
          var s = e[P("0xc6")][P("0xef")],
              x = E[P("0xbf")](t, s, K),
              l = C[P("0xb0c")](x, Q);
          C[P("0x739")](l, o, o), C[P("0x739")](l, a, a);
        }

        var c = r[P("0x99")](o, a, he);
        return n.heading = q(o, a), n.pitch = X(o), n[P("0x81")] = Y(o, a, c), n;
      }

      var de = {
        destination: void 0,
        orientation: {
          direction: void 0,
          up: void 0,
          heading: void 0,
          pitch: void 0,
          roll: void 0
        },
        convert: void 0,
        endTransform: void 0
      },
          ge = new g();

      N.prototype[P("0x9c")] = function (e) {
        e = a(e, a[P("0x128")]);
        var t = a(e[P("0x11e")], a[P("0x128")]),
            n = this[P("0x6b9")];

        if (n !== M[P("0xb10")]) {
          s(e[P("0xb1f")]) && this[P("0xc2")](e.endTransform);
          var o = a(e.convert, !0),
              x = a(e[P("0x11d")], r.clone(this[P("0xa5")], ne));
          s(x) && s(x[P("0x2a9")]) && (x = this[P("0xb20")](x, ne), o = !1), s(t[P("0x93")]) && (t = fe(this, x, t, de[P("0x11e")])), ge[P("0x7f")] = a(t[P("0x7f")], 0), ge[P("0x80")] = a(t.pitch, -b[P("0x5b")]), ge.roll = a(t[P("0x81")], 0), this[P("0xafd")] = !1, n === M[P("0x90")] ? function (e, t, i) {
            var n = C[P("0x6e")](e[P("0xaf")], oe),
                o = E[P("0xbf")](t, e[P("0xc6")][P("0xef")], ae);
            e[P("0xc2")](o), r[P("0x6e")](r.ZERO, e[P("0x8c")]), i[P("0x7f")] = i[P("0x7f")] - b[P("0x5b")];
            var a = I.fromHeadingPitchRoll(i, se),
                s = v.fromQuaternion(a, xe);
            v[P("0xb0a")](s, 0, e[P("0x93")]), v[P("0xb0a")](s, 2, e.up), r.cross(e.direction, e.up, e[P("0x9b")]), e[P("0xc2")](n), e[P("0x83")](!0);
          }(this, x, ge) : n === M[P("0x85")] ? function (e, t, n, o) {
            var a = C[P("0x6e")](e[P("0xaf")], oe);

            if (e[P("0xc2")](C[P("0xae")]), !r[P("0x84")](t, e.positionWC)) {
              if (o) {
                var s = e[P("0xc6")],
                    x = s[P("0xef")][P("0xd6")](t, le);
                t = s[P("0x5a")](x, ne);
              }

              i.clone(t, e.position);
              var l = 0.5 * -t.z,
                  c = -l,
                  u = e.frustum;

              if (l < c) {
                var h = u[P("0x151")] / u.right;
                u[P("0x9b")] = c, u[P("0x149")] = l, u[P("0x151")] = u.right * h, u[P("0x9aa")] = -u[P("0x151")];
              }
            }

            if (e._scene.mapMode2D === T[P("0xb1d")]) {
              n.heading = n[P("0x7f")] - b[P("0x5b")], n[P("0x80")] = -b[P("0x5b")], n[P("0x81")] = 0;
              var f = I[P("0xb1e")](n, se),
                  d = v[P("0xcd")](f, xe);
              v[P("0xb0a")](d, 2, e.up), r[P("0x99")](e[P("0x93")], e.up, e[P("0x9b")]);
            }

            e[P("0xc2")](a);
          }(this, x, ge, o) : function (e, t, i, n) {
            var o = C[P("0x6e")](e[P("0xaf")], oe);

            if (e._setTransform(C[P("0xae")]), !r[P("0x84")](t, e[P("0xa5")])) {
              if (n) {
                var a = e._projection,
                    s = a[P("0xef")].cartesianToCartographic(t, le);
                t = a[P("0x5a")](s, ne);
              }

              r[P("0x6e")](t, e[P("0x8c")]);
            }

            i.heading = i[P("0x7f")] - b[P("0x5b")];
            var x = I.fromHeadingPitchRoll(i, se),
                l = v[P("0xcd")](x, xe);
            v[P("0xb0a")](l, 0, e[P("0x93")]), v.getColumn(l, 2, e.up), r[P("0x99")](e[P("0x93")], e.up, e[P("0x9b")]), e[P("0xc2")](o), e[P("0x83")](!0);
          }(this, x, ge, o);
        }
      };

      var pe = new r();

      function me(e, t) {
        var i,
            r,
            n = e[P("0x42")].mapMode2D === T.ROTATE,
            o = e[P("0x59")].x,
            a = e[P("0x59")].y;
        i = n ? -(r = o) : (r = t.x - 2 * o, t.x + 2 * o), t.x > o && (t.x = r), t.x < -o && (t.x = i), t.y > a && (t.y = a), t.y < -a && (t.y = -a);
      }

      N[P("0x5")][P("0xb21")] = function (e) {
        var t = this[P("0x6b9")];
        if (t === M.MORPHING && this[P("0x42")][P("0xb22")](), t === M.SCENE2D) this[P("0xb23")]({
          destination: N.DEFAULT_VIEW_RECTANGLE,
          duration: e,
          endTransform: C[P("0xae")]
        });else if (t === M.SCENE3D) {
          var i = this[P("0xb20")](N[P("0xafe")]),
              n = r[P("0x96")](i);
          n += n * N[P("0xaff")], r.normalize(i, i), r[P("0x6c")](i, n, i), this[P("0xb23")]({
            destination: i,
            duration: e,
            endTransform: C.IDENTITY
          });
        } else if (t === M[P("0x8a")]) {
          var o = this[P("0xc6")][P("0xef")][P("0xc4")],
              a = new r(0, -1, 1);
          a = r.multiplyByScalar(r[P("0x8d")](a, a), 5 * o, a), this.flyTo({
            destination: a,
            duration: e,
            orientation: {
              heading: 0,
              pitch: -Math[P("0xdc")](r[P("0x8d")](a, pe).z),
              roll: 0
            },
            endTransform: C[P("0xae")],
            convert: !1
          });
        }
      }, N.prototype[P("0xdb")] = function (e, t) {
        if (!s(e)) throw new l("cartesian is required.");
        return s(t) || (t = new n()), H(this), C[P("0xce")](this[P("0xb0d")], e, t);
      }, N[P("0x5")][P("0xc9")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb24"));
        return s(t) || (t = new r()), H(this), C.multiplyByPoint(this[P("0xb0d")], e, t);
      }, N[P("0x5")][P("0xb25")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb24"));
        return s(t) || (t = new r()), H(this), C[P("0x739")](this._actualInvTransform, e, t);
      }, N.prototype[P("0xb26")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb24"));
        return s(t) || (t = new n()), H(this), C[P("0xce")](this._actualTransform, e, t);
      }, N[P("0x5")][P("0xb27")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb24"));
        return s(t) || (t = new r()), H(this), C[P("0xd4")](this[P("0xae7")], e, t);
      }, N.prototype[P("0xb28")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb24"));
        return s(t) || (t = new r()), H(this), C[P("0x739")](this[P("0xae7")], e, t);
      };
      var be = new r();
      N[P("0x5")][P("0xa0")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb29"));
        var i = this.position;
        r.multiplyByScalar(e, t, be), r[P("0x6d")](i, be, i), this[P("0x6b9")] === M.SCENE2D && me(this, i), this[P("0x83")](!0);
      }, N[P("0x5")][P("0x584")] = function (e) {
        e = a(e, this[P("0xaf1")]), this[P("0xa0")](this[P("0x93")], e);
      }, N[P("0x5")][P("0x11c")] = function (e) {
        e = a(e, this[P("0xaf1")]), this[P("0xa0")](this[P("0x93")], -e);
      }, N[P("0x5")][P("0xb2a")] = function (e) {
        e = a(e, this[P("0xaf1")]), this[P("0xa0")](this.up, e);
      }, N[P("0x5")][P("0xb2b")] = function (e) {
        e = a(e, this[P("0xaf1")]), this.move(this.up, -e);
      }, N[P("0x5")][P("0xb2c")] = function (e) {
        e = a(e, this[P("0xaf1")]), this[P("0xa0")](this[P("0x9b")], e);
      }, N.prototype.moveLeft = function (e) {
        e = a(e, this.defaultMoveAmount), this[P("0xa0")](this[P("0x9b")], -e);
      }, N[P("0x5")][P("0xb2d")] = function (e) {
        e = a(e, this[P("0xaf2")]), this[P("0xe7")](this.up, -e);
      }, N.prototype[P("0x585")] = function (e) {
        e = a(e, this[P("0xaf2")]), this[P("0xe7")](this.up, e);
      }, N.prototype[P("0xeb")] = function (e) {
        e = a(e, this[P("0xaf2")]), this[P("0xe7")](this[P("0x9b")], -e);
      }, N[P("0x5")][P("0xb2e")] = function (e) {
        e = a(e, this[P("0xaf2")]), this.look(this[P("0x9b")], e);
      };
      var ve = new I(),
          Ce = new v();
      N.prototype[P("0xe7")] = function (e, t) {
        if (!s(e)) throw new l("axis is required.");
        var i = a(t, this[P("0xaf2")]),
            r = I[P("0xcc")](e, -i, ve),
            n = v[P("0xcd")](r, Ce),
            o = this.direction,
            x = this.up,
            c = this[P("0x9b")];
        v.multiplyByVector(n, o, o), v[P("0xce")](n, x, x), v[P("0xce")](n, c, c);
      }, N[P("0x5")][P("0xb2f")] = function (e) {
        e = a(e, this[P("0xaf2")]), this.look(this.direction, e);
      }, N.prototype[P("0xac")] = function (e) {
        e = a(e, this[P("0xaf2")]), this[P("0xe7")](this.direction, -e);
      };

      var ye = new I(),
          _e = new v();

      N[P("0x5")][P("0x9e")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb30"));
        var i = a(t, this[P("0xaf3")]),
            n = I[P("0xcc")](e, -i, ye),
            o = v[P("0xcd")](n, _e);
        v.multiplyByVector(o, this[P("0x8c")], this.position), v.multiplyByVector(o, this[P("0x93")], this[P("0x93")]), v[P("0xce")](o, this.up, this.up), r[P("0x99")](this[P("0x93")], this.up, this[P("0x9b")]), r[P("0x99")](this[P("0x9b")], this.direction, this.up), this[P("0x83")](!1);
      }, N[P("0x5")][P("0xb31")] = function (e) {
        Ee(this, e = a(e, this.defaultRotateAmount));
      }, N[P("0x5")][P("0xda")] = function (e) {
        Ee(this, -(e = a(e, this[P("0xaf3")])));
      };
      var Ae = new r(),
          Ie = new r(),
          we = new r(),
          Ge = new r();

      function Ee(e, t) {
        var i = e.position,
            n = r.normalize(i, Ae);

        if (s(e[P("0xc7")])) {
          var o = r[P("0x62")](n, e[P("0xc7")], b[P("0xe9")]),
              a = r.equalsEpsilon(n, r.negate(e[P("0xc7")], Ge), b[P("0xe9")]);
          if (o || a) (o && t < 0 || a && 0 < t) && e[P("0x9e")](e[P("0x9b")], t);else {
            var x = r.normalize(e[P("0xc7")], Ie),
                l = r[P("0x92")](n, x),
                c = b[P("0x9d")](l);
            0 < t && c < t && (t = c - b[P("0xea")]), l = r[P("0x92")](n, r[P("0xc8")](x, Ge)), c = b.acosClamped(l), t < 0 && c < -t && (t = -c + b[P("0xea")]);
            var u = r[P("0x99")](x, n, we);
            e.rotate(u, t);
          }
        } else e[P("0x9e")](e[P("0x9b")], t);
      }

      function Se(e, t) {
        s(e[P("0xc7")]) ? e[P("0x9e")](e.constrainedAxis, t) : e[P("0x9e")](e.up, t);
      }

      function Te(e, t) {
        var i,
            r = e[P("0xe8")];
        if (!(r instanceof _ && s(r.left) && s(r[P("0x9b")]) && s(r[P("0x9aa")]) && s(r[P("0x151")]))) throw new l(P("0xb15"));

        if (t *= 0.5, Math.abs(r[P("0x151")]) + Math[P("0x78")](r[P("0x9aa")]) > Math.abs(r.left) + Math[P("0x78")](r[P("0x9b")])) {
          var n = r[P("0x151")] - t,
              o = r[P("0x9aa")] + t,
              a = e[P("0x59")].y;
          e._scene[P("0xad")] === T[P("0xb1d")] && (a *= e[P("0xaf5")]), a < o && (n = -(o = a)), n <= o && (o = -(n = 1)), i = r.right / r.top, r.top = n, r[P("0x9aa")] = o, r.right = r[P("0x151")] * i, r[P("0x149")] = -r[P("0x9b")];
        } else {
          var x = r[P("0x9b")] - t,
              c = r[P("0x149")] + t,
              u = e._maxCoord.x;
          e[P("0x42")][P("0xad")] === T[P("0xb1d")] && (u *= e[P("0xaf5")]), u < x && (c = -(x = u)), x <= c && (c = -(x = 1)), i = r[P("0x151")] / r.right, r.right = x, r[P("0x149")] = c, r[P("0x151")] = r[P("0x9b")] * i, r[P("0x9aa")] = -r[P("0x151")];
        }
      }

      function Pe(e, t) {
        e[P("0xa0")](e.direction, t);
      }

      N.prototype[P("0xd8")] = function (e) {
        Se(this, -(e = a(e, this[P("0xaf3")])));
      }, N[P("0x5")][P("0xb32")] = function (e) {
        Se(this, e = a(e, this[P("0xaf3")]));
      }, N[P("0x5")][P("0x82")] = function (e) {
        e = a(e, this[P("0xaf4")]), this[P("0x6b9")] === M[P("0x85")] ? Te(this, e) : Pe(this, e);
      }, N.prototype[P("0xb33")] = function (e) {
        e = a(e, this[P("0xaf4")]), this[P("0x6b9")] === M.SCENE2D ? Te(this, -e) : Pe(this, -e);
      }, N[P("0x5")][P("0x8f")] = function () {
        return this[P("0x6b9")] === M.SCENE3D ? r[P("0x96")](this[P("0x8c")]) : this._mode === M.COLUMBUS_VIEW ? Math.abs(this[P("0x8c")].z) : this[P("0x6b9")] === M[P("0x85")] ? Math[P("0xee")](this[P("0xe8")][P("0x9b")] - this[P("0xe8")][P("0x149")], this[P("0xe8")][P("0x151")] - this[P("0xe8")].bottom) : void 0;
      };
      var Me = new C();

      N[P("0x5")][P("0x50a")] = function (e, t) {
        if (!s(e)) throw new l("target is required");
        if (!s(t)) throw new l(P("0xb34"));
        if (this._mode === M[P("0xb10")]) throw new l(P("0xb35"));
        var i = E[P("0xbf")](e, u[P("0x110")], Me);
        this.lookAtTransform(i, t);
      };

      var Ne = new r(),
          Le = new I(),
          Re = new I(),
          Oe = new v();

      function Fe(e, t, i) {
        t = b[P("0x77")](t, -b[P("0x5b")], b[P("0x5b")]), e = b.zeroToTwoPi(e) - b[P("0x5b")];
        var n = I[P("0xcc")](r[P("0xb36")], -t, Le),
            o = I[P("0xcc")](r[P("0xc3")], -e, Re),
            a = I[P("0x737")](o, n, o),
            s = v[P("0xcd")](a, Oe),
            x = r.clone(r[P("0xb8")], Ne);
        return v[P("0xce")](s, x, x), r[P("0xc8")](x, x), r.multiplyByScalar(x, i, x), x;
      }

      N[P("0x5")].lookAtTransform = function (e, t) {
        if (!s(e)) throw new l(P("0xb37"));
        if (this._mode === M[P("0xb10")]) throw new l(P("0xb38"));

        if (this[P("0xc2")](e), s(t)) {
          var n;

          if (n = s(t[P("0x7f")]) ? Fe(t[P("0x7f")], t[P("0x80")], t[P("0x55c")]) : t, this._mode === M[P("0x85")]) {
            i[P("0x6e")](i[P("0x6f")], this[P("0x8c")]), r[P("0xc8")](n, this.up), this.up.z = 0, r.magnitudeSquared(this.up) < b.EPSILON10 && r.clone(r[P("0xb36")], this.up), r[P("0x8d")](this.up, this.up), this[P("0xc2")](C[P("0xae")]), r[P("0xc8")](r.UNIT_Z, this.direction), r.cross(this[P("0x93")], this.up, this.right), r[P("0x8d")](this[P("0x9b")], this.right);
            var o = this[P("0xe8")],
                a = o[P("0x151")] / o[P("0x9b")];
            return o[P("0x9b")] = 0.5 * r[P("0x96")](n), o.left = -o[P("0x9b")], o.top = a * o[P("0x9b")], o[P("0x9aa")] = -o.top, void this[P("0xc2")](e);
          }

          r[P("0x6e")](n, this[P("0x8c")]), r[P("0xc8")](this[P("0x8c")], this[P("0x93")]), r[P("0x8d")](this[P("0x93")], this[P("0x93")]), r.cross(this.direction, r[P("0xc3")], this.right), r[P("0xe6")](this[P("0x9b")]) < b[P("0xb0b")] && r[P("0x6e")](r[P("0xb8")], this[P("0x9b")]), r.normalize(this.right, this[P("0x9b")]), r[P("0x99")](this[P("0x9b")], this[P("0x93")], this.up), r[P("0x8d")](this.up, this.up), this[P("0x83")](!0);
        }
      };

      var De,
          Ue = new o(),
          ke = new o(),
          Be = new r(),
          We = new r(),
          je = new r(),
          Ve = new r(),
          ze = new r(),
          He = new r(),
          qe = new r(),
          Xe = new r(),
          Ye = {
        direction: new r(),
        right: new r(),
        up: new r()
      };

      function Ke(e, t, i, n) {
        return Math.abs(r[P("0x92")](t, i)) / n - r[P("0x92")](e, i);
      }

      function Qe(e, t, i, n) {
        var o = e[P("0xc6")][P("0xef")],
            a = n ? e : Ye,
            x = t[P("0x2ac")],
            l = t[P("0x2ab")],
            c = t[P("0x2aa")],
            u = t[P("0x2a9")];
        c < u && (c += b[P("0xab")]);
        var f,
            d = 0.5 * (u + c);
        if (l < -b[P("0x5b")] + b[P("0xa2c")] && x > b.PI_OVER_TWO - b[P("0xa2c")]) f = 0;else {
          var g = Ue;
          g[P("0x112")] = d, g[P("0x114")] = x, g.height = 0;
          var p = ke;
          p[P("0x112")] = d, p[P("0x114")] = l, p[P("0x8b")] = 0;
          var m = De;
          s(m) && m[P("0xef")] === o || (De = m = new h(void 0, void 0, o)), m[P("0xb39")](g, p), f = m[P("0x283")](0.5, Ue).latitude;
        }
        var v = Ue;
        v[P("0x112")] = d, v[P("0x114")] = f, v[P("0x8b")] = 0;
        var C = o[P("0xa7")](v, qe),
            _ = Ue;
        _[P("0x112")] = c, _.latitude = x;
        var A = o[P("0xa7")](_, Be);
        _[P("0x112")] = u;
        var I = o.cartographicToCartesian(_, je);
        _.longitude = d;
        var w = o[P("0xa7")](_, ze);
        _.latitude = l;
        var G = o[P("0xa7")](_, He);
        _[P("0x112")] = c;
        var E = o[P("0xa7")](_, Ve);
        _[P("0x112")] = u;
        var S = o[P("0xa7")](_, We);
        r[P("0x95")](I, C, I), r[P("0x95")](E, C, E), r.subtract(A, C, A), r[P("0x95")](S, C, S), r[P("0x95")](w, C, w), r[P("0x95")](G, C, G);
        var T = o[P("0xd5")](C, a[P("0x93")]);
        r.negate(T, T);
        var M = r.cross(T, r[P("0xc3")], a.right);
        r[P("0x8d")](M, M);
        var N,
            L = r[P("0x99")](M, T, a.up);

        if (e[P("0xe8")] instanceof y) {
          var R,
              O,
              F = Math.max(r[P("0x8e")](A, I), r[P("0x8e")](E, S)),
              D = Math[P("0xee")](r.distance(A, E), r[P("0x8e")](I, S)),
              U = e[P("0xe8")][P("0xb3a")].right / e[P("0xe8")]._offCenterFrustum[P("0x151")],
              k = D * U;

          k < F ? O = (R = F) / U : (O = D, R = k), N = Math[P("0xee")](R, O);
        } else {
          var B = Math.tan(0.5 * e[P("0xe8")][P("0xb07")]),
              W = e[P("0xe8")][P("0xaef")] * B;

          if (N = Math[P("0xee")](Ke(T, L, I, B), Ke(T, L, E, B), Ke(T, L, A, B), Ke(T, L, S, B), Ke(T, L, w, B), Ke(T, L, G, B), Ke(T, M, I, W), Ke(T, M, E, W), Ke(T, M, A, W), Ke(T, M, S, W), Ke(T, M, w, W), Ke(T, M, G, W)), l < 0 && 0 < x) {
            var j = Ue;
            j[P("0x112")] = u, j[P("0x114")] = 0, j[P("0x8b")] = 0;
            var V = o.cartographicToCartesian(j, Xe);
            r[P("0x95")](V, C, V), N = Math[P("0xee")](N, Ke(T, L, V, B), Ke(T, M, V, W)), j.longitude = c, V = o.cartographicToCartesian(j, Xe), r[P("0x95")](V, C, V), N = Math.max(N, Ke(T, L, V, B), Ke(T, M, V, W));
          }
        }

        return r[P("0x6d")](C, r[P("0x6c")](T, -N, Xe), i);
      }

      var Ze = new o(),
          Je = new r(),
          $e = new r(),
          et = new o(),
          tt = new r(),
          it = new r();

      N[P("0x5")][P("0xb20")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb3c"));
        var i = this[P("0x6b9")];
        return s(t) || (t = new r()), i === M[P("0x90")] ? Qe(this, e, t) : i === M[P("0x8a")] ? function (e, t, i) {
          var r = e[P("0xc6")];
          t.west > t[P("0x2aa")] && (t = G[P("0xb3b")]);
          var n = e[P("0xae7")],
              o = e[P("0xb0d")],
              a = Ze;
          a[P("0x112")] = t[P("0x2aa")], a[P("0x114")] = t.north;
          var x = r.project(a, Je);
          C[P("0xd4")](n, x, x), C[P("0xd4")](o, x, x), a[P("0x112")] = t[P("0x2a9")], a[P("0x114")] = t.south;
          var l = r[P("0x5a")](a, $e);

          if (C[P("0xd4")](n, l, l), C.multiplyByPoint(o, l, l), i.x = 0.5 * (x.x - l.x) + l.x, i.y = 0.5 * (x.y - l.y) + l.y, s(e[P("0xe8")][P("0xb07")])) {
            var c = Math[P("0x992")](0.5 * e[P("0xe8")][P("0xb07")]),
                u = e.frustum[P("0xaef")] * c;
            i.z = 0.5 * Math[P("0xee")]((x.x - l.x) / u, (x.y - l.y) / c);
          } else {
            var h = x.x - l.x,
                f = x.y - l.y;
            i.z = Math[P("0xee")](h, f);
          }

          return i;
        }(this, e, t) : i === M.SCENE2D ? function (e, t, i) {
          var r = e._projection;
          t.west > t[P("0x2aa")] && (t = G[P("0xb3b")]);
          var n = et;
          n[P("0x112")] = t.east, n[P("0x114")] = t[P("0x2ac")];
          var o = r.project(n, tt);
          n[P("0x112")] = t.west, n[P("0x114")] = t.south;
          var a,
              s,
              x = r[P("0x5a")](n, it),
              l = 0.5 * Math[P("0x78")](o.x - x.x),
              c = 0.5 * Math.abs(o.y - x.y),
              u = e[P("0xe8")][P("0x9b")] / e[P("0xe8")].top,
              h = c * u;
          return h < l ? s = (a = l) / u : (s = c, a = h), c = Math[P("0xee")](2 * a, 2 * s), i.x = 0.5 * (o.x - x.x) + x.x, i.y = 0.5 * (o.y - x.y) + x.y, (n = r[P("0xbe")](i, n))[P("0x8b")] = c, r[P("0x5a")](n, i);
        }(this, e, t) : void 0;
      };

      var rt = new w(),
          nt = new w(),
          ot = new w();

      N[P("0x5")][P("0xa2")] = function (e, t, i) {
        if (!s(e)) throw new l(P("0xb3d"));
        var n = this[P("0x42")][P("0x48")];

        if (0 !== n.clientWidth && 0 !== n[P("0x7c")]) {
          if (s(i) || (i = new r()), t = a(t, u[P("0x110")]), this._mode === M[P("0x90")]) i = function (e, t, i, r) {
            i = a(i, u[P("0x110")]);
            var n = e.getPickRay(t, rt),
                o = m[P("0xe0")](n, i);

            if (o) {
              var s = 0 < o[P("0xe2")] ? o[P("0xe2")] : o[P("0xe4")];
              return w.getPoint(n, s, r);
            }
          }(this, e, t, i);else if (this._mode === M[P("0x85")]) i = function (e, t, i, r) {
            var n = e[P("0x86")](t, nt)[P("0x87")];
            n.z = 0;
            var o = i[P("0xbe")](n);
            if (!(o[P("0x114")] < -b[P("0x5b")] || o.latitude > b[P("0x5b")])) return i.ellipsoid[P("0xa7")](o, r);
          }(this, e, this[P("0xc6")], i);else {
            if (this[P("0x6b9")] !== M[P("0x8a")]) return;

            i = function (e, t, i, n) {
              var o = e.getPickRay(t, ot),
                  a = -o[P("0x87")].x / o[P("0x93")].x;
              w[P("0xe1")](o, a, n);
              var s = i.unproject(new r(n.y, n.z, 0));
              if (!(s[P("0x114")] < -b[P("0x5b")] || s[P("0x114")] > b[P("0x5b")] || s[P("0x112")] < -Math.PI || s.longitude > Math.PI)) return i[P("0xef")][P("0xa7")](s, n);
            }(this, e, this[P("0xc6")], i);
          }
          return i;
        }
      };

      var at = new r(),
          st = new r(),
          xt = new r(),
          lt = new r();

      N[P("0x5")][P("0x86")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb3d"));
        s(t) || (t = new w());
        var i = this[P("0xe8")];
        return s(i[P("0xaef")]) && s(i[P("0xaf0")]) && s(i[P("0xb3e")]) ? function (e, t, i) {
          var n = e[P("0x42")].canvas,
              o = n[P("0x94")],
              a = n[P("0x7c")],
              s = Math[P("0x992")](0.5 * e[P("0xe8")].fovy),
              x = e.frustum[P("0xaef")] * s,
              l = e.frustum.near,
              c = 2 / o * t.x - 1,
              u = 2 / a * (a - t.y) - 1,
              h = e[P("0xa5")];
          r[P("0x6e")](h, i[P("0x87")]);
          var f = r[P("0x6c")](e[P("0xa6")], l, at);
          r[P("0x6d")](h, f, f);
          var d = r[P("0x6c")](e.rightWC, c * l * x, st),
              g = r[P("0x6c")](e.upWC, u * l * s, xt),
              p = r[P("0x6d")](f, d, i[P("0x93")]);
          return r[P("0x6d")](p, g, p), r[P("0x95")](p, h, p), r[P("0x8d")](p, p), i;
        }(this, e, t) : function (e, t, i) {
          var n = e[P("0x42")].canvas,
              o = n[P("0x94")],
              a = n[P("0x7c")],
              x = e.frustum;
          s(x._offCenterFrustum) && (x = x._offCenterFrustum);
          var l = 2 / o * t.x - 1;
          l *= 0.5 * (x[P("0x9b")] - x[P("0x149")]);
          var c = 2 / a * (a - t.y) - 1;
          c *= 0.5 * (x.top - x[P("0x9aa")]);
          var u = i.origin;
          return r[P("0x6e")](e.position, u), r[P("0x6c")](e.right, l, lt), r.add(lt, u, u), r.multiplyByScalar(e.up, c, lt), r[P("0x6d")](lt, u, u), r[P("0x6e")](e[P("0xa6")], i[P("0x93")]), e[P("0x6b9")] === M[P("0x8a")] && r[P("0x88")](i[P("0x87")].z, i[P("0x87")].x, i.origin.y, i[P("0x87")]), i;
        }(this, e, t);
      };

      var ct = new r(),
          ut = new r();

      N[P("0x5")][P("0xb3f")] = function (e) {
        if (!s(e)) throw new l(P("0xb40"));
        var t = r[P("0x95")](this[P("0xa5")], e[P("0x11a")], ct),
            i = r[P("0x6c")](this[P("0xa6")], r[P("0x92")](t, this[P("0xa6")]), ut);
        return Math[P("0xee")](0, r[P("0x96")](i) - e[P("0x181")]);
      };

      var ht = new i();

      function ft(e, t, i, n, o, a) {
        var s = r.clone(t);
        return i.y > n ? s.y -= i.y - n : i.y < -n && (s.y += -n - i.y), i.z > o ? s.z -= i.z - o : i.z < -o && (s.z += -o - i.z), {
          easingFunction: c[P("0xb44")],
          startObject: {
            time: 0
          },
          stopObject: {
            time: 1
          },
          duration: a,
          update: function update(i) {
            var n = r[P("0x308")](t, s, i.time, new r());
            e[P("0xc9")](n, e[P("0x8c")]);
          }
        };
      }

      N.prototype[P("0xb41")] = function (e, t, i) {
        if (!s(e)) throw new l(P("0xb40"));
        if (!s(t)) throw new l("drawingBufferWidth is required.");
        if (!s(i)) throw new l(P("0xb42"));
        var r = this[P("0xb3f")](e),
            n = this.frustum[P("0xb43")](t, i, r, ht);
        return Math[P("0xee")](n.x, n.y);
      };

      var dt = new r(),
          gt = new r(),
          pt = new r(),
          mt = new r();

      N[P("0x5")][P("0xb45")] = function (e) {
        if (!s(e)) throw new l(P("0xb46"));
        if (this[P("0x6b9")] === M[P("0x8a")]) return function (e, t) {
          var i = e[P("0x8c")],
              n = e[P("0x93")],
              o = e.worldToCameraCoordinatesVector(r[P("0xb8")], dt),
              a = -r[P("0x92")](o, i) / r[P("0x92")](o, n),
              s = r[P("0x6d")](i, r[P("0x6c")](n, a, gt), gt);
          e[P("0xb27")](s, s), i = e[P("0xb27")](e.position, pt);
          var x = Math[P("0x992")](0.5 * e[P("0xe8")][P("0xb07")]),
              l = e[P("0xe8")][P("0xaef")] * x,
              c = r.magnitude(r[P("0x95")](i, s, mt)),
              u = l * c,
              h = x * c,
              f = e._maxCoord.x,
              d = e[P("0x59")].y,
              g = Math.max(u - f, f),
              p = Math[P("0xee")](h - d, d);

          if (i.z < -g || i.z > g || i.y < -p || i.y > p) {
            var m = s.y < -g || s.y > g,
                b = s.z < -p || s.z > p;
            if (m || b) return ft(e, i, s, g, p, t);
          }
        }(this, e);
      };

      var bt = new r(),
          vt = {
        destination: void 0,
        heading: void 0,
        pitch: void 0,
        roll: void 0,
        duration: void 0,
        complete: void 0,
        cancel: void 0,
        endTransform: void 0,
        maximumHeight: void 0,
        easingFunction: void 0
      };

      function Ct(e, t, i) {
        s(i) || (i = d[P("0x6e")](N[P("0xb52")]));
        var r,
            n,
            o,
            a,
            x = e[P("0x42")][P("0x24f")][P("0x30")],
            l = e[P("0x42")][P("0x24f")][P("0x79")],
            c = i[P("0x55c")];

        if (!s(c) || 0 === c) {
          var u = t[P("0x181")];
          0 === u ? i[P("0x55c")] = 100 : e.frustum instanceof y || e[P("0x6b9")] === M[P("0x85")] ? i[P("0x55c")] = function (e, t) {
            var i,
                r,
                n = e[P("0xe8")];
            s(n[P("0xb3a")]) && (n = n[P("0xb3a")]);
            var o = n[P("0x9b")] / n.top,
                a = t * o;
            return a < t ? r = (i = t) / o : (r = t, i = a), 1.5 * Math[P("0xee")](i, r);
          }(e, u) : i[P("0x55c")] = (r = u, n = e[P("0xe8")], o = Math[P("0x992")](0.5 * n[P("0xb07")]), a = n[P("0xaef")] * o, Math[P("0xee")](r / a, r / o)), i[P("0x55c")] = b[P("0x77")](i.range, x, l);
        }

        return i;
      }

      N[P("0x5")].cancelFlight = function () {
        s(this[P("0xb47")]) && (this._currentFlight.cancelTween(), this[P("0xb47")] = void 0);
      }, N[P("0x5")][P("0xb23")] = function (e) {
        var t = (e = a(e, a.EMPTY_OBJECT)).destination;
        if (!s(t)) throw new l(P("0xb48"));

        if (this[P("0x6b9")] !== M[P("0xb10")]) {
          this[P("0xb49")]();
          var i = a(e[P("0x11e")], a.EMPTY_OBJECT);

          if (s(i[P("0x93")]) && (i = fe(this, t, i, de[P("0x11e")])), s(e[P("0x763")]) && e.duration <= 0) {
            var r = de;
            return r[P("0x11d")] = e[P("0x11d")], r[P("0x11e")][P("0x7f")] = i[P("0x7f")], r[P("0x11e")][P("0x80")] = i[P("0x80")], r[P("0x11e")][P("0x81")] = i[P("0x81")], r[P("0xb4a")] = e[P("0xb4a")], r[P("0xb1f")] = e[P("0xb1f")], this[P("0x9c")](r), void ("function" == typeof e[P("0xb4b")] && e[P("0xb4b")]());
          }

          var n = s(t[P("0x2a9")]);
          n && (t = this[P("0xb20")](t, bt));
          var o,
              x = this;
          vt[P("0x11d")] = t, vt[P("0x7f")] = i.heading, vt[P("0x80")] = i[P("0x80")], vt.roll = i[P("0x81")], vt[P("0x763")] = e[P("0x763")], vt[P("0xb4b")] = function () {
            o === x[P("0xb47")] && (x[P("0xb47")] = void 0), s(e[P("0xb4b")]) && e[P("0xb4b")]();
          }, vt[P("0xb4c")] = e[P("0xb4c")], vt[P("0xb1f")] = e[P("0xb1f")], vt[P("0xb4a")] = !n && e.convert, vt.maximumHeight = e[P("0x46d")], vt[P("0xb4d")] = e.pitchAdjustHeight, vt.flyOverLongitude = e[P("0xb4e")], vt[P("0xb4f")] = e[P("0xb4f")], vt[P("0xb50")] = e[P("0xb50")];
          var c = this[P("0x42")];
          o = c.tweens[P("0x6d")](S[P("0xb51")](c, vt)), this[P("0xb47")] = o;
        }
      }, N[P("0x5")].viewBoundingSphere = function (e, t) {
        if (!s(e)) throw new l(P("0xb40"));
        if (this[P("0x6b9")] === M[P("0xb10")]) throw new l(P("0xb53"));
        t = Ct(this, e, t), this[P("0x50a")](e[P("0x11a")], t);
      };

      var yt = new C(),
          _t = new r(),
          At = new r(),
          It = new r(),
          wt = new r(),
          Gt = new n(),
          Et = new I(),
          St = new v();

      N.prototype[P("0xa8")] = function (e, t) {
        if (!s(e)) throw new l(P("0xb40"));
        t = a(t, a.EMPTY_OBJECT);
        var i = this[P("0x6b9")] === M[P("0x85")] || this._mode === M.COLUMBUS_VIEW;
        this[P("0xc2")](C[P("0xae")]);
        var n,
            o = Ct(this, e, t[P("0xa4a")]);
        n = i ? r[P("0x6c")](r[P("0xc3")], o.range, _t) : Fe(o[P("0x7f")], o[P("0x80")], o[P("0x55c")]);
        var x,
            c,
            h = E.eastNorthUpToFixedFrame(e[P("0x11a")], u[P("0x110")], yt);

        if (C[P("0xd4")](h, n, n), !i) {
          if (x = r[P("0x95")](e[P("0x11a")], n, At), r[P("0x8d")](x, x), c = C[P("0x739")](h, r[P("0xc3")], It), 1 - Math.abs(r[P("0x92")](x, c)) < b[P("0xbb")]) {
            var f = I.fromAxisAngle(x, o.heading, Et),
                d = v.fromQuaternion(f, St);
            r[P("0xb54")](C[P("0xb0a")](h, 1, Gt), c), v[P("0xce")](d, c, c);
          }

          var g = r.cross(x, c, wt);
          r[P("0x99")](g, x, c), r[P("0x8d")](c, c);
        }

        this[P("0xb23")]({
          destination: n,
          orientation: {
            direction: x,
            up: c
          },
          duration: t[P("0x763")],
          complete: t[P("0xb4b")],
          cancel: t[P("0xb4c")],
          endTransform: t[P("0xb1f")],
          maximumHeight: t[P("0x46d")],
          easingFunction: t[P("0xb50")],
          flyOverLongitude: t[P("0xb4e")],
          flyOverLongitudeWeight: t[P("0xb4f")],
          pitchAdjustHeight: t[P("0xb4d")]
        });
      };

      var Tt = new r(),
          Pt = new r(),
          Mt = new r(),
          Nt = new r(),
          Lt = [new r(), new r(), new r(), new r()],
          Rt = new i(),
          Ot = new r(),
          Ft = [new o(), new o(), new o(), new o()];

      function Dt(e, t, i, r, n, o) {
        Rt.x = e, Rt.y = t;
        var a = r[P("0xa2")](Rt, n, Ot);
        return s(a) ? (Ft[i] = n[P("0xd6")](a, Ft[i]), 1) : (Ft[i] = n[P("0xd6")](o[i], Ft[i]), 0);
      }

      N.prototype.computeViewRectangle = function (e, i) {
        e = a(e, u.WGS84);
        var n = this[P("0xe8")].computeCullingVolume(this.positionWC, this[P("0xa6")], this[P("0xb58")]),
            o = new t(r.ZERO, e[P("0xc4")]);

        if (n[P("0xb59")](o) !== p.OUTSIDE) {
          var s = this._scene[P("0x48")],
              x = s.clientWidth,
              l = s.clientHeight,
              c = 0,
              h = function (e, t) {
            var i,
                n,
                o = t[P("0xb55")],
                a = e.positionWC,
                s = r[P("0xb56")](t[P("0xb57")], a, Tt),
                x = r[P("0x96")](s),
                l = r[P("0x8d")](s, Pt);
            n = r[P("0x62")](l, r[P("0xc3")], b[P("0xb0b")]) ? (i = new r(0, 1, 0), new r(0, 0, 1)) : (i = r[P("0x8d")](r[P("0x99")](r[P("0xc3")], l, Mt), Mt), r.normalize(r[P("0x99")](l, i, Nt), Nt));
            var c = Math.sqrt(r.magnitudeSquared(s) - 1),
                u = r[P("0x6c")](l, 1 / x, Tt),
                h = c / x,
                f = r[P("0x6c")](i, h, Pt),
                d = r[P("0x6c")](n, h, Mt),
                g = r[P("0x6d")](u, d, Lt[0]);
            r[P("0x95")](g, f, g), r.multiplyComponents(o, g, g);
            var p = r.subtract(u, d, Lt[1]);
            r[P("0x95")](p, f, p), r.multiplyComponents(o, p, p);
            var m = r[P("0x95")](u, d, Lt[2]);
            r[P("0x6d")](m, f, m), r[P("0xb56")](o, m, m);
            var v = r.add(u, d, Lt[3]);
            return r[P("0x6d")](v, f, v), r[P("0xb56")](o, v, v), Lt;
          }(this, e);

          if (c += Dt(0, 0, 0, this, e, h), c += Dt(0, l, 1, this, e, h), c += Dt(x, l, 2, this, e, h), (c += Dt(x, 0, 3, this, e, h)) < 2) return G[P("0xb3b")];
          i = G[P("0xb5a")](Ft, i);

          for (var f = 0, d = Ft[3][P("0x112")], g = 0; g < 4; ++g) {
            var m = Ft[g][P("0x112")],
                v = Math.abs(m - d);
            v > b.PI ? f += b.TWO_PI - v : f += v, d = m;
          }

          return b.equalsEpsilon(Math[P("0x78")](f), b.TWO_PI, b[P("0xb5b")]) && (i[P("0x2a9")] = -b.PI, i[P("0x2aa")] = b.PI, 0 <= Ft[0][P("0x114")] ? i.north = b[P("0x5b")] : i[P("0x2ab")] = -b.PI_OVER_TWO), i;
        }
      }, N.prototype[P("0xb5c")] = function () {
        if (!(this._mode === M[P("0x85")] || this.frustum instanceof A)) {
          var e = this[P("0x42")];
          this[P("0xe8")] = new A(), this.frustum[P("0xaef")] = e[P("0x782")] / e[P("0x783")], this.frustum.fov = b[P("0x119")](60);
        }
      }, N[P("0x5")][P("0xb5d")] = function () {
        if (!(this._mode === M[P("0x85")] || this.frustum instanceof y)) {
          var e = this._scene;
          this[P("0xe8")] = new y(), this[P("0xe8")][P("0xaef")] = e.drawingBufferWidth / e[P("0x783")], this[P("0xe8")][P("0x19a")] = r.magnitude(this.position);
          var t = this.frustum[P("0xb5e")];
          s(t) && this[P("0x83")](!0);
        }
      }, N[P("0x6e")] = function (e, t) {
        return s(t) || (t = new N(e[P("0x42")])), r.clone(e[P("0x8c")], t[P("0x8c")]), r[P("0x6e")](e[P("0x93")], t[P("0x93")]), r.clone(e.up, t.up), r[P("0x6e")](e[P("0x9b")], t[P("0x9b")]), C.clone(e[P("0xae5")], t[P("0xaf")]), t[P("0xae8")] = !0, t;
      }, e.GeoCamera = N;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x10")],
          i = e.defined,
          r = e[P("0xf")],
          n = e[P("0x22b")],
          o = e.DeveloperError,
          a = e[P("0x19")],
          s = e[P("0x23")],
          x = e[P("0x15f")],
          l = e[P("0x161")],
          c = e[P("0xb5f")];

      function u(e, t) {
        var r = e;
        return i(t) && (r += "+" + t), r;
      }

      function h(e, r, n) {
        var o = u(c[P("0x35")], r),
            a = e[P("0xb60")],
            s = e[P("0xb61")],
            x = e._eventStartPosition,
            h = e._pressTime,
            f = e._releaseTime;
        a[o] = !0, s[o] = !1, x[o] = new t();
        var d = e[P("0xb62")][o];
        i(d) || (d = e[P("0xb62")][o] = {}), d[P("0x8e")] = {
          startPosition: new t(),
          endPosition: new t()
        }, d[P("0xaa")] = {
          startPosition: new t(),
          endPosition: new t()
        }, d[P("0xb63")] = 0, e._eventHandler[P("0x160")](function (i) {
          e[P("0xb64")]++, s[o] = !0, h[o] = new Date(), t[P("0x308")](i[P("0xb65")], i.position2, 0.5, x[o]);
        }, l[P("0x162")], r), e[P("0xb66")][P("0x160")](function () {
          e._buttonsDown = Math[P("0xee")](e[P("0xb64")] - 1, 0), s[o] = !1, f[o] = new Date();
        }, l[P("0xb67")], r), e[P("0xb66")][P("0x160")](function (e) {
          if (s[o]) {
            a[o] ? (l = e, c = d, t[P("0x6e")](l[P("0x8e")].startPosition, c.distance[P("0x63")]), t[P("0x6e")](l[P("0x8e")][P("0x64")], c[P("0x8e")][P("0x64")]), t[P("0x6e")](l[P("0xaa")].startPosition, c[P("0xaa")].startPosition), t[P("0x6e")](l.angleAndHeight[P("0x64")], c[P("0xaa")][P("0x64")]), a[o] = !1, d[P("0xb63")] = d[P("0xaa")][P("0x63")].x) : (t.clone(e.distance[P("0x64")], d[P("0x8e")].endPosition), t[P("0x6e")](e.angleAndHeight[P("0x64")], d[P("0xaa")][P("0x64")]));

            for (var i = d.angleAndHeight[P("0x64")].x, r = d[P("0xb63")], x = 2 * Math.PI; i >= r + Math.PI;) {
              i -= x;
            }

            for (; i < r - Math.PI;) {
              i += x;
            }

            d[P("0xaa")].endPosition.x = -i * n[P("0x94")] / 12, d.angleAndHeight.startPosition.x = -r * n.clientWidth / 12;
          }

          var l, c;
        }, l[P("0xb68")], r);
      }

      function f(e, r) {
        var n = u(c[P("0x34")], r),
            o = e._update;
        o[n] = !0;
        var a = e[P("0xb62")][n];
        i(a) || (a = e[P("0xb62")][n] = {}), a.startPosition = new t(), a[P("0x64")] = new t(), e[P("0xb66")].setInputAction(function (e) {
          var i = 10 * s[P("0x119")](e);
          o[n] ? (t.clone(t[P("0x6f")], a[P("0x63")]), a[P("0x64")].x = 0, a[P("0x64")].y = i, o[n] = !1) : a[P("0x64")].y = a[P("0x64")].y + i;
        }, l.WHEEL, r);
      }

      function d(e, r, n) {
        var o = u(n, r),
            a = e[P("0xb61")],
            s = e[P("0xb69")],
            x = e[P("0xb6a")],
            h = e[P("0xb6b")];
        a[o] = !1, s[o] = new t();
        var f,
            d,
            g = e._lastMovement[o];
        i(g) || (g = e._lastMovement[o] = {
          startPosition: new t(),
          endPosition: new t(),
          valid: !1
        }), n === c[P("0x32")] ? (f = l[P("0x1ff")], d = l[P("0x1fd")]) : n === c[P("0x37")] ? (f = l[P("0xb6c")], d = l[P("0xb6d")]) : n === c[P("0xb6e")] && (f = l.MIDDLE_DOWN, d = l[P("0xb6f")]), e[P("0xb66")][P("0x160")](function (i) {
          e[P("0xb64")]++, g.valid = !1, a[o] = !0, x[o] = new Date(), t[P("0x6e")](i.position, s[o]);
        }, f, r), e[P("0xb66")][P("0x160")](function () {
          e[P("0xb64")] = Math[P("0xee")](e[P("0xb64")] - 1, 0), a[o] = !1, h[o] = new Date();
        }, d, r);
      }

      function g(e, i) {
        t.clone(e[P("0x63")], i[P("0x63")]), t.clone(e[P("0x64")], i[P("0x64")]);
      }

      function p(e, r) {
        var n = e[P("0xb60")],
            o = e._movement,
            a = e._lastMovement,
            s = e[P("0xb61")];

        for (var x in c) {
          if (c[P("0xa5c")](x)) {
            var h = c[x];

            if (i(h)) {
              var f = u(h, r);
              n[f] = !0, i(e[P("0xb70")][f]) || (e[P("0xb70")][f] = {
                startPosition: new t(),
                endPosition: new t(),
                valid: !1
              }), i(e[P("0xb62")][f]) || (e[P("0xb62")][f] = {
                startPosition: new t(),
                endPosition: new t()
              });
            }
          }
        }

        e[P("0xb66")][P("0x160")](function (x) {
          for (var l in c) {
            if (c[P("0xa5c")](l)) {
              var h = c[l];

              if (i(h)) {
                var f = u(h, r);
                s[f] && (n[f] ? (g(o[f], a[f]), a[f][P("0xb71")] = !0, g(x, o[f]), n[f] = !1) : t.clone(x[P("0x64")], o[f][P("0x64")]));
              }
            }
          }

          t[P("0x6e")](x[P("0x64")], e._currentMousePosition);
        }, l[P("0x163")], r);
      }

      function m(e) {
        if (!i(e)) throw new o(P("0xb72"));

        for (var r in this[P("0xb66")] = new x(e, !0), this[P("0xb60")] = {}, this._movement = {}, this[P("0xb70")] = {}, this[P("0xb61")] = {}, this[P("0xb69")] = {}, this[P("0xb6a")] = {}, this[P("0xb6b")] = {}, this[P("0xb64")] = 0, this[P("0xb73")] = new t(), f(this, void 0), h(this, void 0, e), d(this, void 0, c[P("0x32")]), d(this, void 0, c[P("0x37")]), d(this, void 0, c[P("0xb6e")]), p(this, void 0), a) {
          if (a.hasOwnProperty(r)) {
            var n = a[r];
            i(n) && (f(this, n), h(this, n, e), d(this, n, c.LEFT_DRAG), d(this, n, c[P("0x37")]), d(this, n, c[P("0xb6e")]), p(this, n));
          }
        }
      }

      r(m.prototype, {
        currentMousePosition: {
          get: function get() {
            return this[P("0xb73")];
          }
        },
        anyButtonDown: {
          get: function get() {
            var e = !(this._update[u(c[P("0x34")])] && this[P("0xb60")][u(c.WHEEL, a[P("0x3a")])] && this[P("0xb60")][u(c.WHEEL, a[P("0x38")])] && this[P("0xb60")][u(c.WHEEL, a[P("0xb74")])]);
            return 0 < this[P("0xb64")] || e;
          }
        }
      }), m.prototype[P("0x74")] = function (e, t) {
        if (!i(e)) throw new o("type is required.");
        var r = u(e, t);
        return !this[P("0xb60")][r];
      }, m[P("0x5")][P("0x75")] = function (e, t) {
        if (!i(e)) throw new o(P("0xb75"));
        var r = u(e, t);
        return this._movement[r];
      }, m[P("0x5")][P("0x6a")] = function (e, t) {
        if (!i(e)) throw new o("type is required.");
        var r = u(e, t),
            n = this._lastMovement[r];
        if (n[P("0xb71")]) return n;
      }, m[P("0x5")][P("0x70")] = function (e, t) {
        if (!i(e)) throw new o(P("0xb75"));
        var r = u(e, t);
        return this[P("0xb61")][r];
      }, m.prototype[P("0x76")] = function (e, t) {
        if (!i(e)) throw new o(P("0xb75"));
        if (e === c[P("0x34")]) return this[P("0xb73")];
        var r = u(e, t);
        return this[P("0xb69")][r];
      }, m[P("0x5")][P("0x66")] = function (e, t) {
        if (!i(e)) throw new o(P("0xb75"));
        var r = u(e, t);
        return this[P("0xb6a")][r];
      }, m.prototype[P("0x67")] = function (e, t) {
        if (!i(e)) throw new o(P("0xb75"));
        var r = u(e, t);
        return this[P("0xb6b")][r];
      }, m[P("0x5")][P("0xf1")] = function () {
        for (var e in this[P("0xb60")]) {
          this[P("0xb60")][P("0xa5c")](e) && (this[P("0xb60")][e] = !0);
        }
      }, m[P("0x5")][P("0xf3")] = function () {
        return !1;
      }, m[P("0x5")][P("0xf4")] = function () {
        return this[P("0xb66")] = this[P("0xb66")] && this._eventHandler[P("0xf4")](), n(this);
      }, e[P("0x47")] = m;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0xb76")] = function (t) {
        t = t || {}, this[P("0x217")] = e.defaultValue(t[P("0x8b")], 9e3);
        var i = e[P("0x102")](t[P("0x6af")], "../../../resource/images/cloud.jpg");
        this._url_0 = e[P("0x6ba")](i), this._speedScale = e[P("0x102")](t[P("0xb77")], 1), this[P("0xb78")] = 0, this[P("0xb79")] = 1e-4, this[P("0xb7a")] = e[P("0x102")](t[P("0xb7b")], new e.Cartesian4(0.83, 1.03, 1.4, 0.25)), this[P("0xb7c")] = e[P("0x102")](t.isInverse, !1), this[P("0xb7d")] = new e[P("0x1b")](), this._radius = null, this[P("0xb7e")] = null, this[P("0xb7f")] = !1, this[P("0xb80")] = !1, this[P("0x5ba")] = !0;
      };

      e.defineProperties(t[P("0x5")], {
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          },
          set: function set(e) {
            this[P("0x5ba")] = e;
          }
        },
        isInverse: {
          get: function get() {
            return this[P("0xb7c")];
          },
          set: function set(e) {
            this[P("0xb7c")] = e;
          }
        },
        redGamma: {
          get: function get() {
            return this[P("0xb7a")].x;
          },
          set: function set(t) {
            t = e[P("0x23")][P("0x77")](t, 0, 2), this[P("0xb7a")].x = t;
          }
        },
        greenGamma: {
          get: function get() {
            return this[P("0xb7a")].y;
          },
          set: function set(t) {
            t = e[P("0x23")][P("0x77")](t, 0, 2), this[P("0xb7a")].y = t;
          }
        },
        blueGamma: {
          get: function get() {
            return this._gamma.z;
          },
          set: function set(t) {
            t = e.Math[P("0x77")](t, 0, 2), this[P("0xb7a")].z = t;
          }
        },
        alphaGamma: {
          get: function get() {
            return this[P("0xb7a")].w;
          },
          set: function set(t) {
            t = e.Math[P("0x77")](t, 0, 1), this._gamma.w = t;
          }
        },
        speedScale: {
          get: function get() {
            return this._speedScale;
          },
          set: function set(e) {
            this._speedScale = e;
          }
        },
        url: {
          set: function set(t) {
            var i = e.defaultValue(t, P("0xb81"));
            this[P("0xb82")] = e[P("0x6ba")](i), this[P("0xb7e")] && (this[P("0xb7e")].destroy(), this[P("0xb7e")] = null);
          }
        }
      }), t[P("0x5")]._isTexturesReady = function () {
        return !!this[P("0xb7e")];
      }, t[P("0x5")][P("0xb83")] = function (t) {
        var i = this;
        i[P("0xb84")] = t, i._requestUrl || i[P("0xb7e")] || (i[P("0xb7f")] = !0, e[P("0x9ee")](e[P("0x6da")][P("0x6dc")]({
          url: this[P("0xb82")]
        }))[P("0x333")](function (t) {
          i[P("0xb7e")] = new e[P("0x6db")]({
            context: i._context,
            source: t,
            pixelFormat: e[P("0x785")][P("0xb85")],
            pixelDatatype: e[P("0x787")].UNSIGNED_BYTE
          });
        }).otherwise(function (e) {
          console[P("0x133")](P("0xb86"));
        }));
      }, t[P("0x5")][P("0xd2")] = function (e) {
        if (this[P("0x5ba")] && e[P("0xb87")][P("0x75d")]) {
          var t = e[P("0x5ca")],
              i = e[P("0x3cc")];
          this[P("0xb83")](i), this[P("0xb88")]() && (this._drawCommand || this[P("0xb89")](i), this[P("0x6ce")] && (this[P("0xb8a")](), t[P("0x17c")](this[P("0x6ce")])));
        }
      };
      var i = new e[P("0x1d")](),
          r = new e[P("0x1a")]();
      t[P("0x5")][P("0xb8a")] = function () {
        var t = this[P("0xb78")] * e[P("0x23")].TWO_PI;
        this[P("0xb7c")] && (t = -t);
        var n = e[P("0x1d")][P("0xcc")](e[P("0x11")][P("0xc3")], t, i),
            o = e[P("0x1a")][P("0xcd")](n, r);
        this[P("0xb7d")] = e.Matrix4[P("0x738")](o, void 0, this[P("0xb7d")]), this[P("0xb78")] += this._step * this._speedScale, 1 < this[P("0xb78")] && (this[P("0xb78")] = 0);
      }, t[P("0x5")][P("0xb89")] = function (e) {
        var t = this;
        setTimeout(function () {
          t[P("0xb8b")](e);
        }, 500);
      };
      var n = "var PI = Math.PI;\nvar TWO_PI = PI * 2.0;\n" + P("0xb8c") + P("0xb8d") + "   var params = e.data;\n" + P("0xb8e") + P("0xb8f") + "       postMessage({error:true});\n       return;\n" + P("0x614") + P("0xb90") + P("0xb91") + P("0xb92") + P("0x8cd") + P("0x614") + P("0xb93") + P("0xb94") + P("0xb92") + P("0x8cd") + P("0x614") + P("0xb95") + P("0xb96") + P("0xb97") + P("0xb98") + P("0xb99") + P("0xb9a") + "   var vFovRad = PI;\n" + P("0xb9b") + P("0xb9c") + "   var stepHRad = hFovRad / xCount;\n" + P("0xb9d") + P("0xb9e") + "       pointsArray[ptIndex ++] = 0.0;\n" + P("0xb9f") + P("0xba0") + P("0xba1") + P("0xba2") + P("0x614") + P("0xba3") + P("0xba4") + "   var tt = 0.0;\n" + P("0xba5") + P("0xba6") + "       for (var F = 0; F < xCount + 1; F++) {\n" + P("0xba7") + P("0xba8") + P("0xba9") + P("0xbaa") + P("0xbab") + P("0xbac") + P("0xbad") + P("0x71d") + "   }\n" + P("0xb9e") + P("0xb9f") + P("0xb9f") + P("0xbae") + P("0xba1") + P("0xbaf") + P("0x614") + P("0xbb0") + "   var faceIndexArray = new Uint16Array(faceIndexCount);\n" + P("0xbb1") + P("0xbb2") + "       faceIndexArray[faceIndex ++] = F;\n" + P("0xbb3") + P("0xbb4") + P("0x614") + P("0xbb5") + "       for (var F = 0; F < xCount; F ++){\n" + P("0xbb6") + P("0xbb7") + P("0xbb8") + P("0xbb6") + P("0xbb8") + P("0xbb9") + P("0x71d") + P("0x614") + P("0xbb2") + P("0xbba") + "       faceIndexArray[faceIndex ++] = F + xCount + 1 + (yCount - 2) * (xCount + 1);\n       faceIndexArray[faceIndex ++] = pointsCount - (xCount - F);\n" + P("0x614") + P("0xbbb") + "       pointsArray: pointsArray,\n       texcoordArray: texcoordArray,\n" + P("0xbbc") + "   }, [pointsArray.buffer, texcoordArray.buffer, faceIndexArray.buffer]);\n" + P("0xbbd") + P("0xbbe") + "   debugger;\n}";
      t.prototype[P("0xb8b")] = function (t) {
        var i = this;

        if (!i[P("0xb80")]) {
          i[P("0xb80")] = !0;
          var r = t,
              o = i[P("0x217")] + e[P("0x16")].WGS84[P("0xb55")].x + 15e4;
          i[P("0x63c")] = o;
          var a = new Blob([n], {
            type: P("0xbbf")
          }),
              s = new Worker(URL.createObjectURL(a));
          s[P("0xbc0")] = function (t) {
            var n = t.data.pointsArray,
                o = t.data.texcoordArray,
                a = t[P("0x440")][P("0xbc1")],
                x = e[P("0x5ea")][P("0x5ec")]({
              context: r,
              typedArray: a,
              usage: e[P("0x4d5")][P("0x4d6")],
              indexDatatype: e[P("0x742")].UNSIGNED_SHORT
            }),
                l = [],
                c = e[P("0x5ea")][P("0x5eb")]({
              context: r,
              typedArray: n,
              usage: e[P("0x4d5")][P("0x4d6")]
            });
            l[P("0x17c")]({
              index: 0,
              vertexBuffer: c,
              componentsPerAttribute: 3,
              componentDatatype: e[P("0x5e8")][P("0x5e9")],
              offsetInBytes: 0,
              strideInBytes: 12,
              normalize: !1
            });
            var u = e[P("0x5ea")][P("0x5eb")]({
              context: r,
              typedArray: o,
              usage: e.BufferUsage[P("0x4d6")]
            });
            l[P("0x17c")]({
              index: 1,
              vertexBuffer: u,
              componentsPerAttribute: 2,
              componentDatatype: e[P("0x5e8")][P("0x5e9")],
              offsetInBytes: 0,
              strideInBytes: 8,
              normalize: !1
            });
            var h = new e.VertexArray({
              context: r,
              attributes: l,
              indexBuffer: x
            }),
                f = new e[P("0x5d3")]({
              owner: i,
              primitiveType: e[P("0xbc2")][P("0xbc3")]
            });
            f[P("0x5cb")] = h;
            var d = {
              cull: {
                enabled: !1
              },
              depthMask: !1,
              depthTest: {
                enabled: !0
              },
              blending: {
                color: e[P("0x16a")][P("0x2cf")],
                enabled: !0,
                equationRgb: e.WebGLConstants[P("0xbc4")],
                equationAlpha: e[P("0x5d8")][P("0xbc4")],
                functionSourceRgb: e[P("0x5d8")][P("0xbc5")],
                functionDestinationRgb: e[P("0x5d8")].ZERO,
                functionSourceAlpha: e[P("0x5d8")].ZERO,
                functionDestinationAlpha: e.WebGLConstants[P("0xbc5")]
              }
            };
            f[P("0x5d5")] = e[P("0x5d6")][P("0x5d7")](d), f[P("0x5cc")] = i[P("0xbc6")](r), f[P("0x5de")] = {
              u_colorTexture_0: function u_colorTexture_0() {
                return i._colorTexture_0;
              },
              u_animationMatrix: function u_animationMatrix() {
                return i._animationMatrix;
              },
              u_gamma: function u_gamma() {
                return i._gamma;
              }
            }, f[P("0x5d4")] = e.Pass[P("0x73e")], f[P("0xbc7")] = !1, f[P("0x4bc")] = new e[P("0x5f1")](e[P("0x11")][P("0x6f")], i[P("0x63c")]), f[P("0xbc8")] = P("0xb76"), i[P("0x6ce")] = f, s.terminate();
          }, s.onerror = function (e) {}, s[P("0xa70")]({
            xCount: 36,
            yCount: 36,
            radius: o
          });
        }
      }, t.prototype[P("0xbc6")] = function (t) {
        var i,
            r,
            n = "";
        i = n, r = n = i += P("0xbc9"), n = r += P("0xbca");
        var o,
            a,
            s = "";
        return o = s, a = s = o += P("0xbcb"), s = a += P("0xbcc"), e[P("0x5dc")].replaceCache({
          context: t,
          shaderProgram: void 0,
          vertexShaderSource: n,
          fragmentShaderSource: s,
          attributeLocations: {
            a_position: 0,
            a_texcoord_0: 1
          }
        });
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x102")];

      function i(i) {
        i = t(i, t.EMPTY_OBJECT), this.viewer = i[P("0x13b")], this.scene = this.viewer[P("0x10f")], this.scene[P("0x24f")][P("0xd9")] = !1, this[P("0x17d")] = this[P("0x10f")][P("0x17d")], this[P("0xbcd")] = t(i[P("0xbcd")], new e.Color(1, 0, 0, 0.5)), this.bottomCylinderColor = t(i[P("0xbce")], new e[P("0x16a")](0, 1, 0, 0.5)), this[P("0xbcf")](), this[P("0x69")]();
      }

      function r(t, i, r, n) {
        return new e[P("0x179")]({
          geometry: new e[P("0xbd9")]({
            center: t,
            semiMajorAxis: i,
            semiMinorAxis: r,
            height: n,
            vertexFormat: e[P("0x1b0")][P("0xbda")]
          })
        });
      }

      function n(t, i, r, n, o, a, s, x, l, c) {
        return new e[P("0x179")]({
          geometry: new e.CylinderGeometry({
            length: t,
            topRadius: i,
            bottomRadius: r,
            vertexFormat: e[P("0x1b7")][P("0xbdb")]
          }),
          attributes: {
            color: new e[P("0x184")](n, o, a, s)
          },
          modelMatrix: e[P("0x1b")][P("0x597")](e[P("0x1f")][P("0xbf")](e[P("0x11")][P("0x1a1")](x, l, c)), new e[P("0x11")](0, 0, 0), new e[P("0x1b")]())
        });
      }

      function o(t, i) {
        return new e[P("0x226")]({
          allowPicking: !0,
          geometryInstances: t,
          vertexCacheOptimize: !0,
          appearance: i,
          interleave: !0,
          asynchronous: !1,
          cull: !1,
          releaseGeometryInstances: !0,
          show: !0
        });
      }

      e[P("0xf")](i[P("0x5")], {}), i[P("0x5")][P("0xbcf")] = function () {
        var t,
            i,
            a,
            s = r(e[P("0x11")][P("0xb8")], 1e-4, 1e-4, 1e-4),
            x = (t = e[P("0x373")], i = Number[P("0x374")](t), P("0xbdd") + (1.68 <= i ? P("0x376") : "") + P("0xbde"));
        this[P("0xbd0")] = (a = x, new e[P("0x1b0")]({
          translucent: !0,
          material: new e[P("0x212")]({
            fabric: {
              type: "Image",
              uniforms: {
                image: P("0xbdc")
              }
            }
          }),
          fragmentShaderSource: a
        }));
        var l = o(s, this[P("0xbd0")]);
        this[P("0x17d")][P("0x6d")](l), this[P("0xbd1")] = l;
        var c = o([n(1e-4, 1e-4, 0, 1, 0, 0, 0, 0, 0, 0), n(1e-4, 0, 1e-4, 1, 0, 0, 0, 0, 0, 0)], new e[P("0x16e")]());
        this.primitives.add(c), this.prestrainCylinderPrimitive = c;
      }, i[P("0x5")].active = function () {
        var t = null,
            i = this,
            a = new e[P("0x15f")](this[P("0x10f")][P("0x48")]);
        a[P("0x160")](function (a) {
          if (!i.viewer[P("0xbd2")]) {
            i.scene.screenSpaceCameraController.enableInputs = !1;
            var s;

            if (s = null == i[P("0x10f")][P("0xa4")](a[P("0x8c")]) ? i[P("0x10f")].globe.pick(i.viewer[P("0x7e")][P("0x86")](a.position), i[P("0x10f")]) : i[P("0x10f")][P("0x174")](a[P("0x8c")])) {
              var x = e[P("0x13")][P("0x175")](s),
                  l = e.Math.toDegrees(x[P("0x112")]),
                  c = e[P("0x23")][P("0x113")](x[P("0x114")]),
                  u = x[P("0x8b")] + 0.5,
                  h = e[P("0x11")][P("0x8e")](i[P("0x13b")][P("0x7e")][P("0x8c")], s) / 80,
                  f = i[P("0x13b")][P("0x194")][P("0x6d")]({
                id: P("0xbd3"),
                position: s,
                point: {
                  color: new e[P("0x16a")](1, 1, 1, 0)
                }
              });
              f.enableGeoLocateRatate = !0, i[P("0x13b")][P("0xbd2")] = f, i[P("0x10f")].screenSpaceCameraController[P("0xd9")] = !0;
              var d = o(r(s, h, h, u), i[P("0xbd0")]);
              i[P("0x17d")][P("0x6d")](d), i[P("0xbd4")] = d;
              var g = o([n(0.3 * h, 0.1 * h, 0, i[P("0xbcd")][P("0x66e")], i.topCylinderColor[P("0x66f")], i[P("0xbcd")].blue, i.topCylinderColor[P("0x671")], l, c, u + 0.2 * h), n(0.3 * h, 0, 0.1 * h, i[P("0xbce")][P("0x66e")], i[P("0xbce")][P("0x66f")], i.bottomCylinderColor[P("0x670")], i.bottomCylinderColor[P("0x671")], l, c, u - 0.2 * h)], new e[P("0x16e")]());
              i.primitives[P("0x6d")](g), i[P("0xbd5")] = g, i[P("0x10f")][P("0x24f")][P("0x36")] = e.CameraEventType[P("0xb6e")], t = setTimeout(function () {
                i[P("0x10f")][P("0x24f")].enableInputs = !0;
              }, 10), i[P("0x10f")][P("0xa3")].depthTestAgainstTerrain = !1;
            }
          }
        }, e[P("0x161")][P("0xbd6")]), a[P("0x160")](function (r) {
          i.viewer.trackedEntity[P("0xd9")] && (clearTimeout(t), i[P("0xbd1")] && i[P("0x17d")][P("0x17f")](i[P("0xbd1")]), i[P("0xbd7")] && i.primitives.remove(i[P("0xbd7")]), i[P("0xbd4")] && i[P("0x17d")].remove(i[P("0xbd4")]), i[P("0xbd5")] && i[P("0x17d")].remove(i[P("0xbd5")]), i[P("0x13b")][P("0x194")][P("0xbd8")]("pointEntity"), t = null, i.prestrainEllipsePrimitive = null, i[P("0xbd7")] = null, i[P("0xbd4")] = null, i.cylinderPrimitive = null, i.viewer[P("0xbd2")] = void 0, i.scene.screenSpaceCameraController[P("0xd9")] = !1, i[P("0x10f")][P("0x24f")][P("0x36")] = e[P("0xb5f")].LEFT_DRAG, i.scene[P("0x24f")].enableInputs = !0);
        }, e[P("0x161")].MIDDLE_UP);
      }, e[P("0xbdf")] = i;
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0xbe0")] = function (t, i) {
        if (i = w()(i) === P("0x2b6") || i, this[P("0xa8e")] = !1, t) {
          this.ready = !0, this[P("0x10f")] = t, this[P("0xbe1")] = i;
          var r = new e[P("0xbe2")](0, 0, 256, 256),
              n = new e[P("0x3cb")](t);
          n.frustum = new e[P("0xae2")]({
            width: 1,
            aspectRatio: 1,
            near: 0.01,
            far: 1e3
          }), this._pickOffscreenView = new e[P("0xbe3")](t, n, r), this[P("0xbe4")] = e.when[P("0x9ef")](), this[P("0xa90")] = this[P("0xbe4")][P("0xa90")];
        }
      };

      t[P("0x5")][P("0xbe5")] = function (e, t) {
        var i = this;
        if (!i[P("0xa8e")]) return null;
        var r = null;
        return i[P("0xb60")](e, t), i.promise.then(function (e) {
          r = i._pick(e);
        }), r;
      };

      var i = new e[P("0x5f1")]();

      function r(t) {
        var r,
            n,
            o,
            a = t.camera,
            s = t[P("0xbe9")];
        s[P("0x5ca")][P("0x0")] = 0, s.shadowMaps[P("0x0")] = 0, s[P("0xbea")] = t[P("0xbeb")], s[P("0xbec")] = t.skyBox && t[P("0x83d")][P("0xbed")], s[P("0xd3")] = t[P("0x6b9")], s[P("0xbee")] = t[P("0xbee")], s[P("0xbd")] = t.mapProjection, s.camera = a, s[P("0xbef")] = a[P("0xe8")][P("0xbf0")](a.positionWC, a[P("0xa6")], a.upWC), s.occluder = (n = (r = t)[P("0xa3")].ellipsoid, i[P("0x181")] = n[P("0xbe6")], e.Occluder.fromBoundingSphere(i, r.camera.positionWC)), s[P("0xf0")] = t[P("0xbf1")], s[P("0xbf2")] = t[P("0xbf3")], s[P("0xbf4")] = t[P("0xbf4")], s[P("0x77d")] = !1, s.sunColor = t[P("0xbf5")], t[P("0xbf6")] = e[P("0x16a")][P("0x6e")](t.invertClassificationColor, t._actualInvertClassificationColor), e.InvertClassification[P("0xbf7")](t[P("0xb84")]) || (t[P("0xbf6")].alpha = 1), s[P("0xbf8")] = t[P("0xbf6")], s.maximumScreenSpaceError = t[P("0xa3")][P("0xbf9")], (o = s[P("0xb87")])[P("0x75d")] = !1, o.pick = !1, o[P("0x456")] = !1, o[P("0xbe7")] = !1, o[P("0xbe8")] = !1, o[P("0xaa3")] = !1;
      }

      var n = new e[P("0xbfa")]();

      function o(t, i, r, n) {
        var o = i[P("0xbe9")];
        if (t instanceof e[P("0x790")]) t.execute(r, n);else {
          o[P("0x77d")] && e[P("0x14")](t.derivedCommands.logDepth) && (t = t[P("0xc0d")].logDepth[P("0x4d7")]);
          var a = o.passes;

          if (a[P("0xa4")] || a[P("0x456")]) {
            if (a[P("0xa4")] && !a[P("0x456")] && e.defined(t[P("0xc0d")][P("0xc0e")])) return void (t = t.derivedCommands.picking.pickCommand).execute(r, n);
            if (e[P("0x14")](t[P("0xc0d")][P("0x456")])) return void (t = t[P("0xc0d")].depth[P("0xc0f")])[P("0x797")](r, n);
          }

          t[P("0x797")](r, n);
        }
      }

      function a(t, i, r) {
        return t[P("0x4bc")].distanceSquaredTo(r) - i[P("0x4bc")].distanceSquaredTo(r) + e[P("0x23")][P("0xc10")];
      }

      function s(t, i, r, n) {
        var o = t[P("0x3cc")];
        e[P("0xc11")](n, a, t[P("0x7e")][P("0xa5")]);

        for (var s = n[P("0x0")], x = 0; x < s; ++x) {
          i(n[x], t, o, r);
        }
      }

      var x = new e[P("0xae2")]();
      var l = new e.Cartesian3(),
          c = new e.Cartesian3(),
          u = new e[P("0xbe2")](),
          h = new e[P("0x16a")](0, 0, 0, 0);
      t[P("0x5")]._update = function (t, i) {
        var a = this[P("0x10f")],
            f = a[P("0xb84")],
            d = f[P("0xc28")],
            g = a[P("0xbe9")],
            p = this[P("0xc29")],
            m = (a[P("0x794")] = p)[P("0x7e")],
            b = t[P("0x93")],
            v = e[P("0x11")][P("0x99")](b, i, l);
        e[P("0x11")][P("0x8d")](v, v), i = e[P("0x11")][P("0x6e")](i, c), m[P("0x8c")] = t[P("0x87")], m[P("0x93")] = b, m.up = i, m[P("0x9b")] = v;

        var C,
            y,
            _,
            A,
            I,
            w = e[P("0xbe2")].clone(p.viewport, u),
            G = p[P("0xc2a")][P("0xc2b")](w, p[P("0xc06")]);

        a._jobScheduler[P("0xc2c")](), r(a), g[P("0xbf4")] = !1, g[P("0xb87")][P("0xa4")] = !0, g.passes[P("0xbe8")] = !0, g.passes.async = !1, g[P("0xc2d")] = !0, d[P("0xd2")](g), function (e) {
          var t = e[P("0xbe9")],
              i = e[P("0xbfb")];
          i[P("0xbfc")] = void 0, i[P("0xbfd")] = void 0, i[P("0xbfe")] = void 0, i[P("0xbff")] = void 0, i[P("0xc00")] = void 0, i.clearGlobeDepth = !0, (i.useDepthPlane = !0) && e[P("0xc01")][P("0xd2")](t), i[P("0xc02")] = !1, i.useWebVR = !1;

          for (var r = t[P("0xbef")], o = n[P("0xc03")], a = 0; a < 5; ++a) {
            o[a] = r[P("0xc03")][a];
          }

          r = n;
        }(a), function (t, i, r) {
          var n,
              a,
              l = t[P("0x794")];
          t[P("0x6d9")][P("0x5ca")][P("0x0")] = 0, a = (n = t)[P("0xbe9")], n._groundPrimitives[P("0xd2")](a), n[P("0x306")][P("0xd2")](a), n[P("0x43")] && n._globe.render(a), l[P("0xc26")](t), e[P("0x14")](r) && function (t, i, r) {
            var n = t[P("0xb84")],
                o = t[P("0xbfb")],
                a = t[P("0x794")];
            o[P("0xc04")] = i[P("0x796")];
            var s = t._clearColorCommand;
            e[P("0x16a")][P("0x6e")](r, s[P("0x169")]), s[P("0x797")](n, i), o[P("0xc05")] = !0, a.globeDepth[P("0xd2")](n, i, a[P("0xc06")], t[P("0xc07")]), a[P("0xc08")].clear(n, i, r), o[P("0xc09")] = !1, o[P("0xc0a")] = !1, o.usePostProcessSelected = !1, i[P("0x796")] = a[P("0xc08")][P("0x796")], s[P("0x797")](n, i), o[P("0xc0b")] = !1;
          }(t, i, r), function (t, i) {
            var r = t[P("0x7e")],
                n = t.context,
                a = n.uniformState;
            a[P("0xc12")](r);
            var l = r[P("0xe8")][P("0x6e")](x);
            l[P("0xb3e")] = r[P("0xe8")][P("0xb3e")], l[P("0xc13")] = r[P("0xe8")].far, a[P("0xc14")](l), a.updatePass(e[P("0x5e4")][P("0xc15")]);

            for (var c, u, h, f, d = t[P("0xbfb")], g = t[P("0x794")], p = s, m = d[P("0xc16")], b = d.useDepthPlane, v = t[P("0xc17")], C = t._stencilClearCommand, y = t[P("0xc01")], _ = g[P("0xc18")], A = _.length, I = 0; I < A; ++I) {
              var w = A - I - 1,
                  G = _[w];
              l[P("0xb3e")] = 0 != w ? G[P("0xb3e")] * t[P("0xc19")] : G[P("0xb3e")], l[P("0xc13")] = G[P("0xc13")], a[P("0xc14")](l);
              var E = g[P("0xc08")];
              v[P("0x797")](n, i), n[P("0xc1a")] && C[P("0x797")](n, i), a[P("0xc1b")](e[P("0x5e4")].GLOBE);
              var S = G[P("0xc1c")][e[P("0x5e4")][P("0xc1d")]],
                  T = G[P("0xc1e")][e[P("0x5e4")][P("0xc1d")]];

              for (c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (e[P("0x14")](E) && d[P("0xc05")] && E[P("0xc1f")](n, i), a[P("0xc1b")](e[P("0x5e4")][P("0xc20")]), S = G[P("0xc1c")][e.Pass[P("0xc20")]], T = G.indices[e[P("0x5e4")][P("0xc20")]], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (a[P("0xc1b")](e.Pass[P("0xc21")]), S = G.commands[e[P("0x5e4")][P("0xc21")]], T = G[P("0xc1e")][e[P("0x5e4")][P("0xc21")]], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (m && v[P("0x797")](n, i), a.updatePass(e[P("0x5e4")][P("0xc22")]), S = G.commands[e[P("0x5e4")].CESIUM_3D_TILE], T = G[P("0xc1e")][e[P("0x5e4")][P("0xc22")]], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (a[P("0xc1b")](e[P("0x5e4")][P("0xc23")]), S = G[P("0xc1c")][e[P("0x5e4")][P("0xc23")]], T = G[P("0xc1e")][e[P("0x5e4")][P("0xc23")]], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (a[P("0xc1b")](e.Pass[P("0xc21")]), S = G[P("0xc1c")][e[P("0x5e4")][P("0xc21")]], T = G[P("0xc1e")][e[P("0x5e4")].CLASSIFICATION], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              for (0 < T && n[P("0xc1a")] && C[P("0x797")](n, i), m && b && y.execute(n, i), a.updatePass(e[P("0x5e4")][P("0x5e5")]), S = G[P("0xc1c")][e.Pass.OPAQUE], T = G[P("0xc1e")][e[P("0x5e4")].OPAQUE], c = 0; c < T; ++c) {
                o(S[c], t, n, i);
              }

              if (0 != w && (l[P("0xb3e")] = G[P("0xb3e")], a[P("0xc14")](l)), a[P("0xc1b")](e.Pass.TRANSLUCENT), (S = G[P("0xc1c")][e[P("0x5e4")].TRANSLUCENT]).length = G[P("0xc1e")][e.Pass[P("0x73e")]], p(t, o, i, S), n[P("0xc24")] && t[P("0xc25")] && d[P("0xc05")]) {
                var M = E[P("0x796")].depthStencilTexture,
                    N = (u = w, f = h = void 0, f = (h = t._view.pickDepths)[u], e[P("0x14")](f) || (f = new e.PickDepth(), h[u] = f), f);
                N[P("0xd2")](n, M), N.executeCopyDepth(n, i);
              }
            }
          }(t, i);
        }(a, G, h), y = G, _ = (C = a)[P("0xb84")], A = C[P("0xbfb")], I = C[P("0x794")], y[P("0x796")] = A[P("0xc04")], I[P("0xc08")][P("0xc27")](_, y);
        var E = p[P("0xc2a")][P("0xc2e")](w);
        g[P("0xc2d")] = !1, a[P("0x794")] = a[P("0xc2f")], f[P("0xc30")](), this.deferred.resolve({
          object: E,
          ray: t
        });
      }, t[P("0x5")][P("0xc31")] = function (t) {
        var i,
            r,
            n,
            o,
            a = t[P("0x7")],
            s = t[P("0xc32")],
            x = this[P("0xc29")],
            l = this[P("0x10f")],
            c = l[P("0xb84")];
        if (c[P("0xc24")]) for (var u = x[P("0xc18")].length, h = 0; h < u; ++h) {
          var f = (r = h, o = n = void 0, n = x.pickDepths, o = n[r], e[P("0x14")](o) || (o = new e[P("0xc0c")](), n[r] = o), o).getDepthEx(c, 0, 0, x[P("0xc06")][P("0x19a")], x[P("0xc06")][P("0x8b")], this[P("0xbe1")]);

          if (0 < f && f <= 1) {
            var d = x.frustumCommandsList[h],
                g = d[P("0xb3e")] * (0 !== h ? l[P("0xc19")] : 1),
                p = g + f * (d.far - g);
            i = e.Ray[P("0xe1")](s, p);
            break;
          }
        }
        return {
          object: a,
          position: i
        };
      };
      var f = new e[P("0x12")](),
          d = new e[P("0x12")](1, 1 / 255, 1 / 65025, 1 / 16581375);

      function g(t, i) {
        if (!e[P("0x14")](t[P("0xc3e")]) || !e[P("0x14")](t[P("0xc3e")][P("0xa5b")]) || !t[P("0xc3e")]._model[P("0xa8e")]) return !1;
        var r = t[P("0x4a4")];
        return i[P("0xc3f")](r, e[P("0xbfa")][P("0xc40")]) !== e[P("0xbfa")][P("0xc41")];
      }

      e[P("0xc0c")][P("0x5")][P("0xc33")] = function (t, i, r, n, o, a) {
        n = void 0 !== n ? n : 1, o = void 0 !== o ? o : 1, a = w()(a) === P("0x2b6") || a;
        var s = t[P("0xc34")]({
          x: i,
          y: r,
          width: n,
          height: o,
          framebuffer: this[P("0x784")]
        });
        if (!s) return 0;

        for (var x = [], l = 0; l < n; l++) {
          for (var c = 0; c < o; c++) {
            var u = 4 * c * n + l,
                h = e[P("0x12")][P("0xc35")](s, u, f);
            e.Cartesian4.divideByScalar(h, 255, h);
            var g = e[P("0x12")][P("0x92")](h, d);
            x[P("0x17c")](g);
          }
        }

        var p = Math.floor(0.5 * n) + Math.floor(0.5 * o) * n,
            m = x[p];
        if (0 < m && m <= 1) return m;
        if (a) return 0;
        var b = 0,
            v = 0;

        for (l = 0; l < n; l++) {
          for (c = 0; c < o; c++) {
            u = c * n + l, 0 < (m = x[p]) && m < 1 && (b += m, v++);
          }
        }

        return v < 1 ? 0 : b / v;
      }, e[P("0xc0c")][P("0x5")][P("0xc36")] = function (e, t, i, r, n) {
        return r = w()(r) !== P("0x2b6") ? r : 1, n = w()(n) !== P("0x2b6") ? n : 1, {
          arrayBufferView: e[P("0xc34")]({
            x: t,
            y: i,
            width: r,
            height: n,
            framebuffer: this[P("0x784")]
          }),
          width: r,
          height: n
        };
      }, e[P("0xc37")][P("0x5")][P("0xc36")] = function (e, t) {
        return e = w()(e) !== P("0x2b6") ? e : 1, t = w()(t) !== P("0x2b6") ? t : 1, {
          arrayBufferView: this[P("0xb84")][P("0xc34")]({
            x: 0,
            y: 0,
            width: e,
            height: t,
            framebuffer: this._fb
          }),
          width: e,
          height: t
        };
      }, t.pick = function (i, r, n, o) {
        if (o = w()(o) === P("0x2b6") || o, !i) return null;
        if (i._picker) i[P("0xc39")][P("0xbe1")] = o;else {
          var a = new t(i, o, P("0xc38"));
          i[P("0xc39")] = a, e[P("0xc3a")][P("0x5")][P("0xc3b")] = e[P("0xc3a")][P("0x5")][P("0xf4")], e.Scene[P("0x5")][P("0xf4")] = function () {
            this[P("0xc39")] && (this[P("0xc39")][P("0xf4")](), this[P("0xc39")] = null), this[P("0xc3b")]();
          }, e.Cesium3DTile[P("0x5")][P("0xc42")] = e.Cesium3DTile[P("0x5")][P("0xc43")], e.Cesium3DTile.prototype[P("0xc43")] = function (t, i) {
            var r = t[P("0xbef")],
                n = function (t, i) {
              if (i[P("0xd3")] !== e.SceneMode[P("0x90")] && !e.defined(t._boundingVolume2D)) {
                var r = t._boundingVolume[P("0x55b")],
                    n = e[P("0x5f1")][P("0xc4a")](r, i[P("0xbd")], p);

                t[P("0xc4b")] = new e.TileBoundingSphere(n.center, n[P("0x181")]);
              }

              return i[P("0xd3")] !== e[P("0x22")][P("0x90")] ? t._boundingVolume2D : t._boundingVolume;
            }(this, t),
                o = this._tileset,
                a = o[P("0x365")];

            if (e.defined(a) && a[P("0x364")]) {
              var s = a[P("0xc44")](n, o[P("0xc45")]);
              if (this[P("0xc46")] = s !== Intersect[P("0xc47")], s === Intersect[P("0xc48")]) return CullingVolume[P("0xc41")];
            }

            return t[P("0x7e")][P("0xc")]._hookUpdate && !0 === t[P("0xc2d")] ? function (t, i, r) {
              if (r === e[P("0xbfa")][P("0xc41")] || r === e.CullingVolume[P("0xc4c")]) return r;

              for (var n = e.CullingVolume.MASK_INSIDE, o = t[P("0xc03")], a = 0, s = o.length; a < s; ++a) {
                var x = a < 31 ? 1 << a : 0;

                if (!(a < 31 && 0 == (r & x))) {
                  var l = b(i[P("0x4cb")], e.Plane[P("0xb54")](o[a], m));
                  if (l === e[P("0xae1")][P("0xc48")]) return e[P("0xbfa")].MASK_OUTSIDE;
                  l === e[P("0xae1")][P("0xc4d")] && (n |= x);
                }
              }

              return n;
            }(r, n, i) : r[P("0xc3f")](n, i);
          };
        }
        return i._picker[P("0xbe5")](r, n);
      }, t[P("0x5")].destroy = function () {
        this[P("0x10f")] = null, this[P("0xc29")][P("0xf4")](), this[P("0xc29")] = null, e[P("0xc49")][P("0x5")]._visibility_Old && (e[P("0xc49")][P("0x5")][P("0xc43")] = e[P("0xc49")].prototype[P("0xc42")], delete e[P("0xc49")].__proto__[P("0xc42")]);
      }, e[P("0x2e1")][P("0x5")][P("0xc3c")] = e[P("0x2e1")][P("0x5")].update, e[P("0x2e1")][P("0x5")][P("0xd2")] = function (e) {
        !0 === e[P("0xb87")][P("0xa4")] && !0 === e.pickEx ? this[P("0xc3d")](e) : this[P("0xc3c")](e);
      }, e[P("0x2e1")][P("0x5")]._updatePicked = function (e) {
        var t,
            i,
            r = this[P("0xa57")],
            n = r[P("0x0")],
            o = e[P("0xbef")];

        for (t = 0; t < n; ++t) {
          (i = r[t]) && g(i, o) && i.update(this, e, e[P("0xb87")]);
        }
      };
      var p = new e[P("0x5f1")](),
          m = new e[P("0x1c")](new e[P("0x11")](), 0);

      function b(t, i) {
        var r = t[P("0x11a")],
            n = i.normal,
            o = t[P("0x4a5")],
            a = n.x,
            s = n.y,
            x = n.z,
            l = Math[P("0x78")](a * o[e.Matrix3[P("0xc4e")]] + s * o[e[P("0x1a")][P("0xc4f")]] + x * o[e[P("0x1a")][P("0xc50")]]) + Math[P("0x78")](a * o[e.Matrix3[P("0xc51")]] + s * o[e[P("0x1a")].COLUMN1ROW1] + x * o[e[P("0x1a")].COLUMN1ROW2]) + Math.abs(a * o[e[P("0x1a")][P("0xc52")]] + s * o[e[P("0x1a")].COLUMN2ROW1] + x * o[e.Matrix3[P("0xc53")]]),
            c = e.Cartesian3[P("0x92")](n, r) + i[P("0x8e")];
        return c <= -(l *= 2) ? e[P("0xae1")][P("0xc48")] : l <= c ? e.Intersect[P("0xc47")] : e[P("0xae1")].INTERSECTING;
      }
    }(window[P("0xfd")]), function (e) {
      function t(t, i, r, n) {
        var o = this;
        o[P("0x13c")] = r, o._source = t, o[P("0xc54")] = n, o[P("0xb84")] = i, o._canvas = null, o._texture = null, o[P("0xc55")] = null, o[P("0xc56")] = 0, o._height = 0, o[P("0xc57")] = !1, o[P("0xc58")] = null, o[P("0x9fc")] = new e[P("0x766")](), t && t instanceof HTMLVideoElement && t[P("0x130")](P("0xc5b"), function e() {
          o[P("0xc59")](Math[P("0x5f0")](0.1 * t[P("0xc5a")]), Math.round(0.1 * t.videoHeight)), t[P("0x548")](P("0xc5b"), e);
        }), r.clock[P("0x59d")].addEventListener(function () {
          o[P("0x8f9")]();
        });
      }

      function i(t, i) {
        this[P("0xc67")] = i, this[P("0x42")] = t, this._fs = null, this[P("0xc68")] = null, this[P("0x5ba")] = !1, this[P("0xc69")] = null, this[P("0xc6a")] = null, this._createEvent = new e[P("0x766")](), this[P("0xc6b")] = new e.Event(), this[P("0xc6c")] = new e[P("0x766")]();
      }

      function r() {
        this._minFovX = r[P("0xc9e")], this[P("0xc9f")] = r._MaxFovX, this[P("0xca0")] = r[P("0xca1")], this[P("0xca2")] = r[P("0xca3")], this[P("0xca4")] = r[P("0xca5")], this[P("0xca6")] = r[P("0xca7")], this[P("0xca8")] = r[P("0xca9")], this[P("0xcaa")] = r[P("0xcab")], this._minPitch = r[P("0xcac")], this[P("0xcad")] = r[P("0xcae")], this[P("0xcaf")] = r[P("0xcb0")], this._maxRoll = r[P("0xcb1")], this[P("0xcb2")] = r._MinSegmentCount, this[P("0xcb3")] = r[P("0xcb4")], this[P("0xcb5")] = !1, this[P("0xcb6")] = !0;
      }

      function n(t, i, r) {
        this._scene = t, this[P("0x6b6")] = i ? i[P("0x6e")]() : null, this._videoProjection = r, this[P("0xcc0")] = null, this._fovX = 120, this[P("0xcc1")] = 60, this[P("0xcc2")] = 20, this[P("0x541")] = 0, this._pitch = 0, this[P("0x538")] = 0, this[P("0x596")] = e[P("0x16a")][P("0x338")][P("0x6e")](), this[P("0x31a")] = 2, this[P("0xcc3")] = 0.8, this[P("0xcc4")] = null, this[P("0xcc5")] = null, this[P("0x4a4")] = null, this[P("0xcc6")] = null, this[P("0xcc7")] = 10, this[P("0x6ce")] = null, this[P("0xcc8")] = !0, this[P("0x224")] = e.createGuid(), this[P("0x9fc")] = new e[P("0x766")](), this[P("0x5ba")] = !1, this._visibly = !0;
      }

      t.prototype[P("0xc5c")] = function () {
        return this[P("0x8f4")];
      }, e.defineProperties(t.prototype, {
        ErrorEvent: {
          get: function get() {
            return this[P("0x9fc")];
          }
        }
      }), t.prototype[P("0xc59")] = function (e, t) {
        e && (this[P("0xc56")] = e), t && (this[P("0x217")] = t), this[P("0xc57")] = !0;
      }, t.prototype._render = function (e) {}, t.prototype[P("0xc5d")] = function () {
        this._sampler || (this[P("0xc58")] = new e.Sampler());
      }, t.prototype[P("0x8f9")] = function () {
        this[P("0xc54")] && this[P("0xc54")].fillVideo && (this[P("0xb84")] && this[P("0xc5e")] ? this[P("0xc5e")][P("0xaa6")] < 2 || (!this[P("0xc5e")].videoWidth || this._source.videoWidth < 10 ? this._texture && (this[P("0x8f4")].destroy(), this[P("0x8f4")] = null) : this._texture ? this._texture[P("0xc61")](this._source) : this._texture = new e[P("0x6db")]({
          context: this[P("0xb84")],
          source: this._source,
          pixelFormat: e[P("0x785")][P("0xb85")],
          pixelDatatype: e[P("0x787")][P("0xc60")]
        })) : this[P("0x9fc")][P("0x896")](P("0xc5f")));
      }, t[P("0x5")]._fetchVideo = function () {
        var t = e[P("0x9ee")][P("0x9ef")]();

        if (2 <= this[P("0xc5e")][P("0xaa6")]) {
          var i = this[P("0xc5e")].videoWidth,
              r = this[P("0xc5e")].videoHeight;
          this[P("0xc55")][P("0xc63")](this[P("0xc5e")], 0, 0, i, r, 0, 0, this[P("0xc56")], this[P("0x217")]), t[P("0x9f8")](this[P("0x318")]);
        } else t[P("0xa3d")](null);

        return t;
      }, t.prototype[P("0xb83")] = function (t) {
        this[P("0x8f4")] ? this[P("0x8f4")][P("0xc61")](t) : this[P("0x8f4")] = new e[P("0x6db")]({
          context: this[P("0xb84")],
          source: t,
          pixelFormat: e[P("0x785")].RGBA,
          pixelDatatype: e.PixelDatatype[P("0xc60")],
          sampler: this[P("0xc58")]
        });
      }, t[P("0x5")]._recreateParseCanvas = function () {
        this[P("0xc56")] < 1 || this[P("0x217")] < 1 || (this[P("0x318")] || (this[P("0x318")] = document.createElement(P("0x48"))), this[P("0x318")][P("0x19a")] = e[P("0x23")][P("0xc64")](this[P("0xc56")]), this[P("0x318")].height = e.Math[P("0xc64")](this[P("0x217")]), this[P("0xc55")] = this[P("0x318")][P("0x476")]("2d"));
      }, t[P("0x5")][P("0xc65")] = function () {
        var e = this[P("0xc5e")][P("0xc5a")],
            t = this[P("0xc5e")][P("0xc66")];
        return this[P("0xc55")][P("0xc63")](this[P("0xc5e")], 0, 0, e, t, 0, 0, this._width, this[P("0x217")]), this._canvas;
      }, t.prototype._createSource = function (e) {
        return {
          arrayBufferView: new Uint8Array(e),
          width: this._width,
          height: this[P("0x217")]
        };
      }, t.prototype[P("0xf4")] = function () {
        this[P("0xc5e")] = null, this._context2D = null, this[P("0xb84")] = null, this[P("0x318")] = null, this[P("0xc54")] = null, this[P("0xc58")] = null, this._errorEvent = new e[P("0x766")](), this[P("0x8f4")] && (this[P("0x8f4")].destroy(), this._texture = null);
      }, i[P("0x5")].destroy = function () {
        this._destroyPostStage(), this[P("0xc67")] = null, this[P("0x42")] = null, this[P("0xc6d")] = null, this[P("0xc6b")] = null, this[P("0xc6c")] = null, this[P("0xc6a")] = null;
      }, i[P("0xc6e")] = P("0xc6f") + P("0xc70") + "uniform sampler2D colorTexture;\nuniform sampler2D videoMapTexture;\n" + P("0xc71") + P("0x7a1") + P("0xc72") + P("0xc73") + P("0xc74") + P("0x7a4") + P("0x7a5") + P("0x7a6") + P("0xc75") + "    posInCamera = posInCamera / posInCamera.w;\n" + P("0xc76") + "}\n" + P("0x7a8") + "    float z_window = czm_unpackDepth(depth);\n" + P("0x7aa") + P("0x7ab") + P("0x7ac") + "    return (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n}\n" + P("0xc77") + "    float visibility = step(position.z, texture2D(shadowMap, position.xy).r);\n    return (visibility == 1.0);\n}\n" + P("0x708") + "{\n" + P("0x7b1") + P("0x7b2") + P("0x7b3") + P("0x7b4") + P("0x7b5") + P("0x7b7") + P("0x7b8") + P("0xc78") + "    vec4 videoPosition = videoMapMatrix * positionEC;\n    videoPosition /= videoPosition.w;\n" + P("0xc79") + "    {\n" + P("0x7b4") + P("0x7b5") + "    }\n" + P("0xc7a") + P("0xc7b") + P("0xc7c") + "        gl_FragColor = vec4(mix(color.rgb, videoColor.rgb, mixNum), 1.0);\n" + P("0xc7d") + P("0x7b4") + P("0x7b7") + "}", i[P("0xc7e")] = P("0xc6f") + P("0xc70") + P("0x7a0") + P("0xc7f") + P("0x7a1") + P("0xc72") + "uniform mat4 videoViewMatrix;\n" + P("0xc74") + P("0xc80") + P("0x7a4") + P("0x7a5") + P("0x7a6") + P("0xc75") + "    posInCamera = posInCamera / posInCamera.w;\n" + P("0xc76") + "}\n" + P("0x7a8") + P("0x7a9") + P("0x7aa") + P("0x7ab") + "    float f_range = czm_depthRange.far;\n    return (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n}\n" + P("0xc77") + P("0xc81") + P("0xc82") + "}\n" + P("0x708") + "{\n    vec4 color = texture2D(colorTexture, v_textureCoordinates);\n    vec4 currD = texture2D(depthTexture, v_textureCoordinates);\n" + P("0x7b3") + P("0x7b4") + P("0x7b5") + "    }\n" + P("0x7b8") + P("0xc78") + P("0xc83") + P("0xc84") + P("0xc79") + P("0x85f") + P("0x7b4") + P("0x7b5") + "    }\n" + P("0xc7a") + "    if(visibility){\n" + P("0xc85") + P("0xc86") + P("0xc7d") + P("0x7b4") + "    }\n}", i[P("0xc87")] = P("0xc6f") + P("0xc70") + "uniform sampler2D colorTexture;\n" + P("0xc7f") + P("0xc71") + P("0x7a1") + "uniform mat4 videoMapMatrix;\n" + P("0xc73") + P("0xc74") + P("0xc80") + "varying vec2 v_textureCoordinates;\n" + P("0x7a5") + P("0x7a6") + P("0xc75") + P("0x7a7") + P("0xc76") + "}\n" + P("0x7a8") + P("0x7a9") + P("0x7aa") + P("0x7ab") + P("0x7ac") + P("0x7ad") + "}\n" + P("0xc77") + P("0xc81") + P("0xc82") + "}\n" + P("0x708") + "{\n    vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" + P("0x7b2") + P("0x7b3") + P("0x7b4") + P("0x7b5") + P("0x7b7") + P("0x7b8") + P("0xc78") + P("0xc83") + P("0xc84") + P("0xc79") + "    {\n        gl_FragColor = color;\n        return;\n" + P("0x7b7") + P("0xc7a") + P("0xc7b") + P("0xc88") + "        vec4 positionWC = viewScene * positionEC;\n        positionWC /= positionWC.w;\n        depth = length(videoMapPosition - positionWC.xyz);\n        if(depth - videoDistance > -0.5){\n" + P("0xc89") + P("0xc8a") + P("0x7bf") + P("0xc7c") + P("0xc86") + P("0xc7d") + P("0x7b4") + "    }\n}", i[P("0xc8b")] = "uniform float mixNum;\n" + P("0xc70") + P("0x7a0") + P("0xc7f") + P("0x7a1") + P("0xc72") + P("0xc73") + P("0xc74") + P("0xc80") + "varying vec2 v_textureCoordinates;\n" + P("0x7a5") + P("0x7a6") + P("0xc75") + P("0x7a7") + P("0xc76") + "}\n" + P("0x7a8") + P("0x7a9") + P("0x7aa") + "    float n_range = czm_depthRange.near;\n" + P("0x7ac") + "    return (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n}\n" + P("0xc77") + P("0xc81") + "    return (visibility == 1.0);\n}\nvoid main()\n{\n" + P("0x7b1") + P("0x7b2") + P("0x7b3") + "        gl_FragColor = color;\n" + P("0x7b5") + P("0x7b7") + P("0x7b8") + P("0xc78") + P("0xc83") + P("0xc84") + P("0xc79") + "    {\n" + P("0x7b4") + P("0x7b5") + P("0x7b7") + P("0xc7a") + P("0xc7b") + P("0xc88") + P("0xc8c") + "        positionWC /= positionWC.w;\n" + P("0xc8d") + "        if(depth - videoDistance > -0.5){\n" + P("0xc89") + P("0xc8a") + P("0x7bf") + P("0xc85") + "        gl_FragColor = vec4(mix(color.rgb, videoColor.rgb, mixNum), 1.0);\n" + P("0xc7d") + P("0x7b4") + "    }\n}", e[P("0xf")](i[P("0x5")], {
        CreationEvent: {
          get: function get() {
            return this[P("0xc6d")];
          }
        },
        AddToSceneEvent: {
          get: function get() {
            return this[P("0xc6b")];
          }
        },
        RemoveFromSceneEvent: {
          get: function get() {
            return this[P("0xc6c")];
          }
        }
      }), i.prototype[P("0xc8e")] = function () {
        var e = this[P("0xc67")];

        if (e) {
          if (this[P("0xc6a")] = e[P("0xc8f")](), this._videoTexture) e.fillVideo || (this[P("0xc6a")] = null);else if (e[P("0xc90")]) return void this._removeFromScene();
          this[P("0xc91")](), this[P("0xc92")](), this._addToScene();
        }
      }, i[P("0x5")][P("0xc93")] = function () {
        this[P("0xc68")] = null, this._removeFromScene();
      }, i[P("0x5")][P("0xc94")] = function () {
        this._postStage && (this[P("0x42")][P("0x77c")][P("0xd1")](this[P("0xc69")]) || (this._scene.postProcessStages[P("0x6d")](this[P("0xc69")]), this[P("0xc6b")][P("0x896")](this)));
      }, i.prototype[P("0xc95")] = function () {
        this._postStage && this._scene[P("0x77c")][P("0xd1")](this._postStage) && (this[P("0x42")][P("0x77c")][P("0x17f")](this._postStage), this[P("0xc69")] = null, this[P("0xc6c")][P("0x896")](this));
      }, i[P("0x5")][P("0xc91")] = function () {
        if (!this._uniforms) {
          var e = this,
              t = e[P("0xc67")];
          e._videoTexture ? this[P("0xc68")] = {
            mixNum: function mixNum() {
              return t[P("0xc96")];
            },
            videoMapTexture: function videoMapTexture() {
              return t[P("0xc97")]();
            },
            videoTexture: function videoTexture() {
              return e[P("0xc6a")];
            },
            videoMapMatrix: function videoMapMatrix() {
              return t[P("0xc98")]();
            },
            videoViewMatrix: function videoViewMatrix() {
              return t[P("0xc99")]();
            },
            videoDistance: function videoDistance() {
              return t.fovDistance;
            },
            videoMapPosition: function videoMapPosition() {
              return t[P("0x8c")];
            },
            u_videoColor: function u_videoColor() {
              return t[P("0xc9a")];
            }
          } : this[P("0xc68")] = {
            mixNum: function mixNum() {
              return t.mixFactor;
            },
            videoMapTexture: function videoMapTexture() {
              return t[P("0xc97")]();
            },
            videoMapMatrix: function videoMapMatrix() {
              return t[P("0xc98")]();
            },
            videoViewMatrix: function videoViewMatrix() {
              return t[P("0xc99")]();
            },
            videoDistance: function videoDistance() {
              return t[P("0xc9b")];
            },
            videoMapPosition: function videoMapPosition() {
              return t[P("0x8c")];
            },
            u_videoColor: function u_videoColor() {
              return t[P("0xc9a")];
            }
          };
        }
      }, i[P("0x5")][P("0xc9c")] = function () {
        var e = this[P("0xc69")];
        e && (e.enabled = this[P("0xc67")][P("0x5ba")]);
      }, i[P("0x5")][P("0xc92")] = function () {
        if (!this[P("0xc69")]) {
          var t;
          t = 1 == this[P("0xc67")][P("0xc9d")] ? this[P("0xc6a")] ? i._FS_Cone : i[P("0xc7e")] : this[P("0xc6a")] ? i[P("0xc87")] : i[P("0xc8b")], this._postStage = new e[P("0x7c5")]({
            fragmentShader: t,
            enabled: !1,
            uniforms: this[P("0xc68")]
          }), this[P("0xc6d")][P("0x896")](this);
        }
      }, i[P("0x5")]._destroyPostStage = function () {
        this._postStage && this[P("0xc95")](), this[P("0xc68")] = null;
      }, e[P("0xf")](r[P("0x5")], {
        minFovX: {
          get: function get() {
            return this[P("0xcb7")];
          },
          set: function set(e) {
            this[P("0xcb7")] = e;
          }
        },
        maxFovX: {
          get: function get() {
            return this[P("0xc9f")];
          },
          set: function set(e) {
            this[P("0xc9f")] = e;
          }
        },
        minFovY: {
          get: function get() {
            return this[P("0xca0")];
          },
          set: function set(e) {
            this[P("0xca0")] = e;
          }
        },
        maxFovY: {
          get: function get() {
            return this[P("0xca2")];
          },
          set: function set(e) {
            this[P("0xca2")] = e;
          }
        },
        minFovDistance: {
          get: function get() {
            return this[P("0xca4")];
          },
          set: function set(e) {
            this[P("0xca4")] = e;
          }
        },
        maxFovDistance: {
          get: function get() {
            return this[P("0xca6")];
          },
          set: function set(e) {
            this[P("0xca6")] = e;
          }
        },
        minHeading: {
          get: function get() {
            return this[P("0xca8")];
          },
          set: function set(e) {
            this[P("0xca8")] = e;
          }
        },
        maxHeading: {
          get: function get() {
            return this[P("0xcaa")];
          },
          set: function set(e) {
            this._maxHeading = e;
          }
        },
        minPitch: {
          get: function get() {
            return this[P("0xcb8")];
          },
          set: function set(e) {
            this[P("0xcb8")] = e;
          }
        },
        maxPitch: {
          get: function get() {
            return this._maxPitch;
          },
          set: function set(e) {
            this._maxPitch = e;
          }
        },
        minRoll: {
          get: function get() {
            return this[P("0xcaf")];
          },
          set: function set(e) {
            this._minRoll = e;
          }
        },
        maxRoll: {
          get: function get() {
            return this[P("0xcb9")];
          },
          set: function set(e) {
            this._maxRoll = e;
          }
        },
        minSegmentCount: {
          get: function get() {
            return this[P("0xcb2")];
          },
          set: function set(e) {
            this[P("0xcb2")] = e;
          }
        },
        maxSegmentCount: {
          get: function get() {
            return this[P("0xcb3")];
          },
          set: function set(e) {
            this[P("0xcb3")] = e;
          }
        },
        isInvSphere: {
          get: function get() {
            return this._isInvSphere;
          },
          set: function set(e) {
            this._isInvSphere = e;
          }
        },
        isSphereType: {
          get: function get() {
            return this._isSphereType;
          },
          set: function set(e) {
            this[P("0xcb6")] = e;
          }
        }
      }), r[P("0xcba")] = 5, r[P("0xcb4")] = 10, r[P("0xc9e")] = 1, r._MaxFovX = 160, r[P("0xca1")] = 1, r._MaxFovY = 90, r[P("0xca5")] = 1, r._MaxFovDistance = 500, r[P("0xca9")] = -180, r[P("0xcab")] = 180, r[P("0xcb0")] = -90, r[P("0xcb1")] = 90, r[P("0xcac")] = -90, r[P("0xcae")] = 90, r[P("0x5")][P("0xcbb")] = function (e) {
        return e ? e < this._minSegmentCount ? this[P("0xcb2")] : e > this[P("0xcb3")] ? this[P("0xcb3")] : e : this._minSegmentCount;
      }, r[P("0x5")].clampFovX = function (e) {
        return e ? e < this[P("0xcb7")] ? this._minFovX : e > this._maxFovX ? this._maxFovX : e : this[P("0xc9f")];
      }, r[P("0x5")][P("0xcbc")] = function (e) {
        return e ? e < this[P("0xca0")] ? this[P("0xca0")] : e > this._maxFovY ? this[P("0xca2")] : e : this._maxFovY;
      }, r[P("0x5")][P("0xcbd")] = function (e) {
        return e ? e < this[P("0xca4")] ? this[P("0xca4")] : e > this._maxFovDistance ? this[P("0xca6")] : e : this[P("0xca4")];
      }, r.prototype[P("0xcbe")] = function (e) {
        return e ? e < this[P("0xca8")] ? this[P("0xca8")] : e > this._maxHeading ? this[P("0xcaa")] : e : 0;
      }, r.prototype[P("0xcbf")] = function (e) {
        return e ? e < this._minPitch ? this[P("0xcb8")] : e > this._maxPitch ? this[P("0xcad")] : e : 0;
      }, r[P("0x5")].clampRoll = function (e) {
        return e ? e < this[P("0xcaf")] ? this[P("0xcaf")] : e > this[P("0xcb9")] ? this[P("0xcb9")] : e : 0;
      }, n[P("0x5")][P("0xf4")] = function () {
        this[P("0x42")] = null, this[P("0xc67")] = null, this[P("0x224")] = null, this[P("0x9fc")] = null, this._boundingVolume = null, this[P("0xcc0")] = null, this[P("0xcc6")] = null, this[P("0x5ba")] = !1, this[P("0xcc9")] = !1, this[P("0x6ce")] && (this[P("0x6ce")][P("0xcca")] && (this[P("0x6ce")][P("0xcca")][P("0xf4")](), this[P("0x6ce")][P("0xcca")] = null), this._drawCommand[P("0x4d8")] && (this._drawCommand._vertexArray[P("0xf4")](), this[P("0x6ce")][P("0x4d8")] = null), this[P("0x6ce")] = null);
      }, e.defineProperties(n[P("0x5")], {
        id: {
          get: function get() {
            return this._id;
          },
          set: function set(e) {
            this._id = e;
          }
        },
        actived: {
          get: function get() {
            return this[P("0x5ba")];
          },
          set: function set(e) {
            this[P("0x5ba")] = e;
          }
        },
        visibly: {
          get: function get() {
            return this._visibly;
          },
          set: function set(e) {
            this[P("0xcc9")] = e;
          }
        },
        DeveloperErrorEvent: {
          get: function get() {
            return this[P("0x9fc")];
          }
        },
        minFovX: {
          get: function get() {
            return this._videoProjection.config[P("0xccb")];
          }
        },
        maxFovX: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xccd")];
          }
        },
        minFovY: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")].minFovY;
          }
        },
        maxFovY: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcce")];
          }
        },
        minFovDistance: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xccf")];
          }
        },
        maxFovDistance: {
          get: function get() {
            return this._videoProjection.config.maxFovDistance;
          }
        },
        minHeading: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd0")];
          }
        },
        maxHeading: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd1")];
          }
        },
        minPitch: {
          get: function get() {
            return this[P("0xc67")].config[P("0xcd2")];
          }
        },
        maxPitch: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd3")];
          }
        },
        minRoll: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd4")];
          }
        },
        maxRoll: {
          get: function get() {
            return this._videoProjection.config[P("0xcd5")];
          }
        },
        minSegmentCount: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd6")];
          }
        },
        maxSegmentCount: {
          get: function get() {
            return this._videoProjection.config[P("0xcd7")];
          }
        },
        isSphereType: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd8")];
          }
        },
        isInvSphere: {
          get: function get() {
            return this[P("0xc67")][P("0xccc")][P("0xcd9")];
          }
        },
        position: {
          get: function get() {
            return this[P("0x6b6")];
          }
        },
        fovX: {
          get: function get() {
            return this._fovX;
          },
          set: function set(e) {
            e < this[P("0xccb")] || e > this[P("0xccd")] ? this[P("0x9fc")][P("0x896")](P("0xcda")) : this._fovX !== e && (this._fovX = e, this[P("0xcc8")] = !0);
          }
        },
        fovY: {
          get: function get() {
            return this[P("0xcc1")];
          },
          set: function set(e) {
            e < this[P("0xcdb")] || e > this[P("0xcce")] ? this[P("0x9fc")].raiseEvent(P("0xcdc")) : this._fovY !== e && (this[P("0xcc1")] = e, this._isNeedRecreate = !0);
          }
        },
        fovDistance: {
          get: function get() {
            return this[P("0xcc2")];
          },
          set: function set(e) {
            e < this[P("0xccf")] || e > this[P("0xcdd")] ? this[P("0x9fc")][P("0x896")](P("0xcde")) : this[P("0xcc2")] !== e && (this[P("0xcc2")] = e, this[P("0xcc8")] = !0);
          }
        },
        heading: {
          get: function get() {
            return this[P("0x541")];
          },
          set: function set(e) {
            e < this.minHeading || e > this[P("0xcd1")] ? this[P("0x9fc")][P("0x896")](P("0xcdf")) : this[P("0x541")] !== e && (this._heading = e, this[P("0xcc8")] = !0);
          }
        },
        roll: {
          get: function get() {
            return this[P("0x538")];
          },
          set: function set(e) {
            e < this[P("0xcd4")] || e > this[P("0xcd5")] ? this._errorEvent[P("0x896")](P("0xce0")) : this._roll !== e && (this[P("0x538")] = e, this._isNeedRecreate = !0);
          }
        },
        pitch: {
          get: function get() {
            return this._pitch;
          },
          set: function set(e) {
            e < this[P("0xcd2")] || e > this.maxPitch ? this[P("0x9fc")][P("0x896")]("pitch!") : this._pitch !== e && (this[P("0x537")] = e, this[P("0xcc8")] = !0);
          }
        },
        color: {
          get: function get() {
            return this[P("0x596")];
          },
          set: function set(e) {
            this[P("0x596")] = e[P("0x6e")]();
          }
        },
        lineWidth: {
          get: function get() {
            return this[P("0x31a")];
          },
          set: function set(e) {
            e < 1 ? this._errorEvent.raiseEvent("lineWidth!") : this[P("0x31a")] = e;
          }
        },
        mixFactor: {
          get: function get() {
            return this[P("0xcc3")];
          },
          set: function set(e) {
            e < 0 || 1 < e ? this[P("0x9fc")][P("0x896")](P("0xce1")) : this[P("0xcc3")] = e;
          }
        },
        drawCommand: {
          get: function get() {
            return this[P("0x6ce")];
          }
        }
      }), n[P("0x5")][P("0xce2")] = function (e, t) {
        this._actived && this._visibly && (t && this[P("0xc67")] === t ? (t[P("0xce4")] && (this[P("0xcc0")] = t[P("0xce4")]()), this[P("0xd2")](e), this[P("0xcc0")] = null) : this[P("0x9fc")][P("0x896")](P("0xce3")));
      }, n.prototype[P("0xd2")] = function (e) {
        this[P("0x6ce")] ? e ? e[P("0x5ca")][P("0x17c")](this._drawCommand) : this[P("0x9fc")].raiseEvent(P("0xce5")) : this[P("0x9fc")][P("0x896")]("update!");
      }, n.prototype[P("0xce6")] = function (e) {
        e && (this._position = e[P("0x6e")](), this._isNeedRecreate = !0, this[P("0xce7")]());
      }, n[P("0x5")][P("0xce8")] = function (e) {
        e && (this[P("0xce9")] = e, this._tryCreate());
      }, n.prototype[P("0xcea")] = function (e) {
        e && (this.fovY = e, this[P("0xce7")]());
      }, n[P("0x5")]._updateFovDistance = function (e) {
        e && (this[P("0xc9b")] = e, this._tryCreate());
      }, n[P("0x5")]._updateHeading = function (e) {
        e && (this[P("0x7f")] = e, this._tryCreate());
      }, n[P("0x5")][P("0xceb")] = function (e) {
        e && (this[P("0x80")] = e, this[P("0xce7")]());
      }, n[P("0x5")][P("0xcec")] = function (e) {
        e && (this[P("0x81")] = e, this[P("0xce7")]());
      }, n.prototype[P("0xced")] = function (e, t, i, r, n, o) {
        e && (this[P("0xce9")] = e), t && (this[P("0xcee")] = t), i && (this.fovDistance = i), r && (this.heading = r), n && (this[P("0x80")] = n), o && (this[P("0x81")] = o), this[P("0xce7")]();
      }, n[P("0x5")][P("0xc91")] = function () {
        var e = this;
        return {
          uDiffuseColor: function uDiffuseColor() {
            return e[P("0x169")];
          }
        };
      }, n[P("0x5")]._computeTransform = function () {
        if (!this[P("0x8c")]) return this[P("0x9fc")][P("0x896")]("_computeTransform!"), null;
        var t = null;
        (t = this[P("0xcc0")] ? e[P("0x3cb")].clone(this._videoProjectionCamera, null) : e[P("0x3cb")].clone(this[P("0x42")][P("0x7e")], null))[P("0xe8")].aspectRatio = this[P("0xce9")] / this[P("0xcee")], t[P("0xe8")].fov = this[P("0xce9")] * e[P("0x23")][P("0xa2c")], t[P("0xe8")][P("0xb3e")] = 0.1, t[P("0xe8")][P("0xc13")] = this.fovDistance, t.setView({
          destination: this[P("0x8c")],
          orientation: {
            heading: this[P("0x7f")] * e.Math[P("0xa2c")],
            pitch: this.pitch * e[P("0x23")][P("0xa2c")],
            roll: this.roll * e[P("0x23")].RADIANS_PER_DEGREE
          }
        });
        var i = new e[P("0x1b")]();
        return i[0] = t[P("0x9b")].x, i[1] = t[P("0x9b")].y, i[2] = t[P("0x9b")].z, i[3] = 0, i[4] = t.direction.x, i[5] = t[P("0x93")].y, i[6] = t[P("0x93")].z, i[7] = 0, i[8] = t.up.x, i[9] = t.up.y, i[10] = t.up.z, i[11] = 0, i[12] = t[P("0x8c")].x, i[13] = t[P("0x8c")].y, i[14] = t[P("0x8c")].z, i[15] = 1, i;
      }, n[P("0x5")][P("0xcef")] = function () {
        if (!this[P("0x8c")]) return this[P("0x9fc")][P("0x896")](P("0xcf0")), null;
        var t = null;
        return (t = this[P("0xcc0")] ? e[P("0x3cb")].clone(this[P("0xcc0")], null) : e[P("0x3cb")][P("0x6e")](this[P("0x42")][P("0x7e")], null))[P("0xe8")][P("0xaef")] = this[P("0xce9")] / this[P("0xcee")], t[P("0xe8")].fov = this[P("0xce9")] * e.Math[P("0xa2c")], t.frustum[P("0xb3e")] = 1, t[P("0xe8")].far = this[P("0xc9b")], t[P("0x9c")]({
          destination: this.position,
          orientation: {
            heading: this.heading * e.Math[P("0xa2c")],
            pitch: this[P("0x80")] * e[P("0x23")][P("0xa2c")],
            roll: this[P("0x81")] * e[P("0x23")].RADIANS_PER_DEGREE
          }
        }), t.inverseViewMatrix[P("0x6e")]();
      }, n.prototype[P("0xcf1")] = function () {
        return "attribute vec4 aPosition;\n" + P("0xcf2") + P("0xcf3") + P("0xcf4") + P("0xcf5") + P("0xcf6") + P("0xcf7") + "{\n" + P("0xcf8") + "    clipPos.z = min(clipPos.z, clipPos.w);\n" + P("0xcf9") + "}\n" + P("0x708") + "{\n" + P("0xcfa") + P("0xcfb") + "    clip_vertex = czm_modelView * vec4(aPosition.xyz, 1.0);\n" + P("0xcfc") + P("0xcfd") + "}";
      }, n[P("0x5")]._createFS = function () {
        return P("0xcfe") + P("0xcff") + "varying vec4 vColor;\nvarying float fWindowZ;\n" + P("0xcf6") + "vec4 LIGHT_COLOR = vec4(0.8, 0.8, 0.8, 1.0);\nvoid main()\n{\n" + P("0xd00") + P("0xd01") + P("0xd02") + "    vec4 eyePosition = czm_modelView * vec4(normal_vertex.xyz, 1.0);\n" + P("0xd03") + "    float nDotL = max(dot(lightDirection, normal), 0.0);\n" + P("0xd04") + P("0xd05") + P("0xd06") + "}";
      }, n[P("0x5")][P("0xd07")] = function () {
        var t = this._scene[P("0x3cc")];

        if (!t) return this[P("0x9fc")][P("0x896")]("_createVA!"), null;
        var i = this[P("0xcc2")],
            r = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")][P("0x5e9")], 15),
            n = 3,
            o = this[P("0xd08")] * e[P("0x23")].RADIANS_PER_DEGREE,
            a = this[P("0xcc1")] * e[P("0x23")][P("0xa2c")];
        if (Math[P("0x2ae")](Math[P("0x9a")](0.5 * o), 2) < 0.001) return null;
        var s = i / Math[P("0x9a")](0.5 * o),
            x = i * Math[P("0x992")](0.5 * a);
        i = Math[P("0xca")](s * s + x * x);

        for (var l = e[P("0x23")].PI_OVER_TWO + 0.5 * o, c = 0.5 * a, u = 0, h = 0, f = o / 1, d = a / 1, g = 0; g < 2; g++) {
          u = l - g * f;

          for (var p = 0; p < 2; p++) {
            h = c - p * d, r[n++] = i * Math[P("0x9a")](h) * Math[P("0x9a")](u), r[n++] = i * Math[P("0x9a")](h) * Math.sin(u), r[n++] = i * Math.sin(h);
          }
        }

        var m = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")].UNSIGNED_SHORT, 16),
            b = 0;

        for (m[b++] = 0, m[b++] = 1, m[b++] = 0, m[b++] = 2, m[b++] = 0, m[b++] = 3, m[b++] = 0, m[b++] = 4, g = 0; g < 2; g++) {
          for (p = 0; p < 1; p++) {
            m[b++] = 1 + p + 2 * g, m[b++] = 1 + (p + 1) + 2 * g;
          }
        }

        for (g = 0; g < 2; g++) {
          for (p = 0; p < 1; p++) {
            m[b++] = 1 + 2 * p + g, m[b++] = 1 + 2 * (p + 1) + g;
          }
        }

        var v = e[P("0x5ea")][P("0x5eb")]({
          context: t,
          typedArray: r,
          usage: e[P("0x4d5")].STATIC_DRAW
        }),
            C = e[P("0x5ea")][P("0x5ec")]({
          context: t,
          typedArray: m,
          usage: e.BufferUsage[P("0x4d6")],
          indexDatatype: e[P("0x742")][P("0x5ed")]
        }),
            y = [];
        return y[P("0x17c")]({
          index: 0,
          vertexBuffer: v,
          componentsPerAttribute: 3,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 12,
          normalize: !1
        }), this[P("0xd09")](r), new e[P("0x5ee")]({
          context: t,
          attributes: y,
          indexBuffer: C
        });
      }, n.prototype[P("0xd0a")] = function () {
        var t = this[P("0x42")][P("0x3cc")];
        if (!t) return this._errorEvent.raiseEvent(P("0xd0b")), null;
        var i = Math[P("0xee")](this[P("0xcc7")], this[P("0xcd6")]);
        i = Math.min(i, this.maxSegmentCount);

        for (var r = this[P("0xcc2")], n = (i + 1) * (i + 1) + 1, o = e[P("0x5e8")].createTypedArray(e.ComponentDatatype.FLOAT, 3 * n), a = 3, s = this[P("0xd08")] * e.Math[P("0xa2c")], x = this[P("0xcc1")] * e[P("0x23")].RADIANS_PER_DEGREE, l = e.Math[P("0x5b")] + 0.5 * s, c = 0.5 * x, u = 0, h = 0, f = s / i, d = x / i, g = 0; g < i + 1; g++) {
          u = l - g * f;

          for (var p = 0; p < i + 1; p++) {
            h = c - p * d, o[a++] = r * Math[P("0x9a")](h) * Math[P("0x9a")](u), o[a++] = r * Math[P("0x9a")](h) * Math[P("0x98")](u), o[a++] = r * Math[P("0x98")](h);
          }
        }

        var m = 4 * (2 + (i + 1) * i),
            b = e[P("0x5e8")].createTypedArray(e[P("0x5e8")].UNSIGNED_SHORT, m),
            v = 0;

        for (b[v++] = 0, b[v++] = 1, b[v++] = 0, b[v++] = i + 1, b[v++] = 0, b[v++] = i * (i + 1) + 1, b[v++] = 0, b[v++] = (i + 1) * (i + 1), g = 0; g < i + 1; g++) {
          for (p = 0; p < i; p++) {
            b[v++] = 1 + p + (i + 1) * g, b[v++] = 1 + (p + 1) + (i + 1) * g;
          }
        }

        for (g = 0; g < i + 1; g++) {
          for (p = 0; p < i; p++) {
            b[v++] = 1 + (i + 1) * p + g, b[v++] = 1 + (i + 1) * (p + 1) + g;
          }
        }

        var C = e[P("0x5ea")][P("0x5eb")]({
          context: t,
          typedArray: o,
          usage: e.BufferUsage[P("0x4d6")]
        }),
            y = e.Buffer.createIndexBuffer({
          context: t,
          typedArray: b,
          usage: e[P("0x4d5")].STATIC_DRAW,
          indexDatatype: e[P("0x742")][P("0x5ed")]
        }),
            _ = [];
        return _.push({
          index: 0,
          vertexBuffer: C,
          componentsPerAttribute: 3,
          componentDatatype: e[P("0x5e8")][P("0x5e9")],
          offsetInBytes: 0,
          strideInBytes: 12,
          normalize: !1
        }), this[P("0xd09")](o), new e[P("0x5ee")]({
          context: t,
          attributes: _,
          indexBuffer: y
        });
      }, n[P("0x5")][P("0xd0c")] = function () {
        var t = this[P("0x42")][P("0x3cc")];
        if (!t) return this._errorEvent.raiseEvent(P("0xd0b")), null;
        var i = Math.max(this[P("0xcc7")], this[P("0xcd6")]);
        i = Math[P("0x7d")](i, this[P("0xcd7")]);

        for (var r = this[P("0xcc2")], n = (i + 1) * (i + 1) + 1, o = e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")].FLOAT, 3 * n), a = 3, s = this[P("0xd08")] * e[P("0x23")][P("0xa2c")], x = this[P("0xcc1")] * e[P("0x23")][P("0xa2c")], l = r * Math[P("0x992")](0.5 * x), c = Math.PI - 0.5 * s, u = 0, h = 0, f = s / i, d = 0; d < i + 1; d++) {
          u = c + d * f;

          for (var g = l / (r / Math.cos(u)), p = Math[P("0x321")](g), m = -p, b = 2 * p / i, v = 0; v < i + 1; v++) {
            h = m + v * b, o[a++] = r * Math.cos(h) * Math[P("0x98")](u), o[a++] = r * Math.sin(h), o[a++] = r * Math[P("0x9a")](h) * Math[P("0x9a")](u);
          }
        }

        var C = 4 * (2 + (i + 1) * i),
            y = e[P("0x5e8")].createTypedArray(e[P("0x5e8")].UNSIGNED_SHORT, C),
            _ = 0;

        for (y[_++] = 0, y[_++] = 1, y[_++] = 0, y[_++] = i + 1, y[_++] = 0, y[_++] = i * (i + 1) + 1, y[_++] = 0, y[_++] = (i + 1) * (i + 1), d = 0; d < i + 1; d++) {
          for (v = 0; v < i; v++) {
            y[_++] = 1 + v + (i + 1) * d, y[_++] = 1 + (v + 1) + (i + 1) * d;
          }
        }

        for (d = 0; d < i + 1; d++) {
          for (v = 0; v < i; v++) {
            y[_++] = 1 + (i + 1) * v + d, y[_++] = 1 + (i + 1) * (v + 1) + d;
          }
        }

        var A = e.Buffer[P("0x5eb")]({
          context: t,
          typedArray: o,
          usage: e[P("0x4d5")][P("0x4d6")]
        }),
            I = e.Buffer[P("0x5ec")]({
          context: t,
          typedArray: y,
          usage: e.BufferUsage[P("0x4d6")],
          indexDatatype: e[P("0x742")][P("0x5ed")]
        }),
            w = [];
        return w[P("0x17c")]({
          index: 0,
          vertexBuffer: A,
          componentsPerAttribute: 3,
          componentDatatype: e[P("0x5e8")].FLOAT,
          offsetInBytes: 0,
          strideInBytes: 12,
          normalize: !1
        }), this[P("0xd09")](o), new e[P("0x5ee")]({
          context: t,
          attributes: w,
          indexBuffer: I
        });
      }, n[P("0x5")][P("0xd0d")] = function () {
        return e[P("0x5d6")].fromCache({
          cull: {
            enabled: !1
          },
          depthTest: {
            enabled: !0
          }
        });
      }, n[P("0x5")][P("0xd0e")] = function () {
        var e = {};
        return e[P("0x6ee")] = 0, e;
      }, n[P("0x5")][P("0xd0f")] = function () {
        var t = this[P("0x42")][P("0x3cc")];
        if (!t) return this[P("0x9fc")][P("0x896")](P("0xd10")), null;
        var i = this[P("0xcf1")](),
            r = this[P("0xd11")](),
            n = this[P("0xd0e")]();
        return n ? e.ShaderProgram.fromCache({
          context: t,
          vertexShaderSource: i,
          fragmentShaderSource: r,
          attributeLocations: n
        }) : (this._errorEvent[P("0x896")](P("0xd10")), null);
      };
      var o = new e[P("0x11")](),
          a = new e[P("0x11")]();

      n[P("0x5")][P("0xd09")] = function (t) {
        if (t && t[P("0x0")] && 6 <= t[P("0x0")]) {
          for (var i = 3, r = t[0], n = t[1], s = t[2], x = t[0], l = t[1], c = t[2], u = 0; i < t[P("0x0")]; i += 3) {
            u = t[i], r = Math.min(u, r), x = Math[P("0xee")](u, x), u = t[i + 1], n = Math[P("0x7d")](u, n), l = Math[P("0xee")](u, l), u = t[i + 2], s = Math[P("0x7d")](u, s), c = Math[P("0xee")](u, c);
          }

          o.x = r, o.y = n, o.z = s, a.x = x, a.y = l, a.z = c, this[P("0x4a4")] = e[P("0x5f1")][P("0xd12")](o, a);
        } else this[P("0x4a4")] = new e[P("0x5f1")](e.Cartesian3[P("0x6f")], this[P("0xc9b")]);
      };

      var s = new e[P("0x5f1")](e[P("0x11")][P("0x6f")], 1);

      function x(t, i) {
        this[P("0xd17")] = null, this[P("0x42")] = t, this[P("0x6d6")] = i, this[P("0x5ba")] = !1, this[P("0xd18")] = new e[P("0x766")](), this[P("0xd19")] = new e[P("0x766")]();
      }

      function l() {
        this[P("0xb78")] = 0;
      }

      n[P("0x5")][P("0x5ef")] = function (t) {
        var i = this[P("0x4a4")];
        return i ? (e[P("0x5f1")][P("0xaf")](i, t, s), s) : (this._errorEvent[P("0x896")](P("0xd13")), null);
      }, n[P("0x5")][P("0xce7")] = function () {
        try {
          this._recreate();
        } catch (e) {
          this._drawCommand = null;
        }
      }, n[P("0x5")]._recreate = function () {
        if (this[P("0xcc8")]) {
          this[P("0xcc8")] = !1, this._drawCommand && (this._drawCommand[P("0xcca")] && (this[P("0x6ce")][P("0xcca")][P("0xf4")](), this._drawCommand[P("0xcca")] = null), this[P("0x6ce")]._vertexArray && (this._drawCommand[P("0x4d8")].destroy(), this[P("0x6ce")][P("0x4d8")] = null), this[P("0x6ce")] = null);
          var t;

          if (t = this[P("0xcd9")] && this[P("0xcd8")] ? this[P("0xcef")]() : this[P("0xd14")]()) {
            var i;

            if (i = this.isSphereType ? this[P("0xcd9")] ? this[P("0xd0c")]() : this[P("0xd0a")]() : this[P("0xd07")]()) {
              var r = this[P("0xd0d")]();

              if (r) {
                var n = this[P("0xd0f")]();

                if (n) {
                  var o = this[P("0xc91")](),
                      a = this[P("0x5ef")](t);
                  a ? this._drawCommand = new e.DrawCommand({
                    vertexArray: i,
                    primitiveType: e.PrimitiveType[P("0xd16")],
                    renderState: r,
                    shaderProgram: n,
                    modelMatrix: t,
                    boundingVolume: a,
                    uniformMap: o,
                    owner: this[P("0xc67")],
                    pass: e.Pass.OPAQUE
                  }) : this[P("0x9fc")][P("0x896")](P("0xd15"));
                } else this[P("0x9fc")].raiseEvent(P("0xd15"));
              } else this._errorEvent[P("0x896")](P("0xd15"));
            } else this._errorEvent[P("0x896")](P("0xd15"));
          } else this._errorEvent[P("0x896")](P("0xd15"));
        }
      }, e[P("0xf")](x[P("0x5")], {
        UpdateMatrixEvent: {
          get: function get() {
            return this._updateMatrixEvent;
          }
        },
        UpdateEvent: {
          get: function get() {
            return this._updateEvent;
          }
        }
      }), x[P("0x5")][P("0xc5d")] = function () {
        return new e[P("0x789")]({
          wrapS: e.TextureWrap.CLAMP_TO_EDGE,
          wrapT: e[P("0x78b")][P("0x78a")],
          minificationFilter: e[P("0x78c")].NEAREST,
          magnificationFilter: e[P("0x78e")][P("0x78d")]
        });
      }, x.prototype[P("0xd1a")] = function (t, i) {
        for (var r = new e.Texture({
          context: i,
          width: t._textureSize.x,
          height: t[P("0xd1b")].y,
          pixelFormat: e[P("0x785")].DEPTH_STENCIL,
          pixelDatatype: e[P("0x787")].UNSIGNED_INT_24_8,
          sampler: this[P("0xc5d")]()
        }), n = new e[P("0x78f")]({
          context: i,
          depthStencilTexture: r,
          destroyAttachments: !1
        }), o = t[P("0xd1c")][P("0x0")], a = 0; a < o; ++a) {
          var s = t[P("0xd1c")][a];
          s[P("0x796")] = n, s.passState[P("0x796")] = n;
        }

        t[P("0xd1d")] = r, t[P("0x770")] = r;
      }, x[P("0x5")][P("0xd1e")] = function (e, t) {
        e[P("0x771")][P("0x796")] = e[P("0xd1c")][0][P("0x796")], e[P("0x771")].execute(t, e[P("0xd1f")]);
      }, x[P("0x5")][P("0xd20")] = function () {
        var t = this[P("0xd17")];

        if (t) {
          for (var i = t._passes[P("0x0")], r = 0; r < i; ++r) {
            var n = t[P("0xd1c")][r],
                o = n[P("0x796")];
            e[P("0x14")](o) && !o[P("0xf3")]() && o[P("0xf4")](), n[P("0x796")] = void 0;
          }

          t._depthAttachment = t[P("0x770")] && t[P("0x770")].destroy(), t[P("0xd21")] = t._colorAttachment && t[P("0xd21")][P("0xf4")]();

          var a = this._scene[P("0x6d9")][P("0x3cc")];

          this[P("0xd1a")](t, a), this[P("0xd1e")](t, a);
        }
      }, x[P("0x5")][P("0xd22")] = function (t, i, r, n, o, a, s) {
        if (!this._shadowMap) {
          var x = this._scene;

          if (x) {
            var l = this,
                c = new e[P("0x3cb")](x);
            c[P("0xe8")] = new e[P("0xae3")](), c[P("0xe8")].aspectRatio = i / r, c[P("0xe8")].fov = i * e[P("0x23")][P("0xa2c")], c.frustum[P("0xb3e")] = 1, c[P("0xe8")][P("0xc13")] = n, c[P("0x9c")]({
              destination: t,
              orientation: {
                heading: o * e.Math[P("0xa2c")],
                pitch: a * e[P("0x23")].RADIANS_PER_DEGREE,
                roll: s * e[P("0x23")].RADIANS_PER_DEGREE
              }
            });
            var u = this[P("0xd17")] = new e[P("0x4f1")]({
              lightCamera: c,
              enable: !1,
              isPointLight: !1,
              isSpotLight: !0,
              cascadesEnabled: !1,
              context: x[P("0x3cc")],
              pointLightRadius: n
            });
            u[P("0xd23")] = u[P("0xd2")], u.update = function (e) {
              u._updateOri(e);

              var t = u[P("0xd24")]._invViewMatrix;

              l[P("0xd18")][P("0x896")](t), l[P("0xd19")][P("0x896")]();
            };
          }
        }
      }, x[P("0x5")][P("0xd2")] = function (t, i, r, n, o, a) {
        if (this[P("0xd17")]) {
          var s = this[P("0xd17")][P("0xd25")];
          s[P("0xe8")][P("0xaef")] = t / i, s.frustum.fov = t * e.Math[P("0xa2c")], s[P("0xe8")].near = 1, s[P("0xe8")][P("0xc13")] = r, s[P("0x9c")]({
            destination: s[P("0x8c")],
            orientation: {
              heading: n * e[P("0x23")].RADIANS_PER_DEGREE,
              pitch: o * e[P("0x23")][P("0xa2c")],
              roll: a * e[P("0x23")][P("0xa2c")]
            }
          });
        }
      }, x[P("0x5")][P("0xf4")] = function () {
        this.deactive(), this[P("0xd17")] && (this[P("0xd17")][P("0xf4")](), this[P("0xd17")] = null), this[P("0x42")] = null, this[P("0x6d6")] = null, this[P("0xd18")] = null, this[P("0xd19")] = null;
      }, x[P("0x5")].active = function () {
        if (this[P("0xd17")]) {
          var e = this[P("0x42")][P("0x17d")];
          this._actived = !0;
          var t = this[P("0xd17")],
              i = t[P("0xa94")];
          i || (i = {
            update: function update(e) {
              e[P("0xd26")] || (e[P("0xd26")] = []), t[P("0xd2")](e), e[P("0xd26")][P("0x2d3")](t) < 0 && e[P("0xd26")][P("0x17c")](t);
            },
            owner: t,
            destroy: function destroy() {
              this.owner && (this[P("0x5cd")]._proxy = null, this[P("0x5cd")] = null);
            }
          }, t[P("0xa94")] = i), e.contains(i) || e[P("0x6d")](i);
        }
      }, x[P("0x5")][P("0xd27")] = function () {
        if (this[P("0x5ba")] && this[P("0xd17")]) {
          var e = this[P("0x42")] && this._scene.primitives;

          this._actived = !1;
          var t = this[P("0xd17")],
              i = t[P("0xa94")];
          i && (e.contains(i) && e.remove(i), t[P("0xa94")] = null);
          var r = this[P("0x42")];

          if (r) {
            var n = r[P("0x6d9")][P("0xd26")];

            if (n) {
              var o = n[P("0x2d3")](this._shadowMap);
              0 <= o && n.splice(o, 1);
            }
          }
        }
      }, x.prototype.updatePosition = function (t, i, r, n) {
        if (t) {
          var o = this[P("0xd17")];

          if (o) {
            i || 0 === i || (i = a[P("0x7f")]), r || 0 === r || (r = a[P("0x80")]), n || 0 === n || (n = a[P("0x81")]);
            var a = o[P("0xd25")];
            a[P("0x9c")]({
              destination: t,
              orientation: {
                heading: i * e.Math[P("0xa2c")],
                pitch: r * e[P("0x23")][P("0xa2c")],
                roll: n * e[P("0x23")][P("0xa2c")]
              }
            });
          }
        }
      }, x.prototype[P("0xd28")] = function (t) {
        if (t) {
          var i = this[P("0xd17")];

          if (i) {
            var r = i[P("0xd25")],
                n = r[P("0xe8")][P("0xaf0")] / r[P("0xe8")][P("0xaef")];
            r.frustum[P("0xaf0")] = t * e[P("0x23")][P("0xa2c")], r.frustum.aspectRatio = r[P("0xe8")][P("0xaf0")] / n;
          }
        }
      }, x[P("0x5")][P("0xd29")] = function (t) {
        if (t) {
          var i = this[P("0xd17")];

          if (i) {
            var r = i[P("0xd25")];
            r[P("0xe8")].aspectRatio = r[P("0xe8")].fov / (t * e[P("0x23")][P("0xa2c")]);
          }
        }
      }, x[P("0x5")][P("0xd2a")] = function (e) {
        if (e) {
          var t = this._shadowMap;
          t && (t[P("0xd25")][P("0xe8")][P("0xc13")] = e);
        }
      }, x[P("0x5")].updateHeadingPitchRoll = function (t, i, r) {
        var n = this._shadowMap;

        if (n) {
          t || 0 === t || (t = o[P("0x7f")]), i || 0 === i || (i = o[P("0x80")]), r || 0 === r || (r = o.roll);
          var o = n._lightCamera;
          o[P("0x9c")]({
            destination: o[P("0x8c")],
            orientation: {
              heading: t * e[P("0x23")][P("0xa2c")],
              pitch: i * e[P("0x23")][P("0xa2c")],
              roll: r * e[P("0x23")].RADIANS_PER_DEGREE
            }
          });
        }
      }, x[P("0x5")]._getShadowMapTexture = function () {
        return this[P("0xd17")] ? this[P("0xd17")]._shadowMapTexture : null;
      }, x.prototype._getShadowMapMatrix = function () {
        return this._shadowMap ? this._shadowMap[P("0xd2b")] : null;
      }, x[P("0x5")]._getProjectionCamera = function () {
        return this[P("0xd17")] ? this[P("0xd17")][P("0xd25")] : null;
      }, l.prototype[P("0xd2c")] = function (e) {
        return e ? e = P("0xd2d") + e : (e = P("0xd2d") + this[P("0xb78")][P("0x531")](), this[P("0xb78")] += 1), e;
      }, l[P("0xd2e")] = new l(), l[P("0xd2f")] = function () {
        return l._instance[P("0xd2c")]();
      };

      var c = e[P("0xd30")] = function (t, i, n, o, a) {
        if (!t || !t.scene) throw e[P("0x15")]("viewer or viewer.scene is invalid!");
        var s = t.scene;
        this._viewer = t, this._scene = s, this[P("0xd31")] = new r(), this[P("0xd32")] = null, this[P("0xd33")] = null, this[P("0xd34")] = null, this[P("0xd35")] = null, this._invViewMatrix = null, this[P("0xd36")] = !0, this._name = l[P("0xd2f")](), this._actived = !1, this[P("0x6d6")] = null, this[P("0x82d")](i, n, o, a);
      };

      function u() {
        this[P("0x431")] = [], this[P("0xc6b")] = new e[P("0x766")](), this._removeEvent = new e[P("0x766")](), this[P("0xd50")] = new e[P("0x766")](), this[P("0xd51")] = !1;
      }

      c[P("0x5")][P("0x82d")] = function (r, o, a, s) {
        var l = this,
            c = l._scene;

        if (r && !(!r instanceof HTMLVideoElement)) {
          s && (s[P("0xccb")] && (this._videoProjectionConfig[P("0xccb")] = s[P("0xccb")]), s[P("0xccd")] && (this._videoProjectionConfig.maxFovX = s.maxFovX), s.minFovY && (this._videoProjectionConfig.minFovY = s[P("0xcdb")]), s[P("0xcce")] && (this._videoProjectionConfig[P("0xcce")] = s.maxFovY), s[P("0xccf")] && (this[P("0xd31")][P("0xccf")] = s[P("0xccf")]), s[P("0xcdd")] && (this._videoProjectionConfig.maxFovDistance = s[P("0xcdd")]), s[P("0xcd0")] && (this[P("0xd31")][P("0xcd0")] = s[P("0xcd0")]), s[P("0xcd1")] && (this._videoProjectionConfig[P("0xcd1")] = s[P("0xcd1")]), s[P("0xcd2")] && (this[P("0xd31")][P("0xcd2")] = s[P("0xcd2")]), s[P("0xcd3")] && (this[P("0xd31")].maxPitch = s[P("0xcd3")]), s[P("0xcd4")] && (this._videoProjectionConfig[P("0xcd4")] = s[P("0xcd4")]), s[P("0xcd5")] && (this[P("0xd31")][P("0xcd5")] = s.maxRoll), s[P("0xcd8")] && (this[P("0xd31")].isSphereType = s[P("0xcd8")]), s[P("0xcd9")] && (this[P("0xd31")][P("0xcd9")] = s[P("0xcd9")])), (l[P("0xd33")] = new t(r, c.context, this[P("0x13c")], this)).ErrorEvent[P("0x130")](function (e) {});
          var u = l[P("0xd32")] = new n(c, o, this);
          a && a instanceof e[P("0x16a")] && (u[P("0x169")] = a), u[P("0xd37")][P("0x130")](function (e) {});
          var h = l[P("0xd34")] = new i(c, this);
          h.CreationEvent[P("0x130")](function (e) {}), h[P("0xd38")][P("0x130")](function (e) {}), h[P("0xd39")][P("0x130")](function (e) {});
          var f = this[P("0xd35")] = new x(c, this);
          f[P("0xd3a")][P("0x130")](function (e) {
            l[P("0x77b")] = e;
          }), f[P("0xd3b")][P("0x130")](function (e) {
            l[P("0xd34")] && l[P("0xd34")][P("0xc8e")]();
          });
        }
      }, c[P("0x5")][P("0xd3c")] = function () {
        if (this._videoProjectionPostRender) {
          this._videoProjectionPostRender[P("0xf4")]();

          var e = this[P("0xd34")] = new i(this._scene, this);
          e[P("0xd3d")][P("0x130")](function (e) {}), e[P("0xd38")][P("0x130")](function (e) {}), e[P("0xd39")][P("0x130")](function (e) {});
        }
      }, c[P("0x5")][P("0xce2")] = function (e) {
        var t = this[P("0xd33")];
        t && t[P("0xce2")](e);
        var i = this[P("0xd32")];
        i && i[P("0xce2")](e, this);
        var r = this[P("0xd34")];
        r && r[P("0xc9c")](e);
      }, c[P("0x5")][P("0xd20")] = function () {
        this[P("0xd35")] && this[P("0xd35")][P("0xd20")]();
      }, c[P("0x5")][P("0xc97")] = function () {
        return this._videoShadowMap ? this[P("0xd35")][P("0xc97")]() : null;
      }, c[P("0x5")][P("0xc98")] = function () {
        return this[P("0xd35")] ? this[P("0xd35")]._getShadowMapMatrix() : null;
      }, c.prototype[P("0xce4")] = function () {
        return this[P("0xd35")] ? this[P("0xd35")][P("0xce4")]() : null;
      }, c[P("0x5")][P("0xd2")] = function (e, t, i, r, n, o) {
        var a = this._videoProjectionConfig;
        e = a[P("0xd3e")](e), t = a[P("0xcbc")](t), i = a[P("0xcbd")](i), r = a[P("0xcbe")](r), n = a[P("0xcbf")](n), o = a.clampRoll(o);
        var s = this[P("0xd32")];
        s && s[P("0xced")](e, t, i, r, n, o);
        var x = this[P("0xd35")];
        x && x[P("0xd2")](e, t, i, r, n, o);
      }, c[P("0x5")][P("0x69")] = function () {
        this[P("0x5ba")] = !0;
        var e = this[P("0xd32")];
        e && (e[P("0x5bb")] = !0);
        var t = this[P("0xd3f")]();
        t && t.active();
      }, c[P("0x5")].deactive = function () {
        var e = this._videoProjectionFrustumPrimitive;
        e && (e.actived = !1);
        var t = this[P("0xd34")];
        t && t[P("0xd40")]();
        var i = this[P("0xd35")];
        i && i.deactive(), this[P("0x5ba")] = !1;
      }, c.prototype[P("0xd41")] = function (e) {
        if (e) {
          var t = this._videoProjectionFrustumPrimitive;
          t && t[P("0xce6")](e);
          var i = this[P("0xd35")];
          i && i[P("0xd41")](e, t.heading, t[P("0x80")], t[P("0x81")]);
        }
      }, c[P("0x5")][P("0xd28")] = function (e) {
        e = this[P("0xd31")][P("0xd3e")](e);
        var t = this[P("0xd32")];
        t && t[P("0xce8")](e);
        var i = this[P("0xd35")];
        i && i.update(t[P("0xce9")], t.fovY, t[P("0xc9b")], t[P("0x7f")], t[P("0x80")], t[P("0x81")]);
      }, c[P("0x5")][P("0xd29")] = function (e) {
        e = this[P("0xd31")][P("0xcbc")](e);
        var t = this[P("0xd32")];
        t && t[P("0xcea")](e);
        var i = this[P("0xd35")];
        i && i[P("0xd2")](t[P("0xce9")], t[P("0xcee")], t[P("0xc9b")], t[P("0x7f")], t.pitch, t.roll);
      }, c[P("0x5")][P("0xd2a")] = function (e) {
        e = this._videoProjectionConfig[P("0xcbd")](e);
        var t = this[P("0xd32")];
        t && t[P("0xd42")](e);
        var i = this[P("0xd35")];
        i && i[P("0xd2a")](e);
      }, c[P("0x5")].updateHeading = function (e) {
        e = this[P("0xd31")][P("0xcbe")](e);
        var t = this._videoProjectionFrustumPrimitive;
        t && t[P("0xd43")](e);
        var i = this[P("0xd35")];
        i && i[P("0xd44")](t[P("0x7f")], t[P("0x80")], t[P("0x81")]);
      }, c[P("0x5")][P("0xd45")] = function (e) {
        e = this._videoProjectionConfig[P("0xcbf")](e);
        var t = this[P("0xd32")];
        t && t[P("0xceb")](e);
        var i = this[P("0xd35")];
        i && i[P("0xd44")](t.heading, t[P("0x80")], t.roll);
      }, c.prototype[P("0xd46")] = function (e) {
        e = this._videoProjectionConfig[P("0xd47")](e);
        var t = this._videoProjectionFrustumPrimitive;
        t && t[P("0xcec")](e);
        var i = this[P("0xd35")];
        i && i[P("0xd44")](t[P("0x7f")], t[P("0x80")], t[P("0x81")]);
      }, c[P("0x5")][P("0xd48")] = function (e) {
        if (e) {
          var t = this[P("0xd32")];
          t && (t.color = e);
        }
      }, c[P("0x5")][P("0xd49")] = function (e) {
        if (e) {
          var t = this._videoProjectionFrustumPrimitive;
          t && (t[P("0xc96")] = e);
        }
      }, c.prototype[P("0xd4a")] = function (e) {
        if (e) {
          var t = this[P("0xd32")];
          t && (t[P("0x197")] = e);
        }
      }, c[P("0x5")][P("0xd4b")] = function (e) {
        if (e) return this[P("0x75b")] == e[P("0x75b")];
      }, c[P("0x5")][P("0xd4c")] = function (e) {
        return this[P("0x75b")] == e;
      }, c.prototype._createShadowMap = function () {
        if (!this[P("0xd35")]) return null;
        var e = this[P("0xd32")];
        if (!e) return null;
        var t = e[P("0x8c")],
            i = e.fovX,
            r = e.fovY,
            n = e[P("0xc9b")],
            o = e[P("0x7f")],
            a = e[P("0x80")],
            s = e[P("0x81")];
        return this[P("0xd35")][P("0xd22")](t, i, r, n, o, a, s), this[P("0xd35")];
      }, c[P("0x5")]._getCurrentVideoTexture = function () {
        return this[P("0xd33")] ? this._videoTextureSource[P("0xc5c")]() : null;
      }, c.prototype._getViewMatrix = function () {
        return this[P("0xd35")] ? this[P("0x77b")] : e[P("0x1b")][P("0xae")];
      }, c[P("0x5")][P("0xf4")] = function () {
        this[P("0xd27")](), this._videoProjectionFrustumPrimitive && (this[P("0xd32")][P("0xf4")](), this[P("0xd32")] = null), this._videoShadowMap && (this[P("0xd35")].destroy(), this[P("0xd35")] = null), this[P("0xd34")] && (this[P("0xd34")][P("0xf4")](), this[P("0xd34")] = null), this._videoTextureSource && (this[P("0xd33")][P("0xf4")](), this[P("0xd33")] = null), this[P("0x77b")] = null, this[P("0x13c")] = null, this[P("0x42")] = null, this._owner = null;
      }, e[P("0xf")](c[P("0x5")], {
        name: {
          get: function get() {
            return this[P("0x75b")];
          }
        },
        fillVideo: {
          get: function get() {
            return this[P("0xd36")];
          },
          set: function set(e) {
            this[P("0xd36")] != e && (this[P("0xd36")] = e, this._rebuildPostRender());
          }
        },
        position: {
          get: function get() {
            return this[P("0xd32")][P("0x8c")];
          }
        },
        fovX: {
          get: function get() {
            return this[P("0xd32")].fovX;
          },
          set: function set(e) {
            this[P("0xd28")](e);
          }
        },
        fovY: {
          get: function get() {
            return this[P("0xd32")][P("0xcee")];
          },
          set: function set(e) {
            this[P("0xd29")](e);
          }
        },
        fovDistance: {
          get: function get() {
            return this[P("0xd32")][P("0xc9b")];
          },
          set: function set(e) {
            this[P("0xd2a")](e);
          }
        },
        heading: {
          get: function get() {
            return this[P("0xd32")].heading;
          },
          set: function set(e) {
            this[P("0xd4d")](e);
          }
        },
        pitch: {
          get: function get() {
            return this[P("0xd32")][P("0x80")];
          },
          set: function set(e) {
            this[P("0xd45")](e);
          }
        },
        roll: {
          get: function get() {
            return this[P("0xd32")][P("0x81")];
          },
          set: function set(e) {
            this[P("0xd46")](e);
          }
        },
        hitlineColor: {
          get: function get() {
            return this[P("0xd32")][P("0x169")];
          },
          set: function set(e) {
            this[P("0xd48")](e);
          }
        },
        mixFactor: {
          get: function get() {
            return this[P("0xd32")][P("0xc96")];
          },
          set: function set(e) {
            this.updateMixFactor(e);
          }
        },
        lineWidth: {
          get: function get() {
            return this[P("0xd32")][P("0x197")];
          },
          set: function set(e) {
            this[P("0xd4a")](e);
          }
        },
        hitlineType: {
          get: function get() {
            return this[P("0xd32")][P("0xd4e")];
          }
        },
        hitlineVisibly: {
          get: function get() {
            return this._videoProjectionFrustumPrimitive.visibly;
          },
          set: function set(e) {
            this._videoProjectionFrustumPrimitive[P("0xd4f")] = e;
          }
        },
        config: {
          get: function get() {
            return this._videoProjectionConfig;
          }
        },
        isActived: {
          get: function get() {
            return this[P("0x5ba")];
          }
        }
      }), e[P("0xf")](u[P("0x5")], {
        length: {
          get: function get() {
            return this[P("0x431")][P("0x0")];
          }
        },
        AddEvent: {
          get: function get() {
            return this[P("0xc6b")];
          }
        },
        RemoveEvent: {
          get: function get() {
            return this[P("0xc6c")];
          }
        },
        RemoveAllEvent: {
          get: function get() {
            return this[P("0xd50")];
          }
        },
        projectBackFaces: {
          get: function get() {
            return this[P("0xd51")];
          },
          set: function set(e) {
            if (this[P("0xd51")] != e) {
              for (var t = this[P("0x431")], i = t[P("0x0")], r = 0; r < i; r++) {
                t[r][P("0xd20")]();
              }

              this[P("0xd51")] = e;
            }
          }
        }
      }), u.prototype[P("0x6d")] = function (e) {
        if (e) {
          var t = e[P("0x176")];
          if (!t) throw P("0xd52");
          if (this[P("0xd53")](t)) throw "exist!";
          this[P("0x431")][P("0x17c")](e), this._addEvent[P("0x896")](e);
        }
      }, u[P("0x5")][P("0xd54")] = function (e) {
        if (e) {
          var t = e[P("0x176")];
          if (!t) throw P("0xd52");
          this[P("0xd53")](t) && this.removeByName(t), e[P("0xf4")]();
        }
      }, u[P("0x5")][P("0xf4")] = function () {
        this[P("0x192")]();
      }, u[P("0x5")].getCount = function () {
        return this[P("0x431")][P("0x0")];
      }, u[P("0x5")][P("0x192")] = function () {
        for (var e = this._array[P("0x0")], t = 0; t < e; t++) {
          this[P("0x431")][t].destroy(), this[P("0x431")][t] = null;
        }

        this[P("0xf5")]();
      }, u[P("0x5")][P("0xce2")] = function (e) {
        for (var t = this._array, i = t[P("0x0")], r = 0; r < i; r++) {
          t[r][P("0xce2")](e);
        }
      }, u.prototype[P("0xd55")] = function (e) {
        var t = this._array.length;
        return e < 0 || t <= e ? null : this._array[e];
      }, u[P("0x5")].getByName = function (e) {
        return this[P("0xd53")](e);
      }, u.prototype[P("0xd56")] = function (e) {
        var t = this[P("0x431")].length;
        e < 0 || t <= e || (this[P("0x431")][P("0x259")](e, 1), this[P("0xc6c")][P("0x896")]());
      }, u.prototype[P("0xd57")] = function (e) {
        for (var t = this[P("0x431")].length, i = 0; i < t; i++) {
          if (this._array[i][P("0xd4c")](e)) return this[P("0x431")][P("0x259")](i, 1), void this._removeEvent.raiseEvent();
        }
      }, u[P("0x5")].removeAll = function () {
        this._array.length = 0, this[P("0xd50")].raiseEvent();
      }, u.prototype[P("0xd53")] = function (e) {
        if (!e) return null;

        for (var t = this[P("0x431")][P("0x0")], i = 0; i < t; i++) {
          var r = this[P("0x431")][i];
          if (r.isSelf(e)) return r;
        }

        return null;
      }, u.prototype[P("0xd58")] = function () {
        for (var e = [], t = this[P("0x431")][P("0x0")], i = 0; i < t; i++) {
          var r = this[P("0x431")][i];
          e[P("0x17c")](r[P("0x176")]);
        }

        return e;
      }, e[P("0xc3a")][P("0x5")].getVideoProjectionCollection = function () {
        return this[P("0xd59")] || (this[P("0xd59")] = new u()), this[P("0xd59")];
      }, e[P("0xc3a")][P("0x5")][P("0xd5a")] = function (e) {
        this[P("0xd59")] || (this._videoProjectionCollection = new u()), this[P("0xd59")]._render(e);
      }, e[P("0xc3a")].prototype[P("0xd5b")] = function () {
        this._videoProjectionCollection && this._videoProjectionCollection[P("0x192")]();
      }, e[P("0xc3a")][P("0x5")][P("0xd5c")] = function (e) {
        e && this[P("0xd59")] && this._videoProjectionCollection.destoryObject(e);
      }, e[P("0xc3a")][P("0x5")][P("0xd5d")] = function (t, i, r, n) {
        try {
          var o = new e[P("0xd30")](t, i, r, n);

          if (o) {
            var a = this[P("0xd5e")]();
            a && a[P("0x6d")](o);
          }

          return o;
        } catch (t) {
          return null;
        }
      }, e[P("0xc3a")][P("0x5")][P("0xd5f")] = function (e) {
        if (e) for (var t = e[P("0xb87")], i = t[P("0x0")], r = 0; r < i; ++r) {
          t[r].commandList[P("0x0")] = 0;
        }
      }, e[P("0xc3a")].prototype[P("0xd60")] = function (e, t, i, r, n) {
        for (var o = 0; o < t; ++o) {
          var a = e[P("0xb87")][o];
          i[P("0xc12")](a[P("0x7e")]), e[P("0xc1b")](r, o);

          for (var s = a[P("0x5ca")].length, x = 0; x < s; ++x) {
            var l = a[P("0x5ca")][x];
            i.updatePass(l.pass), this[P("0xd61")](l[P("0xc0d")][P("0xd62")][P("0xd63")][n], r, a[P("0x795")]);
          }
        }
      }, e[P("0xc3a")].prototype._executeVideoProjectionCastCommands = function () {
        var e = this[P("0x6d9")],
            t = e[P("0xd26")];

        if (t) {
          var i = this[P("0xd59")];
          if (i && !i[P("0xd64")]) for (var r = t.length, n = this.context, o = n[P("0xc28")], a = 0; a < r; ++a) {
            var s = t[a];

            if (!s[P("0xd65")]) {
              var x = s[P("0xb87")][P("0x0")];
              this[P("0xd5f")](s);
              var l = e.commandList;
              this._insertVideoProjectionCastCommands(l, s), this._executePassesVideoProjectionCommands(s, x, o, n, a);
            }
          }
        }
      }, e.Scene[P("0x5")]._insertVideoProjectionCastCommands = function (t, i) {
        for (var r = i[P("0xd66")], n = i[P("0xb87")], o = t[P("0x0")], a = 0; a < o; ++a) {
          var s = t[a];
          this[P("0xd67")](s), !s[P("0xd68")] || s.pass !== e[P("0x5e4")].GLOBE && s[P("0x5d4")] !== e[P("0x5e4")].CESIUM_3D_TILE && s[P("0x5d4")] !== e[P("0x5e4")][P("0x5e5")] && s.pass !== e[P("0x5e4")][P("0x73e")] || this[P("0xd69")](s, r) && n[0][P("0x5ca")].push(s);
        }
      }, e.Scene.prototype[P("0xd67")] = function (t) {
        if (e[P("0x14")](t.derivedCommands)) {
          var i = this[P("0xbe9")],
              r = this[P("0xb84")],
              n = i[P("0x77d")],
              o = this[P("0xc07")],
              a = t[P("0xc0d")],
              s = e[P("0x14")](a[P("0xd6a")]),
              x = !(n && o || s);

          if (t[P("0x48c")] = !0, t.dirty) {
            t.dirty = !1;
            var l = i.videoProjectionMaps;
            t.castShadows && (a[P("0xd62")] = e[P("0x4f1")][P("0xd6b")](l, t, !0, r, a[P("0xd62")])), (s || x) && this[P("0xd6c")](t);
          }
        }
      }, e[P("0xc3a")].prototype[P("0xd61")] = function (t, i, r) {
        var n = this[P("0xbe9")];
        if (!e[P("0x14")](this[P("0xd6d")]) || this[P("0xd6d")](t)) if (t instanceof e[P("0x790")]) t.execute(i, r);else if (!t.debugShowBoundingVolume || !e.defined(t[P("0x4bc")])) {
          n[P("0x77d")] && e[P("0x14")](t[P("0xc0d")][P("0xd6e")]) && (t = t[P("0xc0d")].logDepth.command);
          var o = n[P("0xb87")];

          if (!o.pick && this[P("0xc07")] && e[P("0x14")](t.derivedCommands) && e[P("0x14")](t[P("0xc0d")].hdr) && (t = t[P("0xc0d")][P("0xd6f")][P("0x4d7")]), o[P("0xa4")] || o.depth) {
            if (o[P("0xa4")] && !o[P("0x456")] && e.defined(t.derivedCommands[P("0xc0e")])) return void (t = t.derivedCommands[P("0xc0e")].pickCommand)[P("0x797")](i, r);
            if (e[P("0x14")](t[P("0xc0d")][P("0x456")])) return void (t = t[P("0xc0d")][P("0x456")].depthOnlyCommand)[P("0x797")](i, r);
          }

          this[P("0xd70")] || this.debugShowFrustums || (n[P("0xd71")].lightShadowsEnabled && t[P("0xd72")] && e[P("0x14")](t[P("0xc0d")][P("0xd62")]) ? t.derivedCommands[P("0xd62")][P("0xd73")][P("0x797")](i, r) : t[P("0x797")](i, r));
        }
      }, e[P("0xc3a")][P("0x5")][P("0xd6c")] = function (t) {
        var i = this._frameState,
            r = this[P("0xb84")],
            n = this._view[P("0xd74")],
            o = i[P("0xd71")][P("0xd75")],
            a = i.shadowState[P("0xd76")],
            s = t.derivedCommands;

        e[P("0x14")](t[P("0xd77")]) && (s[P("0xc0e")] = e[P("0xd78")].createPickDerivedCommand(this, t, r, s[P("0xc0e")])), t[P("0xd79")] || (s[P("0x456")] = e.DerivedCommand[P("0xd7a")](this, t, r, s[P("0x456")])), s[P("0xd6a")] = t, this._hdr && (s.hdr = e[P("0xd78")][P("0xd7b")](t, r, s[P("0xd6f")]), s = (t = s.hdr[P("0x4d7")])[P("0xc0d")]), a && t.receiveShadows && (s[P("0xd62")] = e[P("0x4f1")][P("0xd7c")](o, t, !0, r, s[P("0xd62")])), t.pass === e[P("0x5e4")][P("0x73e")] && e.defined(n) && n[P("0xd7d")]() && (a && t[P("0xd72")] ? (s.oit = e.defined(s.oit) ? s[P("0xd74")] : {}, s[P("0xd74")][P("0xd62")] = n[P("0xd7e")](s[P("0xd62")][P("0xd73")], r, s[P("0xd74")][P("0xd62")])) : s[P("0xd74")] = n.createDerivedCommands(t, r, s.oit));
      };
    }(window.Cesium), function (e) {
      var t = e[P("0xd7f")] = function (t) {
        t = e[P("0x102")](t, e.defaultValue[P("0x128")]), this[P("0xd80")] = null, this.filterFar = e.defaultValue(t[P("0xd81")], 1e6), this.scene = t[P("0x10f")], this.initStage();
      };

      e[P("0xf")](t[P("0x5")], {
        name: {
          get: function get() {
            return this[P("0xd80")][P("0x176")];
          }
        },
        inputPreviousStageTexture: {
          get: function get() {
            return this._stage[P("0xd82")];
          }
        },
        enabled: {
          set: function set(e) {
            this[P("0xd80")][P("0x364")] = e;
          },
          get: function get() {
            return this[P("0xd80")][P("0x364")];
          }
        },
        _textureCache: {
          set: function set(e) {
            this[P("0xd80")][P("0xd83")] = e;
          },
          get: function get() {
            return this[P("0xd80")][P("0xd83")];
          }
        },
        outputTexture: {
          get: function get() {
            return this[P("0xd80")][P("0xd84")];
          }
        },
        ready: {
          get: function get() {
            return this[P("0xd80")][P("0xa8e")];
          }
        },
        _index: {
          set: function set(e) {
            this[P("0xd80")]._index = e;
          },
          get: function get() {
            return this[P("0xd80")][P("0xd85")];
          }
        },
        uniforms: {
          get: function get() {
            return this[P("0xd80")].uniforms;
          }
        },
        _textureScale: {
          get: function get() {
            return this[P("0xd80")].textureScale;
          }
        },
        _pixelFormat: {
          get: function get() {
            return this[P("0xd80")][P("0xd86")];
          }
        },
        _forcePowerOfTwo: {
          get: function get() {
            return this[P("0xd80")][P("0xd87")];
          }
        },
        _pixelDatatype: {
          get: function get() {
            return this[P("0xd80")][P("0xd88")];
          }
        },
        _clearColor: {
          get: function get() {
            return this[P("0xd80")][P("0xd89")];
          }
        }
      }), t[P("0x5")][P("0xd8a")] = function () {
        var t = this,
            i = P("0x7a0") + P("0x7a1") + P("0x7a4") + P("0xd8b") + P("0xd8c") + "{\n" + P("0xd8d") + P("0xd8e") + P("0xd8f") + "   return posEC;\n}\n" + P("0xd90") + P("0x7b1") + "    vec3 hsb = czm_RGBToHSB(color.rgb);\n" + P("0xd91") + P("0xd92") + P("0x85f") + P("0xd93") + P("0x7b7") + "    else\n" + P("0x85f") + P("0xd94") + P("0x7b7") + "    color.rgb = czm_HSBToRGB(hsb);\n" + P("0xd95") + P("0xd96") + P("0xd97") + P("0xd98") + P("0x85f") + P("0xd99") + "    }\n" + P("0xd9a") + P("0x85f") + P("0xd9b") + P("0x7b7") + "}\n",
            r = new e[P("0x7c5")]({
          fragmentShader: i,
          name: e[P("0x75c")](),
          inputPreviousStageTexture: !0,
          uniforms: {
            u_filterFar: function u_filterFar() {
              var e = t[P("0x10f")];

              if (e) {
                var i = e[P("0x7e")];
                if (i[P("0xd81")] && i[P("0xd9c")]) return 0.6 * i[P("0xd81")];
              }

              return t[P("0xd81")];
            }
          }
        });
        (this[P("0xd80")] = r)[P("0x48b")] = !0;
      }, t[P("0x5")][P("0xd2")] = function (e, t) {
        this[P("0xd80")][P("0xd2")](e, t);
      }, t[P("0x5")][P("0xd9d")] = function (e) {
        return this[P("0xd80")]._isSupported(e);
      }, t[P("0x5")].execute = function (e, t, i, r) {
        this[P("0xd80")][P("0x797")](e, t, i, r);
      }, t[P("0x5")][P("0xf4")] = function () {
        return this[P("0xd80")].destroy(), destroyObject(this);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0xd9e")] = function (t) {
        this[P("0x13b")] = t[P("0x13b")], this[P("0x10f")] = this[P("0x13b")].scene, this[P("0x7e")] = this[P("0x13b")][P("0x7e")], this[P("0xef")] = this[P("0x10f")].globe[P("0xef")], this.path = e.defaultValue(t[P("0xd9f")], null), this.moveStep = e.defaultValue(t[P("0xda0")], 2), this.rotateStep = e[P("0x102")](t[P("0xda1")], 10), this.frameChange = e[P("0x102")](t[P("0xda2")], function () {}), this[P("0xda3")] = !1, this[P("0xda4")] = new i(this), this[P("0xda4")][P("0xda5")](this[P("0xda2")]);
      };

      t[P("0x5")][P("0x198")] = function () {
        (this[P("0x7e")][P("0xda6")] = this)[P("0x10f")].logarithmicDepthBuffer = !1, e[P("0x3cb")][P("0x5")][P("0xda7")] = e[P("0x3cb")][P("0x5")].update, e.Camera[P("0x5")][P("0xd2")] = function (e) {
          this._hookUpdate(e), this[P("0xda6")] && this._hooker.raiseUpdate(this);
        };
      }, t[P("0x5")].raiseUpdate = function (t) {
        var i = {};

        if (!this[P("0xda3")]) {
          var r = this[P("0xda4")].next();

          if (void 0 !== r) {
            i[P("0x8c")] = e[P("0x11")][P("0x6e")](r[P("0x8c")]), i[P("0xda8")] = e[P("0x13")].fromCartesian(r.position, this[P("0xef")]);
            var n = e[P("0x1f")][P("0xbf")](r[P("0x8c")], this[P("0xef")], o),
                x = r.direction,
                l = new e[P("0x11")](n[8], n[9], n[10]),
                c = e[P("0x11")][P("0x99")](x, l, a);
            e[P("0x11")][P("0x8d")](c, c), l = e[P("0x11")][P("0x99")](c, x, s), e[P("0x11")][P("0x8d")](l, l), i.direction = e[P("0x11")][P("0x6e")](x), i.up = e[P("0x11")][P("0x6e")](l), i[P("0x9b")] = e[P("0x11")][P("0x6e")](c), this._lockCamera = !0, t[P("0x9c")]({
              destination: i[P("0x8c")],
              orientation: {
                direction: i[P("0x93")],
                up: i.up
              }
            }), this._lockCamera = !1;
          } else this[P("0xda3")] = !1;
        }
      }, t.prototype[P("0xda9")] = function () {
        e[P("0x3cb")][P("0x5")][P("0xda7")] && (e[P("0x3cb")].prototype.update = e.Camera[P("0x5")][P("0xda7")]), delete this[P("0x7e")][P("0xda6")] && delete this.camera[P("0xc")][P("0xda7")];
      }, t[P("0x5")][P("0xf4")] = function () {
        e[P("0x3cb")][P("0x5")][P("0xd2")] = e[P("0x3cb")].prototype[P("0xda7")], delete this.camera[P("0xda6")] && delete this[P("0x7e")][P("0xc")]._hookUpdate, this.scene.logarithmicDepthBuffer = !0;
      };

      var i = function i(t) {
        this[P("0xdaa")] = t, this._begin = 0, this._isDone = !1, this[P("0xdab")] = !1, this[P("0xdac")] = new e[P("0x766")]();
      };

      function r(e, t, i) {
        return void 0 === e || void 0 === e.x || void 0 === t || void 0 === t.x || !!n(e.x, t.x, i) && !!n(e.y, t.y, i) && !!n(e.z, t.z, i);
      }

      function n(e, t, i) {
        return void 0 === i && (i = 1e-7), Math[P("0x78")](e - t) < i;
      }

      i[P("0x5")].addChangeEventListener = function (e) {
        this[P("0xdac")].addEventListener(e);
      }, i[P("0x5")][P("0xdad")] = function (e) {
        this[P("0xdac")].raiseEvent(e);
      }, i[P("0x5")][P("0xdae")] = function () {
        return this[P("0xdaf")];
      }, i[P("0x5")][P("0xdb0")] = function () {
        return this._isPause;
      }, i[P("0x5")][P("0xe2")] = function (e) {
        this[P("0xdb1")] = null == e ? 0 : e, this._isDone = !1, this._isPause = !1;
      }, i[P("0x5")][P("0xe4")] = function () {
        this[P("0xdb2")]();
      }, i[P("0x5")][P("0xdb2")] = function () {
        this._isDone = !0, this[P("0xdab")] = !1, this[P("0xdb1")] = 0, this[P("0xdb3")] = void 0, this[P("0xdb4")] = void 0, this[P("0xdb5")] = void 0;
      }, i.prototype[P("0x546")] = function () {
        this._isPause = !0;
      }, i[P("0x5")][P("0xdb6")] = function () {
        this[P("0xdab")] = !1;
      }, i[P("0xdb7")] = function (e, t) {
        var i = t,
            r = i[P("0xdb8")]() - e[P("0xdb8")]();
        return r += 1e3 * (i[P("0xdb9")]() - e[P("0xdb9")]()), (r += 60 * (i[P("0xdba")]() - e[P("0xdba")]()) * 1e3) + 60 * (i.getHours() - e[P("0x982")]()) * 60 * 1e3;
      }, i[P("0x5")][P("0x7e3")] = function () {
        if (!this[P("0xdaf")]) {
          if (void 0 === this[P("0xdb3")]) return this[P("0xdb3")] = this[P("0xdbb")](), void 0 === this.state || (this[P("0xdb3")].date = new Date()), this.state;
          if (this[P("0xdab")]) return this[P("0xdb3")][P("0xdbc")] = new Date(), this[P("0xdb3")];
          var t = this[P("0xdb3")];
          if (r(t[P("0x8c")], t[P("0x64")]) && r(t[P("0x93")], t.endDirection)) return void 0 !== t[P("0x7e3")] ? (this[P("0xdb3")] = t[P("0x7e3")], this.state[P("0xdbc")] = new Date(), this[P("0xdb3")]) : (this[P("0xdb1")]++, this[P("0xdb1")] >= this[P("0xdaa")][P("0xd9f")].length ? (this[P("0xdad")](this[P("0xdb1")]), void this._toStop()) : (this.state = this._createState(), void 0 === this[P("0xdb3")] ? this.state : (this[P("0xdb3")][P("0xdbc")] = new Date(), this[P("0xdb3")])));

          if (r(t[P("0x93")], t[P("0xdbd")])) {
            var n = e[P("0x11")][P("0x8e")](t[P("0x64")], t[P("0x8c")]),
                o = this._walkAnimation[P("0xda0")] + t[P("0xdbe")];
            return x = new Date(), l = i.ComputeTimeDelta(t[P("0xdbc")], x), t.date = x, n <= (o *= l / 1e3) ? (t[P("0x8c")] = e[P("0x11")][P("0x6e")](t.endPosition, new e.Cartesian3()), t) : (a = e[P("0x11")][P("0x95")](t[P("0x64")], t[P("0x8c")], new e[P("0x11")]()), e[P("0x11")][P("0x8d")](a, a), e[P("0x11")][P("0x6c")](a, o, a), t[P("0x8c")] = e[P("0x11")][P("0x6d")](t.position, a, new e[P("0x11")]()), t);
          }

          var a = e[P("0x11")][P("0x99")](t.direction, t[P("0xdbd")], new e.Cartesian3());
          e[P("0x11")][P("0x8d")](a, a);
          var s = e[P("0x23")][P("0x119")](this[P("0xdaa")][P("0xda1")] + t.rotateSpeed),
              x = new Date(),
              l = i.ComputeTimeDelta(t[P("0xdbc")], x);

          if (t[P("0xdbc")] = x, (s *= l / 1e3) < e.Cartesian3[P("0xcb")](t.direction, t[P("0xdbd")])) {
            var c = e[P("0x1d")][P("0xcc")](a, s, new e.Quaternion()),
                u = e[P("0x1a")][P("0xcd")](c, new e[P("0x1a")]()),
                h = e[P("0x1b")][P("0x738")](u, new e[P("0x11")](0, 0, 0), new e[P("0x1b")]()),
                f = e[P("0x1b")].multiplyByPointAsVector(h, t[P("0x93")], new e[P("0x11")]());
            return t[P("0x93")] = e[P("0x11")][P("0x8d")](f, new e[P("0x11")]()), t;
          }

          return t[P("0x93")] = e[P("0x11")].clone(t.endDirection, new e[P("0x11")]()), t;
        }
      }, i[P("0x5")][P("0xdbb")] = function () {
        this[P("0xdad")](this[P("0xdb1")]);
        var t = this[P("0xdb1")],
            i = t + 1,
            r = this[P("0xdaa")][P("0xd9f")];
        if (i >= r[P("0x0")]) return this.raiseChangeEvent(i), void this[P("0xdb2")]();
        var n = {},
            o = r[t],
            a = r[i];
        return n[P("0x8c")] = e.Cartesian3[P("0x1a1")](o[P("0xda8")].longitude, o.geoposition[P("0x114")], o[P("0xda8")][P("0x8b")], this[P("0xdaa")][P("0xef")], new e[P("0x11")]()), n[P("0x93")] = e[P("0x11")].clone(o[P("0x93")], new e[P("0x11")]()), n[P("0xdbe")] = o[P("0xdbe")], n[P("0xdbf")] = o.rotateSpeed, n.endPosition = e[P("0x11")][P("0x1a1")](a.geoposition[P("0x112")], a[P("0xda8")].latitude, a.geoposition.height, this[P("0xdaa")][P("0xef")], new e[P("0x11")]()), n[P("0xdbd")] = e[P("0x11")][P("0x6e")](a[P("0x93")], new e.Cartesian3()), n;
      };
      var o = new e.Matrix4(),
          a = (new e[P("0x11")](), new e[P("0x11")]()),
          s = new e.Cartesian3();
    }(window[P("0xfd")]), function (e) {
      var t = e.GeoWalkerCamera = function (i) {
        this.viewer = i[P("0x13b")], this[P("0x10f")] = this[P("0x13b")][P("0x10f")], this[P("0x7e")] = this[P("0x13b")].camera, this[P("0x94e")] = e[P("0x102")](i[P("0x94e")], 1), this[P("0xdc0")] = e[P("0x102")](i[P("0xdc0")], 5), this[P("0xdc1")] = e[P("0x102")](i.manHeight, 1.6), this[P("0xdc2")] = e.defaultValue(i[P("0xdc2")], 0.8), this[P("0xdb3")] = t[P("0xdc3")][P("0xdc4")], this._lockCamera = !1, this[P("0xdc5")] = !1, this[P("0x44")] = this.scene[P("0xa3")][P("0xef")], this[P("0xdc6")] = new l(), this[P("0xdc7")] = !1, this[P("0xd81")] = e.defaultValue(i.filterFar, null), this[P("0xdc8")] = e[P("0x102")](i[P("0xdc9")], !0), i[P("0xdca")] && this[P("0x13b")] && viewer[P("0x10f")][P("0x77c")].add(new e[P("0xd7f")]({
          scene: viewer[P("0x10f")]
        }));
      };

      t[P("0x5")].setState = function (t) {
        0 < Object[P("0xdcb")](e[P("0xdcc")].stateType).filter(function (i) {
          return e[P("0xdcc")][P("0xdc3")][i] === t;
        })[P("0x0")] && (this[P("0xdb3")] = t);
      }, t[P("0x5")].activate = function () {
        this[P("0xd81")] && (this[P("0x7e")].filterFar = this[P("0xd81")]), (this[P("0x7e")][P("0xda6")] = this)[P("0x10f")][P("0xdcd")] = !1, e[P("0x3cb")][P("0x5")][P("0xda7")] = e[P("0x3cb")][P("0x5")][P("0xd2")], e[P("0x3cb")].prototype[P("0xd2")] = function (e) {
          this._hookUpdate(e), this[P("0xda6")] && this[P("0xda6")][P("0xdce")](this);
        };
      }, t[P("0x5")].unactivate = function () {
        this[P("0x7e")] && this[P("0x7e")][P("0xd81")] && delete this.camera[P("0xd81")], e[P("0x3cb")][P("0x5")]._hookUpdate && (e[P("0x3cb")][P("0x5")].update = e[P("0x3cb")].prototype[P("0xda7")]), delete this[P("0x7e")]._hooker && delete this[P("0x7e")][P("0xc")][P("0xda7")];
      }, t[P("0x5")][P("0xdce")] = function (e) {
        if (!(!this[P("0xdc5")] || this._lockCamera || this[P("0xdb3")] < 1)) switch (this[P("0xdb3")]) {
          case t[P("0xdc3")][P("0xdcf")]:
            this.computeForeward(e);
            break;

          case t[P("0xdc3")].BACKWARD:
            this.computeBackward(e);
            break;

          case t[P("0xdc3")][P("0xdd0")]:
            this[P("0xdd1")](e);
            break;

          case t.stateType.RIGHTWARD:
            this.computeRightward(e);
            break;

          case t[P("0xdc3")][P("0xdd2")]:
            this[P("0xdd3")](e);
            break;

          case t.stateType[P("0xdd4")]:
            this[P("0xdd5")](e);
            break;

          case t.stateType[P("0x138")]:
            this.computeTrunLeft(e);
            break;

          case t[P("0xdc3")][P("0x139")]:
            this[P("0xdd6")](e);
            break;

          case t[P("0xdc3")][P("0xdc4")]:
            return;
        }
      }, t[P("0x5")].setView = function (e) {
        this[P("0xda3")] = !0, this.camera[P("0x9c")](e), this[P("0xda3")] = !1, this[P("0xdc5")] = !0;
      }, t[P("0x5")][P("0xdd7")] = function (e) {
        this[P("0xda3")] = !0, this[P("0x7e")][P("0xb2a")](e || 100), this[P("0xda3")] = !1;
      }, t[P("0x5")][P("0xdd8")] = function (t) {
        this[P("0x10f")][P("0xa4")](t);
        var i = this[P("0x10f")][P("0x174")](t),
            r = e[P("0x13")].fromCartesian(i, this[P("0x44")]);
        if (0 < r[P("0x8b")]) r[P("0x8b")] += this[P("0xdc1")];else {
          var n = this[P("0x10f")][P("0xa3")][P("0xed")](r);
          r[P("0x8b")] = 0 < n ? n + this.manHeight : 1e3;
        }
        var o = e[P("0x11")].fromRadians(r[P("0x112")], r.latitude, r[P("0x8b")], this[P("0x44")]);
        this._lockCamera = !0, this.camera[P("0x9c")]({
          destination: o,
          orientation: {
            heading: this[P("0x7e")][P("0x7f")],
            pitch: 0,
            up: 0
          }
        }), this[P("0xda3")] = !1, this[P("0xdc5")] = !0, this[P("0x7e")] && this[P("0xd81")] && (this[P("0xd9c")](!0), this[P("0x7e")].enableFilter = !0);
      }, t[P("0x5")][P("0xdd9")] = function (t) {
        var i = new e.Cartesian3(),
            n = t[P("0x8c")],
            l = (t[P("0xa5")], t[P("0xa6")].clone()),
            c = this.getTangentNormal(),
            u = e[P("0x11")][P("0x99")](l, c, a);

        if (e[P("0x11")][P("0x8d")](u, u), l = e.Cartesian3.cross(c, u, o), e[P("0x11")][P("0x8d")](l, l), this[P("0xdc8")]) {
          var h = this[P("0xdda")](n, l, c, 1 / r * this[P("0x94e")]);
          e[P("0x11")].multiplyByScalar(l, h, i), e[P("0x11")][P("0x6d")](n, i, n);
          var f = x;
          f[P("0x87")] = n, f[P("0x93")] = e[P("0x11")][P("0xc8")](c, s);
          var d = e[P("0x13")].fromCartesian(f[P("0x87")], this[P("0x44")]),
              g = e[P("0xbe0")][P("0xa4")](this[P("0x10f")], f, l, !0);
          if (g && g[P("0x8c")] && g[P("0x7")]) (m = e[P("0x13")][P("0x175")](g[P("0x8c")], this[P("0x44")])).height += this[P("0xdc1")], (p = d.height - m.height) < 3 && -1 < p ? (this[P("0x133")](P("0xddb") + p), n = e[P("0x11")][P("0x3d0")](m[P("0x112")], m[P("0x114")], m.height, this._ellipsoid)) : this[P("0x133")]("Forward : height = 0");else {
            var p,
                m = e[P("0x13")][P("0x175")](n, this[P("0x44")]),
                b = this[P("0x10f")][P("0xa3")][P("0xed")](m);
            m[P("0x8b")] = 0 < b ? b + this[P("0xdc1")] : m[P("0x8b")], (p = d.height - m[P("0x8b")]) < 3 && -1 < p ? (this[P("0x133")](P("0xddc") + p), n = e[P("0x11")][P("0x3d0")](m[P("0x112")], m[P("0x114")], m[P("0x8b")], this[P("0x44")])) : this[P("0x133")](P("0xddc") + 0);
          }
        } else e[P("0x11")].multiplyByScalar(l, 1 / r * this[P("0x94e")], i), e[P("0x11")][P("0x6d")](n, i, n);

        this[P("0xda3")] = !0, t[P("0x9c")]({
          destination: n,
          orientation: {
            heading: t.heading,
            pitch: t[P("0x80")],
            up: t.up
          }
        }), this[P("0xda3")] = !1;
      }, t[P("0x5")][P("0xddd")] = function (t) {
        var i = new e[P("0x11")](),
            n = t[P("0x8c")],
            l = (t[P("0xa5")], t[P("0xa6")][P("0x6e")]()),
            c = this[P("0xdde")](),
            u = e[P("0x11")][P("0x99")](l, c, a);

        if (e[P("0x11")][P("0x8d")](u, u), l = e[P("0x11")][P("0x99")](c, u, o), e[P("0x11")].normalize(l, l), l = e[P("0x11")][P("0xc8")](l, o), this._collideActived) {
          var h = this._computeCollideDistance(n, l, c, 1 / r * this[P("0x94e")]);

          e[P("0x11")][P("0x6c")](l, h, i), e[P("0x11")].add(n, i, n);
          var f = x;
          f[P("0x87")] = n, f[P("0x93")] = e[P("0x11")][P("0xc8")](c, s);
          var d = e.Cartographic.fromCartesian(f[P("0x87")], this._ellipsoid),
              g = e[P("0x11")][P("0xc8")](l, new e[P("0x11")]()),
              p = e.GeoRayPick[P("0xa4")](this[P("0x10f")], f, g, !0);
          if (p && p[P("0x8c")] && p[P("0x7")]) (b = e[P("0x13")].fromCartesian(p[P("0x8c")], this[P("0x44")]))[P("0x8b")] += this[P("0xdc1")], (m = d[P("0x8b")] - b[P("0x8b")]) < 3 && -1 < m ? (this[P("0x133")]("Backward : height = " + m), n = e.Cartesian3[P("0x3d0")](b[P("0x112")], b.latitude, b[P("0x8b")], this[P("0x44")])) : this.log(P("0xddf") + 0);else {
            var m,
                b = e[P("0x13")][P("0x175")](n, this[P("0x44")]),
                v = this[P("0x10f")][P("0xa3")][P("0xed")](b);
            b[P("0x8b")] = 0 < v ? v + this[P("0xdc1")] : b.height, (m = d[P("0x8b")] - b[P("0x8b")]) < 3 && -1 < m ? (this.log(P("0xde0") + m), n = e[P("0x11")][P("0x3d0")](b[P("0x112")], b[P("0x114")], b[P("0x8b")], this[P("0x44")])) : this[P("0x133")](P("0xde0") + 0);
          }
        } else e.Cartesian3[P("0x6c")](l, 1 / r * this.stepSize, i), e[P("0x11")][P("0x6d")](n, i, n);

        this[P("0xda3")] = !0, t[P("0x9c")]({
          destination: n,
          orientation: {
            heading: t[P("0x7f")],
            pitch: t.pitch,
            up: t.up
          }
        }), this[P("0xda3")] = !1;
      }, t[P("0x5")][P("0xdda")] = function (t, i, r, n) {
        var o = x;
        o.origin = t, o[P("0x93")] = i;
        var a = e[P("0xbe0")][P("0xa4")](this.scene, o, r, !1);

        if (a && a[P("0x8c")]) {
          var s = e[P("0x11")][P("0x8e")](t, a.position);
          return s <= this[P("0xdc2")] ? s = 0 : s -= this[P("0xdc2")], this[P("0x133")](P("0xde1") + s + P("0xde2") + n), Math.min(s, n);
        }

        return this[P("0x133")](P("0xde3")), n;
      }, t.prototype[P("0x133")] = function (e) {
        this[P("0xdc7")] && console.log(e);
      }, t.prototype[P("0xdd1")] = function (t) {
        var i = new e[P("0x11")](),
            n = t[P("0x8c")],
            o = t[P("0xa6")],
            a = this[P("0xdde")]();

        if (o = e[P("0x11")][P("0x99")](a, o, new e[P("0x11")]()), e[P("0x11")].normalize(o, o), this[P("0xdc8")]) {
          var l = this[P("0xdda")](n, o, a, 0.3 / r * this[P("0x94e")]);
          e[P("0x11")][P("0x6c")](o, l, i), e.Cartesian3[P("0x6d")](n, i, n);
          var c = x;
          c[P("0x87")] = n, c[P("0x93")] = e[P("0x11")][P("0xc8")](a, s);
          var u = e[P("0x13")][P("0x175")](c[P("0x87")], this[P("0x44")]),
              h = e[P("0x11")].negate(o, new e[P("0x11")]()),
              f = e.GeoRayPick[P("0xa4")](this[P("0x10f")], c, h, !0);
          if (f && f.position && f[P("0x7")]) (g = e.Cartographic[P("0x175")](f[P("0x8c")], this[P("0x44")]))[P("0x8b")] += this[P("0xdc1")], (d = u[P("0x8b")] - g[P("0x8b")]) < 3 && -1 < d && (n = e[P("0x11")][P("0x3d0")](g[P("0x112")], g[P("0x114")], g.height, this[P("0x44")]));else {
            var d,
                g = e[P("0x13")][P("0x175")](n, this[P("0x44")]),
                p = this[P("0x10f")][P("0xa3")][P("0xed")](g);
            g[P("0x8b")] = 0 < p ? p + this[P("0xdc1")] : g[P("0x8b")], (d = u[P("0x8b")] - g.height) < 3 && -1 < d && (n = e[P("0x11")].fromRadians(g[P("0x112")], g[P("0x114")], g[P("0x8b")], this[P("0x44")]));
          }
        } else e[P("0x11")][P("0x6c")](o, 0.3 / r * this.stepSize, i), e[P("0x11")][P("0x6d")](n, i, n);

        this[P("0xda3")] = !0, t.setView({
          destination: n,
          orientation: {
            heading: t[P("0x7f")],
            pitch: t[P("0x80")],
            up: t.up
          }
        }), this[P("0xda3")] = !1;
      }, t[P("0x5")].computeRightward = function (t) {
        var i = new e.Cartesian3(),
            n = t[P("0x8c")],
            o = t.directionWC,
            a = this[P("0xdde")]();

        if (o = e[P("0x11")][P("0x99")](o, a, new e.Cartesian3()), e[P("0x11")][P("0x8d")](o, o), this[P("0xdc8")]) {
          var l = this._computeCollideDistance(n, o, a, 0.3 / r * this[P("0x94e")]);

          e.Cartesian3[P("0x6c")](o, l, i), e[P("0x11")][P("0x6d")](n, i, n);
          var c = x;
          c.origin = n, c[P("0x93")] = e.Cartesian3.negate(a, s);
          var u = e.Cartographic[P("0x175")](c[P("0x87")], this._ellipsoid),
              h = e[P("0x11")].negate(o, new e[P("0x11")]()),
              f = e[P("0xbe0")].pick(this[P("0x10f")], c, h, !0);
          if (f && f[P("0x8c")] && f.object) (g = e.Cartographic[P("0x175")](f.position, this[P("0x44")]))[P("0x8b")] += this.manHeight, (d = u.height - g[P("0x8b")]) < 3 && -1 < d && (n = e[P("0x11")][P("0x3d0")](g[P("0x112")], g.latitude, g[P("0x8b")], this[P("0x44")]));else {
            var d,
                g = e.Cartographic.fromCartesian(n, this[P("0x44")]),
                p = this.scene[P("0xa3")].getHeight(g);
            g[P("0x8b")] = 0 < p ? p + this.manHeight : g[P("0x8b")], (d = u[P("0x8b")] - g[P("0x8b")]) < 3 && -1 < d && (n = e.Cartesian3[P("0x3d0")](g[P("0x112")], g.latitude, g[P("0x8b")], this[P("0x44")]));
          }
        } else e.Cartesian3.multiplyByScalar(o, 0.3 / r * this.stepSize, i), e[P("0x11")][P("0x6d")](n, i, n);

        this[P("0xda3")] = !0, t[P("0x9c")]({
          destination: n,
          orientation: {
            heading: t[P("0x7f")],
            pitch: t[P("0x80")],
            up: t.up
          }
        }), this[P("0xda3")] = !1;
      }, t.prototype[P("0xde4")] = function (t) {
        t[P("0xe7")](this.getTangentNormal(), -e[P("0x23")][P("0x119")](e[P("0x102")](this[P("0xdc0")], 5)) / r);
      }, t[P("0x5")][P("0xdd6")] = function (t) {
        t.look(this[P("0xdde")](), e.Math.toRadians(e[P("0x102")](this.rotateSize, 5)) / r);
      }, t[P("0x5")][P("0xdd3")] = function (t) {
        t[P("0xe7")](e[P("0x11")][P("0x99")](t[P("0xa6")].clone(), this[P("0xdde")](), a), -e[P("0x23")][P("0x119")](e[P("0x102")](this[P("0xdc0")], 5)) / r);
      }, t[P("0x5")][P("0xdd5")] = function (t) {
        t.look(e[P("0x11")][P("0x99")](t[P("0xa6")][P("0x6e")](), this[P("0xdde")](), a), e[P("0x23")][P("0x119")](e.defaultValue(this.rotateSize, 5)) / r);
      }, t[P("0x5")][P("0xdde")] = function () {
        var t = e.Transforms.eastNorthUpToFixedFrame(this.camera[P("0xa5")], this._ellipsoid, n);
        return new e[P("0x11")](t[8], t[9], t[10]);
      }, t[P("0x5")].destroy = function () {
        e[P("0x3cb")].prototype.update = e[P("0x3cb")].prototype._hookUpdate, delete this[P("0x7e")][P("0xda6")] && delete this[P("0x7e")][P("0xc")]._hookUpdate, this[P("0x10f")][P("0xdcd")] = !0;
      };
      var i = new e[P("0x10")]();
      t[P("0x5")][P("0xde5")] = function (t) {
        if (t[P("0x63")] && t.endPosition) {
          var n = e[P("0x10")].subtract(t.endPosition, t[P("0x63")], i);

          if (0 != n.x) {
            var o = e[P("0x102")](this[P("0xdc0")], 5) * n.x / 5;
            this[P("0x7e")][P("0xe7")](this[P("0xdde")](), e[P("0x23")][P("0x119")](o) / r);
          }

          0 != n.y && (o = e[P("0x102")](this[P("0xdc0")], 5) * n.y / 5, this[P("0x7e")][P("0xe7")](e[P("0x11")].cross(this.camera.directionWC[P("0x6e")](), this.getTangentNormal(), a), e[P("0x23")][P("0x119")](o) / r));
        }
      }, t.prototype.enableFilter = function (t) {
        t = t || !1, this[P("0x7e")] && this[P("0xd81")] && 1.58 <= e[P("0x373")] && ((this[P("0x7e")][P("0xd9c")] = t) ? e[P("0x2e1")][P("0x5")][P("0xde6")] = function (t, i) {
          var r = i[P("0x7e")];

          if (r[P("0xd81")] && r[P("0xd9c")]) {
            var n = r[P("0xd81")],
                o = t[P("0x55b")][P("0x181")],
                a = e[P("0x11")][P("0x8e")](t.boundingSphere[P("0x11a")], r[P("0xaea")]);
            if (n < (a -= o)) return !0;
          }

          return !1;
        } : e[P("0x2e1")].prototype[P("0xde6")] && delete e.Cesium3DTileset[P("0xc")][P("0xde6")]);
      }, t.prototype[P("0xdc9")] = function (e) {
        this._collideActived = e || !1;
      }, t.stateType = {
        UNKNOWN: 0,
        FORWARD: 1,
        BACKWARD: 2,
        LEFTWARD: 3,
        RIGHTWARD: 4,
        UPWARD: 5,
        DOWNWARD: 6,
        LEFT: 7,
        RIGHT: 8
      };
      var r = 40,
          n = new e.Matrix4(),
          o = new e[P("0x11")](),
          a = new e[P("0x11")](),
          s = new e[P("0x11")](),
          x = new e[P("0x1e")]();

      function l() {
        var e = [],
            t = 0;
        this[P("0x17c")] = function (t) {
          return 10 <= this[P("0x3cd")]() && this[P("0x25c")](), e.push(t), !0;
        }, this[P("0x25c")] = function () {
          return e[P("0x513")]();
        }, this[P("0xde7")] = function () {
          return e[0];
        }, this[P("0xde8")] = function () {
          return e[e.length - 1];
        }, this[P("0x192")] = function () {
          e = [];
        }, this[P("0x3cd")] = function () {
          return e[P("0x0")];
        }, this[P("0xde9")] = function () {
          for (var t = 0, i = e[P("0x0")], r = 0; r < i; r++) {
            t += e[r].height;
          }

          return t / i;
        }, this.getLatelyHeight = function () {
          return 0 < e[P("0x0")] ? e[e.length - 1].height : null;
        }, this[P("0xdea")] = function (t) {
          return 0 < e.length && 4.5 < Math[P("0x78")](this.getLatelyHeight() - t[P("0x8b")]);
        }, this[P("0xdeb")] = function (e) {
          this[P("0xdea")](e) && (20 < t ? t = 0 : (e[P("0x8b")] = 3 < t ? this[P("0xde9")]() : this[P("0xdec")](), t++), e[P("0x8b")] = this[P("0xdec")]()), this[P("0x17c")](e);
        };
      }
    }(window.Cesium), function (e) {
      var t = e[P("0x102")],
          i = e[P("0xded")] = function (i) {
        var r = (i = t(i, t.EMPTY_OBJECT))[P("0x6af")];
        this[P("0x13c")] = i[P("0x13b")], this[P("0x42")] = this[P("0x13c")].scene, this[P("0xdee")] = [], this[P("0xdef")] = new e[P("0x16a")](0.439, 0.564, 0.788, 0), this[P("0xdf0")] = new e.Color(0, 0, 0, 0), this._reflectColor = new e.Color(0.439, 0.564, 0.788, 0), this[P("0xdf1")] = 0.2, this[P("0xdf2")] = 90, this[P("0xdf3")] = 0.7, this[P("0xdf4")] = void 0, this[P("0xdf5")] = 0, this[P("0xdf6")] = void 0, this[P("0xdf7")] = void 0, this._initialized = !1, this[P("0x6ce")] = void 0, this[P("0xdf8")] = !0, this[P("0x42")][P("0xb84")];
        var n = this,
            o = new Image();
        o[P("0x125")] = r, o[P("0xad2")] = function () {
          n[P("0xdf4")] = new e[P("0x6db")]({
            context: n[P("0x42")][P("0x3cc")],
            width: o[P("0x19a")],
            height: o[P("0x8b")],
            source: o,
            sampler: new e[P("0x789")]({
              wrapS: e[P("0x78b")][P("0x55a")],
              wrapT: e[P("0x78b")].REPEAT
            })
          }), n._scene[P("0x17d")][P("0x6d")](n);
        };
      };

      e.defineProperties(i.prototype, {
        waterPolygon: {
          get: function get() {
            return this[P("0xdf9")];
          },
          set: function set(e) {
            null != e && null != this[P("0xdf9")] && this.release(), this[P("0xdf9")] = e;
          }
        },
        waterColor: {
          get: function get() {
            return this._waterColor;
          },
          set: function set(e) {
            this[P("0xdef")] = e;
          }
        },
        flowSpeed: {
          get: function get() {
            return this._flowSpeed;
          },
          set: function set(e) {
            this[P("0xdf3")] = e;
          }
        },
        flowDirection: {
          get: function get() {
            return this[P("0xdf2")];
          },
          set: function set(e) {
            this[P("0xdf2")] = e;
          }
        },
        waveWidth: {
          get: function get() {
            return this[P("0xdf1")];
          },
          set: function set(e) {
            this[P("0xdf1")] = e;
          }
        },
        isVisible: {
          get: function get() {
            return this[P("0xdf8")];
          },
          set: function set(e) {
            this[P("0xdf8")] = e;
          }
        }
      }), i[P("0x5")][P("0xdfa")] = function () {
        this[P("0xdee")] = [];

        var t = this._waterPolygon[P("0xdfb")].positions,
            i = e[P("0x13")].fromCartesian(t[0]),
            r = e[P("0x23")][P("0x113")](i[P("0x112")]),
            n = e.Math[P("0x113")](i[P("0x114")]),
            o = e[P("0x23")][P("0x113")](i.longitude),
            a = e[P("0x23")].toDegrees(i[P("0x114")]);

        this._zFactor = i[P("0x8b")];

        for (var s = 0; s < t[P("0x0")]; s++) {
          var x = e[P("0x13")][P("0x175")](t[s]),
              l = e.Math[P("0x113")](x[P("0x112")]),
              c = e[P("0x23")].toDegrees(x[P("0x114")]),
              u = new e[P("0x10")](l, c);
          this[P("0xdee")][P("0x17c")](u), o < l && (o = l), l < r && (r = l), a < c && (a = c), c < n && (n = c);
        }

        this[P("0xdfc")] = r, this[P("0xdfd")] = n, this[P("0xdfe")] = new e[P("0x11")][P("0x1a1")]((r + o) / 2, (n + a) / 2, this._zFactor);
      }, i[P("0x5")][P("0xdff")] = function () {
        var t = this._scene,
            i = t[P("0xb84")];

        if (e[P("0x14")](this[P("0xdf6")]) || (this[P("0xdf6")] = new e.Camera(t)), !e[P("0x14")](this._reflectPassState)) {
          var r = new e[P("0x78f")]({
            context: i,
            colorTextures: [new e[P("0x6db")]({
              context: i,
              width: 512,
              height: 512,
              pixelFormat: e.PixelFormat[P("0xb85")]
            })],
            depthRenderbuffer: new e.Renderbuffer({
              context: i,
              format: e[P("0xe00")][P("0xe01")],
              width: 512,
              height: 512
            })
          });
          this[P("0xdf7")] = new e[P("0xe02")](i), this[P("0xdf7")].viewport = new e[P("0xbe2")](0, 0, 512, 512), this[P("0xdf7")][P("0x796")] = r;
        }

        this[P("0xe03")] = !0, this[P("0xdfa")]();
      }, i[P("0x5")].update = function (t) {
        if (e[P("0x14")](this[P("0xe04")])) {
          var i = this[P("0x42")];

          if (0 !== i[P("0x7e")][P("0xe05")][P("0x0")]) {
            this[P("0xe03")] || this[P("0xdff")]();
            var r = i._context;
            this[P("0xe06")] = 1 / (0.001 * this[P("0xdf1")]);
            var n = new e[P("0x11")](this._waterCenterPos.x, this[P("0xdfe")].y, this[P("0xdfe")].z),
                o = e[P("0x13")][P("0x175")](this[P("0xdfe")]),
                a = e[P("0x23")][P("0x113")](o[P("0x112")]),
                s = e[P("0x23")][P("0x113")](o[P("0x114")]),
                x = e[P("0x11")][P("0x1a1")](a, s, 0);
            e[P("0x11")][P("0x8d")](x, x);
            var l = new e.Cartesian3(0, 1, 0),
                c = new e.Cartesian3(0, 1, 0);
            c = e[P("0x11")][P("0x99")](l, x, c), e[P("0x11")][P("0x8d")](c, c), l = e[P("0x11")][P("0x99")](x, c, l);
            var u = new e[P("0x1a")]();
            e[P("0x1a")][P("0xe07")](u, 0, c, u), e[P("0x1a")][P("0xe07")](u, 1, l, u), e[P("0x1a")].setRow(u, 2, x, u);
            var h = new e[P("0x11")](),
                f = new e[P("0x11")](-n.x, -n.y, -n.z);
            e[P("0x1a")][P("0xce")](u, f, h);
            var d = new e[P("0x1b")](u[0], u[3], u[6], h.x, u[1], u[4], u[7], h.y, u[2], u[5], u[8], h.z, 0, 0, 0, 1);
            this[P("0xe08")] = new e[P("0x1b")](), e[P("0x1b")].multiply(d, t.camera[P("0x8c5")], this.invWorldViewMatrix), this[P("0x4ac")] = new e[P("0x1b")](1, 0, 0, n.x, 0, 1, 0, n.y, 0, 0, 1, n.z, 0, 0, 0, 1), this[P("0xe09")] = new e[P("0x1b")](), this[P("0xe0a")] = new e.Matrix4(), this.modelViewMatrix = e.Matrix4.multiply(t[P("0x7e")][P("0x5e0")], this[P("0x4ac")], this[P("0xe09")]), this[P("0xe0a")] = e.Matrix4[P("0x737")](t.camera[P("0xe05")][0][P("0xb5e")], this.modelViewMatrix, this.modeiViewProjection);
            var g = e[P("0x560")][P("0x561")]();
            0 == this[P("0xdf5")] && (this[P("0xdf5")] = g[P("0x6e5")]);
            var p = g.secondsOfDay;

            if (this[P("0xe0b")] = (p - this[P("0xdf5")]) / 1, this[P("0xe0c")] = this[P("0xe0b")] * this[P("0xdf3")], this[P("0xe0d")] = this[P("0xdf2")] * Math.PI / 180, null == this[P("0x6ce")]) {
              var m = e[P("0x5dc")][P("0x5d7")]({
                context: r,
                vertexShaderSource: P("0xe0e"),
                fragmentShaderSource: P("0xe0f")
              }),
                  b = e.RenderState[P("0x5d7")]({
                depthTest: {
                  enabled: !0
                }
              }),
                  v = this;
              this[P("0xe10")] = {
                u_bgColor: function u_bgColor() {
                  return v[P("0xdef")];
                },
                u_texCoordOffset: function u_texCoordOffset() {
                  return new e.Cartesian2(-v[P("0xdfc")], -v[P("0xdfd")]);
                },
                u_texCoordScale: function u_texCoordScale() {
                  return new e[P("0x10")](v[P("0xe06")], v[P("0xe06")]);
                },
                u_scale: function u_scale() {
                  return new e[P("0x11")](3, 3, 3);
                },
                u_camPos: function u_camPos() {
                  return new e[P("0x11")](3, 3, 3);
                },
                u_modelViewProjectionMatrix: function u_modelViewProjectionMatrix() {
                  return v[P("0xe0a")];
                },
                u_modelViewMatrix: function u_modelViewMatrix() {
                  return v[P("0xe09")];
                },
                u_clampToGroud: function u_clampToGroud() {
                  return 0;
                },
                u_invWorldViewMatrix: function u_invWorldViewMatrix() {
                  return v[P("0xe08")];
                },
                u_frameTime: function u_frameTime() {
                  return v[P("0xe0c")];
                },
                u_normalMap: function u_normalMap() {
                  return v._normalTexture;
                },
                u_refractMap: function u_refractMap() {
                  return v[P("0xdf4")];
                },
                u_useRefractTex: function u_useRefractTex() {
                  return 0;
                },
                u_reflectMap: function u_reflectMap() {
                  return v[P("0xdf7")][P("0x796")][P("0xe11")](0);
                },
                u_reflection: function u_reflection() {
                  return 1;
                },
                u_waterColor: function u_waterColor() {
                  return v._waterColor;
                },
                u_refractColor: function u_refractColor() {
                  return v[P("0xdf0")];
                },
                u_reflectColor: function u_reflectColor() {
                  return v[P("0xe12")];
                },
                u_flowDir: function u_flowDir() {
                  return new e[P("0x10")](0.5 * Math.sin(v._flowAngle) + 0.5, 0.5 * Math.cos(v[P("0xe0d")]) + 0.5);
                }
              }, this[P("0xe13")] = e.PolygonGeometry.createGeometry(this._waterPolygon);

              for (var C = this[P("0xe13")][P("0xc1e")], y = this[P("0xe13")][P("0x18f")][P("0x8c")].values, _ = 0; _ < y[P("0x0")]; _++) {
                _ % 3 == 0 && (y[_] = y[_] - n.x), _ % 3 == 1 && (y[_] = y[_] - n.y), _ % 3 == 2 && (y[_] = y[_] - n.z);
              }

              for (var A = [], I = 0; I < this[P("0xdee")][P("0x0")]; I++) {
                A[P("0x17c")](this._pointsToCartographic[I].x, this[P("0xdee")][I].y);
              }

              var w = new Float64Array(A),
                  G = e[P("0x5ea")][P("0x5ec")]({
                context: r,
                typedArray: new Uint32Array(C),
                usage: e[P("0x4d5")][P("0x4d6")],
                indexDatatype: e[P("0x742")][P("0xe14")]
              }),
                  E = e[P("0x5ea")].createVertexBuffer({
                context: r,
                typedArray: e[P("0x5e8")][P("0x5e7")](e[P("0x5e8")].FLOAT, y),
                usage: e[P("0x4d5")][P("0x4d6")]
              }),
                  S = e.Buffer.createVertexBuffer({
                context: r,
                typedArray: e.ComponentDatatype[P("0x5e7")](e[P("0x5e8")][P("0x5e9")], w),
                usage: e[P("0x4d5")][P("0x4d6")]
              }),
                  T = [];
              T[P("0x17c")]({
                index: 0,
                vertexBuffer: E,
                componentDatatype: e[P("0x5e8")][P("0x5e9")],
                componentsPerAttribute: 3,
                normalize: !1
              }), T[P("0x17c")]({
                index: 1,
                vertexBuffer: S,
                componentDatatype: e[P("0x5e8")].FLOAT,
                componentsPerAttribute: 2,
                normalize: !1
              });
              var M = new e[P("0x5ee")]({
                context: r,
                attributes: T,
                indexBuffer: G
              });
              this[P("0x6ce")] = new e[P("0x5d3")]({
                boundingVolume: this[P("0xe13")].boundingSphere,
                primitiveType: e.PrimitiveType.TRIANGLES,
                vertexArray: M,
                shaderProgram: m,
                castShadows: !1,
                receiveShadows: !1,
                uniformMap: this[P("0xe10")],
                renderState: b,
                pass: e[P("0x5e4")][P("0x5e5")]
              }), this._drawCommand[P("0xe15")] = P("0xe15");
            }

            null !== this[P("0xdf4")] && 1 == this[P("0xdf8")] && t[P("0x5ca")][P("0x17c")](this[P("0x6ce")]);
          }
        }
      }, i[P("0x5")][P("0xe16")] = function (t) {
        if (this[P("0xe03")]) {
          this.modelViewMatrix = e.Matrix4.multiply(t[P("0x7e")][P("0x5e0")], this[P("0x4ac")], this[P("0xe09")]), this.modeiViewProjection = e[P("0x1b")].multiply(t[P("0x7e")][P("0xe05")][0][P("0xb5e")], this[P("0xe09")], this.modeiViewProjection);
          var i = new e[P("0x11")](this[P("0xdfe")].x, this[P("0xdfe")].y, this[P("0xdfe")].z),
              r = new e[P("0x11")](i.x, i.y, i.z);
          e[P("0x11")][P("0x8d")](r, r);
          var n = e[P("0x1c")][P("0xb9")](i, r),
              o = new e[P("0x11")](r.x, r.y, r.z),
              a = -e[P("0x11")][P("0x92")](r, i),
              s = new e[P("0x1b")](-2 * o.x * o.x + 1, -2 * o.x * o.y, -2 * o.x * o.z, -2 * o.x * a, -2 * o.y * o.x, -2 * o.y * o.y + 1, -2 * o.y * o.z, -2 * o.y * a, -2 * o.z * o.x, -2 * o.z * o.y, -2 * o.z * o.z + 1, -2 * o.z * a, 0, 0, 0, 1),
              x = new e[P("0x11")]();
          e[P("0x11")].clone(t.camera[P("0x93")], x);
          var l = new e[P("0x11")](),
              c = new e.Cartesian3();
          e[P("0x11")][P("0x6c")](o, 2 * e[P("0x11")].dot(x, o), c), e[P("0x11")][P("0x95")](x, c, l), e[P("0x11")][P("0x8d")](l, l);
          var u = new e[P("0x11")]();
          e[P("0x11")][P("0x6e")](t[P("0x7e")].up, u);
          var h = new e.Cartesian3(),
              f = new e.Cartesian3(),
              d = e[P("0x11")].dot(u, o);
          e[P("0x11")][P("0x6c")](o, 2 * d, f), e[P("0x11")][P("0x6d")](u, f, h), e[P("0x11")][P("0x8d")](h, h);
          var g = new e.Cartesian3(-h.x, -h.y, -h.z),
              p = new e[P("0x11")](),
              m = (e[P("0x11")][P("0x6e")](t[P("0x7e")].position, p), new e[P("0x11")](s[0] * p.x + s[4] * p.y + s[8] * p.z + s[12], s[1] * p.x + s[5] * p.y + s[9] * p.z + s[13], s[2] * p.x + s[6] * p.y + s[10] * p.z + s[14])),
              b = new e[P("0x1b")]();
          t[P("0x7e")][P("0xe8")][P("0xc13")] = 1e8, e[P("0x1b")][P("0x6e")](t.camera[P("0xe8")][P("0xb5e")], b), this[P("0xdf6")][P("0x93")] = l, d < 0.5 && (this[P("0xdf6")].up = g), 0.5 <= d && (this[P("0xdf6")].up = h), this[P("0xdf6")][P("0x8c")] = m;
          var v = new e[P("0x1b")]();
          e[P("0x1b")][P("0x4e2")](this._reflectCamera.viewMatrix, v), e[P("0x1b")][P("0x5e3")](v, v);
          var C = new e[P("0x12")](n[P("0x4d0")].x, n.normal.y, n[P("0x4d0")].z, -e[P("0x11")][P("0x92")](r, i));
          e[P("0x1b")][P("0xce")](v, C, C);

          var y = C.w / Math[P("0xca")](C.x * C.x + C.y * C.y + C.z * C.z),
              _ = new e.Cartesian3(C.x, C.y, C.z);

          e[P("0x11")][P("0x8d")](_, _);
          var A = new e.Cartesian3(_.x, _.y, _.z),
              I = new e[P("0x12")]();
          I.x = (Math[P("0x97")](A.x) + b[8]) / b[0], I.y = (Math[P("0x97")](A.y) + b[9]) / b[5], I.z = -1, I.w = (1 + b[10]) / b[14];
          var w = new e[P("0x12")](A.x, A.y, A.z, y),
              G = new e[P("0x12")]();
          e.Cartesian4[P("0x6c")](w, 2 / e.Cartesian4[P("0x92")](w, I), G), b[2] = G.x, b[6] = G.y, b[10] = G.z + 1, b[14] = G.w, e[P("0x1b")][P("0x6e")](b, this[P("0xdf6")][P("0xe8")][P("0xb5e")]);
          var E = this[P("0x42")][P("0x6d9")],
              S = this[P("0x42")][P("0x3cc")],
              T = S[P("0xc28")];
          new e[P("0x790")]({
            color: e[P("0x16a")][P("0xac5")](14, 33, 60, 255),
            depth: 1,
            framebuffer: this._reflectPassState.framebuffer
          })[P("0x797")](S, this._reflectPassState);
          var M = this[P("0xdf6")];
          T[P("0xc12")](M);

          for (var N = M[P("0xe8")][P("0xbf0")](M[P("0xa5")], M[P("0xa6")], M.upWC), L = E.commandList, R = 0; R < L[P("0x0")]; R++) {
            var O = L[R];
            O instanceof e[P("0xe17")] || "water" != O[P("0xe15")] && O[P("0x5d4")] !== e[P("0x5e4")][P("0xc1d")] && t[P("0xd69")](O, N) && (T[P("0xc1b")](O[P("0x5d4")]), O.execute(S, this[P("0xdf7")]));
          }

          T[P("0xc12")](t[P("0x7e")]), T[P("0xc14")](t[P("0x7e")][P("0xe05")][0]);
        }
      }, i.prototype[P("0x985")] = function () {
        this[P("0xe03")] = !1, this[P("0xdf9")] = void 0, this[P("0x6ce")] = void 0;
      }, i[P("0x5")][P("0xf4")] = function () {
        this[P("0x42")][P("0x17d")][P("0x17f")](this), e[P("0x22b")](this);
      };
    }(window[P("0xfd")]), function (e) {
      var t = e[P("0x102")];

      function i(i) {
        i = t(i, t.EMPTY_OBJECT), this[P("0xe18")] = i.proxy, this[P("0x13b")] = i[P("0x13b")], this.url = i[P("0x6af")], this[P("0xe19")] = i.metadata, this[P("0xe1a")] = i.roadMetadata, this[P("0xe1b")] = i[P("0xe1b")], this[P("0xe1c")] = i.labelGraphics ? i.labelGraphics : {}, this[P("0xe1d")] = i[P("0xe1d")] ? i.billboardGraphics : {}, this[P("0xe1e")] = !!i.aotuCollide, this.collisionPadding = i[P("0xe1f")] ? i[P("0xe1f")] : [3, 5, 3, 5], this[P("0xe20")] = !!i[P("0xe20")], this[P("0xa4e")] = i.subdomains, Array.isArray(this[P("0xa4e")]) ? this[P("0xa4e")] = this[P("0xa4e")].slice() : e[P("0x14")](this[P("0xa4e")]) && 0 < this[P("0xa4e")][P("0x0")] ? this[P("0xa4e")] = this[P("0xa4e")][P("0x7f2")]("") : this[P("0xa4e")] = ["a", "b", "c"], this[P("0xe21")] = [], this[P("0xe22")] = [], this[P("0xe23")] = !1, this[P("0xe24")] = [], this._latelyRefreshStamp = 0, this._latelyCollisionStamp = 0;
        var r = e[P("0x75c")]();
        this[P("0xe25")] = P("0xe26") + r, this[P("0xe27")] = "GEO_WTFS_LABEL_ROAD_" + r, this[P("0x13b")][P("0x7e")].percentageChanged = 0.18, this.bindEvent();
      }

      function r(e, t) {
        return t[P("0xe77")] >= e[P("0xe77")] && t.minX <= e.maxX && t[P("0x4d2")] >= e[P("0x4d2")] && t[P("0x4d2")] <= e.maxY || t[P("0xe78")] >= e[P("0xe77")] && t.maxX <= e[P("0xe78")] && t[P("0xe79")] >= e[P("0x4d2")] && t[P("0xe79")] <= e.maxY || t[P("0xe77")] >= e[P("0xe77")] && t[P("0xe77")] <= e[P("0xe78")] && t[P("0xe79")] >= e[P("0x4d2")] && t.maxY <= e[P("0xe79")] || t[P("0xe78")] >= e[P("0xe77")] && t.maxX <= e.maxX && t[P("0x4d2")] >= e[P("0x4d2")] && t[P("0x4d2")] <= e.maxY;
      }

      function n(e, t) {
        var i = e.x,
            r = e.y,
            n = e.width,
            o = e.height,
            a = t.x,
            s = t.y,
            x = t[P("0x19a")],
            l = t[P("0x8b")];
        return !(a <= i && a + x <= i || i <= a && i + n <= a || s <= r && s + l <= r || r <= s && r + o <= s);
      }

      e[P("0x14")], e.defineProperties(i[P("0x5")], {}), i.prototype[P("0xe28")] = function (e, t, i, r) {
        for (var n = 0; n < this[P("0xe21")].length; n++) {
          if (this[P("0xe21")][n].x === e && this[P("0xe21")][n].y === t && this[P("0xe21")][n].z === i && this[P("0xe21")][n].t === r) return this[P("0xe21")][n];
        }

        return null;
      }, i[P("0x5")].addCacheTile = function (e) {
        999 < this[P("0xe21")][P("0x0")] && this[P("0xe21")][P("0x259")](0, 500), this[P("0xe29")](e.x, e.y, e.z, e.t), this[P("0xe21")][P("0x17c")](e);
      }, i[P("0x5")][P("0xe29")] = function (e, t, i, r) {
        for (var n = 0; n < this.tileCache[P("0x0")]; n++) {
          if (this[P("0xe21")][n].x === e && this[P("0xe21")][n].y === t && this[P("0xe21")][n].z === i && this[P("0xe21")][n].t === r) {
            this[P("0xe21")][P("0x259")](n, 1);
            break;
          }
        }
      }, i.prototype[P("0xe2a")] = function (e) {
        for (var t = 0; t < this.labelCache[P("0x0")]; t++) {
          if (this.labelCache[t][P("0x176")] === this[P("0xe25")] && this[P("0xe22")][t][P("0xe2b")] === e) return this.labelCache[t];
        }

        return null;
      }, i[P("0x5")][P("0xe2c")] = function (e) {
        999 < this[P("0xe22")].length && this[P("0xe22")].splice(0, 250), this[P("0xe2d")](e[P("0xe2b")]), e[P("0xe2e")] = new Date().getTime(), this[P("0xe22")][P("0x17c")](e);
      }, i[P("0x5")][P("0xe2d")] = function (e) {
        for (var t = 0; t < this[P("0xe22")].length; t++) {
          if (this[P("0xe22")][t][P("0x176")] === this._UUID && this.labelCache[t][P("0xe2b")] === e) {
            this[P("0xe22")][P("0x259")](t, 1);
            break;
          }
        }
      }, i[P("0x5")][P("0xe2f")] = function () {
        return (this[P("0xe18")] ? this.proxy.proxy : "") + this.url + P("0xe30");
      }, i.prototype[P("0xe31")] = function () {
        return (this[P("0xe18")] ? this.proxy[P("0xe18")] : "") + this.url + P("0xe32");
      }, i[P("0x5")][P("0xe33")] = function () {
        return (this[P("0xe18")] ? this[P("0xe18")][P("0xe18")] : "") + this[P("0xe1b")];
      }, i.prototype[P("0xaf6")] = function () {
        var e = this;
        clearTimeout(this[P("0xe34")]);
        var t = this[P("0x13b")].scene[P("0xa3")][P("0xa2e")];
        if (t[P("0xe35")][P("0x0")] < 2 || 0 < t._tileLoadQueueHigh.length) this[P("0xe34")] = setTimeout(function () {
          e[P("0xaf6")]();
        }, 100);else {
          var i = this[P("0xe36")]();
          if (this[P("0xe37")](i, this._latelyGrid)) return;
          this[P("0xe38")](i), e.delaySynchronous();
        }
      }, i[P("0x5")][P("0xaf7")] = function () {
        var e = new Date().getTime(),
            t = e - this[P("0xe39")],
            i = e - this[P("0xe3a")];
        300 < t && this[P("0xaf6")](), 150 < i && this[P("0xe3b")]();
      }, i[P("0x5")]._queueCall = function (e) {
        var t = this;
        t[P("0xe24")] = e, t[P("0xe39")] = new Date()[P("0x68")](), e[P("0x1e4")](function (e, i, n) {
          if (t[P("0xe19")] && r(t.metadata[P("0xe3c")], e.boundBox)) {
            if (t.metadata[P("0xe3d")] > e[P("0x968")] + 1 || t[P("0xe19")][P("0x109")] < e[P("0x968")] + 1) return;
            var o = t[P("0xe28")](e.x, e.y, e.level + 1, 0);
            if (o) t.addLabelAndIco(o);else {
              var s = t[P("0xe2f")]().replace(P("0xe3e"), e.level + 1)[P("0xa1c")]("{y}", e.y).replace(P("0xe3f"), e.x).replace(P("0xa04"), t[P("0xa4e")][(e.x + e.y + e[P("0x968")]) % t[P("0xa4e")][P("0x0")]]),
                  x = new XMLHttpRequest();
              x[P("0xaa0")](P("0xa9f"), s, !0), x[P("0xaa1")] = P("0xaa2"), x[P("0xad2")] = function () {
                if (!(x.status < 200 || 300 <= x[P("0xaa7")])) {
                  var e = t[P("0xe40")](x[P("0xaa8")]);
                  if (e) (i = a(e)).x = this.tile.x, i.y = this[P("0xe41")].y, i.z = this.tile.z, i.t = 0, t[P("0xe42")](i), t[P("0xe43")](i);else {
                    var i = {
                      x: this[P("0xe41")].x,
                      y: this[P("0xe41")].y,
                      z: this[P("0xe41")].z,
                      t: 0
                    };
                    t[P("0xe42")](i), t[P("0xe44")]();
                  }
                }
              }, x[P("0xad0")] = function (e) {
                console[P("0x391")](e);
              }, x[P("0xe45")](), x.tile = {
                x: e.x,
                y: e.y,
                z: e[P("0x968")] + 1
              };
            }
          }

          if (t[P("0xe1a")] && r(t[P("0xe1a")][P("0xe3c")], e.boundBox)) {
            if (t[P("0xe1a")][P("0xe3d")] > e[P("0x968")] + 1 || t[P("0xe1a")][P("0x109")] < e[P("0x968")] + 1) return;
            if (o = t[P("0xe28")](e.x, e.y, e[P("0x968")] + 1, 1)) t[P("0xe43")](o);else {
              var l = t[P("0xe33")]()[P("0xa1c")](P("0xe3e"), e[P("0x968")] + 1).replace("{y}", e.y)[P("0xa1c")]("{x}", e.x),
                  c = new XMLHttpRequest();
              c[P("0xaa0")](P("0xa9f"), l, !0), c[P("0xaa1")] = P("0xe46"), c[P("0xad2")] = function () {
                if (!(c[P("0xaa7")] < 200 || 300 <= c[P("0xaa7")])) {
                  var e = c[P("0xaa8")];

                  if (e) {
                    var i = {
                      pois: e[P("0x815")](function (e, t, i) {
                        return {
                          oid: e.LabelPoint.X + "_" + e[P("0xe47")].Y,
                          name: e[P("0x344")][P("0x33d")][P("0xe48")],
                          coordinate: [e.LabelPoint.X, e.LabelPoint.Y, e.LabelPoint.Z ? e[P("0xe47")].Z : 0]
                        };
                      }),
                      x: this[P("0xe41")].x,
                      y: this[P("0xe41")].y,
                      z: this.tile.z,
                      t: 1
                    };
                    t[P("0xe42")](i), t[P("0xe43")](i);
                  } else i = {
                    x: this.tile.x,
                    y: this[P("0xe41")].y,
                    z: this.tile.z,
                    t: 1
                  }, t[P("0xe42")](i), t[P("0xe44")]();
                }
              }, c.onerror = function (e) {
                console.error(e);
              }, c[P("0xe45")](), c[P("0xe41")] = {
                x: e.x,
                y: e.y,
                z: e[P("0x968")] + 1
              };
            }
          }
        });
      }, i[P("0x5")][P("0xe49")] = function (e) {
        var t = 0,
            i = this;
        i[P("0xe23")] = !0, i[P("0xe38")](e);
        var r = setInterval(function () {
          3 < t && (i[P("0xe23")] = !1, clearInterval(r)), t % 2 == 0 && i[P("0xe1e")] && i[P("0xe3b")](), t++;
        }, 600);
        return i;
      }, i[P("0x5")][P("0xe36")] = function () {
        for (var t = this[P("0x13b")][P("0x10f")][P("0xa3")][P("0xa2e")]._tilesToRender.map(function (t, i, r) {
          return {
            x: t.x,
            y: t.y,
            level: t.level,
            boundBox: {
              minX: e[P("0x23")][P("0x113")](t[P("0x969")].west),
              minY: e[P("0x23")][P("0x113")](t[P("0x969")].south),
              maxX: e[P("0x23")][P("0x113")](t[P("0x969")][P("0x2aa")]),
              maxY: e.Math[P("0x113")](t[P("0x969")][P("0x2ac")])
            }
          };
        }).sort(function (e, t) {
          return t[P("0x968")] - e.level;
        }), i = [t[0][P("0x968")]], r = 0; r < t[P("0x0")]; r++) {
          t[r][P("0x968")] != i[i.length - 1] && i[P("0x17c")](t[r][P("0x968")]), 4 < i[P("0x0")] && (t[P("0x259")](r), r--);
        }

        return t;
      }, i.prototype.addLabelAndIco = function (e) {
        if (e.pois) for (var t = 0; t < e[P("0xe4a")][P("0x0")]; t++) {
          var i = this[P("0xe2a")](e[P("0xe4a")][t][P("0xe2b")]);
          i = i || this[P("0xe4b")](e[P("0xe4a")][t], e), this[P("0xe2c")](i);
        }
        this[P("0xe44")]();
      }, i[P("0x5")].delaySynchronous = function () {
        var e = this;
        clearTimeout(e._timer2), e[P("0xe4c")] = setTimeout(function () {
          e.synchronousLabel();
        }, 100);
      }, i[P("0x5")].synchronousLabel = function () {
        for (var e = 0; e < this.labelCache[P("0x0")]; e++) {
          this[P("0xe22")][e].timestamp >= this[P("0xe39")] && !this.viewer[P("0x194")].contains(this.labelCache[e]) && (this._isInitial && this[P("0xe1e")] && (this[P("0xe22")][e][P("0x221")] = !1), this[P("0x13b")][P("0x194")][P("0x6d")](this.labelCache[e]));
        }

        if (!this[P("0xe23")]) {
          for (e = 0; e < this.viewer.entities[P("0x190")][P("0x0")]; e++) {
            !this[P("0x13b")][P("0x194")][P("0x190")][e][P("0x176")] || this[P("0x13b")][P("0x194")][P("0x190")][e][P("0x176")] !== this[P("0xe25")] && this.viewer[P("0x194")][P("0x190")][e].name !== this[P("0xe27")] || this[P("0x13b")][P("0x194")][P("0x190")][e].timestamp < this._latelyRefreshStamp && (this[P("0x13b")][P("0x194")].remove(this[P("0x13b")][P("0x194")][P("0x190")][e]), e--);
          }

          this[P("0xe1e")] && this[P("0xe3b")]();
        }
      }, i.prototype[P("0xe4b")] = function (t, i) {
        if (t) {
          var r,
              n,
              o = {
            show: !0,
            position: e[P("0x11")].fromDegrees(t[P("0xe4d")][0], t[P("0xe4d")][1], t[P("0xe4d")][2]),
            label: {
              text: t.name
            }
          };
          this.serverFirstStyle && void 0 !== t.fontSize ? (o.label[P("0xe4e")] = t.fontSize + P("0xe4f"), void 0 !== t.fontNameIndex && i[P("0xe50")] && i[P("0xe50")][t.fontNameIndex] ? o[P("0xe51")][P("0xe4e")] += i[P("0xe50")][t.fontNameIndex] : o[P("0xe51")].font += P("0xe52"), !this[P("0xe1c")][P("0x3fa")] && 1 !== t[P("0xe53")] && 3 !== t[P("0xe53")] || (r = !0), 2 !== t[P("0xe53")] && 3 !== t.fontStyle || (n = !0), r && (o[P("0xe51")][P("0xe4e")] = P("0xe54") + o[P("0xe51")].font), n && (o[P("0xe51")][P("0xe4e")] = P("0xe55") + o[P("0xe51")][P("0xe4e")])) : this[P("0xe1c")][P("0xe4e")] && (o[P("0xe51")].font = this[P("0xe1c")][P("0xe4e")]), this[P("0xe20")] && void 0 !== t[P("0xe56")] ? o[P("0xe51")].fillColor = e[P("0x16a")].fromCssColorString(this.HexadecimalConversion(t[P("0xe56")])) : this.labelGraphics.fillColor && (o.label[P("0x3dd")] = this[P("0xe1c")][P("0x3dd")]), this[P("0xe20")] && void 0 !== t[P("0xe57")] ? o[P("0xe51")].outlineColor = e.Color[P("0x27e")](this.HexadecimalConversion(t[P("0xe57")])) : this[P("0xe1c")][P("0x3df")] && (o[P("0xe51")][P("0x3df")] = this[P("0xe1c")][P("0x3df")]), this[P("0xe20")] && w()(t.shiningSize) === P("0x49f") ? o.label[P("0x3de")] = t[P("0xe58")] : void 0 !== this[P("0xe1c")].outlineWidth && (o[P("0xe51")][P("0x3de")] = this[P("0xe1c")][P("0x3de")]), this.serverFirstStyle && void 0 !== t[P("0x3d8")] ? o[P("0xe51")][P("0x3d8")] = t[P("0x3d8")] : void 0 !== this[P("0xe1c")].showBackground && (o[P("0xe51")][P("0x3d8")] = this[P("0xe1c")].showBackground), this.serverFirstStyle && void 0 !== t.backgroundColor ? o[P("0xe51")][P("0x3d9")] = t[P("0x3d9")] : void 0 !== this[P("0xe1c")][P("0x3d9")] && (o[P("0xe51")][P("0x3d9")] = this[P("0xe1c")][P("0x3d9")]), this.serverFirstStyle && void 0 !== t[P("0xe59")] ? o[P("0xe51")].backgroundPadding = t.backgroundPadding : void 0 !== this[P("0xe1c")][P("0xe59")] && (o[P("0xe51")][P("0xe59")] = this[P("0xe1c")][P("0xe59")]), i.t ? (o[P("0xe51")].verticalOrigin = e[P("0x24d")][P("0x24c")], o[P("0xe51")][P("0x3da")] = e[P("0x24b")][P("0x24c")]) : (this[P("0xe20")] && void 0 !== t[P("0x3db")] ? o[P("0xe51")][P("0x3db")] = t[P("0x3db")] : void 0 !== this[P("0xe1c")].verticalOrigin && (o[P("0xe51")][P("0x3db")] = this[P("0xe1c")][P("0x3db")]), this[P("0xe20")] && void 0 !== t[P("0x3da")] ? o.label[P("0x3da")] = t[P("0x3da")] : void 0 !== this[P("0xe1c")].horizontalOrigin && (o[P("0xe51")].horizontalOrigin = this[P("0xe1c")].horizontalOrigin)), this[P("0xe20")] && void 0 !== t.eyeOffset ? o[P("0xe51")][P("0xe5a")] = t[P("0xe5a")] : void 0 !== this[P("0xe1c")][P("0xe5a")] && (o.label[P("0xe5a")] = this[P("0xe1c")][P("0xe5a")]), this[P("0xe20")] && void 0 !== t[P("0x3dc")] ? o[P("0xe51")][P("0x3dc")] = t.pixelOffset : void 0 !== this[P("0xe1c")].pixelOffset && (o[P("0xe51")].pixelOffset = this.labelGraphics[P("0x3dc")]), this[P("0xe20")] && void 0 !== t[P("0x150")] ? o.label[P("0x150")] = t[P("0x150")] : void 0 !== this[P("0xe1c")][P("0x150")] && (o[P("0xe51")].style = this.labelGraphics[P("0x150")]), this[P("0xe20")] && void 0 !== t[P("0xfc")] ? o.label.scale = t.scale : void 0 !== this[P("0xe1c")].scale && (o.label[P("0xfc")] = this[P("0xe1c")][P("0xfc")]), o[P("0xe51")][P("0xe5b")] = this.labelGraphics[P("0xe5b")], o.label[P("0xe5c")] = this[P("0xe1c")][P("0xe5c")] ? this.labelGraphics.heightReference : e.HeightReference[P("0xe5d")], void 0 !== t.symbolID && -1 < t[P("0xe5e")] && (o[P("0xe5f")] = {
            image: this[P("0xe31")]()[P("0xa1c")](P("0xe60"), t[P("0xe5e")])[P("0xa1c")](P("0xa04"), this.subdomains[(i.x + i.y + i.z) % this[P("0xa4e")][P("0x0")]])
          }, this[P("0xe20")] && void 0 !== t[P("0xe61")] ? (o.billboard.width = t.displayHeight, o[P("0xe5f")].height = t[P("0xe61")]) : void 0 === this.billboardGraphics[P("0x19a")] && void 0 === this[P("0xe1d")][P("0x8b")] || (o[P("0xe5f")].width = this[P("0xe1d")].width, o.billboard[P("0x8b")] = this.billboardGraphics[P("0x8b")]), i.t ? (o.label[P("0x3db")] = e[P("0x24d")][P("0x3c7")], o[P("0xe51")][P("0x3da")] = e[P("0x24b")][P("0x24c")]) : (this[P("0xe20")] && void 0 !== t[P("0x3db")] ? o[P("0xe5f")].verticalOrigin = t.verticalOrigin : void 0 !== this.billboardGraphics.verticalOrigin && (o[P("0xe5f")][P("0x3db")] = this[P("0xe1d")][P("0x3db")]), this[P("0xe20")] && void 0 !== t[P("0x3da")] ? o[P("0xe5f")].horizontalOrigin = t.horizontalOrigin : void 0 !== this.billboardGraphics[P("0x3da")] && (o[P("0xe5f")][P("0x3da")] = this[P("0xe1d")][P("0x3da")])), this[P("0xe20")] && void 0 !== t[P("0xe5a")] ? o[P("0xe5f")][P("0xe5a")] = t[P("0xe5a")] : void 0 !== this[P("0xe1d")].eyeOffset && (o[P("0xe5f")][P("0xe5a")] = this[P("0xe1d")][P("0xe5a")]), this[P("0xe20")] && void 0 !== t.pixelOffset ? o.billboard[P("0x3dc")] = t[P("0x3dc")] : void 0 !== this.billboardGraphics[P("0x3dc")] && (o[P("0xe5f")].pixelOffset = this[P("0xe1d")][P("0x3dc")]), this[P("0xe20")] && void 0 !== t[P("0xfb")] ? o[P("0xe5f")][P("0xfb")] = t[P("0xfb")] : void 0 !== this.billboardGraphics.rotation && (o.billboard[P("0xfb")] = this.billboardGraphics[P("0xfb")]), this[P("0xe20")] && void 0 !== t.alignedAxis ? o[P("0xe5f")][P("0xe62")] = t[P("0xe62")] : void 0 !== this.billboardGraphics[P("0xe62")] && (o[P("0xe5f")].alignedAxis = this.billboardGraphics[P("0xe62")]), this[P("0xe20")] && void 0 !== t[P("0x169")] ? o[P("0xe5f")].color = t[P("0x169")] : void 0 !== this[P("0xe1d")].color && (o[P("0xe5f")][P("0x169")] = this[P("0xe1d")].color), this.serverFirstStyle && void 0 !== t[P("0xfc")] ? o[P("0xe5f")][P("0xfc")] = t.scale : void 0 !== this[P("0xe1d")].scale && (o[P("0xe5f")].scale = this[P("0xe1d")][P("0xfc")]), o.billboard[P("0xe5b")] = this[P("0xe1d")][P("0xe5b")], o.billboard[P("0xe5c")] = this[P("0xe1d")][P("0xe5c")] ? this[P("0xe1d")][P("0xe5c")] : e[P("0xe63")].NONE);
          var a = new e[P("0x18e")](o);
          return a[P("0x176")] = i.t ? this[P("0xe27")] : this[P("0xe25")], a[P("0xe2b")] = t.oid, a[P("0xe64")] = t[P("0xe64")] ? t[P("0xe64")] : 0, a[P("0xe65")] = i.x + "_" + i.y + "_" + (i.z - 1), a;
        }
      }, i[P("0x5")].getPropertyValue = function (e, t, i, r) {
        return void 0 !== t[e] ? t[e] : void 0 !== i[e] ? i[e] : r;
      }, i.prototype[P("0xe3b")] = function () {
        if (this[P("0xe66")]) for (var t = document[P("0xe67")](P("0xe66")), i = 0; i < t[P("0x0")]; i++) {
          this[P("0x13b")][P("0x131")][P("0x41b")](t[i]), i--;
        }
        var r = [],
            o = this.viewer[P("0x194")][P("0x190")];

        for (i = 0; i < o[P("0x0")]; i++) {
          if (o[i][P("0x176")] && (o[i][P("0x176")] === this[P("0xe25")] || o[i][P("0x176")] === this[P("0xe27")])) {
            var a, s;
            a = e[P("0xe68")].wgs84ToDrawingBufferCoordinates(this[P("0x13b")][P("0x10f")], o[i].position[P("0x512")](0)), o[i][P("0x221")] = !0, s = this[P("0xe69")]({
              point: a,
              entity: o[i]
            }), o[i].collisionBox = s;

            for (var x = null, l = 0; l < r.length; l++) {
              if (r[l][P("0xe65")] === o[i].xyz) {
                x = r[l];
                break;
              }
            }

            if (x || (x = {
              xyz: o[i][P("0xe65")],
              entities: []
            }, r.push(x)), x[P("0x194")][P("0x17c")](o[i]), this[P("0xe66")]) {
              var c = document[P("0x15c")](P("0x15d"));
              c[P("0x21b")](P("0xe6a"), P("0xe66")), c[P("0x150")][P("0xe6b")] = P("0xe6c") + s.y + P("0xe6d") + s.x + P("0xe6e") + s.width + P("0xe6f") + s[P("0x8b")] + "px; border: solid 1px red; color: rgba(0,0,0,0);", c[P("0x40a")] = o[i][P("0xe51")][P("0x31b")].getValue(0), this[P("0x13b")].container.appendChild(c);
            }
          }
        }

        for (var u = 0; u < r[P("0x0")]; u++) {
          for (r[u].entities[P("0x3d2")](function (e, t) {
            return e[P("0xe64")] - t[P("0xe64")];
          }), i = 0; i < r[u][P("0x194")][P("0x0")]; i++) {
            if (r[u][P("0x194")][i].show) for (l = i + 1; l < r[u].entities[P("0x0")]; l++) {
              r[u].entities[l][P("0x221")] && n(r[u][P("0x194")][i][P("0xe70")], r[u][P("0x194")][l][P("0xe70")]) && (r[u][P("0x194")][l][P("0x221")] = !1);
            }
          }
        }

        var h = [];

        for (u = 0; u < r.length; u++) {
          for (i = 0; i < r[u][P("0x194")][P("0x0")]; i++) {
            r[u][P("0x194")][i][P("0x221")] && h[P("0x17c")](r[u][P("0x194")][i]);
          }
        }

        for (i = 0; i < h[P("0x0")]; i++) {
          if (h[i][P("0x221")]) for (h[P("0x3d2")](function (e, t) {
            return e.priority - t[P("0xe64")];
          }), l = i + 1; l < h[P("0x0")]; l++) {
            h[l].show && n(h[i][P("0xe70")], h[l][P("0xe70")]) && (h[l].show = !1);
          }
        }
      }, i[P("0x5")][P("0xe71")] = function () {
        this[P("0x13b")].scene[P("0x7e")][P("0xe72")][P("0x130")](this[P("0xaf6")], this), this.viewer.scene.camera[P("0xe73")][P("0x130")](this[P("0xaf7")], this);
      }, i[P("0x5")][P("0xe74")] = function () {
        this[P("0x13b")][P("0x10f")][P("0x7e")][P("0xe72")][P("0x548")](this[P("0xaf6")], this), this[P("0x13b")][P("0x10f")].camera[P("0xe73")][P("0x548")](this[P("0xaf7")], this);
      }, i.prototype[P("0x198")] = function () {
        this[P("0xe24")] = [], this[P("0xaf6")]();
      }, i[P("0x5")][P("0xf4")] = function () {
        for (var e = 0; e < this[P("0x13b")][P("0x194")][P("0x190")][P("0x0")]; e++) {
          !this.viewer[P("0x194")][P("0x190")][e].name || this.viewer.entities[P("0x190")][e][P("0x176")] !== this._UUID && this.viewer.entities.values[e].name !== this[P("0xe27")] || (this[P("0x13b")][P("0x194")].remove(this[P("0x13b")].entities[P("0x190")][e]), e--);
        }

        this[P("0x13b")][P("0x7e")].percentageChanged = 0.5, this[P("0xe74")](), this[P("0x16f")] = this[P("0x16f")] && this[P("0x16f")].destroy(), this[P("0xe18")] = void 0, this[P("0x13b")] = void 0, this[P("0x6af")] = void 0, this[P("0xe1c")] = void 0, this[P("0xe1d")] = void 0, this[P("0xe1e")] = void 0, this.collisionPadding = void 0, this.tileCache = void 0, this.labelCache = void 0, this[P("0xe24")] = void 0, this[P("0xe39")] = void 0, this[P("0xe75")] = void 0;
      }, i[P("0x5")][P("0xe37")] = function (e, t) {
        for (var i = !1, r = 0; r < e[P("0x0")]; r++) {
          for (var n = !1, o = 0; o < t.length; o++) {
            if (e[r].x === t[o].x && e[r].y === t[o].y && e[r].level === t[o][P("0x968")]) {
              n = !0;
              break;
            }
          }

          if (!n) {
            i = !0;
            break;
          }
        }

        return !i;
      }, i.prototype[P("0xe69")] = function (e) {
        var t = p()(e[P("0xe76")].label[P("0xe4e")]);
        t = 0 < t ? t : 15;

        for (var i = e[P("0xe76")].label[P("0x31b")][P("0x512")](0)[P("0x7f2")]("\n"), r = 0, n = i[P("0x0")], a = 0; a < i[P("0x0")]; a++) {
          var s = o(i[a]) / 2;
          r < s && (r = s);
        }

        var x = e[P("0xe76")][P("0xe5f")] ? e[P("0xe76")][P("0xe5f")][P("0x19a")][P("0x512")](0) * e[P("0xe76")][P("0xe5f")].scale[P("0x512")](0) : 1,
            l = e.entity[P("0xe5f")] ? e[P("0xe76")].billboard.height.getValue(0) * e.entity[P("0xe5f")][P("0xfc")][P("0x512")](0) : 1;
        return {
          x: (e[P("0x2ec")] ? e[P("0x2ec")].x : -999) - x / 2 - this[P("0xe1f")][3],
          y: (e[P("0x2ec")] ? e.point.y : -999) - l / 2 - this[P("0xe1f")][0],
          width: t * e[P("0xe76")][P("0xe51")][P("0xfc")][P("0x512")](0) * r + e[P("0xe76")][P("0xe51")][P("0x3dc")][P("0x512")](0).x + x + this[P("0xe1f")][1],
          height: t * e[P("0xe76")][P("0xe51")].scale.getValue(0) * (n + 0.5 * (n - 1)) + e[P("0xe76")][P("0xe51")][P("0x3dc")][P("0x512")](0).y + l / 2 + this[P("0xe1f")][2]
        };
      }, i[P("0x5")].CutString = function (e) {
        if (!e) return "";
        var t = e[P("0xaa9")];
        return t <= 28 ? "" : e[P("0x1d5")](19, t - 9);
      }, i[P("0x5")].HexadecimalConversion = function (e) {
        if (4278190080 === e) return "#000000";
        var t = 4278190080 | p()(-Number(e));
        if (e = "", (t = t[P("0x531")](16)[P("0x987")](1))[P("0x0")] < 6) for (var i = 6 - t[P("0x0")], r = 0; r < i; r++) {
          e += "0";
        }
        return "#" + e + t;
      }, i[P("0x5")].getLabelVisibility = function (e) {
        if (!e) return !1;
        var t = this[P("0x13b")][P("0x48")].getBoundingClientRect();
        return !(e.x < -10 || e.x > t[P("0x9b")] + 10 || e.y < -10 || e.y > t[P("0x9aa")] + 10);
      };

      var o = function o(e) {
        for (var t = 0, i = 0; i < e[P("0x0")]; i++) {
          null != e.charAt(i)[P("0x126")](/[^\x00-\xff]/gi) ? t += 2 : t += 1;
        }

        return t;
      },
          a = function a(e) {
        var t = {
          stringTable: [],
          pois: [],
          enumGeometryType: [{
            ePoint: 0
          }, {
            eMultiLineString: 1
          }, {
            ePolygon: 2
          }],
          enumZCoordType: [{
            eCloseGround: 0
          }, {
            eCloseSeaSurface: 1
          }, {
            eRelativelyGround: 2
          }, {
            eAbsolute: 3
          }]
        },
            i = function () {
          var e = P("0xe7a") + P("0xe7b") + P("0xe7c") + P("0xe7d") + P("0xe7e") + P("0xe7f") + P("0xe80") + P("0xe81") + P("0xe82") + P("0xe83") + P("0xe84") + P("0xe85") + P("0xe86") + P("0xe87") + P("0xe88") + P("0xe89") + P("0xe8a") + P("0xe8b") + P("0xe8c") + "};message StringTable {" + P("0xe8d") + "}" + P("0xe8e") + P("0xe8f") + "required int64 TileKey = 2;" + P("0xe90") + P("0xe91") + "};";
          if ("undefined" == typeof dcodeIO || !dcodeIO[P("0xe92")]) throw new Error(P("0xe93"));
          return dcodeIO[P("0xe92")][P("0xe94")](e, "GEOPOI", P("0xe95"))[P("0xd22")](P("0xe96"))[P("0xe97")];
        }(),
            r = function () {
          var e = P("0xe7a") + P("0xe7b") + P("0xe7c") + P("0xe7d") + P("0xe7e") + P("0xe7f") + "};" + P("0xe98") + P("0xe81") + P("0xe82") + P("0xe83") + P("0xe84") + P("0xe85") + P("0xe86") + "optional int32 SymbolID = 10  [default = 0];" + P("0xe88") + P("0xe89") + "optional uint32\tFontNameIndex=13 [default =0];" + P("0xe8b") + P("0xe8c") + P("0xe99") + "};" + P("0xe9a") + "repeated string s = 1;}" + P("0xe8e") + "required int64 Version = 1;" + P("0xe9b") + P("0xe90") + "repeated PBPOI POIS = 4;};";
          if ("undefined" == typeof dcodeIO || !dcodeIO[P("0xe92")]) throw new Error("ProtoBuf.js is not present. Please see www/index.html for manual setup instructions.");
          return dcodeIO[P("0xe92")][P("0xe94")](e, P("0xe96"), P("0xe9c")).build(P("0xe96")).PBPOITile;
        }(),
            n = function () {
          var e = "option optimize_for = LITE_RUNTIME;" + P("0xe7b") + P("0xe7c") + "ePoint = 0;" + P("0xe7e") + P("0xe7f") + "};enum enumZCoordType {eCloseGround = 0;eCloseSeaSurface = 1;eRelativelyGround = 2;eAbsolute = 3;};message PBPOI{" + P("0xe82") + P("0xe83") + "repeated double Coordinates =3 [packed=true];" + P("0xe85") + P("0xe9d") + P("0xe9e") + P("0xe87") + P("0xe88") + P("0xe89") + P("0xe8a") + P("0xe8b") + P("0xe8c") + P("0xe99") + P("0xe9f") + P("0xea0") + "};" + P("0xe9a") + P("0xe8d") + "}message PBPOITile{" + P("0xe8f") + "required int64 TileKey = 2;" + P("0xe90") + P("0xe91") + "};";
          if (("undefined" == typeof dcodeIO ? "undefined" : w()(dcodeIO)) === P("0x2b6") || !dcodeIO[P("0xe92")]) throw new Error(P("0xe93"));
          return dcodeIO[P("0xe92")][P("0xe94")](e, P("0xe96"), P("0xea1"))[P("0xd22")](P("0xe96"))[P("0xe97")];
        }();

        t[P("0xe4a")][P("0x0")] = 0;
        var o,
            a = e;

        try {
          o = n.decode(a);
        } catch (e) {
          console[P("0x133")](e[P("0xa63")]);
        }

        if (!o) try {
          o = r[P("0xea2")](a);
        } catch (e) {
          console.log(e[P("0xa63")]), o = i[P("0xea2")](a);
        }
        t[P("0xea3")] = p()(o[P("0xea4")][P("0x531")]()), t[P("0xea5")] = p()(o[P("0xea6")][P("0x531")]()), t.stringTable = [];

        for (var s = o.StringTable.s.length, x = 0; x < s; x++) {
          t[P("0xe50")][P("0x17c")](o[P("0xea7")].s[x].toString());
        }

        return o[P("0xea8")][P("0x1e4")](function (e) {
          var i = {};
          i[P("0xe2b")] = p()(e[P("0xea9")][P("0x531")]()) + "_" + t[P("0xea5")], i.name = e[P("0xe48")][P("0x531")](), i[P("0xe5e")] = p()(e[P("0xeaa")].toString()), i[P("0xe61")] = e[P("0xeab")], i[P("0xe57")] = e[P("0xeac")], i[P("0xead")] = e[P("0xeae")], i[P("0xeaf")] = e[P("0xeb0")], i[P("0xe56")] = e.FontColor, e[P("0xeb1")] && (i[P("0xeb2")] = e[P("0xeb1")]), i[P("0xeb3")] = e.GeometryType, i[P("0xe4d")] = e[P("0xeb4")], i[P("0xe64")] = w()(e.Priority) === P("0x2b6") ? null : e.Priority, i[P("0xeb5")] = w()(e[P("0xeb6")]) === P("0x2b6") ? null : e[P("0xeb6")], i[P("0xe53")] = w()(e.FontStyle) === P("0x2b6") ? null : e[P("0xeb7")], i.shiningSize = w()(e.ShiningSize) === P("0x2b6") ? null : e[P("0xeb8")], t[P("0xe4a")][P("0x17c")](i);
        }), t;
      };

      e[P("0xeb9")] = i;
    }(window[P("0xfd")]), function (e) {
      var t = e.Measure = function (e) {
        this[P("0x13b")] = e[P("0x13b")], this[P("0x17d")] = this.viewer[P("0x10f")][P("0x17d")];
      };

      t[P("0x5")][P("0x8e")] = function (t, i) {
        if (t[P("0x2eb")]) {
          var r = t[P("0x2eb")][P("0x19f")].getValue();

          if (!(r[P("0x0")] <= 1)) {
            for (var n, o = 0, a = 0, s = new e[P("0x282")](), x = 1; x < r[P("0x0")]; x++) {
              var l = e[P("0x13")].fromCartesian(r[x - 1]),
                  c = e[P("0x13")][P("0x175")](r[x]);
              s.setEndPoints(l, c), o += Math[P("0x5f0")](s.surfaceDistance);
              var u = e.Cartographic.fromCartesian(r[x - 1]),
                  h = e.Math[P("0x113")](u.longitude),
                  f = e[P("0x23")][P("0x113")](u[P("0x114")]),
                  d = e[P("0x13")][P("0x175")](r[x]),
                  g = e[P("0x23")][P("0x113")](d[P("0x112")]),
                  p = e[P("0x23")][P("0x113")](d[P("0x114")]),
                  m = turf.point([h, f]),
                  b = turf[P("0x2ec")]([g, p]);
              a += turf[P("0x8e")](m, b);
            }

            return 2 == i ? n = o < 1e3 ? o[P("0x2af")](2) + "m" : (o / 1e3).toFixed(2) + "km" : 1 == i && (n = a < 1 ? (1e3 * a)[P("0x2af")](2) + "m" : a[P("0x2af")](2) + "km"), n;
          }
        }
      }, t[P("0x5")][P("0x2d9")] = function (t) {
        if (t[P("0x2d4")]) {
          var i = t[P("0x2d4")][P("0xeba")].getValue().positions;

          if (!(i.length <= 2)) {
            for (var r = [], n = 0; n < i[P("0x0")]; n++) {
              var o = e[P("0x13")][P("0x175")](i[n]),
                  a = e[P("0x23")][P("0x113")](o.longitude),
                  s = e.Math.toDegrees(o[P("0x114")]);
              r[P("0x17c")]([a, s]);
            }

            r[P("0x17c")](r[0]);
            var x = turf[P("0x2d4")]([r]),
                l = turf[P("0x2d9")](x);
            return l < 1e6 ? l.toFixed(2) + "m²" : (l / 1e6).toFixed(2) + P("0x2da");
          }
        }
      }, t[P("0x5")].height = function (t) {
        if (t[P("0x2eb")]) {
          var i = t[P("0x2eb")][P("0x19f")][P("0x512")]();

          if (2 == (i = [i[0], i[1]]).length) {
            for (var r = [], n = 0; n < i[P("0x0")]; n++) {
              var o = e[P("0x13")].fromCartesian(i[n]),
                  a = e[P("0x23")][P("0x113")](o.longitude),
                  s = e[P("0x23")].toDegrees(o.latitude),
                  x = o.height;
              r[P("0x17c")](a), r.push(s), r.push(x);
            }

            r[2] >= r[5] ? (r.push(r[0]), r[P("0x17c")](r[1]), r[P("0x17c")](r[5])) : (r[P("0x17c")](r[3]), r[P("0x17c")](r[4]), r[P("0x17c")](r[2]));
            var l = {
              horizontalDistance: null,
              verticalHeight: null,
              spaceDistance: null
            },
                c = 1e3 * turf[P("0x8e")](turf.point([r[0], r[1]]), turf[P("0x2ec")]([r[3], r[4]]));
            (h = [])[P("0x17c")]((r[0] + r[3]) / 2), h[P("0x17c")]((r[1] + r[4]) / 2), r[2] >= r[5] ? h.push(r[5]) : h[P("0x17c")](r[2]), c < 1e3 ? l.horizontalDistance = P("0x311") + c[P("0x2af")](2) + "m" : l[P("0xebb")] = P("0x311") + (c / 1e3)[P("0x2af")](2) + "km";
            var u = Math[P("0x78")](r[2] - r[5]),
                h = [];
            r[2] >= r[5] ? (h[P("0x17c")](r[0]), h.push(r[1])) : (h[P("0x17c")](r[3]), h[P("0x17c")](r[4])), h.push((r[2] + r[5]) / 2), l[P("0xebc")] = u < 1e3 ? P("0x312") + u[P("0x2af")](2) + "m" : "垂直高度：" + (u / 1e3)[P("0x2af")](2) + "km";
            var f = Math[P("0xca")](Math[P("0x2ae")](c, 2) + Math[P("0x2ae")](u, 2));
            return (h = [])[P("0x17c")]((r[0] + r[3]) / 2), h[P("0x17c")]((r[1] + r[4]) / 2), h.push((r[2] + r[5]) / 2), f < 1e3 ? l.spaceDistance = P("0x313") + f.toFixed(2) + "m" : l[P("0xebd")] = P("0x313") + (f / 1e3)[P("0x2af")](2) + "km", l;
          }
        }
      }, t[P("0x5")].elevation = function (t) {
        if (t[P("0x2ec")]) {
          var i = [t.position._value];

          if (1 == i[P("0x0")]) {
            var r = e[P("0x13")][P("0x175")](i[0])[P("0x8b")];
            P("0x30a"), r.toFixed(2), createResultLabel2(this.options, this.primitives, i);
          }
        }
      };
    }(window.Cesium), k = (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && "symbol" == w()(Symbol[P("0x1f3")]) ? function (e) {
      return w()(e);
    } : function (e) {
      return e && (void 0 === A.a ? "undefined" : w()(A.a)) === P("0x8") && e[P("0x2b7")] === A.a && e !== Symbol[P("0x5")] ? P("0x1f4") : w()(e);
    }, function (e) {
      var t = e[P("0xebe")] = function (t) {
        t = e[P("0x102")](t, e[P("0x102")][P("0x128")]), this[P("0x13c")] = t[P("0x13b")], this[P("0x68a")] = e[P("0x14")](t[P("0xa22")]) ? t[P("0xa22")] : new e.WebMercatorTilingScheme({
          ellipsoid: t[P("0xef")]
        }), this[P("0xebf")] = e[P("0x102")](t[P("0xec0")], 512), this[P("0xec1")] = e[P("0x102")](t.tileHeight, 512), this._readyPromise = e[P("0x9ee")].resolve(!0), this[P("0xec2")] = new GeoOLMS.MVT(), this[P("0xa94")] = t[P("0xe18")], this[P("0x6a8")] = t[P("0xa39")], this._styleName = t[P("0xec3")], this[P("0xec4")] = t.tileMatrixSetID, this[P("0xec5")] = t.tileMatrixLabels, this[P("0xa0f")] = P("0xec6"), this._maximumLevel = t[P("0xec7")], this._rectangle = e[P("0x102")](t[P("0x969")], this._tilingScheme[P("0x969")]), this[P("0xec8")] = e[P("0x102")](t[P("0xec9")], 22), this[P("0xeca")] = e[P("0x102")](t.symbolVisibility, P("0x2b4")), this[P("0xecb")] = e[P("0x102")](t[P("0xecb")], !0), this[P("0xecc")] = new e[P("0x766")](), this[P("0xecd")] = e[P("0x102")](t[P("0x4")], ""), this._url = e[P("0x102")](t[P("0x6af")], P("0xece"));
        var i = null;
        this[P("0x68a")] instanceof e.WebMercatorTilingScheme ? i = [-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244] : this[P("0x68a")] instanceof e[P("0x9d7")] && (i = [-180, -270, 180, 90]), this._resolutions = GeoOLMS[P("0xecf")](i, 22, this._tileWidth)[P("0xed0")](), this[P("0xed1")] = 1, this[P("0xae5")] = [0.125, 0, 0, 0.125, 0, 0], this._replays = [P("0xed2"), P("0x5a5"), "Polygon", P("0x9e3"), P("0xed3")], this._tileQueueForCanvas = new e.TileReplacementQueue(), this[P("0xed4")] = new e[P("0xed5")](), this[P("0xed6")] = 1e3, this._styles = void 0, this[P("0xb7f")] = this[P("0xed7")](), this[P("0xed8")] = void 0, this[P("0xed9")] = {}, this[P("0xeda")] = {}, this[P("0xedb")] = document.createElement(P("0x48")), this[P("0xedb")].width = 512, this[P("0xedb")][P("0x8b")] = 512, P("0xedc") in window ? this[P("0xedd")] = !e.defined(t[P("0xede")]) || t.useWebWorker : (e[P("0x14")](t[P("0xede")]) && !0 === t.useWebWorker && console.warn(P("0xedf")), this[P("0xedd")] = !1), 1 == this._useWebWorker && (this[P("0xeca")] = P("0x2b4")), this[P("0xee0")] = function () {
          return [];
        };
        var n = this,
            o = this[P("0xee1")]();

        if (r(o = this[P("0xa94")] ? this[P("0xa94")].getURL(o) : o, !1, function (i) {
          if (i) {
            if (!i[P("0xee2")]) {
              for (var r = "mysourceid", o = 0; o < i[P("0xee3")][P("0x0")]; o++) {
                i[P("0xee3")][o][P("0xac2")] = r;
              }

              i[P("0xee2")] = {}, i[P("0xee2")][r] = {
                type: P("0xee4"),
                url: t[P("0x6af")]
              };
            }

            if ((n[P("0xee5")] = i)[P("0xee6")] && (n._spriteUrl = n[P("0xa94")] ? n[P("0xa94")][P("0xa95")](i[P("0xee6")]) : i[P("0xee6")]), "none" === n[P("0xeca")]) {
              var a = [];

              for (o = 0; o < n[P("0xee5")][P("0xee3")][P("0x0")]; o++) {
                n[P("0xee5")][P("0xee3")][o][P("0x165")] !== P("0x1f4") && a.push(n[P("0xee5")][P("0xee3")][o]);
              }

              n._styles[P("0xee3")] = a, n[P("0xed8")] = void 0;
            }

            !1 === n[P("0xedd")] && (n[P("0xed8")] ? (Number(e.VERSION) < 1.42 ? e[P("0xee7")](n[P("0xed8")] + P("0xee8")) : e[P("0x6da")][P("0xee9")](n[P("0xed8")] + ".json")).then(function (e) {
              n.spriteData = e, n[P("0xee0")] = GeoOLMS[P("0xeea")](i, Object[P("0xdcb")](i.sources), n[P("0x9c9")], e, n[P("0xed8")] + P("0xeeb"));
            }) : (n[P("0xeec")] = void 0, n.styleFunc = GeoOLMS[P("0xeea")](i, Object[P("0xdcb")](i[P("0xee2")]), n[P("0x9c9")])));
          }
        }), !0 === n._useWebWorker) {
          var a = function () {
            for (var e = P("0xf44"), t = "", i = new RegExp(P("0x121") + e + P("0x122")), r = document[P("0x123")](P("0x124")), n = 0, o = r[P("0x0")]; n < o; n++) {
              var a = r[n][P("0x21c")](P("0x125"));

              if (a) {
                var s = a[P("0x126")](i);

                if (s) {
                  t = s[0];
                  break;
                }
              }
            }

            return t;
          }();

          this._olmsUrl = e.buildModuleUrl(a), this._count = 0, this[P("0x9fc")] = new e[P("0x766")](), this[P("0x9fc")][P("0x130")](function (e) {
            2 < n[P("0x13c")][P("0x10f")][P("0xa3")][P("0xa2e")]._tilesToRender[P("0x0")] && (e[P("0xeed")] = !0);
          }), this.bindEvent(), this[P("0xeee")]();
        }
      };

      function i() {
        o(this[P("0xeef")], 0), this[P("0x13c")][P("0x10f")][P("0xa3")][P("0xa2e")][P("0xef0")](function (t) {
          for (var i = t[P("0x440")][P("0xef1")], r = 0; r < i[P("0x0")]; r++) {
            var n = i[r];
            (e.defined(n[P("0xef2")]) ? n[P("0xef2")] : n.readyImagery)[P("0xef3")]._imageryProvider instanceof e[P("0xebe")] && (t.state = e[P("0xef4")][P("0xef5")], e[P("0x14")](n.loadingImagery) || (n[P("0xef2")] = n[P("0xef6")], n[P("0xef2")][P("0xef7")]()), n.loadingImagery[P("0xdb3")] = e[P("0xef8")].UNLOADED);
          }
        });
      }

      function r(e, t, i) {
        var r = new XMLHttpRequest();
        r[P("0xaa0")]("GET", e, t), r[P("0xef9")]("Accept", "application/json"), r[P("0xad0")] = function () {
          i(null);
        }, r[P("0xad2")] = function () {
          if (200 <= r[P("0xaa7")] && r.status < 300 && r.response) {
            var e;

            try {
              e = JSON[P("0x946")](r[P("0xaa8")]);
            } catch (e) {}

            i(e);
          } else i(null);
        }, r[P("0xe45")]();
      }

      function n(e, t, i, r) {
        for (var n = r[P("0xefb")]; null != n && (n.xMvt != e || n[P("0xefc")] != t || n[P("0xefd")] != i);) {
          n = n[P("0xefe")];
        }

        return n;
      }

      function o(t, i) {
        for (var r, n, o, a, s = t[P("0xf01")]; t[P("0x1a9")] > i && e[P("0x14")](s);) {
          var x = s[P("0xf00")];
          r = t, a = o = void 0, o = (n = s).replacementPrevious, a = n[P("0xefe")], n === r[P("0xeff")] && (r._lastBeforeStartOfFrame = a), n === r.head ? r[P("0xefb")] = a : o.replacementNext = a, n === r.tail ? r.tail = o : a[P("0xf00")] = o, n[P("0xf00")] = void 0, n[P("0xefe")] = void 0, --r.count, s = null, s = x;
        }
      }

      e[P("0xf")](t[P("0x5")], {
        url: {
          get: function get() {
            return this._url;
          }
        },
        proxy: {
          get: function get() {
            return this[P("0xa94")];
          }
        },
        tileWidth: {
          get: function get() {
            return this[P("0xebf")];
          }
        },
        tileHeight: {
          get: function get() {
            return this._tileHeight;
          }
        },
        maximumLevel: {
          get: function get() {
            return this._maximumLevel;
          }
        },
        minimumLevel: {
          get: function get() {
            return 0;
          }
        },
        sourceMaxzoom: {
          get: function get() {
            return this[P("0xec8")];
          }
        },
        tilingScheme: {
          get: function get() {
            return this._tilingScheme;
          }
        },
        rectangle: {
          get: function get() {
            return this[P("0x689")];
          }
        },
        tileDiscardPolicy: {
          get: function get() {}
        },
        errorEvent: {
          get: function get() {
            return this._errorEvent;
          }
        },
        ready: {
          get: function get() {
            return !0;
          }
        },
        readyPromise: {
          get: function get() {
            return this[P("0xa82")];
          }
        },
        credit: {
          get: function get() {}
        },
        hasAlphaChannel: {
          get: function get() {
            return !0;
          }
        },
        styles: {
          get: function get() {
            return this._styles;
          }
        },
        pickedEvent: {
          get: function get() {
            return this[P("0xecc")];
          }
        },
        useWebWorker: {
          get: function get() {
            return this[P("0xedd")];
          }
        },
        symbolVisibility: {
          get: function get() {
            return this._symbolVisibility;
          }
        }
      }), t[P("0x5")][P("0xefa")] = function (e, t, i) {}, t[P("0x5")][P("0xeee")] = function () {
        var e = P("0xf02") + this[P("0xec8")] + P("0xf03") + this[P("0x9c9")] + P("0xf04") + this[P("0xf05")] + P("0xf06") + this[P("0xebf")] + P("0xf07") + this._tileHeight + P("0xf08"),
            t = new Blob([e], {
          type: P("0xf09")
        }),
            i = URL[P("0xf0a")](t);
        this[P("0xf0b")] = [];

        for (var r = this.currentActor = 0; r < 4; r++) {
          var n = new Worker(i),
              o = new a(n, this, 1);
          o[P("0x176")] = P("0xf0c") + r, this[P("0xf0b")].push(o);
        }

        var s = {
          style: JSON[P("0xf0d")](this[P("0xee5")]),
          spriteUrl: this._spriteUrl
        };

        for (r = 0; r < this[P("0xf0b")].length; r++) {
          this[P("0xf0b")][r][P("0xe45")](P("0xf0e"), s);
        }

        URL[P("0xf0f")](i);
      };

      var a = function a(e, t, i) {
        var r, n;
        this[P("0xf11")] = e, this[P("0xf12")] = t, this[P("0xf13")] = i, this.callbacks = {}, this[P("0xf14")] = 0, r = [P("0xf15")], n = this, r[P("0x1e4")](function (e) {
          n[e] && (n[e] = n[e][P("0xf10")](n));
        }), this[P("0xf11")].addEventListener(P("0xa63"), this.receive, !1);
      };

      function s(e, r) {
        if (e[P("0x165")] === P("0xf17")) {
          var a = (d = JSON[P("0x946")](e[P("0x4")]))[0],
              x = d[1],
              c = d[2];
          if (e[P("0xf20")]) (u = document.createElement("canvas")).width = 512, u[P("0x8b")] = 512, u[P("0x476")](P("0xf21"))[P("0xf22")](e[P("0xf20")]), this[P("0xed9")][e[P("0x4")]].resolve(u), e[P("0x33a")] && (this[P("0xed4")].count > this[P("0xed6")] && o(this[P("0xed4")], this[P("0xed6")] / 4), (g = e[P("0x33a")]).xMvt = a, g[P("0xefc")] = x, g[P("0xefd")] = c, this[P("0xed4")].markTileRendered(g));else {
            var u = new String("bad request");
            this[P("0xed9")][e.key].resolve(this.blankCanvas);
          }

          for (var h in this[P("0xeef")][P("0x1a9")] > this[P("0xed6")] && o(this[P("0xeef")], this[P("0xed6")] / 4), u.xMvt = a, u[P("0xefc")] = x, u.zMvt = c, this[P("0xeef")].markTileRendered(u), this[P("0xed9")][e[P("0x4")]].state = t[P("0xf19")][P("0xf23")], delete this.deferCache[e[P("0x4")]], this[P("0xeda")]) {
            var f = this[P("0xed9")][h];

            if (f && (f[P("0xdb3")] === t[P("0xf19")][P("0xf1d")] || f.state === t[P("0xf19")].RELOADED)) {
              var d, g;
              e = (g = n(a = (d = JSON[P("0x946")](h))[0], x = d[1], c = d[2], this[P("0xed4")])) ? {
                key: h,
                data: g
              } : {
                key: h,
                data: l[P("0xfa")](this, a, x, c)[P("0x33a")]
              }, r[P("0xe45")](P("0xf17"), e, s[P("0xf10")](this)), delete this.messageCache[h], f.state = t[P("0xf19")][P("0xef5")];
              break;
            }
          }
        } else if (e.type === P("0xf24") || e[P("0x165")] === P("0x9c2") || "setStyle" === e.type) {
          var p = this;
          this[P("0x6c9")]++, 4 === this[P("0x6c9")] && (this[P("0x6c9")] = 0, i[P("0xfa")](this), setTimeout(function () {
            p[P("0xaf6")]();
          }, 200));
        }
      }

      function l(t, i, r) {
        for (var o = null, a = null, s = t, x = i, l = r; l > this._sourceMaxzoom && (o = n(s = s / 2 | 0, x = x / 2 | 0, --l, this._tileQueueForFeatures), !e.defined(o));) {
          ;
        }

        if (e[P("0x14")](o)) a = {
          features: o,
          x: s,
          y: x,
          z: l
        };else {
          var c = this[P("0xb7f")][P("0xa1c")](P("0xe3f"), s).replace(P("0xf1b"), x)[P("0xa1c")](P("0xe3e"), l).replace(P("0xf1c"), this[P("0xecd")]);
          a = {
            features: c = this[P("0xa94")] ? this[P("0xa94")][P("0xa95")](c) : c,
            x: s,
            y: x,
            z: l
          };
        }
        return a;
      }

      function u(e, t, i) {
        var r = JSON[P("0x946")](t),
            n = r[0],
            o = r[1],
            a = r[2];

        if (i < a) {
          var s = [0, 0, 4096, 4096],
              x = a - i,
              l = n - (n >> x << x),
              c = o - (o >> x << x),
              u = (s[2] - s[0]) / (1 << x),
              h = [s[0] + l * u, s[1] + c * u, s[0] + (1 + l) * u, s[1] + (1 + c) * u];
          e[P("0xf2c")] = h;
        }

        return e;
      }

      function h(e, t, i) {
        for (var r = !1, n = 2; n < i[P("0x0")]; n += 2) {
          var o = i[n - 2],
              a = i[n - 1],
              s = i[n],
              x = i[n + 1];
          t < a != t < x && e < (s - o) * (t - a) / (x - a) + o && (r = !r);
        }

        return r;
      }

      function f(e, t, i, r) {
        for (var n = 0, o = 0, a = 0, s = 2, x = i[P("0x0")]; s < x; s += 2) {
          var l = i[s - 2],
              c = i[s - 1],
              u = i[s],
              h = i[s + 1];
          if (d(e, t, l, c, u, h) && (a = u - l, 0 == (o = c - h) && 0 === a ? n = (e - l) * (e - l) + (t - c) * (t - c) : (n = o * e + a * t - (o * l + a * c), n *= n, n /= o * o + a * a), n <= r)) return !0;
        }

        return !1;
      }

      function d(e, t, i, r, n, o) {
        if (i === n && r === o) return !0;
        var a = (e - i) * (e - i) + (t - r) * (t - r),
            s = (e - n) * (e - n) + (t - o) * (t - o),
            x = (n - i) * (n - i) + (o - r) * (o - r);
        return !(s + x < a || a + x < s);
      }

      a[P("0x5")][P("0xe45")] = function (e, t, i, r) {
        var n = i ? this[P("0xf13")] + ":" + this[P("0xf14")]++ : null;

        if (i && (this[P("0xf16")][n] = i), e === P("0xf17")) {
          if (w()(t[P("0x440")]) === P("0x9fe")) this[P("0xf11")][P("0xa70")]({
            type: e,
            id: String(n),
            key: t[P("0x4")],
            data: t[P("0x440")]
          });else if (t[P("0x440")] instanceof ArrayBuffer) {
            var o = t[P("0x440")][P("0x1d5")](0);
            this[P("0xf11")][P("0xa70")]({
              type: e,
              id: String(n),
              key: t.key,
              data: o
            }, [o]);
          }
        } else e === P("0xf0e") ? this[P("0xf11")].postMessage({
          type: e,
          id: String(n),
          style: t[P("0x150")],
          spriteUrl: t[P("0xf18")]
        }) : "setPaintProperty" !== e && e !== P("0x9c2") || this[P("0xf11")][P("0xa70")]({
          type: e,
          id: String(n),
          style: t.style
        });
      }, a[P("0x5")][P("0xf15")] = function (e) {
        var t,
            i = e[P("0x440")],
            r = i.id;
        t = this.callbacks[r], delete this[P("0xf16")][r], t && t(i, this);
      }, t[P("0xf19")] = {
        UNLOADED: 0,
        LOADING: 1,
        DONE: 2,
        RELOADED: 3
      }, t[P("0x5")].bindEvent = function () {
        this[P("0x13c")].scene[P("0x7e")][P("0xe72")][P("0x130")](this[P("0xaf6")], this);
      }, t[P("0x5")][P("0xaf6")] = function () {
        this[P("0xeda")] = {};

        var i = this[P("0x13c")][P("0x10f")][P("0xa3")]._surface[P("0xe35")];

        if (2 < i[P("0x0")]) {
          for (var r = 0; r < i[P("0x0")]; r++) {
            for (var o = i[r][P("0x440")][P("0xef1")], a = 0; a < o.length; a++) {
              var c = o[a].loadingImagery;

              if (o[a].readyImagery, c && c[P("0xef3")][P("0xf1a")] instanceof e[P("0xebe")]) {
                var u = c.x,
                    h = c.y,
                    f = e[P("0x14")](this._tileMatrixLabels) ? p()(this[P("0xec5")][c[P("0x968")]]) : c[P("0x968")],
                    d = x()([u, h, f]),
                    g = this._requestUrl.replace(P("0xe3f"), u)[P("0xa1c")](P("0xf1b"), h)[P("0xa1c")](P("0xe3e"), f).replace(P("0xf1c"), this[P("0xecd")]);

                g = this[P("0xa94")] ? this._proxy[P("0xa95")](g) : g, this.messageCache[d] || (this.messageCache[d] = g);
              }
            }
          }

          var m = 0;

          for (var d in this.messageCache) {
            if ((A = this[P("0xed9")][d]) && (A[P("0xdb3")] === t[P("0xf19")][P("0xf1d")] || A[P("0xdb3")] === t.DefferState.RELOADED)) {
              var b,
                  v = JSON.parse(d),
                  C = n(u = v[0], h = v[1], f = v[2], this._tileQueueForFeatures);
              b = C ? {
                key: d,
                data: C
              } : {
                key: d,
                data: l[P("0xfa")](this, u, h, f)[P("0x33a")]
              };
              var y = this[P("0xf1e")] = (this[P("0xf1e")] + 1) % this.actors[P("0x0")];
              if (this[P("0xf0b")][y].send(P("0xf17"), b, s[P("0xf10")](this)), delete this[P("0xeda")][d], A.state = t[P("0xf19")][P("0xef5")], ++m === this[P("0xf0b")][P("0x0")]) break;
            }
          }

          for (var d in this[P("0xed9")]) {
            var _ = this[P("0xeda")][d],
                A = this[P("0xed9")][d];
            _ || A[P("0xdb3")] !== t[P("0xf19")][P("0xf1d")] && A[P("0xdb3")] !== t[P("0xf19")][P("0xf1f")] || (A[P("0xa3d")](), A[P("0xdb3")] = t[P("0xf19")][P("0xf1f")]);
          }
        }
      }, t[P("0x5")].requestImage = function (i, r, a, c) {
        var h,
            f = this,
            d = e[P("0x9ee")][P("0x9ef")](),
            g = this[P("0xec5")],
            m = e.defined(g) ? p()(g[a]) : a;
        if (!0 === this[P("0xedd")]) {
          if (h = n(i, r, m, this._tileQueueForCanvas)) h instanceof HTMLCanvasElement ? d[P("0x9f8")](h) : h == P("0xf25") && d[P("0x9f8")](this[P("0xedb")]);else {
            var b = JSON[P("0xf0d")]([i, r, m]),
                v = this[P("0xb7f")][P("0xa1c")]("{x}", i)[P("0xa1c")](P("0xf1b"), r)[P("0xa1c")](P("0xe3e"), m)[P("0xa1c")](P("0xf1c"), this[P("0xecd")]);

            if (v = this[P("0xa94")] ? this._proxy[P("0xa95")](v) : v, (this[P("0xed9")][b] = d)[P("0xdb3")] = t[P("0xf19")][P("0xf1d")], this[P("0x13c")][P("0x10f")][P("0xa3")][P("0xa2e")][P("0xe35")].length < 3) {
              var C = this[P("0xf1e")] = (this.currentActor + 1) % this[P("0xf0b")].length;
              this.actors[C][P("0xe45")](P("0xf17"), {
                key: b,
                data: v
              }, s.bind(this));
            }
          }
        } else if (h = n(i, r, m, this._tileQueueForCanvas)) h instanceof HTMLCanvasElement ? d[P("0x9f8")](h) : h == P("0xf25") && d[P("0x9f8")](this[P("0xedb")]);else {
          b = x()([i, r, m]);
          var y = n(i, r, m, this[P("0xed4")]);

          if (e[P("0x14")](y)) {
            var _ = u(this._mvtParser[P("0xf26")](y), b, this[P("0xec8")]),
                A = this[P("0xf27")](_, i, r, m);

            d.resolve(A);
          } else {
            var I = l[P("0xfa")](this, i, r, m).features;
            w()(I) === P("0x9fe") ? (Number(e[P("0x373")]) < 1.42 ? e[P("0xf28")](I) : e[P("0x6da")][P("0xa5e")](I))[P("0x333")](function (e) {
              f[P("0xed4")][P("0x1a9")] > f[P("0xed6")] && o(f[P("0xed4")], f._cacheSize / 4), e[P("0xf29")] = i, e[P("0xefc")] = r, e[P("0xefd")] = m, f._tileQueueForFeatures[P("0xf2a")](e);
              var t = u(f[P("0xec2")][P("0xf26")](e), b, f[P("0xec8")]),
                  n = f[P("0xf27")](t, i, r, m);
              d.resolve(n);
            }) : I instanceof ArrayBuffer && (this[P("0xed4")][P("0x1a9")] > this[P("0xed6")] && o(this[P("0xed4")], this[P("0xed6")] / 4), I[P("0xf29")] = i, I[P("0xefc")] = r, I[P("0xefd")] = m, this[P("0xed4")][P("0xf2a")](I), _ = u(this._mvtParser[P("0xf26")](I), b, this[P("0xec8")]), A = this.renderCanvas(_, i, r, m), d.resolve(A));
          }
        }
        return d[P("0xa90")];
      }, t[P("0x5")].renderCanvas = function (t, i, r, n) {
        var a = GeoOLMS[P("0xf2b")](9, void 0),
            s = document.createElement(P("0x48"));
        s[P("0x19a")] = 512, s.height = 512;

        for (var x = s.getContext("2d"), l = this.styleFunc, c = e[P("0x14")](t[P("0xf2c")]) ? t.rect : [0, 0, 4096, 4096], u = new GeoOLMS.ReplayGroup(0, c, 8, window[P("0xf2d")], !0, a, 100), h = 0; h < t[P("0x0")]; h++) {
          for (var f = t[h], d = l(t[h], n) || [], g = 0; g < d[P("0x0")]; g++) {
            GeoOLMS[P("0xf2e")](u, f, d[g], 16);
          }
        }

        u[P("0xf2f")]();
        var p = {},
            m = [this[P("0xebf")] / (c[2] - c[0]), 0, 0, this._tileHeight / (c[3] - c[1]), -512 * c[0] / (c[2] - c[0]), -512 * c[1] / (c[3] - c[1])];
        return u[P("0xf30")](x, m, 0, {}, !0, this[P("0xf31")], p), GeoOLMS.replayDeclutter(p, x, 0, !0), u = null, this[P("0xeef")][P("0x1a9")] > this._cacheSize && o(this._tileQueueForCanvas, this[P("0xed6")] / 4), s[P("0xf29")] = i, s.yMvt = r, s[P("0xefd")] = n, this[P("0xeef")].markTileRendered(s), s;
      }, t.prototype[P("0xf24")] = function (e, t, r) {
        for (var n = this._styles, o = 0; o < n.layers[P("0x0")]; o++) {
          if (n[P("0xee3")][o].id === e) {
            n.layers[o].paint[t] = r;
            break;
          }
        }

        if (!0 === this._useWebWorker) {
          this[P("0xeda")] = {};
          var a = {
            style: x()(this[P("0xee5")])
          };

          for (o = 0; o < this[P("0xf0b")][P("0x0")]; o++) {
            this.actors[o][P("0xe45")](P("0xf24"), a, s.bind(this));
          }
        } else this.styleFunc = GeoOLMS[P("0xeea")](n, c()(n.sources), this[P("0x9c9")], this[P("0xeec")], this[P("0xed8")] ? this[P("0xed8")] + P("0xeeb") : this[P("0xed8")]), i[P("0xfa")](this);
      }, t[P("0x5")][P("0x9c2")] = function (e, t, r) {
        for (var n = this[P("0xee5")], o = 0; o < n.layers[P("0x0")]; o++) {
          if (n[P("0xee3")][o].id === e) {
            n.layers[o][P("0x9a7")][t] = r;
            break;
          }
        }

        if (!0 === this._useWebWorker) {
          this[P("0xeda")] = {};
          var a = {
            style: JSON[P("0xf0d")](this[P("0xee5")])
          };

          for (o = 0; o < this[P("0xf0b")][P("0x0")]; o++) {
            this[P("0xf0b")][o][P("0xe45")]("setPaintProperty", a, s.bind(this));
          }
        } else this.styleFunc = GeoOLMS[P("0xeea")](n, Object[P("0xdcb")](n.sources), this[P("0x9c9")], this[P("0xeec")], this[P("0xed8")] ? this._spriteUrl + ".png" : this[P("0xed8")]), i[P("0xfa")](this);
      }, t[P("0x5")][P("0xf0e")] = function (e) {
        var t = this;
        if (w()(e) === P("0x9fe")) r(this[P("0xa94")] ? this[P("0xa94")].getURL(e) : e, !0, function (n) {
          if (!n[P("0xee2")]) {
            for (var o = P("0xf32"), a = 0; a < n[P("0xee3")][P("0x0")]; a++) {
              n[P("0xee3")][a][P("0xac2")] = o;
            }

            n[P("0xee2")] = {};
            var l = e.split("?");
            n[P("0xee2")][o] = {
              type: "vector",
              url: l[0]
            };
          }

          if ((t[P("0xee5")] = n)[P("0xee6")] && (t[P("0xed8")] = t[P("0xa94")] ? t[P("0xa94")][P("0xa95")](n[P("0xee6")]) : n[P("0xee6")]), "none" === t[P("0xeca")]) {
            var c = [];

            for (a = 0; a < t._styles[P("0xee3")].length; a++) {
              t[P("0xee5")][P("0xee3")][a].type !== P("0x1f4") && c.push(t[P("0xee5")][P("0xee3")][a]);
            }

            t[P("0xee5")].layers = c, t[P("0xed8")] = void 0;
          }

          if (!0 === t[P("0xedd")]) {
            var u = {
              style: x()(t[P("0xee5")]),
              spriteUrl: t._spriteUrl
            };

            for (a = 0; a < t[P("0xf0b")].length; a++) {
              t[P("0xf0b")][a][P("0xe45")](P("0xf0e"), u, s[P("0xf10")](t));
            }
          } else t[P("0xed8")] ? r(t._spriteUrl + ".json", !0, function (e) {
            t[P("0xeec")] = e, t[P("0xee0")] = GeoOLMS[P("0xeea")](n, Object[P("0xdcb")](n[P("0xee2")]), t[P("0x9c9")], e, t[P("0xed8")] + P("0xeeb")), i[P("0xfa")](t);
          }) : (t[P("0xeec")] = void 0, t.styleFunc = GeoOLMS[P("0xeea")](n, Object[P("0xdcb")](n.sources), t._resolutions), i[P("0xfa")](t));
        });else {
          if (8 != (this[P("0xee5")] = e)[P("0xea3")]) return void console[P("0x391")](P("0xf33"));
          if (!e.sources) return void console[P("0x391")](P("0xf34"));

          if (e.sprite && (this[P("0xed8")] = this[P("0xa94")] ? this[P("0xa94")][P("0xa95")](e[P("0xee6")]) : e.sprite), this[P("0xeca")] === P("0x2b4")) {
            for (var n = [], o = 0; o < this._styles[P("0xee3")][P("0x0")]; o++) {
              this[P("0xee5")].layers[o][P("0x165")] !== P("0x1f4") && n.push(this._styles[P("0xee3")][o]);
            }

            this[P("0xee5")].layers = n, this[P("0xed8")] = void 0;
          }

          if (!0 === this[P("0xedd")]) {
            var a = {
              style: x()(this[P("0xee5")]),
              spriteUrl: this[P("0xed8")]
            };

            for (o = 0; o < this[P("0xf0b")][P("0x0")]; o++) {
              this[P("0xf0b")][o][P("0xe45")](P("0xf0e"), a, s[P("0xf10")](this));
            }
          } else this[P("0xed8")] ? r(this[P("0xed8")] + P("0xee8"), !0, function (e) {
            t[P("0xeec")] = e, t[P("0xee0")] = GeoOLMS[P("0xeea")](glStyle, Object[P("0xdcb")](glStyle[P("0xee2")]), t._resolutions, e, t[P("0xed8")] + P("0xeeb")), i[P("0xfa")](t);
          }) : (this[P("0xeec")] = void 0, this.styleFunc = GeoOLMS[P("0xeea")](glStyle, c()(glStyle.sources), this[P("0x9c9")]), i.call(this));
        }
      }, t[P("0x5")].pickFeatures = function (t, i, r, o, a) {
        if (this.enablePickFeatures) {
          var s = this[P("0xec5")],
              x = e[P("0x14")](s) ? p()(s[r]) : r,
              l = n(t, i, x, this[P("0xed4")]);

          if (l) {
            var c = null,
                u = null,
                d = null;

            if (this[P("0x68a")] instanceof e.WebMercatorTilingScheme) {
              c = [-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244];
              var g = this[P("0x68a")][P("0xf35")][P("0x5a")](new e[P("0x13")](o, a, 0));
              u = g.x, d = g.y;
            } else this[P("0x68a")] instanceof e.GeographicTilingScheme && (c = [-180, -270, 180, 90], u = e[P("0x23")][P("0x113")](o), d = e[P("0x23")][P("0x113")](a));

            for (var m = this[P("0xec2")][P("0xf26")](l), b = x > this._sourceMaxzoom ? this[P("0xec8")] : x, v = (u - c[0]) / (c[2] - c[0]) * Math[P("0x2ae")](2, b), C = (c[3] - d) / (c[3] - c[1]) * Math[P("0x2ae")](2, b), y = 4096 * (v - Math[P("0x3e8")](v)), _ = 4096 * (C - Math[P("0x3e8")](C)), A = [], I = [], w = 0; w < m[P("0x0")]; w++) {
              for (var G = (R = m[w])[P("0xf36")], E = R[P("0xf37")], S = 0, T = 0; T < E.length; S = E[T], T++) {
                if (G === P("0xad5") || G === P("0xf38")) {
                  if (h(y, _, R[P("0xf39")][P("0x1d5")](S, E[T]))) {
                    A[P("0x17c")](R);
                    break;
                  }
                } else if (G === P("0x9e3") || G === P("0xf3a")) {
                  var M = 4096;
                  e[P("0x14")](m.rect) && (M = m[P("0xf2c")][2] - m[P("0xf2c")][0]);
                  var N = 4 * M / 512;

                  if (f(y, _, R[P("0xf39")][P("0x1d5")](S, E[T]), N * N)) {
                    A[P("0x17c")](R);
                    break;
                  }
                }
              }
            }

            A.reverse();

            for (var L = 0; L < A.length; L++) {
              var R = A[L],
                  O = this[P("0xf3b")](R, Math[P("0x3e8")](v), Math.floor(C), b),
                  F = {
                type: P("0x344"),
                id: R[P("0xf3c")],
                properties: R[P("0xf3d")],
                geometry: O[P("0x180")],
                sourceLayer: R[P("0xf3d")][P("0xa39")]
              };
              I.push(F);
            }

            this._pickedEvent[P("0x896")](I);
          }
        }
      }, t.prototype[P("0xf3b")] = function (t, i, r, n) {
        for (var o = this, a = 4096 * Math[P("0x2ae")](2, n), s = 4096 * i, x = 4096 * r, l = t.type_, c = t[P("0xf37")], u = 0, h = [], f = 0; f < c.length; u = c[f], f++) {
          for (var d = t.flatCoordinates_[P("0x1d5")](u, c[f]), g = [], p = 0; p < d[P("0x0")]; p += 2) {
            g[P("0x17c")]({
              x: d[p],
              y: d[p + 1]
            });
          }

          h[P("0x17c")](g);
        }

        function m(t) {
          for (var i = 0; i < t[P("0x0")]; i++) {
            if (o[P("0x68a")] instanceof e[P("0x9d7")]) {
              var r = t[i];
              t[i] = [360 * (r.x + s) / a - 180, 90 - 360 * (r.y + x) / a];
            } else {
              var n = 180 - 360 * ((r = t[i]).y + x) / a;
              t[i] = [360 * (r.x + s) / a - 180, 360 / Math.PI * Math[P("0x321")](Math[P("0x61")](n * Math.PI / 180)) - 90];
            }
          }
        }

        if (l === P("0xad5") || l === P("0xf38")) {
          for (var b = [], v = 0; v < h.length; v++) {
            var C = [];
            C.push(h[v]), b[P("0x17c")](C);
          }

          for (h = b, f = 0; f < h[P("0x0")]; f++) {
            for (p = 0; p < h[f][P("0x0")]; p++) {
              m(h[f][p]);
            }
          }

          1 < h.length && (l = P("0xf38"));
        } else if (l === P("0x9e3") || l === P("0xf3a")) for (f = 0; f < h[P("0x0")]; f++) {
          m(h[f]);
        }

        return 1 === h[P("0x0")] && (h = h[0]), {
          type: P("0x344"),
          geometry: {
            type: l,
            coordinates: h
          },
          properties: t[P("0xf3d")]
        };
      }, t[P("0x5")][P("0xed7")] = function () {
        var t = {
          SERVICE: P("0xf3e"),
          VERSION: P("0x1c9"),
          REQUEST: P("0xf3f")
        },
            i = {
          LAYER: this._layer,
          TILEMATRIXSET: this[P("0xec4")],
          FORMAT: this[P("0xa0f")],
          TILEMATRIX: P("0xe3e"),
          TILEROW: "{y}",
          TILECOL: P("0xe3f")
        },
            r = this[P("0xf40")](e[P("0xf41")](t, i));
        return this[P("0x6b1")] + "?" + r;
      }, t[P("0x5")][P("0xee1")] = function () {
        var t = {
          SERVICE: P("0xf3e"),
          VERSION: P("0x1c9"),
          REQUEST: P("0xf42")
        },
            i = {
          STYLENAME: this[P("0xf43")]
        },
            r = this[P("0xf40")](e[P("0xf41")](t, i));
        return this[P("0x6b1")] + "?" + r;
      }, t[P("0x5")][P("0xf40")] = function (e) {
        var t = [];

        for (var i in e) {
          var r = e[i];

          if (null != r && w()(r) != P("0x8")) {
            var n;

            if ((w()(r) === P("0x2b6") ? P("0x2b6") : k(r)) == P("0x7") && r.constructor == Array) {
              for (var o, a = [], s = 0, x = r[P("0x0")]; s < x; s++) {
                o = r[s], a[P("0x17c")](null == o ? "" : o);
              }

              n = a[P("0x7ca")](",");
            } else n = r;

            t[P("0x17c")](i + "=" + n);
          }
        }

        return t[P("0x7ca")]("&");
      };
    }(window[P("0xfd")]), 1.5 <= cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x373")] || 1.5 <= cesium__WEBPACK_IMPORTED_MODULE_1__["VERSION"][P("0x987")](0, 4)) {
      a()(cesium__WEBPACK_IMPORTED_MODULE_1__[P("0x841")][P("0x5")], {
        _cachedGltf: {
          set: function set(e) {
            this[P("0xf4e")] = e, this[P("0xf4e")] && this._vtxf_cachedGltf[P("0x4df")] && function (e) {
              if (e[P("0xf45")] && (!e[P("0xf45")] || -1 != e[P("0xf45")].indexOf(P("0xf46")))) {
                var t = e[P("0xf45")][P("0x2d3")](P("0xf46")),
                    i = e[P("0xf47")][P("0x2d3")](P("0xf46"));

                if (-1 !== t) {
                  e.extensionsRequired[P("0x259")](i, 1, P("0xf48")), e.extensionsUsed[P("0x259")](t, 1, P("0xf48")), e[P("0xf49")] = e.extensions || {}, e[P("0xf49")][P("0xf48")] = {}, e[P("0xf49")].KHR_techniques_webgl.programs = e.programs, e[P("0xf49")][P("0xf48")].shaders = e[P("0xf4a")], e[P("0xf49")].KHR_techniques_webgl[P("0xf4b")] = e[P("0xf4b")];
                  var r = e[P("0xf49")].KHR_techniques_webgl[P("0xf4b")];
                  e[P("0x46a")].forEach(function (t, i) {
                    e[P("0x46a")][i] && e[P("0x46a")][i].name && (e[P("0x46a")][i][P("0xf49")] = {
                      KHR_technique_webgl: {
                        technique: e[P("0x46a")][i][P("0xf4c")],
                        values: {
                          diffuse: 0
                        }
                      }
                    }), void 0 === e[P("0x46a")][i].extensions && (e[P("0x46a")][i][P("0xf49")] = {}, e[P("0x46a")][i].extensions.KHR_technique_webgl = {}), e[P("0x46a")][i].extensions[P("0xf46")][P("0x190")] = e.materials[i][P("0x190")], e.materials[i][P("0xf49")][P("0xf48")] = e.materials[i][P("0xf49")][P("0xf46")];
                    var n = e[P("0x46a")][i][P("0xf49")][P("0xf48")];

                    for (var o in n[P("0x190")]) {
                      void 0 === n[P("0xf4c")] && (n[P("0xf4c")] = e.materials[i].technique);
                      var a = r[n[P("0xf4c")]].uniforms;

                      for (var s in a) {
                        if (a[s] === o) {
                          n[P("0x190")][s] = n[P("0x190")][o], delete n.values[o];
                          break;
                        }
                      }
                    }
                  }), r[P("0x1e4")](function (e) {
                    for (var t in e[P("0x18f")]) {
                      var i = e[P("0x18f")][t];
                      e[P("0x18f")][t] = e[P("0xf4d")][i];
                    }

                    for (var r in e[P("0x19d")]) {
                      i = e.uniforms[r], e[P("0x19d")][r] = e[P("0xf4d")][i];
                    }
                  });
                }
              }
            }(this[P("0xf4e")][P("0x4df")]);
          },
          get: function get() {
            return this._vtxf_cachedGltf;
          }
        }
      });
    }

    (function () {
      function e(e) {
        throw e;
      }

      var t = void 0,
          i = this;

      function r(e, r) {
        var n,
            o = e[P("0x7f2")]("."),
            a = i;
        o[0] in a || !a[P("0xf4f")] || a[P("0xf4f")](P("0xf50") + o[0]);

        for (; o.length && (n = o.shift());) {
          o[P("0x0")] || r === t ? a = a[n] ? a[n] : a[n] = {} : a[n] = r;
        }
      }

      var n = "undefined" != typeof Uint8Array && P("0x2b6") !== ("undefined" == typeof Uint16Array ? "undefined" : w()(Uint16Array)) && P("0x2b6") !== ("undefined" == typeof Uint32Array ? "undefined" : w()(Uint32Array)) && P("0x2b6") !== ("undefined" == typeof DataView ? "undefined" : w()(DataView));

      function o(t, i) {
        this[P("0x286")] = P("0x49f") === w()(i) ? i : 0, this.i = 0, this.buffer = t instanceof (n ? Uint8Array : Array) ? t : new (n ? Uint8Array : Array)(32768), 2 * this.buffer[P("0x0")] <= this[P("0x286")] && e(Error(P("0xf51"))), this.buffer.length <= this.index && this.f();
      }

      o.prototype.f = function () {
        var e,
            t = this[P("0x4b3")],
            i = t[P("0x0")],
            r = new (n ? Uint8Array : Array)(i << 1);
        if (n) r.set(t);else for (e = 0; e < i; ++e) {
          r[e] = t[e];
        }
        return this[P("0x4b3")] = r;
      }, o[P("0x5")].d = function (e, t, i) {
        var r,
            n = this[P("0x4b3")],
            o = this[P("0x286")],
            a = this.i,
            s = n[o];
        if (i && 1 < t && (e = 8 < t ? (u[255 & e] << 24 | u[e >>> 8 & 255] << 16 | u[e >>> 16 & 255] << 8 | u[e >>> 24 & 255]) >> 32 - t : u[e] >> 8 - t), t + a < 8) s = s << t | e, a += t;else for (r = 0; r < t; ++r) {
          s = s << 1 | e >> t - r - 1 & 1, 8 == ++a && (a = 0, n[o++] = u[s], s = 0, o === n[P("0x0")] && (n = this.f()));
        }
        n[o] = s, this[P("0x4b3")] = n, this.i = a, this[P("0x286")] = o;
      }, o[P("0x5")].finish = function () {
        var e = this[P("0x4b3")],
            t = this[P("0x286")];
        return 0 < this.i && (e[t] <<= 8 - this.i, e[t] = u[e[t]], t++), n ? e.subarray(0, t) : (e.length = t, e);
      };
      var a,
          s = new (n ? Uint8Array : Array)(256);

      for (a = 0; a < 256; ++a) {
        for (var x = c = a, l = 7, c = c >>> 1; c; c >>>= 1) {
          x <<= 1, x |= 1 & c, --l;
        }

        s[a] = (x << l & 255) >>> 0;
      }

      var u = s;

      function h(e) {
        this[P("0x4b3")] = new (n ? Uint16Array : Array)(2 * e), this.length = 0;
      }

      function f(e) {
        var t,
            i,
            r,
            o,
            a,
            s,
            x,
            l,
            c,
            u,
            h = e[P("0x0")],
            f = 0,
            d = Number[P("0x31")];

        for (l = 0; l < h; ++l) {
          e[l] > f && (f = e[l]), e[l] < d && (d = e[l]);
        }

        for (t = 1 << f, i = new (n ? Uint32Array : Array)(t), r = 1, o = 0, a = 2; r <= f;) {
          for (l = 0; l < h; ++l) {
            if (e[l] === r) {
              for (x = o, c = s = 0; c < r; ++c) {
                s = s << 1 | 1 & x, x >>= 1;
              }

              for (u = r << 16 | l, c = s; c < t; c += a) {
                i[c] = u;
              }

              ++o;
            }
          }

          ++r, o <<= 1, a <<= 1;
        }

        return [i, f, d];
      }

      function d(e, t) {
        this.h = p, this.w = 0, this[P("0xf53")] = n && e instanceof Array ? new Uint8Array(e) : e, this.b = 0, t && (t[P("0xf54")] && (this.w = t[P("0xf54")]), P("0x49f") === w()(t[P("0xf55")]) && (this.h = t.compressionType), t[P("0xf56")] && (this.a = n && t[P("0xf56")] instanceof Array ? new Uint8Array(t[P("0xf56")]) : t[P("0xf56")]), "number" == typeof t.outputIndex && (this.b = t[P("0xf57")])), this.a || (this.a = new (n ? Uint8Array : Array)(32768));
      }

      h.prototype[P("0xf52")] = function (e) {
        return 2 * ((e - 2) / 4 | 0);
      }, h[P("0x5")][P("0x17c")] = function (e, t) {
        var i,
            r,
            n,
            o = this[P("0x4b3")];

        for (i = this[P("0x0")], o[this[P("0x0")]++] = t, o[this[P("0x0")]++] = e; 0 < i && (r = this[P("0xf52")](i), o[i] > o[r]);) {
          n = o[i], o[i] = o[r], o[r] = n, n = o[i + 1], o[i + 1] = o[r + 1], o[r + 1] = n, i = r;
        }

        return this[P("0x0")];
      }, h.prototype[P("0x25c")] = function () {
        var e,
            t,
            i,
            r,
            n,
            o = this.buffer;

        for (t = o[0], e = o[1], this[P("0x0")] -= 2, o[0] = o[this.length], o[1] = o[this[P("0x0")] + 1], n = 0; !((r = 2 * n + 2) >= this[P("0x0")]) && (r + 2 < this[P("0x0")] && o[r + 2] > o[r] && (r += 2), o[r] > o[n]);) {
          i = o[n], o[n] = o[r], o[r] = i, i = o[n + 1], o[n + 1] = o[r + 1], o[r + 1] = i, n = r;
        }

        return {
          index: e,
          value: t,
          length: this.length
        };
      };
      var g,
          p = 2,
          m = {
        NONE: 0,
        r: 1,
        k: p,
        O: 3
      },
          b = [];

      for (g = 0; g < 288; g++) {
        switch (!0) {
          case g <= 143:
            b[P("0x17c")]([g + 48, 8]);
            break;

          case g <= 255:
            b.push([g - 144 + 400, 9]);
            break;

          case g <= 279:
            b[P("0x17c")]([g - 256 + 0, 7]);
            break;

          case g <= 287:
            b.push([g - 280 + 192, 8]);
            break;

          default:
            e("invalid literal: " + g);
        }
      }

      function v(e, t) {
        this[P("0x0")] = e, this.H = t;
      }

      d.prototype.j = function () {
        var i,
            r,
            a,
            s,
            x = this[P("0xf53")];

        switch (this.h) {
          case 0:
            for (a = 0, s = x[P("0x0")]; a < s;) {
              var l,
                  c,
                  u,
                  h = r = n ? x[P("0xaaf")](a, a + 65535) : x.slice(a, a + 65535),
                  f = (a += r.length) === s,
                  d = t,
                  g = t,
                  m = this.a,
                  v = this.b;

              if (n) {
                for (m = new Uint8Array(this.a[P("0x4b3")]); m[P("0x0")] <= v + h[P("0x0")] + 5;) {
                  m = new Uint8Array(m[P("0x0")] << 1);
                }

                m.set(this.a);
              }

              if (l = f ? 1 : 0, m[v++] = 0 | l, u = 65536 + ~(c = h[P("0x0")]) & 65535, m[v++] = 255 & c, m[v++] = c >>> 8 & 255, m[v++] = 255 & u, m[v++] = u >>> 8 & 255, n) m.set(h, v), v += h[P("0x0")], m = m.subarray(0, v);else {
                for (d = 0, g = h.length; d < g; ++d) {
                  m[v++] = h[d];
                }

                m[P("0x0")] = v;
              }
              this.b = v, this.a = m;
            }

            break;

          case 1:
            var C = new o(n ? new Uint8Array(this.a[P("0x4b3")]) : this.a, this.b);
            C.d(1, 1, !0), C.d(1, 2, !0);

            var y,
                A,
                w,
                E = _(this, x);

            for (y = 0, A = E[P("0x0")]; y < A; y++) {
              if (w = E[y], o[P("0x5")].d.apply(C, b[w]), 256 < w) C.d(E[++y], E[++y], !0), C.d(E[++y], 5), C.d(E[++y], E[++y], !0);else if (256 === w) break;
            }

            this.a = C[P("0xf2f")](), this.b = this.a[P("0x0")];
            break;

          case p:
            var S,
                T,
                M,
                N,
                L,
                R,
                O,
                F,
                D,
                U,
                k,
                B,
                W,
                j,
                V,
                z = new o(n ? new Uint8Array(this.a[P("0x4b3")]) : this.a, this.b),
                H = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
                q = Array(19);

            for (S = p, z.d(1, 1, !0), z.d(S, 2, !0), T = _(this, x), O = G(R = I(this.M, 15)), D = G(F = I(this.L, 7)), M = 286; 257 < M && 0 === R[M - 1]; M--) {
              ;
            }

            for (N = 30; 1 < N && 0 === F[N - 1]; N--) {
              ;
            }

            var X,
                Y,
                K,
                Q,
                Z,
                J,
                $ = M,
                ee = N,
                te = new (n ? Uint32Array : Array)($ + ee),
                ie = new (n ? Uint32Array : Array)(316),
                re = new (n ? Uint8Array : Array)(19);

            for (X = Y = 0; X < $; X++) {
              te[Y++] = R[X];
            }

            for (X = 0; X < ee; X++) {
              te[Y++] = F[X];
            }

            if (!n) for (X = 0, Q = re.length; X < Q; ++X) {
              re[X] = 0;
            }

            for (X = Z = 0, Q = te.length; X < Q; X += Y) {
              for (Y = 1; X + Y < Q && te[X + Y] === te[X]; ++Y) {
                ;
              }

              if (K = Y, 0 === te[X]) {
                if (K < 3) for (; 0 < K--;) {
                  re[ie[Z++] = 0]++;
                } else for (; 0 < K;) {
                  K - 3 < (J = K < 138 ? K : 138) && J < K && (J = K - 3), J <= 10 ? (ie[Z++] = 17, ie[Z++] = J - 3, re[17]++) : (ie[Z++] = 18, ie[Z++] = J - 11, re[18]++), K -= J;
                }
              } else if (ie[Z++] = te[X], re[te[X]]++, --K < 3) for (; 0 < K--;) {
                ie[Z++] = te[X], re[te[X]]++;
              } else for (; 0 < K;) {
                K - 3 < (J = K < 6 ? K : 6) && J < K && (J = K - 3), ie[Z++] = 16, ie[Z++] = J - 3, re[16]++, K -= J;
              }
            }

            for (i = n ? ie[P("0xaaf")](0, Z) : ie[P("0x1d5")](0, Z), U = I(re, 7), j = 0; j < 19; j++) {
              q[j] = U[H[j]];
            }

            for (L = 19; 4 < L && 0 === q[L - 1]; L--) {
              ;
            }

            for (k = G(U), z.d(M - 257, 5, !0), z.d(N - 1, 5, !0), z.d(L - 4, 4, !0), j = 0; j < L; j++) {
              z.d(q[j], 3, !0);
            }

            for (j = 0, V = i[P("0x0")]; j < V; j++) {
              if (B = i[j], z.d(k[B], U[B], !0), 16 <= B) {
                switch (j++, B) {
                  case 16:
                    W = 2;
                    break;

                  case 17:
                    W = 3;
                    break;

                  case 18:
                    W = 7;
                    break;

                  default:
                    e(P("0xf58") + B);
                }

                z.d(i[j], W, !0);
              }
            }

            var ne,
                oe,
                ae,
                se,
                xe,
                le,
                ce,
                ue,
                he = [O, R],
                fe = [D, F];

            for (xe = he[0], le = he[1], ce = fe[0], ue = fe[1], ne = 0, oe = T[P("0x0")]; ne < oe; ++ne) {
              if (ae = T[ne], z.d(xe[ae], le[ae], !0), 256 < ae) z.d(T[++ne], T[++ne], !0), se = T[++ne], z.d(ce[se], ue[se], !0), z.d(T[++ne], T[++ne], !0);else if (256 === ae) break;
            }

            this.a = z.finish(), this.b = this.a[P("0x0")];
            break;

          default:
            e("invalid compression type");
        }

        return this.a;
      };

      var C = function () {
        function t(t) {
          switch (!0) {
            case 3 === t:
              return [257, t - 3, 0];

            case 4 === t:
              return [258, t - 4, 0];

            case 5 === t:
              return [259, t - 5, 0];

            case 6 === t:
              return [260, t - 6, 0];

            case 7 === t:
              return [261, t - 7, 0];

            case 8 === t:
              return [262, t - 8, 0];

            case 9 === t:
              return [263, t - 9, 0];

            case 10 === t:
              return [264, t - 10, 0];

            case t <= 12:
              return [265, t - 11, 1];

            case t <= 14:
              return [266, t - 13, 1];

            case t <= 16:
              return [267, t - 15, 1];

            case t <= 18:
              return [268, t - 17, 1];

            case t <= 22:
              return [269, t - 19, 2];

            case t <= 26:
              return [270, t - 23, 2];

            case t <= 30:
              return [271, t - 27, 2];

            case t <= 34:
              return [272, t - 31, 2];

            case t <= 42:
              return [273, t - 35, 3];

            case t <= 50:
              return [274, t - 43, 3];

            case t <= 58:
              return [275, t - 51, 3];

            case t <= 66:
              return [276, t - 59, 3];

            case t <= 82:
              return [277, t - 67, 4];

            case t <= 98:
              return [278, t - 83, 4];

            case t <= 114:
              return [279, t - 99, 4];

            case t <= 130:
              return [280, t - 115, 4];

            case t <= 162:
              return [281, t - 131, 5];

            case t <= 194:
              return [282, t - 163, 5];

            case t <= 226:
              return [283, t - 195, 5];

            case t <= 257:
              return [284, t - 227, 5];

            case 258 === t:
              return [285, t - 258, 0];

            default:
              e("invalid length: " + t);
          }
        }

        var i,
            r,
            n = [];

        for (i = 3; i <= 258; i++) {
          r = t(i), n[i] = r[2] << 24 | r[1] << 16 | r[0];
        }

        return n;
      }(),
          y = n ? new Uint32Array(C) : C;

      function _(i, r) {
        function o(t, i) {
          var r,
              n,
              o,
              a,
              s = t.H,
              x = [],
              l = 0;

          switch (r = y[t[P("0x0")]], x[l++] = 65535 & r, x[l++] = r >> 16 & 255, x[l++] = r >> 24, !0) {
            case 1 === s:
              n = [0, s - 1, 0];
              break;

            case 2 === s:
              n = [1, s - 2, 0];
              break;

            case 3 === s:
              n = [2, s - 3, 0];
              break;

            case 4 === s:
              n = [3, s - 4, 0];
              break;

            case s <= 6:
              n = [4, s - 5, 1];
              break;

            case s <= 8:
              n = [5, s - 7, 1];
              break;

            case s <= 12:
              n = [6, s - 9, 2];
              break;

            case s <= 16:
              n = [7, s - 13, 2];
              break;

            case s <= 24:
              n = [8, s - 17, 3];
              break;

            case s <= 32:
              n = [9, s - 25, 3];
              break;

            case s <= 48:
              n = [10, s - 33, 4];
              break;

            case s <= 64:
              n = [11, s - 49, 4];
              break;

            case s <= 96:
              n = [12, s - 65, 5];
              break;

            case s <= 128:
              n = [13, s - 97, 5];
              break;

            case s <= 192:
              n = [14, s - 129, 6];
              break;

            case s <= 256:
              n = [15, s - 193, 6];
              break;

            case s <= 384:
              n = [16, s - 257, 7];
              break;

            case s <= 512:
              n = [17, s - 385, 7];
              break;

            case s <= 768:
              n = [18, s - 513, 8];
              break;

            case s <= 1024:
              n = [19, s - 769, 8];
              break;

            case s <= 1536:
              n = [20, s - 1025, 9];
              break;

            case s <= 2048:
              n = [21, s - 1537, 9];
              break;

            case s <= 3072:
              n = [22, s - 2049, 10];
              break;

            case s <= 4096:
              n = [23, s - 3073, 10];
              break;

            case s <= 6144:
              n = [24, s - 4097, 11];
              break;

            case s <= 8192:
              n = [25, s - 6145, 11];
              break;

            case s <= 12288:
              n = [26, s - 8193, 12];
              break;

            case s <= 16384:
              n = [27, s - 12289, 12];
              break;

            case s <= 24576:
              n = [28, s - 16385, 13];
              break;

            case s <= 32768:
              n = [29, s - 24577, 13];
              break;

            default:
              e(P("0xf59"));
          }

          for (r = n, x[l++] = r[0], x[l++] = r[1], x[l++] = r[2], o = 0, a = x[P("0x0")]; o < a; ++o) {
            p[m++] = x[o];
          }

          v[x[0]]++, C[x[3]]++, b = t[P("0x0")] + i - 1, f = null;
        }

        var a,
            s,
            x,
            l,
            c,
            u,
            h,
            f,
            d,
            g = {},
            p = n ? new Uint16Array(2 * r[P("0x0")]) : [],
            m = 0,
            b = 0,
            v = new (n ? Uint32Array : Array)(286),
            C = new (n ? Uint32Array : Array)(30),
            _ = i.w;

        if (!n) {
          for (x = 0; x <= 285;) {
            v[x++] = 0;
          }

          for (x = 0; x <= 29;) {
            C[x++] = 0;
          }
        }

        for (v[256] = 1, a = 0, s = r[P("0x0")]; a < s; ++a) {
          for (x = c = 0, l = 3; x < l && a + x !== s; ++x) {
            c = c << 8 | r[a + x];
          }

          if (g[c] === t && (g[c] = []), u = g[c], !(0 < b--)) {
            for (; 0 < u[P("0x0")] && 32768 < a - u[0];) {
              u[P("0x513")]();
            }

            if (s <= a + 3) {
              for (f && o(f, -1), x = 0, l = s - a; x < l; ++x) {
                d = r[a + x], p[m++] = d, ++v[d];
              }

              break;
            }

            0 < u[P("0x0")] ? (h = A(r, a, u), f ? f[P("0x0")] < h.length ? (d = r[a - 1], p[m++] = d, ++v[d], o(h, 0)) : o(f, -1) : h[P("0x0")] < _ ? f = h : o(h, 0)) : f ? o(f, -1) : (d = r[a], p[m++] = d, ++v[d]);
          }

          u.push(a);
        }

        return p[m++] = 256, v[256]++, i.M = v, i.L = C, n ? p[P("0xaaf")](0, m) : p;
      }

      function A(e, t, i) {
        var r,
            n,
            o,
            a,
            s,
            x,
            l = 0,
            c = e.length;
        a = 0, x = i[P("0x0")];

        e: for (; a < x; a++) {
          if (r = i[x - a - 1], (o = 3) < l) {
            for (s = l; 3 < s; s--) {
              if (e[r + s - 1] !== e[t + s - 1]) continue e;
            }

            o = l;
          }

          for (; o < 258 && t + o < c && e[r + o] === e[t + o];) {
            ++o;
          }

          if (l < o && (n = r, l = o), 258 === o) break;
        }

        return new v(l, t - n);
      }

      function I(e, t) {
        var i,
            r,
            o,
            a,
            s,
            x = e[P("0x0")],
            l = new h(572),
            c = new (n ? Uint8Array : Array)(x);
        if (!n) for (a = 0; a < x; a++) {
          c[a] = 0;
        }

        for (a = 0; a < x; ++a) {
          0 < e[a] && l[P("0x17c")](a, e[a]);
        }

        if (i = Array(l[P("0x0")] / 2), r = new (n ? Uint32Array : Array)(l[P("0x0")] / 2), 1 === i[P("0x0")]) return c[l[P("0x25c")]()[P("0x286")]] = 1, c;

        for (a = 0, s = l[P("0x0")] / 2; a < s; ++a) {
          i[a] = l[P("0x25c")](), r[a] = i[a][P("0x3")];
        }

        for (o = function (e, t, i) {
          function r(e) {
            var i = d[e][g[e]];
            i === t ? (r(e + 1), r(e + 1)) : --h[i], ++g[e];
          }

          var o,
              a,
              s,
              x,
              l,
              c = new (n ? Uint16Array : Array)(i),
              u = new (n ? Uint8Array : Array)(i),
              h = new (n ? Uint8Array : Array)(t),
              f = Array(i),
              d = Array(i),
              g = Array(i),
              p = (1 << i) - t,
              m = 1 << i - 1;

          for (c[i - 1] = t, a = 0; a < i; ++a) {
            p < m ? u[a] = 0 : (u[a] = 1, p -= m), p <<= 1, c[i - 2 - a] = (c[i - 1 - a] / 2 | 0) + t;
          }

          for (c[0] = u[0], f[0] = Array(c[0]), d[0] = Array(c[0]), a = 1; a < i; ++a) {
            c[a] > 2 * c[a - 1] + u[a] && (c[a] = 2 * c[a - 1] + u[a]), f[a] = Array(c[a]), d[a] = Array(c[a]);
          }

          for (o = 0; o < t; ++o) {
            h[o] = i;
          }

          for (s = 0; s < c[i - 1]; ++s) {
            f[i - 1][s] = e[s], d[i - 1][s] = s;
          }

          for (o = 0; o < i; ++o) {
            g[o] = 0;
          }

          for (1 === u[i - 1] && (--h[0], ++g[i - 1]), a = i - 2; 0 <= a; --a) {
            for (x = o = 0, l = g[a + 1], s = 0; s < c[a]; s++) {
              (x = f[a + 1][l] + f[a + 1][l + 1]) > e[o] ? (f[a][s] = x, d[a][s] = t, l += 2) : (f[a][s] = e[o], d[a][s] = o, ++o);
            }

            g[a] = 0, 1 === u[a] && r(a);
          }

          return h;
        }(r, r[P("0x0")], t), a = 0, s = i[P("0x0")]; a < s; ++a) {
          c[i[a][P("0x286")]] = o[a];
        }

        return c;
      }

      function G(e) {
        var t,
            i,
            r,
            o,
            a = new (n ? Uint16Array : Array)(e.length),
            s = [],
            x = [],
            l = 0;

        for (t = 0, i = e[P("0x0")]; t < i; t++) {
          s[e[t]] = 1 + (0 | s[e[t]]);
        }

        for (t = 1, i = 16; t <= i; t++) {
          x[t] = l, l += 0 | s[t], l <<= 1;
        }

        for (t = 0, i = e.length; t < i; t++) {
          for (l = x[e[t]], x[e[t]] += 1, r = a[t] = 0, o = e[t]; r < o; r++) {
            a[t] = a[t] << 1 | 1 & l, l >>>= 1;
          }
        }

        return a;
      }

      function E(t, i) {
        switch (this.l = [], this.m = 32768, this.e = this.g = this.c = this.q = 0, this[P("0xf53")] = n ? new Uint8Array(t) : t, this.s = !1, this.n = T, this.C = !1, (i || (i = {}, 0)) && (i[P("0x286")] && (this.c = i[P("0x286")]), i[P("0xf5a")] && (this.m = i.bufferSize), i.bufferType && (this.n = i[P("0xf5b")]), i[P("0xf5c")] && (this.C = i[P("0xf5c")])), this.n) {
          case S:
            this.b = 32768, this.a = new (n ? Uint8Array : Array)(32768 + this.m + 258);
            break;

          case T:
            this.b = 0, this.a = new (n ? Uint8Array : Array)(this.m), this.f = this.K, this.t = this.I, this.o = this.J;
            break;

          default:
            e(Error(P("0xf5d")));
        }
      }

      var S = 0,
          T = 1,
          M = S,
          N = T;

      E[P("0x5")].p = function () {
        for (; !this.s;) {
          var i = Z(this, 3);

          switch (1 & i && (this.s = !0), i >>>= 1) {
            case 0:
              var r = this[P("0xf53")],
                  o = this.c,
                  a = this.a,
                  s = this.b,
                  x = r.length,
                  l = t,
                  c = a[P("0x0")],
                  u = t;

              switch (this.e = this.g = 0, x <= o + 1 && e(Error("invalid uncompressed block header: LEN")), l = r[o++] | r[o++] << 8, x <= o + 1 && e(Error("invalid uncompressed block header: NLEN")), l === ~(r[o++] | r[o++] << 8) && e(Error(P("0xf5e"))), o + l > r[P("0x0")] && e(Error(P("0xf5f"))), this.n) {
                case S:
                  for (; s + l > a[P("0x0")];) {
                    if (l -= u = c - s, n) a.set(r[P("0xaaf")](o, o + u), s), s += u, o += u;else for (; u--;) {
                      a[s++] = r[o++];
                    }
                    this.b = s, a = this.f(), s = this.b;
                  }

                  break;

                case T:
                  for (; s + l > a[P("0x0")];) {
                    a = this.f({
                      v: 2
                    });
                  }

                  break;

                default:
                  e(Error("invalid inflate mode"));
              }

              if (n) a[P("0xf60")](r.subarray(o, o + l), s), s += l, o += l;else for (; l--;) {
                a[s++] = r[o++];
              }
              this.c = o, this.b = s, this.a = a;
              break;

            case 1:
              this.o(Y, Q);
              break;

            case 2:
              $(this);
              break;

            default:
              e(Error(P("0xf61") + i));
          }
        }

        return this.t();
      };

      var L,
          R,
          O = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
          F = n ? new Uint16Array(O) : O,
          D = [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, 258, 258],
          U = n ? new Uint16Array(D) : D,
          k = [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, 0, 0],
          B = n ? new Uint8Array(k) : k,
          W = [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],
          j = n ? new Uint16Array(W) : W,
          V = [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],
          z = n ? new Uint8Array(V) : V,
          H = new (n ? Uint8Array : Array)(288);

      for (L = 0, R = H[P("0x0")]; L < R; ++L) {
        H[L] = L <= 143 ? 8 : L <= 255 ? 9 : L <= 279 ? 7 : 8;
      }

      var q,
          X,
          Y = f(H),
          K = new (n ? Uint8Array : Array)(30);

      for (q = 0, X = K[P("0x0")]; q < X; ++q) {
        K[q] = 5;
      }

      var Q = f(K);

      function Z(t, i) {
        for (var r, n = t.g, o = t.e, a = t[P("0xf53")], s = t.c, x = a[P("0x0")]; o < i;) {
          x <= s && e(Error(P("0xf5f"))), n |= a[s++] << o, o += 8;
        }

        return r = n & (1 << i) - 1, t.g = n >>> i, t.e = o - i, t.c = s, r;
      }

      function J(e, t) {
        for (var i, r, n = e.g, o = e.e, a = e[P("0xf53")], s = e.c, x = a[P("0x0")], l = t[0], c = t[1]; o < c && !(x <= s);) {
          n |= a[s++] << o, o += 8;
        }

        return r = (i = l[n & (1 << c) - 1]) >>> 16, e.g = n >> r, e.e = o - r, e.c = s, 65535 & i;
      }

      function $(e) {
        function t(e, t, i) {
          var r,
              n,
              o,
              a = this.z;

          for (o = 0; o < e;) {
            switch (r = J(this, t)) {
              case 16:
                for (n = 3 + Z(this, 2); n--;) {
                  i[o++] = a;
                }

                break;

              case 17:
                for (n = 3 + Z(this, 3); n--;) {
                  i[o++] = 0;
                }

                a = 0;
                break;

              case 18:
                for (n = 11 + Z(this, 7); n--;) {
                  i[o++] = 0;
                }

                a = 0;
                break;

              default:
                a = i[o++] = r;
            }
          }

          return this.z = a, i;
        }

        var i,
            r,
            o,
            a,
            s = Z(e, 5) + 257,
            x = Z(e, 5) + 1,
            l = Z(e, 4) + 4,
            c = new (n ? Uint8Array : Array)(F[P("0x0")]);

        for (a = 0; a < l; ++a) {
          c[F[a]] = Z(e, 3);
        }

        if (!n) for (a = l, l = c.length; a < l; ++a) {
          c[F[a]] = 0;
        }
        i = f(c), r = new (n ? Uint8Array : Array)(s), o = new (n ? Uint8Array : Array)(x), e.z = 0, e.o(f(t[P("0xfa")](e, s, i, r)), f(t[P("0xfa")](e, x, i, o)));
      }

      function ee(e) {
        if (P("0x9fe") === w()(e)) {
          var t,
              i,
              r = e.split("");

          for (t = 0, i = r[P("0x0")]; t < i; t++) {
            r[t] = (255 & r[t].charCodeAt(0)) >>> 0;
          }

          e = r;
        }

        for (var n, o = 1, a = 0, s = e.length, x = 0; 0 < s;) {
          for (s -= n = 1024 < s ? 1024 : s; a += o += e[x++], --n;) {
            ;
          }

          o %= 65521, a %= 65521;
        }

        return (a << 16 | o) >>> 0;
      }

      function te(t, i) {
        var r, n;

        switch (this.input = t, this.c = 0, (i || (i = {}, 0)) && (i[P("0x286")] && (this.c = i.index), i.verify && (this.N = i[P("0xf62")])), r = t[this.c++], n = t[this.c++], 15 & r) {
          case ie:
            this.method = ie;
            break;

          default:
            e(Error(P("0xf63")));
        }

        0 != ((r << 8) + n) % 31 && e(Error(P("0xf64") + ((r << 8) + n) % 31)), 32 & n && e(Error(P("0xf65"))), this.B = new E(t, {
          index: this.c,
          bufferSize: i[P("0xf5a")],
          bufferType: i[P("0xf5b")],
          resize: i[P("0xf5c")]
        });
      }

      E[P("0x5")].o = function (e, t) {
        var i = this.a,
            r = this.b;
        this.u = e;

        for (var n, o, a, s, x = i[P("0x0")] - 258; 256 !== (n = J(this, e));) {
          if (n < 256) x <= r && (this.b = r, i = this.f(), r = this.b), i[r++] = n;else for (s = U[o = n - 257], 0 < B[o] && (s += Z(this, B[o])), n = J(this, t), a = j[n], 0 < z[n] && (a += Z(this, z[n])), x <= r && (this.b = r, i = this.f(), r = this.b); s--;) {
            i[r] = i[r++ - a];
          }
        }

        for (; 8 <= this.e;) {
          this.e -= 8, this.c--;
        }

        this.b = r;
      }, E.prototype.J = function (e, t) {
        var i = this.a,
            r = this.b;
        this.u = e;

        for (var n, o, a, s, x = i.length; 256 !== (n = J(this, e));) {
          if (n < 256) x <= r && (x = (i = this.f()).length), i[r++] = n;else for (s = U[o = n - 257], 0 < B[o] && (s += Z(this, B[o])), n = J(this, t), a = j[n], 0 < z[n] && (a += Z(this, z[n])), x < r + s && (x = (i = this.f()).length); s--;) {
            i[r] = i[r++ - a];
          }
        }

        for (; 8 <= this.e;) {
          this.e -= 8, this.c--;
        }

        this.b = r;
      }, E[P("0x5")].f = function () {
        var e,
            t,
            i = new (n ? Uint8Array : Array)(this.b - 32768),
            r = this.b - 32768,
            o = this.a;
        if (n) i.set(o[P("0xaaf")](32768, i.length));else for (e = 0, t = i.length; e < t; ++e) {
          i[e] = o[e + 32768];
        }
        if (this.l[P("0x17c")](i), this.q += i[P("0x0")], n) o[P("0xf60")](o[P("0xaaf")](r, 32768 + r));else for (e = 0; e < 32768; ++e) {
          o[e] = o[r + e];
        }
        return this.b = 32768, o;
      }, E[P("0x5")].K = function (e) {
        var t,
            i,
            r,
            o = this[P("0xf53")][P("0x0")] / this.c + 1 | 0,
            a = this[P("0xf53")],
            s = this.a;
        return e && ("number" == typeof e.v && (o = e.v), P("0x49f") === w()(e.G) && (o += e.G)), i = o < 2 ? (r = (a.length - this.c) / this.u[2] / 2 * 258 | 0) < s[P("0x0")] ? s.length + r : s[P("0x0")] << 1 : s.length * o, n ? (t = new Uint8Array(i)).set(s) : t = s, this.a = t;
      }, E[P("0x5")].t = function () {
        var e,
            t,
            i,
            r,
            o,
            a = 0,
            s = this.a,
            x = this.l,
            l = new (n ? Uint8Array : Array)(this.q + (this.b - 32768));
        if (0 === x.length) return n ? this.a[P("0xaaf")](32768, this.b) : this.a.slice(32768, this.b);

        for (t = 0, i = x[P("0x0")]; t < i; ++t) {
          for (r = 0, o = (e = x[t]).length; r < o; ++r) {
            l[a++] = e[r];
          }
        }

        for (t = 32768, i = this.b; t < i; ++t) {
          l[a++] = s[t];
        }

        return this.l = [], this[P("0x4b3")] = l;
      }, E[P("0x5")].I = function () {
        var e,
            t = this.b;
        return n ? this.C ? (e = new Uint8Array(t))[P("0xf60")](this.a[P("0xaaf")](0, t)) : e = this.a[P("0xaaf")](0, t) : (this.a[P("0x0")] > t && (this.a[P("0x0")] = t), e = this.a), this[P("0x4b3")] = e;
      }, te[P("0x5")].p = function () {
        var t,
            i = this[P("0xf53")];
        return t = this.B.p(), this.c = this.B.c, this.N && (i[this.c++] << 24 | i[this.c++] << 16 | i[this.c++] << 8 | i[this.c++]) >>> 0 !== ee(t) && e(Error(P("0xf66"))), t;
      };
      var ie = 8;

      function re(e, t) {
        this[P("0xf53")] = e, this.a = new (n ? Uint8Array : Array)(32768), this.h = ne.k;
        var i,
            r = {};

        for (i in (t || (t = {}, 0)) && P("0x49f") === w()(t.compressionType) && (this.h = t[P("0xf55")]), t) {
          r[i] = t[i];
        }

        r[P("0xf56")] = this.a, this.A = new d(this.input, r);
      }

      var ne = m;

      function oe(e, t) {
        var i, n, o, a;
        if (Object[P("0xdcb")]) i = Object[P("0xdcb")](t);else for (n in i = [], o = 0, t) {
          i[o++] = n;
        }

        for (o = 0, a = i[P("0x0")]; o < a; ++o) {
          r(e + "." + (n = i[o]), t[n]);
        }
      }

      re[P("0x5")].j = function () {
        var t,
            i,
            r,
            o,
            a,
            s,
            x,
            l = 0;

        switch (x = this.a, t = ie) {
          case ie:
            i = Math[P("0xf67")] * Math[P("0x133")](32768) - 8;
            break;

          default:
            e(Error(P("0xf68")));
        }

        switch (r = i << 4 | t, x[l++] = r, t) {
          case ie:
            switch (this.h) {
              case ne.NONE:
                a = 0;
                break;

              case ne.r:
                a = 1;
                break;

              case ne.k:
                a = 2;
                break;

              default:
                e(Error("unsupported compression type"));
            }

            break;

          default:
            e(Error(P("0xf68")));
        }

        return o = a << 6 | 0, x[l++] = o | 31 - (256 * r + o) % 31, s = ee(this.input), this.A.b = l, l = (x = this.A.j()).length, n && ((x = new Uint8Array(x[P("0x4b3")])).length <= l + 4 && (this.a = new Uint8Array(x[P("0x0")] + 4), this.a[P("0xf60")](x), x = this.a), x = x[P("0xaaf")](0, l + 4)), x[l++] = s >> 24 & 255, x[l++] = s >> 16 & 255, x[l++] = s >> 8 & 255, x[l++] = 255 & s, x;
      }, r(P("0xf69"), te), r(P("0xf6a"), te.prototype.p), oe(P("0xf6b"), {
        ADAPTIVE: N,
        BLOCK: M
      }), r(P("0xf6c"), re), r(P("0xf6d"), function (e, t) {
        return new re(e, t).j();
      }), r(P("0xf6e"), re[P("0x5")].j), oe("Zlib.Deflate.CompressionType", {
        NONE: ne[P("0xe5d")],
        FIXED: ne.r,
        DYNAMIC: ne.k
      });
    })[P("0xfa")](window);
    r(237);
  }]);
});

/***/ }),
/* 10 */
/***/ (function(module, exports) {

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports["default"] = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 11 */
/***/ (function(module, exports) {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "TdtDmLayer", function() { return /* reexport */ TdtDmLayer_TdtDmLayer; });
__webpack_require__.d(__webpack_exports__, "TdtTerrainProvider", function() { return /* reexport */ TdtTerrainProvider_TdtTerrainProvider; });

// EXTERNAL MODULE: external {"commonjs2":"mars3d-cesium","amd":"mars3d-cesium","commonjs":"mars3d-cesium","root":"Cesium"}
var external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_ = __webpack_require__(0);

// EXTERNAL MODULE: ./src/tdt/lib/cesiumTdt.js
var cesiumTdt = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__(7);
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__(4);
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/createClass.js
var createClass = __webpack_require__(8);
var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/inherits.js
var inherits = __webpack_require__(5);
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(6);
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);

// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(3);
var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf);

// EXTERNAL MODULE: external "mars3d"
var external_mars3d_ = __webpack_require__(2);

// CONCATENATED MODULE: ./src/tdt/layer/TdtDmLayer.js







function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn_default()(this, result); }; }

function _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; } }



var BaseLayer = external_mars3d_["layer"].BaseLayer;
/**
 * 天地图 三维地名服务图层
 * 【需要引入 mars3d-tdt 插件库】
 * @param {Object} options 参数对象，包括以下：
 * @param {BaseGraphicLayer.ConstructorOptions} [options.通用参数] 包含父类支持的所有参数
 *
 * @param {String} [options.url='https://t{s}.tianditu.gov.cn/mapservice/GetTiles'] 天地图服务地址
 * @param {String} [options.subdomains='01234567'] 服务负载子域
 * @param {String} [options.key=mars3d.Token.tianditu] 天地图服务token令牌
 *
 * @export
 * @class TdtDmLayer
 * @extends {BaseLayer}
 */

var TdtDmLayer_TdtDmLayer = /*#__PURE__*/function (_BaseLayer) {
  inherits_default()(TdtDmLayer, _BaseLayer);

  var _super = _createSuper(TdtDmLayer);

  function TdtDmLayer() {
    classCallCheck_default()(this, TdtDmLayer);

    return _super.apply(this, arguments);
  }

  createClass_default()(TdtDmLayer, [{
    key: "layer",
    get: function get() {
      return this.wtfs;
    } //对象添加到地图上的创建钩子方法

  }, {
    key: "_addedHook",
    value: function _addedHook() {
      // 服务域名
      var tdtUrl = this.options.url || "https://t{s}.tianditu.gov.cn/mapservice/GetTiles";
      var token = this.options.key || external_mars3d_["Token"].tianditu; // 服务负载子域

      var subdomains;

      if (Array.isArray(this.options.subdomains)) {
        subdomains = this.options.subdomains.slice();
      } else if (external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["defined"](this.options.subdomains) && this.options.subdomains.length > 0) {
        subdomains = this.options.subdomains.split("");
      } else {
        subdomains = ["0", "1", "2", "3", "4", "5", "6", "7"];
      }

      if (!external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["GeoWTFS"]) {
        console.error("请确认正确引入天地图官方提供的cesiumTdt.js文件，并确认无冲突！");
        return;
      } // 叠加三维地名服务


      var wtfs = new external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["GeoWTFS"](_objectSpread(_objectSpread({}, this.options), {}, {
        viewer: this._map.viewer,
        subdomains: subdomains,
        metadata: {
          boundBox: {
            minX: -180,
            minY: -90,
            maxX: 180,
            maxY: 90
          },
          minLevel: 1,
          maxLevel: 20
        },
        aotuCollide: true,
        //是否开启避让
        collisionPadding: [5, 10, 8, 5],
        //开启避让时，标注碰撞增加内边距，上、右、下、左
        serverFirstStyle: true,
        //服务端样式优先
        labelGraphics: {
          font: "28px sans-serif",
          fontSize: 28,
          fillColor: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].WHITE,
          scale: 0.5,
          outlineColor: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].BLACK,
          outlineWidth: 5,
          style: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["LabelStyle"].FILL_AND_OUTLINE,
          showBackground: false,
          backgroundColor: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].RED,
          backgroundPadding: new external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian2"](10, 10),
          horizontalOrigin: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["HorizontalOrigin"].MIDDLE,
          verticalOrigin: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["VerticalOrigin"].TOP,
          eyeOffset: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian3"].ZERO,
          pixelOffset: new external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian2"](0, 8)
        },
        billboardGraphics: {
          horizontalOrigin: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["HorizontalOrigin"].CENTER,
          verticalOrigin: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["VerticalOrigin"].CENTER,
          eyeOffset: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian3"].ZERO,
          pixelOffset: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian2"].ZERO,
          alignedAxis: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Cartesian3"].ZERO,
          color: external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].WHITE,
          rotation: 0,
          scale: 1,
          width: 18,
          height: 18
        }
      })); //三维地名服务，使用wtfs服务

      wtfs.getTileUrl = function () {
        return tdtUrl + "?lxys={z},{x},{y}&tk=" + token;
      };

      wtfs.initTDT([{
        x: 6,
        y: 1,
        level: 2,
        boundBox: {
          minX: 90,
          minY: 0,
          maxX: 135,
          maxY: 45
        }
      }, {
        x: 7,
        y: 1,
        level: 2,
        boundBox: {
          minX: 135,
          minY: 0,
          maxX: 180,
          maxY: 45
        }
      }, {
        x: 6,
        y: 0,
        level: 2,
        boundBox: {
          minX: 90,
          minY: 45,
          maxX: 135,
          maxY: 90
        }
      }, {
        x: 7,
        y: 0,
        level: 2,
        boundBox: {
          minX: 135,
          minY: 45,
          maxX: 180,
          maxY: 90
        }
      }, {
        x: 5,
        y: 1,
        level: 2,
        boundBox: {
          minX: 45,
          minY: 0,
          maxX: 90,
          maxY: 45
        }
      }, {
        x: 4,
        y: 1,
        level: 2,
        boundBox: {
          minX: 0,
          minY: 0,
          maxX: 45,
          maxY: 45
        }
      }, {
        x: 5,
        y: 0,
        level: 2,
        boundBox: {
          minX: 45,
          minY: 45,
          maxX: 90,
          maxY: 90
        }
      }, {
        x: 4,
        y: 0,
        level: 2,
        boundBox: {
          minX: 0,
          minY: 45,
          maxX: 45,
          maxY: 90
        }
      }, {
        x: 6,
        y: 2,
        level: 2,
        boundBox: {
          minX: 90,
          minY: -45,
          maxX: 135,
          maxY: 0
        }
      }, {
        x: 6,
        y: 3,
        level: 2,
        boundBox: {
          minX: 90,
          minY: -90,
          maxX: 135,
          maxY: -45
        }
      }, {
        x: 7,
        y: 2,
        level: 2,
        boundBox: {
          minX: 135,
          minY: -45,
          maxX: 180,
          maxY: 0
        }
      }, {
        x: 5,
        y: 2,
        level: 2,
        boundBox: {
          minX: 45,
          minY: -45,
          maxX: 90,
          maxY: 0
        }
      }, {
        x: 4,
        y: 2,
        level: 2,
        boundBox: {
          minX: 0,
          minY: -45,
          maxX: 45,
          maxY: 0
        }
      }, {
        x: 3,
        y: 1,
        level: 2,
        boundBox: {
          minX: -45,
          minY: 0,
          maxX: 0,
          maxY: 45
        }
      }, {
        x: 3,
        y: 0,
        level: 2,
        boundBox: {
          minX: -45,
          minY: 45,
          maxX: 0,
          maxY: 90
        }
      }, {
        x: 2,
        y: 0,
        level: 2,
        boundBox: {
          minX: -90,
          minY: 45,
          maxX: -45,
          maxY: 90
        }
      }, {
        x: 0,
        y: 1,
        level: 2,
        boundBox: {
          minX: -180,
          minY: 0,
          maxX: -135,
          maxY: 45
        }
      }, {
        x: 1,
        y: 0,
        level: 2,
        boundBox: {
          minX: -135,
          minY: 45,
          maxX: -90,
          maxY: 90
        }
      }, {
        x: 0,
        y: 0,
        level: 2,
        boundBox: {
          minX: -180,
          minY: 45,
          maxX: -135,
          maxY: 90
        }
      }]);
      this.wtfs = wtfs;
    } //对象从地图上移除的创建钩子方法

  }, {
    key: "_removedHook",
    value: function _removedHook() {
      if (this.wtfs) {
        this.wtfs.destroy();
        this.wtfs = null;
      }
    }
  }]);

  return TdtDmLayer;
}(BaseLayer);
external_mars3d_["layer"].TdtDmLayer = TdtDmLayer_TdtDmLayer; //注册下

external_mars3d_["layer"].register("tdt_dm", TdtDmLayer_TdtDmLayer);
// CONCATENATED MODULE: ./src/tdt/provider/TdtTerrainProvider.js





function TdtTerrainProvider_createSuper(Derived) { var hasNativeReflectConstruct = TdtTerrainProvider_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn_default()(this, result); }; }

function TdtTerrainProvider_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; } }



/**
 * 天地图 地形服务
 * 【需要引入 mars3d-tdt 插件库】
 *
 * @param {Object} options 参数对象，包括以下：
 * @param {BaseGraphicLayer.ConstructorOptions} [options.通用参数] 包含父类支持的所有参数
 *
 * @param {String} [options.url='https://t{s}.tianditu.gov.cn/DataServer'] 天地图服务地址
 * @param {String} [options.subdomains='01234567'] 服务负载子域
 * @param {String} [options.key=mars3d.Token.tianditu] 天地图服务token令牌
 *
 * @export
 * @class TdtTerrainProvider
 * @extends {Cesium.GeoTerrainProvider}
 */

var TdtTerrainProvider_TdtTerrainProvider = /*#__PURE__*/function (_Cesium$GeoTerrainPro) {
  inherits_default()(TdtTerrainProvider, _Cesium$GeoTerrainPro);

  var _super = TdtTerrainProvider_createSuper(TdtTerrainProvider);

  function TdtTerrainProvider() {
    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    classCallCheck_default()(this, TdtTerrainProvider);

    if (!options.urls) {
      var baseurl = options.url || "https://t{s}.tianditu.gov.cn/DataServer";
      var token = options.key || external_mars3d_["Token"].tianditu;
      var subdomains;

      if (Array.isArray(options.subdomains)) {
        subdomains = options.subdomains.slice();
      } else if (external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["defined"](options.subdomains) && options.subdomains.length > 0) {
        subdomains = options.subdomains.split("");
      } else {
        subdomains = ["0", "1", "2", "3", "4", "5", "6", "7"];
      }

      var urls = [];
      subdomains.forEach(function (element) {
        var url = external_mars3d_["Util"].template(baseurl, {
          s: element
        }) + "?T=elv_c&tk=" + token;
        urls.push(url);
      });
      options.urls = urls;
    }

    return _super.call(this, options);
  }

  return TdtTerrainProvider;
}(external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["GeoTerrainProvider"]);
external_mars3d_["LayerUtil"].registerTerrainProvider("tdt", TdtTerrainProvider_TdtTerrainProvider);
external_mars3d_["provider"].TdtTerrainProvider = TdtTerrainProvider_TdtTerrainProvider;
// CONCATENATED MODULE: ./src/index.js





/***/ })
/******/ ]);
});
//# sourceMappingURL=mars3d-tdt-src.js.map