@kepler.gl/deckgl-layers 3.3.0-alpha.6 → 3.3.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -126,9 +126,6 @@ var ZoomToCursorGlobeController = /*#__PURE__*/function (_GlobeController) {
126
126
  // view can't be centered on the poles. deck.gl's applyConstraints clamps
127
127
  // latitude to ~85°, which still lets the camera look straight at a pole.
128
128
  function applyConstraints(props) {
129
- // Avoid `(super.fn as any)(args)` — Babel compiles that to a property GET
130
- // (`_superPropGet(..., 1)`) that drops `this`. A direct call uses method-CALL
131
- // form (`_superPropGet(..., 3)`), which preserves the binding.
132
129
  var result = _superPropGet(PatchedGlobeState, "applyConstraints", this, 3)([props]);
133
130
  var clampedLatitude = (0, _core2.clamp)(result.latitude, -_constants.GLOBE_MAX_LATITUDE, _constants.GLOBE_MAX_LATITUDE);
134
131
  if (clampedLatitude !== result.latitude) {
@@ -404,4 +401,4 @@ var KeplerGlobeView = exports.KeplerGlobeView = /*#__PURE__*/function (_DeckGlob
404
401
  }]);
405
402
  }(DeckGlobeView);
406
403
  KeplerGlobeView.displayName = 'KeplerGlobeView';
407
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jb3JlMiIsIl9jb25zdGFudHMiLCJfZ2xvYmVEZXB0aERpc2tMYXllciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiX2dldFByb3RvdHlwZU9mMiIsInByb3RvdHlwZSIsIl9jYWxsU3VwZXIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInZlYzQiLCJ0cmFuc2Zvcm1NYXQ0IiwicDEiLCJheCIsImF5IiwiYXoiLCJieCIsImJ5IiwiYnoiLCJkeCIsImR5IiwiZHoiLCJjeCIsImN5IiwiY3oiLCJkU3FyIiwiR0xPQkVfQ09NTU9OX1JBRElVUyIsIlpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiT3JpZ2luYWxHbG9iZVN0YXRlIiwiQ29udHJvbGxlclN0YXRlIiwib2ZmR2xvYmVab29tQXQiLCJfT3JpZ2luYWxHbG9iZVN0YXRlIiwiUGF0Y2hlZEdsb2JlU3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiYXBwbHlDb25zdHJhaW50cyIsInByb3BzIiwicmVzdWx0IiwiY2xhbXBlZExhdGl0dWRlIiwiY2xhbXAiLCJHTE9CRV9NQVhfTEFUSVRVREUiLCJ6b29tIiwiX2NvbnN0cmFpblpvb20iLCJnZXRWaWV3cG9ydFByb3BzIiwiX3Byb3BzIiwibWF4Wm9vbSIsIl9wcm9wczIiLCJtaW5ab29tIiwidW5kZWZpbmVkIiwiWk9PTTAiLCJ6b29tQWRqdXN0bWVudCIsIl9yZWYiLCJzdGFydFBvcyIsInNjYWxlIiwiX2dldFN0YXRlIiwiZ2V0U3RhdGUiLCJzdGFydFpvb20iLCJzdGFydFpvb21MbmdMYXQiLCJjdXJyZW50UHJvcHMiLCJCVVJTVF9USU1FT1VUX01TIiwibm93IiwiRGF0ZSIsImFuY2hvclZpZXdwb3J0IiwibWFrZVZpZXdwb3J0Iiwib25HbG9iZSIsIl9nZXRVcGRhdGVkU3RhdGUiLCJfdW5wcm9qZWN0IiwiaXNBcnJheSIsIk51bWJlciIsImlzRmluaXRlIiwibWluIiwiZExuZyIsImxvbmdpdHVkZSIsInpvb21lZFZpZXdwb3J0IiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiZXhwb3J0cyIsIl9EZWNrR2xvYmVWaWV3IiwiZ2V0Vmlld3BvcnRUeXBlIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmUvZ2xvYmUtdmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBEZWNrQ29yZSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Y2xhbXAsIHZlYzR9IGZyb20gJ0BtYXRoLmdsL2NvcmUnO1xuaW1wb3J0IHtHTE9CRV9NQVhfTEFUSVRVREV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7R0xPQkVfQ09NTU9OX1JBRElVU30gZnJvbSAnLi9nbG9iZS1kZXB0aC1kaXNrLWxheWVyJztcblxuLy8gZGVjay5nbCBleHBvc2VzIEdsb2JlVmlldyAvIEdsb2JlQ29udHJvbGxlciBhcyBleHBlcmltZW50YWwsIHVuZGVyc2NvcmUtcHJlZml4ZWRcbi8vIG1lbWJlcnMuIFRoZWlyIG5hbWVkIHR5cGUgYmluZGluZ3MgYXJlbid0IHJlbGlhYmx5IHJlc29sdmFibGUgdGhyb3VnaCB0aGVcbi8vIHBhY2thZ2UgYmFycmVsIHVuZGVyIHRoaXMgcHJvamVjdCdzIG1vZHVsZSByZXNvbHV0aW9uLCBzbyB3ZSBwdWxsIHRoZW0gb2ZmIHRoZVxuLy8gbmFtZXNwYWNlIHdpdGggYSBsb29zZSB0eXBlLiBSdW50aW1lIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC5cbmNvbnN0IERlY2tHbG9iZVZpZXcgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3IGFzIGFueTtcbmNvbnN0IEdsb2JlQ29udHJvbGxlciA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZUNvbnRyb2xsZXIgYXMgYW55O1xuY29uc3QgRGVja0dsb2JlVmlld3BvcnQgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3cG9ydCBhcyBhbnk7XG5cbi8qKlxuICogTGF0aXR1ZGUtYmFzZWQgem9vbSBhZGp1c3RtZW50IHVzZWQgYnkgZGVjay5nbCdzIEdsb2JlVmlld3BvcnQsIHJlcGxpY2F0ZWRcbiAqIGhlcmUgc28gb3VyIGN1c3RvbSBgX2NvbnN0cmFpblpvb21gIG1hdGNoZXMgZGVjay5nbCdzIGNvb3JkaW5hdGUgbWF0aC5cbiAqIFNlZSBAZGVjay5nbC9jb3JlIGdsb2JlLXZpZXdwb3J0LmpzIGB6b29tQWRqdXN0YC5cbiAqL1xuZnVuY3Rpb24gem9vbUFkanVzdChsYXRpdHVkZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubG9nMihNYXRoLlBJICogTWF0aC5jb3MoKGxhdGl0dWRlICogTWF0aC5QSSkgLyAxODApKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNjcmVlbiBwaXhlbCBgcG9zYCBsaWVzIHdpdGhpbiB0aGUgdmlzaWJsZSBnbG9iZVxuICogc2lsaG91ZXR0ZS5cbiAqXG4gKiBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCgpIGNsYW1wcyB0aGUgcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB3aXRoXG4gKiBNYXRoLm1heCgwLCBywrLiiJJkwrIpLCBzbyBpdCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGxuZy9sYXQgZXZlbiBmb3JcbiAqIG9mZi1nbG9iZSBwaXhlbHMgKHNuYXBwaW5nIHRvIHRoZSBsaW1iKS4gIFdlIHJlcGxpY2F0ZSB0aGUgc2FtZSByYXkgY2FzdFxuICogYnV0IGNoZWNrIHRoZSBkaXNjcmltaW5hbnQgYmVmb3JlIHRoZSBjbGFtcCB1c2luZyB0aGUgc3RhbmRhcmRcbiAqIHNxdWFyZWQtZGlzdGFuY2UtZnJvbS1vcmlnaW4tdG8tcmF5IGZvcm11bGE6IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrIuXG4gKi9cbmZ1bmN0aW9uIGlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0OiBhbnksIHBvczogW251bWJlciwgbnVtYmVyXSk6IGJvb2xlYW4ge1xuICBjb25zdCBtOiBudW1iZXJbXSA9IHZpZXdwb3J0LnBpeGVsVW5wcm9qZWN0aW9uTWF0cml4O1xuICBpZiAoIW0pIHJldHVybiB0cnVlOyAvLyBjb25zZXJ2YXRpdmUgZmFsbGJhY2sgaWYgbWF0cml4IHVuYXZhaWxhYmxlXG5cbiAgLy8gQ2FzdCBhIHJheSB0aHJvdWdoIHRoZSBwaXhlbCBhdCB0aGUgbmVhciBhbmQgZmFyIHBsYW5lcy5cbiAgY29uc3QgcDAgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgLTEsIDFdLCBtKTtcbiAgY29uc3QgcDEgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgMSwgMV0sIG0pO1xuICBpZiAocDBbM10gPT09IDAgfHwgcDFbM10gPT09IDApIHJldHVybiB0cnVlOyAvLyBkZWdlbmVyYXRlIHByb2plY3Rpb25cblxuICAvLyBQZXJzcGVjdGl2ZS1kaXZpZGUgdG8gd29ybGQgc3BhY2UuXG4gIGNvbnN0IGF4ID0gcDBbMF0gLyBwMFszXSwgYXkgPSBwMFsxXSAvIHAwWzNdLCBheiA9IHAwWzJdIC8gcDBbM107XG4gIGNvbnN0IGJ4ID0gcDFbMF0gLyBwMVszXSwgYnkgPSBwMVsxXSAvIHAxWzNdLCBieiA9IHAxWzJdIC8gcDFbM107XG5cbiAgLy8gUmF5IGRpcmVjdGlvbi5cbiAgY29uc3QgZHggPSBieCAtIGF4LCBkeSA9IGJ5IC0gYXksIGR6ID0gYnogLSBhejtcblxuICAvLyBTcXVhcmVkIGRpc3RhbmNlIGZyb20gdGhlIG9yaWdpbiAoZ2xvYmUgY2VudGVyKSB0byB0aGUgcmF5OlxuICAvLyAgIGTCsiA9IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrJcbiAgY29uc3QgY3ggPSBheSAqIGR6IC0gYXogKiBkeTtcbiAgY29uc3QgY3kgPSBheiAqIGR4IC0gYXggKiBkejtcbiAgY29uc3QgY3ogPSBheCAqIGR5IC0gYXkgKiBkeDtcbiAgY29uc3QgZFNxciA9IChjeCAqIGN4ICsgY3kgKiBjeSArIGN6ICogY3opIC8gKGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeik7XG5cbiAgcmV0dXJuIGRTcXIgPD0gR0xPQkVfQ09NTU9OX1JBRElVUyAqIEdMT0JFX0NPTU1PTl9SQURJVVM7XG59XG5cbi8qKlxuICogQ3VzdG9tIEdsb2JlQ29udHJvbGxlciB0aGF0IHJlc3RvcmVzIHpvb20tdG8tY3Vyc29yIGJlaGF2aW9yLlxuICpcbiAqIEluIGRlY2suZ2wgOS54LCB0aGUgZGVmYXVsdCBHbG9iZUNvbnRyb2xsZXIncyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZVxuICogY3Vyc29yIHBvc2l0aW9uIGFuZCBhbHdheXMgem9vbXMgdG93YXJkIHRoZSBjZW50ZXIuIFRoaXMgY29udHJvbGxlciBwYXRjaGVzXG4gKiB0aGF0IGJlaGF2aW9yIGJ5IG92ZXJyaWRpbmcgdGhlIENvbnRyb2xsZXJTdGF0ZSdzIHpvb20gbWV0aG9kIHRvIHBhbiB0aGVcbiAqIGdsb2JlIHVuZGVyIHRoZSBjdXJzb3Igd2hpbGUgem9vbWluZywgc28gem9vbS10by1jdXJzb3Igd29ya3MgdGhlIHNhbWUgd2F5IGl0XG4gKiBkb2VzIGZvciB0aGUgMkQgTWFwQ29udHJvbGxlci5cbiAqL1xuY2xhc3MgWm9vbVRvQ3Vyc29yR2xvYmVDb250cm9sbGVyIGV4dGVuZHMgR2xvYmVDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICBjb25zdCBPcmlnaW5hbEdsb2JlU3RhdGUgPSB0aGlzLkNvbnRyb2xsZXJTdGF0ZTtcblxuICAgIC8vIFRyYWNrcyB3aGVuIHRoZSBtb3N0IHJlY2VudCBvZmYtZ2xvYmUgd2hlZWwtem9vbSB0aWNrIGZpcmVkLlxuICAgIC8vIFN0b3JlZCBhcyBhIGNvbnRyb2xsZXItbGV2ZWwgY2xvc3VyZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBpbiBWaWV3U3RhdGVcbiAgICAvLyBiZWNhdXNlIGRlY2suZ2wncyBDb250cm9sbGVyIG5ldmVyIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIOKAlFxuICAgIC8vIG9ubHkgZm9yIHBpbmNoL3RvdWNoIOKAlCBzbyB0aGVyZSBpcyBubyByZWxpYWJsZSBob29rIHRvIGNsZWFyIGFcbiAgICAvLyBWaWV3U3RhdGUtYmFzZWQgc2VudGluZWwgYWZ0ZXIgYSB3aGVlbCBzY3JvbGwgc2Vzc2lvbiBlbmRzLlxuICAgIC8vIEEgc2ltcGxlIHRpbWVzdGFtcCBsZXRzIHVzIGRldGVjdCB3aGVuIGEgbmV3IHNjcm9sbCBidXJzdCBoYXMgc3RhcnRlZFxuICAgIC8vICg+IEJVUlNUX1RJTUVPVVRfTVMgc2luY2UgdGhlIGxhc3Qgb2ZmLWdsb2JlIHRpY2spIHNvIGN1cnNvci1hbmNob3JlZFxuICAgIC8vIHpvb20gY2FuIHJlc3VtZSBuYXR1cmFsbHkgb24gdGhlIG5leHQgaW5kZXBlbmRlbnQgc2Nyb2xsLlxuICAgIGxldCBvZmZHbG9iZVpvb21BdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDcmVhdGUgcGF0Y2hlZCBHbG9iZVN0YXRlIHRoYXQgc3VwcG9ydHMgem9vbS10by1jdXJzb3JcbiAgICB0aGlzLkNvbnRyb2xsZXJTdGF0ZSA9IGNsYXNzIFBhdGNoZWRHbG9iZVN0YXRlIGV4dGVuZHMgT3JpZ2luYWxHbG9iZVN0YXRlIHtcbiAgICAgIC8vIENvbnN0cmFpbiB0aGUgY2FtZXJhIHRhcmdldCB0byBhIGxhdGl0dWRlIGJhbmQgYXJvdW5kIHRoZSBlcXVhdG9yIHNvIHRoZVxuICAgICAgLy8gdmlldyBjYW4ndCBiZSBjZW50ZXJlZCBvbiB0aGUgcG9sZXMuIGRlY2suZ2wncyBhcHBseUNvbnN0cmFpbnRzIGNsYW1wc1xuICAgICAgLy8gbGF0aXR1ZGUgdG8gfjg1wrAsIHdoaWNoIHN0aWxsIGxldHMgdGhlIGNhbWVyYSBsb29rIHN0cmFpZ2h0IGF0IGEgcG9sZS5cbiAgICAgIGFwcGx5Q29uc3RyYWludHMocHJvcHM6IGFueSkge1xuICAgICAgICAvLyBBdm9pZCBgKHN1cGVyLmZuIGFzIGFueSkoYXJncylgIOKAlCBCYWJlbCBjb21waWxlcyB0aGF0IHRvIGEgcHJvcGVydHkgR0VUXG4gICAgICAgIC8vIChgX3N1cGVyUHJvcEdldCguLi4sIDEpYCkgdGhhdCBkcm9wcyBgdGhpc2AuIEEgZGlyZWN0IGNhbGwgdXNlcyBtZXRob2QtQ0FMTFxuICAgICAgICAvLyBmb3JtIChgX3N1cGVyUHJvcEdldCguLi4sIDMpYCksIHdoaWNoIHByZXNlcnZlcyB0aGUgYmluZGluZy5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuYXBwbHlDb25zdHJhaW50cyhwcm9wcyk7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRMYXRpdHVkZSA9IGNsYW1wKHJlc3VsdC5sYXRpdHVkZSwgLUdMT0JFX01BWF9MQVRJVFVERSwgR0xPQkVfTUFYX0xBVElUVURFKTtcbiAgICAgICAgaWYgKGNsYW1wZWRMYXRpdHVkZSAhPT0gcmVzdWx0LmxhdGl0dWRlKSB7XG4gICAgICAgICAgLy8gZGVjay5nbCBjb3VwbGVzIHpvb20gdG8gbGF0aXR1ZGUgdmlhIHpvb21BZGp1c3Q7IHdoZW4gd2UgZnVydGhlclxuICAgICAgICAgIC8vIGNsYW1wIGxhdGl0dWRlLCByZS1hcHBseSB0aGUgc2FtZSBkZWx0YSBzbyB6b29tIHN0YXlzIGNvbnNpc3RlbnQuXG4gICAgICAgICAgcmVzdWx0Lnpvb20gKz0gem9vbUFkanVzdChjbGFtcGVkTGF0aXR1ZGUpIC0gem9vbUFkanVzdChyZXN1bHQubGF0aXR1ZGUpO1xuICAgICAgICAgIHJlc3VsdC5sYXRpdHVkZSA9IGNsYW1wZWRMYXRpdHVkZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICAvLyBkZWNrLmdsJ3MgR2xvYmVTdGF0ZS5fY29uc3RyYWluWm9vbSBkZXJpdmVzIGEgbWluaW11bSB6b29tIGZyb20gYG1heEJvdW5kc2BcbiAgICAgIC8vIHRoYXQgZm9yY2VzIHRoZSBnbG9iZSB0byBmaWxsIHRoZSB2aWV3cG9ydC4gVGhhdCBib3VuZHMtYmFzZWQgbWluaW11bVxuICAgICAgLy8gKH4zIGZvciBhIHR5cGljYWwgd2luZG93KSBvdmVycmlkZXMgYW55IGNvbmZpZ3VyZWQgYG1pblpvb21gLCBzbyB0aGUgdXNlclxuICAgICAgLy8gY2FuIG5ldmVyIHpvb20gb3V0IGZhciBlbm91Z2ggdG8gc2VlIHRoZSB3aG9sZSBnbG9iZSBzbWFsbCBvbiBzY3JlZW4uXG4gICAgICAvLyBPdmVycmlkZSBpdCB0byBob25vciBvbmx5IHRoZSBjb25maWd1cmVkIG1pblpvb20vbWF4Wm9vbSAocGx1cyB0aGUgc2FtZVxuICAgICAgLy8gbGF0aXR1ZGUgYWRqdXN0bWVudCBkZWNrLmdsIHVzZXMpLCBpZ25vcmluZyB0aGUgYm91bmRzLWJhc2VkIGZsb29yLlxuICAgICAgX2NvbnN0cmFpblpvb20oem9vbTogbnVtYmVyLCBwcm9wcz86IGFueSkge1xuICAgICAgICBwcm9wcyA9IHByb3BzIHx8ICh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpO1xuICAgICAgICBjb25zdCB7bGF0aXR1ZGUsIG1heFpvb219ID0gcHJvcHM7XG4gICAgICAgIGxldCB7bWluWm9vbX0gPSBwcm9wcztcbiAgICAgICAgaWYgKG1pblpvb20gPT09IHVuZGVmaW5lZCB8fCBtaW5ab29tID09PSBudWxsKSB7XG4gICAgICAgICAgbWluWm9vbSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWk9PTTAgPSB6b29tQWRqdXN0KDApO1xuICAgICAgICBjb25zdCB6b29tQWRqdXN0bWVudCA9IHpvb21BZGp1c3QobGF0aXR1ZGUpIC0gWk9PTTA7XG4gICAgICAgIHJldHVybiBjbGFtcCh6b29tLCBtaW5ab29tICsgem9vbUFkanVzdG1lbnQsIG1heFpvb20gKyB6b29tQWRqdXN0bWVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4YWN0IHpvb20tdG8tY3Vyc29yLiBkZWNrLmdsIDkueCdzIEdsb2JlQ29udHJvbGxlciBkb2VzIG5vdCBrZWVwIHRoZSBwb2ludFxuICAgICAgLy8gdW5kZXIgdGhlIGN1cnNvciBmaXhlZCB3aGlsZSB6b29taW5nLCBpbiB0d28gd2F5cyB3ZSB3b3JrIGFyb3VuZCBoZXJlOlxuICAgICAgLy8gICAxLiBJdHMgR2xvYmVTdGF0ZS56b29tKCkgaWdub3JlcyB0aGUgY3Vyc29yIGFuZCB6b29tcyB0b3dhcmQgdGhlIGNlbnRlci5cbiAgICAgIC8vICAgMi4gSXRzIEdsb2JlVmlld3BvcnQucGFuQnlQb3NpdGlvbiBpcyBhIGxvc3N5LCAqbGluZWFyaXplZCogMy1hcmdcbiAgICAgIC8vICAgICAgcm90YXRpb24gKGxvbmdpdHVkZSArPSAoMC4yNS9zY2FsZSkqKHN0YXJ0UGl4ZWwtcGl4ZWwpLCByZS1kZXJpdmVzXG4gICAgICAvLyAgICAgIHpvb20pLiBVc2luZyBpdCBwZXIgd2hlZWwgdGljayBhY2N1bXVsYXRlcyBlcnJvciwgc28gYWZ0ZXIgYSBsb25nXG4gICAgICAvLyAgICAgIGNvbnRpbnVvdXMgem9vbSB0aGUgcG9pbnQgZW5kcyB1cCBub3RpY2VhYmx5IHNoaWZ0ZWQgZnJvbSB3aGF0IHdhc1xuICAgICAgLy8gICAgICBvcmlnaW5hbGx5IHVuZGVyIHRoZSBjdXJzb3IuXG4gICAgICAvLyBUaGUgcmVjZW50ZXIgYmVsb3cgaXMgYW4gKmV4YWN0IGFic29sdXRlKiB0cmFuc2xhdGlvbjogdW5wcm9qZWN0IHRoZVxuICAgICAgLy8gY3Vyc29yIHBpeGVsIGluIHRoZSB6b29tZWQgdmlld3BvcnQgdG8gZ2V0IHRoZSBnZW8gcG9pbnQgY3VycmVudGx5IHVuZGVyIGl0LFxuICAgICAgLy8gdGhlbiBzaGlmdCB0aGUgY2VudGVyIGJ5IChhbmNob3IgLSB0aGF0UG9pbnQpLiBObyB6b29tIGNvdXBsaW5nLCBub1xuICAgICAgLy8gcm90YXRpb25TcGVlZCwgYW5kIGl0IGFwcGxpZXMgdG8gem9vbS1pbiBhbmQgem9vbS1vdXQgc3ltbWV0cmljYWxseSwgc29cbiAgICAgIC8vIHRoZXJlIGlzIG5vIHBlci10aWNrIGFjY3VtdWxhdGVkIGRyaWZ0LlxuICAgICAgem9vbSh7XG4gICAgICAgIHBvcyxcbiAgICAgICAgc3RhcnRQb3MsXG4gICAgICAgIHNjYWxlXG4gICAgICB9OiB7XG4gICAgICAgIHBvczogW251bWJlciwgbnVtYmVyXTtcbiAgICAgICAgc3RhcnRQb3M/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBzY2FsZTogbnVtYmVyO1xuICAgICAgfSkge1xuICAgICAgICBsZXQge3N0YXJ0Wm9vbSwgc3RhcnRab29tTG5nTGF0fSA9ICh0aGlzIGFzIGFueSkuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFByb3BzID0gKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG5cbiAgICAgICAgaWYgKCFzdGFydFpvb21MbmdMYXQpIHtcbiAgICAgICAgICAvLyBXaGVlbCB6b29tOiByZS1kZXJpdmUgYW5jaG9yIGVhY2ggdGljayAocGluY2ggc2V0cyBpdCBvbmNlIGluIHpvb21TdGFydCkuXG4gICAgICAgICAgc3RhcnRab29tID0gY3VycmVudFByb3BzLnpvb207XG5cbiAgICAgICAgICAvLyBTdXBwcmVzcyBjdXJzb3ItYW5jaG9yaW5nIHdoZW4gdGhlIGN1cnNvciBpcyBvZmYtZ2xvYmUgb3Igd2hlbiBhXG4gICAgICAgICAgLy8gcmVjZW50IHRpY2sgd2FzIG9mZi1nbG9iZSAod2l0aGluIEJVUlNUX1RJTUVPVVRfTVMpLiAgZGVjay5nbCBuZXZlclxuICAgICAgICAgIC8vIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIHNvIHdlIHRyYWNrIHRoZSBzZXNzaW9uIHdpdGggdGhlXG4gICAgICAgICAgLy8gY2xvc3VyZSB2YXJpYWJsZSBgb2ZmR2xvYmVab29tQXRgIHJhdGhlciB0aGFuIFZpZXdTdGF0ZS5cbiAgICAgICAgICBjb25zdCBCVVJTVF9USU1FT1VUX01TID0gMjAwO1xuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgY29uc3QgYW5jaG9yVmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydChjdXJyZW50UHJvcHMpO1xuICAgICAgICAgIGNvbnN0IG9uR2xvYmUgPSBpc1BpeGVsT25HbG9iZShhbmNob3JWaWV3cG9ydCwgc3RhcnRQb3MgfHwgcG9zKTtcblxuICAgICAgICAgIGlmICghb25HbG9iZSkgb2ZmR2xvYmVab29tQXQgPSBub3c7XG5cbiAgICAgICAgICBpZiAoIW9uR2xvYmUgfHwgKG9mZkdsb2JlWm9vbUF0ICE9PSBudWxsICYmIG5vdyAtIG9mZkdsb2JlWm9vbUF0IDwgQlVSU1RfVElNRU9VVF9NUykpIHtcbiAgICAgICAgICAgIGNvbnN0IHpvb20gPSAodGhpcyBhcyBhbnkpLl9jb25zdHJhaW5ab29tKHN0YXJ0Wm9vbSArIE1hdGgubG9nMihzY2FsZSkpO1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7em9vbX0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9mZkdsb2JlWm9vbUF0ID0gbnVsbDtcbiAgICAgICAgICBzdGFydFpvb21MbmdMYXQgPSAodGhpcyBhcyBhbnkpLl91bnByb2plY3Qoc3RhcnRQb3MpIHx8ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgem9vbSA9ICh0aGlzIGFzIGFueSkuX2NvbnN0cmFpblpvb20oc3RhcnRab29tICsgTWF0aC5sb2cyKHNjYWxlKSk7XG5cbiAgICAgICAgaWYgKCFzdGFydFpvb21MbmdMYXQpIHtcbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBab29tLW91dCAoc2NhbGUgPCAxKTogZXhhY3QgY3Vyc29yIGFuY2hvcmluZyBpcyB1bnN0YWJsZSBuZWFyIHRoZSBsaW1iXG4gICAgICAgIC8vIChub24tbGluZWFyIGdlby10by1waXhlbCBtYXBwaW5nIHB1bGxzIHRoZSB2aWV3IHRvd2FyZCB0aGUgcG9sZXMpLlxuICAgICAgICAvLyBJbnN0ZWFkLCBnZW50bHkgc3RlZXIgdGhlIGNlbnRlciB0b3dhcmQgdGhlIGN1cnNvciBsb2NhdGlvbiBwZXIgdGljay5cbiAgICAgICAgaWYgKHNjYWxlIDwgMSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHN0YXJ0Wm9vbUxuZ0xhdCkgfHxcbiAgICAgICAgICAgICFOdW1iZXIuaXNGaW5pdGUoc3RhcnRab29tTG5nTGF0WzBdKSB8fFxuICAgICAgICAgICAgIU51bWJlci5pc0Zpbml0ZShzdGFydFpvb21MbmdMYXRbMV0pXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUGVyLXRpY2sgbGVycCBzdHJlbmd0aCBzY2FsZXMgd2l0aCB6b29tLW91dCBhbW91bnQ7IGNsYW1wZWQgdG8gYXZvaWQgb3ZlcnNob290LlxuICAgICAgICAgIGNvbnN0IHQgPSBNYXRoLm1pbigxLCAoMSAtIHNjYWxlKSAqIDAuMTEpO1xuXG4gICAgICAgICAgLy8gU2hvcnRlc3QtcGF0aCBsb25naXR1ZGUgaW50ZXJwb2xhdGlvbiAoaGFuZGxlcyBhbnRpbWVyaWRpYW4gd3JhcCkuXG4gICAgICAgICAgbGV0IGRMbmcgPSBzdGFydFpvb21MbmdMYXRbMF0gLSBjdXJyZW50UHJvcHMubG9uZ2l0dWRlO1xuICAgICAgICAgIGlmIChkTG5nID4gMTgwKSBkTG5nIC09IDM2MDtcbiAgICAgICAgICBpZiAoZExuZyA8IC0xODApIGRMbmcgKz0gMzYwO1xuXG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgICB6b29tLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjdXJyZW50UHJvcHMubG9uZ2l0dWRlICsgZExuZyAqIHQsXG4gICAgICAgICAgICBsYXRpdHVkZTogY3VycmVudFByb3BzLmxhdGl0dWRlICsgKHN0YXJ0Wm9vbUxuZ0xhdFsxXSAtIGN1cnJlbnRQcm9wcy5sYXRpdHVkZSkgKiB0XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6b29tZWRWaWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KHtcbiAgICAgICAgICAuLi5jdXJyZW50UHJvcHMsXG4gICAgICAgICAgem9vbVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBab29tLWluOiBleGFjdCBhbmNob3Ig4oCUIHVucHJvamVjdCB0aGUgY3Vyc29yIGluIHRoZSBwb3N0LXpvb20gdmlld3BvcnQgYW5kXG4gICAgICAgIC8vIHNoaWZ0IHRoZSBjZW50ZXIgc28gdGhlIGdyYWJiZWQgZ2VvIHBvaW50IGxhbmRzIGJhY2sgdW5kZXIgdGhlIGN1cnNvci5cbiAgICAgICAgLy8gR3VhcmQgd2l0aCBpc1BpeGVsT25HbG9iZTogaWYgcG9zIG1vdmVkIG9mZi1nbG9iZSBkdXJpbmcgYSBmYXN0IHBpbmNoLFxuICAgICAgICAvLyBmYWxsIGJhY2sgdG8gY2VudGVyIHpvb20uXG4gICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUoem9vbWVkVmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tUG9zaXRpb24gPSB6b29tZWRWaWV3cG9ydC51bnByb2plY3QocG9zKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICB6b29tLFxuICAgICAgICAgIGxvbmdpdHVkZTogc3RhcnRab29tTG5nTGF0WzBdIC0gZnJvbVBvc2l0aW9uWzBdICsgem9vbWVkVmlld3BvcnQubG9uZ2l0dWRlLFxuICAgICAgICAgIGxhdGl0dWRlOiBzdGFydFpvb21MbmdMYXRbMV0gLSBmcm9tUG9zaXRpb25bMV0gKyB6b29tZWRWaWV3cG9ydC5sYXRpdHVkZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2xlYXIgdGhlIHBlcnNpc3RlZCBwaW5jaCBhbmNob3IgYXQgZ2VzdHVyZSBlbmQuXG4gICAgICB6b29tRW5kKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICBzdGFydFpvb206IG51bGwsXG4gICAgICAgICAgc3RhcnRab29tTG5nTGF0OiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGFjdCwgY3Vyc29yLWFuY2hvcmVkIHBhbjogdGhlIGdlbyBwb2ludCBncmFiYmVkIG9uIG1vdXNlZG93biBzdGF5c1xuICAgICAgLy8gbG9ja2VkIHVuZGVyIHRoZSBjdXJzb3IgZm9yIHRoZSB3aG9sZSBkcmFnLlxuICAgICAgLy9cbiAgICAgIC8vIGRlY2suZ2wgOS54J3MgR2xvYmVDb250cm9sbGVyIHBhbnMgd2l0aCBhICpsaW5lYXJpemVkLCBjZW50ZXItYW5jaG9yZWQqXG4gICAgICAvLyByb3RhdGlvbiAoR2xvYmVWaWV3cG9ydC5wYW5CeVBvc2l0aW9uKFtsbmcsbGF0LHpvb21dLCBwaXhlbCwgc3RhcnRQaXhlbCk6XG4gICAgICAvLyBsb25naXR1ZGUgKz0gKDAuMjUvc2NhbGUpKihzdGFydFBpeGVsLXBpeGVsKSkuIEJlY2F1c2UgdGhlIGFuY2hvciBpcyB0aGVcbiAgICAgIC8vIHZpZXcgQ0VOVEVSIHJhdGhlciB0aGFuIHRoZSBncmFiYmVkIHBvaW50LCB0aGUgZmlyc3QgZHJhZyBmcmFtZSBzbmFwcyB0aGVcbiAgICAgIC8vIGNlbnRlciB0byBzYXRpc2Z5IHRoZSBsaW5lYXIgYXBwcm94aW1hdGlvbiwgcHJvZHVjaW5nIHRoZSB2aXNpYmxlIFwianVtcCB0b1xuICAgICAgLy8gdGhlIHNpZGUvdXBcIiBhdCB0aGUgc3RhcnQgb2YgYSBwYW4gKG1vc3Qgbm90aWNlYWJsZSBhdCBoaWdoIHpvb20pLCBhZnRlclxuICAgICAgLy8gd2hpY2ggaW5jcmVtZW50YWwgZGVsdGFzIHRyYWNrIGZpbmUuIFRoZSBleGFjdCBhbmNob3IgYmVsb3cgcmVtb3ZlcyB0aGF0XG4gICAgICAvLyBmaXJzdC1mcmFtZSBzbmFwLlxuICAgICAgcGFuU3RhcnQoe3Bvc306IHtwb3M6IFtudW1iZXIsIG51bWJlcl19KSB7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCkpO1xuICAgICAgICAvLyBJZiB0aGUgbW91c2Vkb3duIHBpeGVsIGlzIG91dHNpZGUgdGhlIGdsb2JlIHNpbGhvdWV0dGUsIHN0b3JlIGBmYWxzZWBcbiAgICAgICAgLy8gYXMgYW4gZXhwbGljaXQgc2VudGluZWwgc28gdGhhdCBldmVyeSBzdWJzZXF1ZW50IGBwYW5gIGNhbGwgZm9yIHRoaXNcbiAgICAgICAgLy8gZ2VzdHVyZSBpcyBhIG5vLW9wLiAgV2UgY2FuJ3QgcmVseSBvbiBgX3VucHJvamVjdChwb3MpYCByZXR1cm5pbmdcbiAgICAgICAgLy8gdW5kZWZpbmVkIGhlcmUgYmVjYXVzZSBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCBjbGFtcHMgdGhlXG4gICAgICAgIC8vIHJheeKAk3NwaGVyZSBkaXNjcmltaW5hbnQgdG8gMCB2aWEgTWF0aC5tYXgoMCwg4oCmKSwgd2hpY2ggbWVhbnMgaXRcbiAgICAgICAgLy8gYWx3YXlzIHJldHVybnMgYSB2YWxpZC1sb29raW5nIGxuZy9sYXQgZXZlbiBmb3Igb2ZmLWdsb2JlIHBpeGVscy5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3N0YXJ0UGFuTG5nTGF0OiBmYWxzZX0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHN0YXJ0UGFuTG5nTGF0OiAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcGFuKHtwb3MsIHN0YXJ0UG9zfToge3BvczogW251bWJlciwgbnVtYmVyXTsgc3RhcnRQb3M/OiBbbnVtYmVyLCBudW1iZXJdfSkge1xuICAgICAgICBjb25zdCBzdG9yZWRTdGFydCA9ICh0aGlzIGFzIGFueSkuZ2V0U3RhdGUoKS5zdGFydFBhbkxuZ0xhdDtcblxuICAgICAgICBjb25zdCBwcm9wcyA9ICh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpO1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KHByb3BzKTtcblxuICAgICAgICAvLyBgZmFsc2VgIG1lYW5zIHRoZSBkcmFnIHN0YXJ0ZWQgb3V0c2lkZSB0aGUgZ2xvYmUuIElmIHRoZSBjdXJzb3IgaGFzXG4gICAgICAgIC8vIG5vdyBtb3ZlZCBvbnRvIHRoZSBnbG9iZSwgbGF0Y2ggdGhlIGN1cnJlbnQgcG9zaXRpb24gYXMgdGhlIGFuY2hvclxuICAgICAgICAvLyBzbyByb3RhdGlvbiBiZWdpbnMgZnJvbSB0aGUgZW50cnkgcG9pbnQuIE90aGVyd2lzZSBzdGF5IGZyb3plbi5cbiAgICAgICAgaWYgKHN0b3JlZFN0YXJ0ID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUodmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBDdXJzb3IganVzdCBlbnRlcmVkIHRoZSBnbG9iZSDigJQgZXN0YWJsaXNoIHRoZSBhbmNob3IgYW5kIHJldHVyblxuICAgICAgICAgIC8vIHdpdGhvdXQgbW92aW5nOyB0aGUgbmV4dCBwYW4gZXZlbnQgd2lsbCBhcHBseSB0aGUgZmlyc3QgZGVsdGEuXG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgICBzdGFydFBhbkxuZ0xhdDogKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcylcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YXJ0UGFuTG5nTGF0ID0gc3RvcmVkU3RhcnQgfHwgKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHN0YXJ0UG9zKTtcbiAgICAgICAgaWYgKCFzdGFydFBhbkxuZ0xhdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgY3Vyc29yIGxlYXZlcyB0aGUgZ2xvYmUgc2lsaG91ZXR0ZSBtaWQtZHJhZywgZnJlZXplIHRoZSB2aWV3LlxuICAgICAgICAvLyB2aWV3cG9ydC51bnByb2plY3QoKSBzbmFwcyBvZmYtZ2xvYmUgcGl4ZWxzIHRvIHRoZSBuZWFyZXN0IGxpbWIgcG9pbnRcbiAgICAgICAgLy8gKHZpYSBNYXRoLm1heCgwLCDigKYpIGluIGl0cyByYXnigJNzcGhlcmUgZGlzY3JpbWluYW50KSwgc28gd2l0aG91dCB0aGlzXG4gICAgICAgIC8vIGd1YXJkIHRoZSBnbG9iZSB3b3VsZCBrZWVwIHJvdGF0aW5nIHRvd2FyZCB0aGUgZWRnZSBhcyB0aGUgY3Vyc29yIG1vdmVzXG4gICAgICAgIC8vIGZ1cnRoZXIgb3V0c2lkZS5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJvbVBvc2l0aW9uID0gdmlld3BvcnQudW5wcm9qZWN0KHBvcyk7XG5cbiAgICAgICAgY29uc3QgbG9uZ2l0dWRlID0gc3RhcnRQYW5MbmdMYXRbMF0gLSBmcm9tUG9zaXRpb25bMF0gKyBwcm9wcy5sb25naXR1ZGU7XG4gICAgICAgIGxldCBsYXRpdHVkZSA9IHN0YXJ0UGFuTG5nTGF0WzFdIC0gZnJvbVBvc2l0aW9uWzFdICsgcHJvcHMubGF0aXR1ZGU7XG4gICAgICAgIGxhdGl0dWRlID0gY2xhbXAobGF0aXR1ZGUsIC1HTE9CRV9NQVhfTEFUSVRVREUsIEdMT0JFX01BWF9MQVRJVFVERSk7XG5cbiAgICAgICAgLy8gZGVjay5nbCA5J3MgR2xvYmVWaWV3cG9ydCBzY2FsZSA9IDJeKHpvb20gLSB6b29tQWRqdXN0KGxhdGl0dWRlKSksIHNvIGFcbiAgICAgICAgLy8gY29uc3RhbnQgem9vbSB3b3VsZCBtYWtlIHRoZSBnbG9iZSBncm93IG9uIHNjcmVlbiBhcyB0aGUgY2VudGVyIG1vdmVzXG4gICAgICAgIC8vIHRvd2FyZCB0aGUgcG9sZXMuIFJlLWNvdXBsZSB6b29tIHRvIHRoZSBuZXcgbGF0aXR1ZGUgKGFzIGRlY2suZ2wgOSdzIG93blxuICAgICAgICAvLyBwYW4gZG9lcykgdG8ga2VlcCB0aGUgb24tc2NyZWVuIHNjYWxlIOKAlCBhbmQgdGh1cyB0aWxlIExPRCDigJQgY29uc3RhbnQuXG4gICAgICAgIGNvbnN0IHZpc3VhbFpvb20gPSBwcm9wcy56b29tIC0gem9vbUFkanVzdChwcm9wcy5sYXRpdHVkZSk7XG4gICAgICAgIGNvbnN0IHpvb20gPSB2aXN1YWxab29tICsgem9vbUFkanVzdChsYXRpdHVkZSk7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7bG9uZ2l0dWRlLCBsYXRpdHVkZSwgem9vbX0pO1xuICAgICAgfVxuXG4gICAgICBwYW5FbmQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3N0YXJ0UGFuTG5nTGF0OiBudWxsfSk7XG4gICAgICB9XG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuLyoqXG4gKiBDdXN0b20gR2xvYmVWaWV3IHRoYXQgdXNlcyB6b29tLXRvLWN1cnNvciBjb250cm9sbGVyIGJlaGF2aW9yLlxuICovXG5leHBvcnQgY2xhc3MgS2VwbGVyR2xvYmVWaWV3IGV4dGVuZHMgRGVja0dsb2JlVmlldyB7XG4gIC8vIEZvcndhcmQgY29uc3RydWN0b3IgcHJvcHMgdG8gZGVjay5nbCdzIEdsb2JlVmlldy4gRGVjbGFyZWQgZXhwbGljaXRseSBiZWNhdXNlXG4gIC8vIHRoZSBiYXNlIGNsYXNzIGlzIGxvb3NlbHkgdHlwZWQgKHNlZSBEZWNrR2xvYmVWaWV3IGFib3ZlKSwgd2hpY2ggd291bGRcbiAgLy8gb3RoZXJ3aXNlIHN1cmZhY2UgYSBwYXJhbWV0ZXJsZXNzIGNvbnN0cnVjdG9yIHRvIGNhbGxlcnMuXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogYW55KSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgZ2V0IENvbnRyb2xsZXJUeXBlKCkge1xuICAgIHJldHVybiBab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXI7XG4gIH1cblxuICAvLyBkZWNrLmdsIDkncyBHbG9iZVZpZXcuZ2V0Vmlld3BvcnRUeXBlKCkgc3dhcHMgdGhlIHZpZXdwb3J0IGNsYXNzIGJhc2VkIG9uIHpvb206XG4gIC8vICAgYHJldHVybiB2aWV3U3RhdGUuem9vbSA+IDEyID8gV2ViTWVyY2F0b3JWaWV3cG9ydCA6IEdsb2JlVmlld3BvcnQ7YFxuICAvLyBDcm9zc2luZyB6b29tIDEyIHRoZXJlZm9yZSByZWNvbXB1dGVzIHRpbGUgYm91bmRzIHdpdGggY29tcGxldGVseSBkaWZmZXJlbnRcbiAgLy8gcHJvamVjdGlvbiBtYXRoIChnbG9iZSB2cyBmbGF0IG1lcmNhdG9yKS4gVGhhdCBtYWtlcyBkZWNrJ3MgVGlsZUxheWVyL01WVExheWVyXG4gIC8vIHJlc2VsZWN0IHRpbGVzIGluY29uc2lzdGVudGx5IGFjcm9zcyB0aGUgYm91bmRhcnkg4oCUIG1peGVkIExPRHMgKGUuZy4gYSB6NCB0aWxlXG4gIC8vIG5leHQgdG8gejExKSwgYSB2aXNpYmxlIFwiZmxpY2tlclwiIGF0IDEyLCBhbmQgdGlsZXMgdGhhdCBnZXQgZHJvcHBlZCBhbmQgc3RpY2tcbiAgLy8gYXMgYmxhY2svZW1wdHkgcXVhZHMgKG1vc3Qgb2Z0ZW4gY3Jvc3NpbmcgMTIgb24gdGhlIHdheSAqb3V0KikuXG4gIC8vXG4gIC8vIEZvcmNlIEdsb2JlVmlld3BvcnQgYXQgZXZlcnkgem9vbSB0byBlbGltaW5hdGUgdGhlIHo9MTIgdmlld3BvcnQgc3dhcCBzbyB0aWxlXG4gIC8vIHNlbGVjdGlvbiBzdGF5cyBjb25zaXN0ZW50LiBUaGUgdHJhZGUtb2ZmIGlzIHRoYXQgem9vbSA+IDEyIG5vdyB1c2VzIGZsb2F0MzJcbiAgLy8gZ2xvYmUgcHJlY2lzaW9uIChkZWNrJ3MgZG9jdW1lbnRlZCBcIm5vIGhpZ2gtcHJlY2lzaW9uIHJlbmRlcmluZyA+IDEyXCIgbGltaXQpXG4gIC8vIGluc3RlYWQgb2Ygc3dpdGNoaW5nIHRvIG1lcmNhdG9yIOKAlCBmYXIgcHJlZmVyYWJsZSB0byB0aGUgYmxhY2sgcXVhZHMuXG4gIGdldFZpZXdwb3J0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVja0dsb2JlVmlld3BvcnQ7XG4gIH1cbn1cblxuS2VwbGVyR2xvYmVWaWV3LmRpc3BsYXlOYW1lID0gJ0tlcGxlckdsb2JlVmlldyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxRQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBSCxPQUFBO0FBQTZELFNBQUFELHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBUCx1QkFBQSxZQUFBQSx3QkFBQUss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QUFDRCxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQzs7RUFFckI7RUFDQSxJQUFNRSxFQUFFLEdBQUdDLFdBQUksQ0FBQ0MsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQzdELElBQU1LLEVBQUUsR0FBR0YsV0FBSSxDQUFDQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQzVELElBQUlFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUlHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQzs7RUFFN0M7RUFDQSxJQUFNQyxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFTSxFQUFFLEdBQUdOLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNoRSxJQUFNTyxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFTSxFQUFFLEdBQUdOLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQzs7RUFFaEU7RUFDQSxJQUFNTyxFQUFFLEdBQUdILEVBQUUsR0FBR0gsRUFBRTtJQUFFTyxFQUFFLEdBQUdI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
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jb3JlMiIsIl9jb25zdGFudHMiLCJfZ2xvYmVEZXB0aERpc2tMYXllciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiX2dldFByb3RvdHlwZU9mMiIsInByb3RvdHlwZSIsIl9jYWxsU3VwZXIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInZlYzQiLCJ0cmFuc2Zvcm1NYXQ0IiwicDEiLCJheCIsImF5IiwiYXoiLCJieCIsImJ5IiwiYnoiLCJkeCIsImR5IiwiZHoiLCJjeCIsImN5IiwiY3oiLCJkU3FyIiwiR0xPQkVfQ09NTU9OX1JBRElVUyIsIlpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiT3JpZ2luYWxHbG9iZVN0YXRlIiwiQ29udHJvbGxlclN0YXRlIiwib2ZmR2xvYmVab29tQXQiLCJfT3JpZ2luYWxHbG9iZVN0YXRlIiwiUGF0Y2hlZEdsb2JlU3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiYXBwbHlDb25zdHJhaW50cyIsInByb3BzIiwicmVzdWx0IiwiY2xhbXBlZExhdGl0dWRlIiwiY2xhbXAiLCJHTE9CRV9NQVhfTEFUSVRVREUiLCJ6b29tIiwiX2NvbnN0cmFpblpvb20iLCJnZXRWaWV3cG9ydFByb3BzIiwiX3Byb3BzIiwibWF4Wm9vbSIsIl9wcm9wczIiLCJtaW5ab29tIiwidW5kZWZpbmVkIiwiWk9PTTAiLCJ6b29tQWRqdXN0bWVudCIsIl9yZWYiLCJzdGFydFBvcyIsInNjYWxlIiwiX2dldFN0YXRlIiwiZ2V0U3RhdGUiLCJzdGFydFpvb20iLCJzdGFydFpvb21MbmdMYXQiLCJjdXJyZW50UHJvcHMiLCJCVVJTVF9USU1FT1VUX01TIiwibm93IiwiRGF0ZSIsImFuY2hvclZpZXdwb3J0IiwibWFrZVZpZXdwb3J0Iiwib25HbG9iZSIsIl9nZXRVcGRhdGVkU3RhdGUiLCJfdW5wcm9qZWN0IiwiaXNBcnJheSIsIk51bWJlciIsImlzRmluaXRlIiwibWluIiwiZExuZyIsImxvbmdpdHVkZSIsInpvb21lZFZpZXdwb3J0IiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiZXhwb3J0cyIsIl9EZWNrR2xvYmVWaWV3IiwiZ2V0Vmlld3BvcnRUeXBlIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmUvZ2xvYmUtdmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBEZWNrQ29yZSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Y2xhbXAsIHZlYzR9IGZyb20gJ0BtYXRoLmdsL2NvcmUnO1xuaW1wb3J0IHtHTE9CRV9NQVhfTEFUSVRVREV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7R0xPQkVfQ09NTU9OX1JBRElVU30gZnJvbSAnLi9nbG9iZS1kZXB0aC1kaXNrLWxheWVyJztcblxuLy8gZGVjay5nbCBleHBvc2VzIEdsb2JlVmlldyAvIEdsb2JlQ29udHJvbGxlciBhcyBleHBlcmltZW50YWwsIHVuZGVyc2NvcmUtcHJlZml4ZWRcbi8vIG1lbWJlcnMuIFRoZWlyIG5hbWVkIHR5cGUgYmluZGluZ3MgYXJlbid0IHJlbGlhYmx5IHJlc29sdmFibGUgdGhyb3VnaCB0aGVcbi8vIHBhY2thZ2UgYmFycmVsIHVuZGVyIHRoaXMgcHJvamVjdCdzIG1vZHVsZSByZXNvbHV0aW9uLCBzbyB3ZSBwdWxsIHRoZW0gb2ZmIHRoZVxuLy8gbmFtZXNwYWNlIHdpdGggYSBsb29zZSB0eXBlLiBSdW50aW1lIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC5cbmNvbnN0IERlY2tHbG9iZVZpZXcgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3IGFzIGFueTtcbmNvbnN0IEdsb2JlQ29udHJvbGxlciA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZUNvbnRyb2xsZXIgYXMgYW55O1xuY29uc3QgRGVja0dsb2JlVmlld3BvcnQgPSAoRGVja0NvcmUgYXMgYW55KS5fR2xvYmVWaWV3cG9ydCBhcyBhbnk7XG5cbi8qKlxuICogTGF0aXR1ZGUtYmFzZWQgem9vbSBhZGp1c3RtZW50IHVzZWQgYnkgZGVjay5nbCdzIEdsb2JlVmlld3BvcnQsIHJlcGxpY2F0ZWRcbiAqIGhlcmUgc28gb3VyIGN1c3RvbSBgX2NvbnN0cmFpblpvb21gIG1hdGNoZXMgZGVjay5nbCdzIGNvb3JkaW5hdGUgbWF0aC5cbiAqIFNlZSBAZGVjay5nbC9jb3JlIGdsb2JlLXZpZXdwb3J0LmpzIGB6b29tQWRqdXN0YC5cbiAqL1xuZnVuY3Rpb24gem9vbUFkanVzdChsYXRpdHVkZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubG9nMihNYXRoLlBJICogTWF0aC5jb3MoKGxhdGl0dWRlICogTWF0aC5QSSkgLyAxODApKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNjcmVlbiBwaXhlbCBgcG9zYCBsaWVzIHdpdGhpbiB0aGUgdmlzaWJsZSBnbG9iZVxuICogc2lsaG91ZXR0ZS5cbiAqXG4gKiBHbG9iZVZpZXdwb3J0LnVucHJvamVjdCgpIGNsYW1wcyB0aGUgcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB3aXRoXG4gKiBNYXRoLm1heCgwLCBywrLiiJJkwrIpLCBzbyBpdCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGxuZy9sYXQgZXZlbiBmb3JcbiAqIG9mZi1nbG9iZSBwaXhlbHMgKHNuYXBwaW5nIHRvIHRoZSBsaW1iKS4gIFdlIHJlcGxpY2F0ZSB0aGUgc2FtZSByYXkgY2FzdFxuICogYnV0IGNoZWNrIHRoZSBkaXNjcmltaW5hbnQgYmVmb3JlIHRoZSBjbGFtcCB1c2luZyB0aGUgc3RhbmRhcmRcbiAqIHNxdWFyZWQtZGlzdGFuY2UtZnJvbS1vcmlnaW4tdG8tcmF5IGZvcm11bGE6IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrIuXG4gKi9cbmZ1bmN0aW9uIGlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0OiBhbnksIHBvczogW251bWJlciwgbnVtYmVyXSk6IGJvb2xlYW4ge1xuICBjb25zdCBtOiBudW1iZXJbXSA9IHZpZXdwb3J0LnBpeGVsVW5wcm9qZWN0aW9uTWF0cml4O1xuICBpZiAoIW0pIHJldHVybiB0cnVlOyAvLyBjb25zZXJ2YXRpdmUgZmFsbGJhY2sgaWYgbWF0cml4IHVuYXZhaWxhYmxlXG5cbiAgLy8gQ2FzdCBhIHJheSB0aHJvdWdoIHRoZSBwaXhlbCBhdCB0aGUgbmVhciBhbmQgZmFyIHBsYW5lcy5cbiAgY29uc3QgcDAgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgLTEsIDFdLCBtKTtcbiAgY29uc3QgcDEgPSB2ZWM0LnRyYW5zZm9ybU1hdDQoW10sIFtwb3NbMF0sIHBvc1sxXSwgMSwgMV0sIG0pO1xuICBpZiAocDBbM10gPT09IDAgfHwgcDFbM10gPT09IDApIHJldHVybiB0cnVlOyAvLyBkZWdlbmVyYXRlIHByb2plY3Rpb25cblxuICAvLyBQZXJzcGVjdGl2ZS1kaXZpZGUgdG8gd29ybGQgc3BhY2UuXG4gIGNvbnN0IGF4ID0gcDBbMF0gLyBwMFszXSwgYXkgPSBwMFsxXSAvIHAwWzNdLCBheiA9IHAwWzJdIC8gcDBbM107XG4gIGNvbnN0IGJ4ID0gcDFbMF0gLyBwMVszXSwgYnkgPSBwMVsxXSAvIHAxWzNdLCBieiA9IHAxWzJdIC8gcDFbM107XG5cbiAgLy8gUmF5IGRpcmVjdGlvbi5cbiAgY29uc3QgZHggPSBieCAtIGF4LCBkeSA9IGJ5IC0gYXksIGR6ID0gYnogLSBhejtcblxuICAvLyBTcXVhcmVkIGRpc3RhbmNlIGZyb20gdGhlIG9yaWdpbiAoZ2xvYmUgY2VudGVyKSB0byB0aGUgcmF5OlxuICAvLyAgIGTCsiA9IHxQ4oKAIMOXIGRpcnzCsiAvIHxkaXJ8wrJcbiAgY29uc3QgY3ggPSBheSAqIGR6IC0gYXogKiBkeTtcbiAgY29uc3QgY3kgPSBheiAqIGR4IC0gYXggKiBkejtcbiAgY29uc3QgY3ogPSBheCAqIGR5IC0gYXkgKiBkeDtcbiAgY29uc3QgZFNxciA9IChjeCAqIGN4ICsgY3kgKiBjeSArIGN6ICogY3opIC8gKGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeik7XG5cbiAgcmV0dXJuIGRTcXIgPD0gR0xPQkVfQ09NTU9OX1JBRElVUyAqIEdMT0JFX0NPTU1PTl9SQURJVVM7XG59XG5cbi8qKlxuICogQ3VzdG9tIEdsb2JlQ29udHJvbGxlciB0aGF0IHJlc3RvcmVzIHpvb20tdG8tY3Vyc29yIGJlaGF2aW9yLlxuICpcbiAqIEluIGRlY2suZ2wgOS54LCB0aGUgZGVmYXVsdCBHbG9iZUNvbnRyb2xsZXIncyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZVxuICogY3Vyc29yIHBvc2l0aW9uIGFuZCBhbHdheXMgem9vbXMgdG93YXJkIHRoZSBjZW50ZXIuIFRoaXMgY29udHJvbGxlciBwYXRjaGVzXG4gKiB0aGF0IGJlaGF2aW9yIGJ5IG92ZXJyaWRpbmcgdGhlIENvbnRyb2xsZXJTdGF0ZSdzIHpvb20gbWV0aG9kIHRvIHBhbiB0aGVcbiAqIGdsb2JlIHVuZGVyIHRoZSBjdXJzb3Igd2hpbGUgem9vbWluZywgc28gem9vbS10by1jdXJzb3Igd29ya3MgdGhlIHNhbWUgd2F5IGl0XG4gKiBkb2VzIGZvciB0aGUgMkQgTWFwQ29udHJvbGxlci5cbiAqL1xuY2xhc3MgWm9vbVRvQ3Vyc29yR2xvYmVDb250cm9sbGVyIGV4dGVuZHMgR2xvYmVDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICBjb25zdCBPcmlnaW5hbEdsb2JlU3RhdGUgPSB0aGlzLkNvbnRyb2xsZXJTdGF0ZTtcblxuICAgIC8vIFRyYWNrcyB3aGVuIHRoZSBtb3N0IHJlY2VudCBvZmYtZ2xvYmUgd2hlZWwtem9vbSB0aWNrIGZpcmVkLlxuICAgIC8vIFN0b3JlZCBhcyBhIGNvbnRyb2xsZXItbGV2ZWwgY2xvc3VyZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBpbiBWaWV3U3RhdGVcbiAgICAvLyBiZWNhdXNlIGRlY2suZ2wncyBDb250cm9sbGVyIG5ldmVyIGNhbGxzIHpvb21FbmQoKSBmb3Igd2hlZWwgZXZlbnRzIOKAlFxuICAgIC8vIG9ubHkgZm9yIHBpbmNoL3RvdWNoIOKAlCBzbyB0aGVyZSBpcyBubyByZWxpYWJsZSBob29rIHRvIGNsZWFyIGFcbiAgICAvLyBWaWV3U3RhdGUtYmFzZWQgc2VudGluZWwgYWZ0ZXIgYSB3aGVlbCBzY3JvbGwgc2Vzc2lvbiBlbmRzLlxuICAgIC8vIEEgc2ltcGxlIHRpbWVzdGFtcCBsZXRzIHVzIGRldGVjdCB3aGVuIGEgbmV3IHNjcm9sbCBidXJzdCBoYXMgc3RhcnRlZFxuICAgIC8vICg+IEJVUlNUX1RJTUVPVVRfTVMgc2luY2UgdGhlIGxhc3Qgb2ZmLWdsb2JlIHRpY2spIHNvIGN1cnNvci1hbmNob3JlZFxuICAgIC8vIHpvb20gY2FuIHJlc3VtZSBuYXR1cmFsbHkgb24gdGhlIG5leHQgaW5kZXBlbmRlbnQgc2Nyb2xsLlxuICAgIGxldCBvZmZHbG9iZVpvb21BdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDcmVhdGUgcGF0Y2hlZCBHbG9iZVN0YXRlIHRoYXQgc3VwcG9ydHMgem9vbS10by1jdXJzb3JcbiAgICB0aGlzLkNvbnRyb2xsZXJTdGF0ZSA9IGNsYXNzIFBhdGNoZWRHbG9iZVN0YXRlIGV4dGVuZHMgT3JpZ2luYWxHbG9iZVN0YXRlIHtcbiAgICAgIC8vIENvbnN0cmFpbiB0aGUgY2FtZXJhIHRhcmdldCB0byBhIGxhdGl0dWRlIGJhbmQgYXJvdW5kIHRoZSBlcXVhdG9yIHNvIHRoZVxuICAgICAgLy8gdmlldyBjYW4ndCBiZSBjZW50ZXJlZCBvbiB0aGUgcG9sZXMuIGRlY2suZ2wncyBhcHBseUNvbnN0cmFpbnRzIGNsYW1wc1xuICAgICAgLy8gbGF0aXR1ZGUgdG8gfjg1wrAsIHdoaWNoIHN0aWxsIGxldHMgdGhlIGNhbWVyYSBsb29rIHN0cmFpZ2h0IGF0IGEgcG9sZS5cbiAgICAgIGFwcGx5Q29uc3RyYWludHMocHJvcHM6IGFueSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBzdXBlci5hcHBseUNvbnN0cmFpbnRzKHByb3BzKTtcbiAgICAgICAgY29uc3QgY2xhbXBlZExhdGl0dWRlID0gY2xhbXAocmVzdWx0LmxhdGl0dWRlLCAtR0xPQkVfTUFYX0xBVElUVURFLCBHTE9CRV9NQVhfTEFUSVRVREUpO1xuICAgICAgICBpZiAoY2xhbXBlZExhdGl0dWRlICE9PSByZXN1bHQubGF0aXR1ZGUpIHtcbiAgICAgICAgICAvLyBkZWNrLmdsIGNvdXBsZXMgem9vbSB0byBsYXRpdHVkZSB2aWEgem9vbUFkanVzdDsgd2hlbiB3ZSBmdXJ0aGVyXG4gICAgICAgICAgLy8gY2xhbXAgbGF0aXR1ZGUsIHJlLWFwcGx5IHRoZSBzYW1lIGRlbHRhIHNvIHpvb20gc3RheXMgY29uc2lzdGVudC5cbiAgICAgICAgICByZXN1bHQuem9vbSArPSB6b29tQWRqdXN0KGNsYW1wZWRMYXRpdHVkZSkgLSB6b29tQWRqdXN0KHJlc3VsdC5sYXRpdHVkZSk7XG4gICAgICAgICAgcmVzdWx0LmxhdGl0dWRlID0gY2xhbXBlZExhdGl0dWRlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGRlY2suZ2wncyBHbG9iZVN0YXRlLl9jb25zdHJhaW5ab29tIGRlcml2ZXMgYSBtaW5pbXVtIHpvb20gZnJvbSBgbWF4Qm91bmRzYFxuICAgICAgLy8gdGhhdCBmb3JjZXMgdGhlIGdsb2JlIHRvIGZpbGwgdGhlIHZpZXdwb3J0LiBUaGF0IGJvdW5kcy1iYXNlZCBtaW5pbXVtXG4gICAgICAvLyAofjMgZm9yIGEgdHlwaWNhbCB3aW5kb3cpIG92ZXJyaWRlcyBhbnkgY29uZmlndXJlZCBgbWluWm9vbWAsIHNvIHRoZSB1c2VyXG4gICAgICAvLyBjYW4gbmV2ZXIgem9vbSBvdXQgZmFyIGVub3VnaCB0byBzZWUgdGhlIHdob2xlIGdsb2JlIHNtYWxsIG9uIHNjcmVlbi5cbiAgICAgIC8vIE92ZXJyaWRlIGl0IHRvIGhvbm9yIG9ubHkgdGhlIGNvbmZpZ3VyZWQgbWluWm9vbS9tYXhab29tIChwbHVzIHRoZSBzYW1lXG4gICAgICAvLyBsYXRpdHVkZSBhZGp1c3RtZW50IGRlY2suZ2wgdXNlcyksIGlnbm9yaW5nIHRoZSBib3VuZHMtYmFzZWQgZmxvb3IuXG4gICAgICBfY29uc3RyYWluWm9vbSh6b29tOiBudW1iZXIsIHByb3BzPzogYW55KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwgKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHtsYXRpdHVkZSwgbWF4Wm9vbX0gPSBwcm9wcztcbiAgICAgICAgbGV0IHttaW5ab29tfSA9IHByb3BzO1xuICAgICAgICBpZiAobWluWm9vbSA9PT0gdW5kZWZpbmVkIHx8IG1pblpvb20gPT09IG51bGwpIHtcbiAgICAgICAgICBtaW5ab29tID0gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBaT09NMCA9IHpvb21BZGp1c3QoMCk7XG4gICAgICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gem9vbUFkanVzdChsYXRpdHVkZSkgLSBaT09NMDtcbiAgICAgICAgcmV0dXJuIGNsYW1wKHpvb20sIG1pblpvb20gKyB6b29tQWRqdXN0bWVudCwgbWF4Wm9vbSArIHpvb21BZGp1c3RtZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gRXhhY3Qgem9vbS10by1jdXJzb3IuIGRlY2suZ2wgOS54J3MgR2xvYmVDb250cm9sbGVyIGRvZXMgbm90IGtlZXAgdGhlIHBvaW50XG4gICAgICAvLyB1bmRlciB0aGUgY3Vyc29yIGZpeGVkIHdoaWxlIHpvb21pbmcsIGluIHR3byB3YXlzIHdlIHdvcmsgYXJvdW5kIGhlcmU6XG4gICAgICAvLyAgIDEuIEl0cyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZSBjdXJzb3IgYW5kIHpvb21zIHRvd2FyZCB0aGUgY2VudGVyLlxuICAgICAgLy8gICAyLiBJdHMgR2xvYmVWaWV3cG9ydC5wYW5CeVBvc2l0aW9uIGlzIGEgbG9zc3ksICpsaW5lYXJpemVkKiAzLWFyZ1xuICAgICAgLy8gICAgICByb3RhdGlvbiAobG9uZ2l0dWRlICs9ICgwLjI1L3NjYWxlKSooc3RhcnRQaXhlbC1waXhlbCksIHJlLWRlcml2ZXNcbiAgICAgIC8vICAgICAgem9vbSkuIFVzaW5nIGl0IHBlciB3aGVlbCB0aWNrIGFjY3VtdWxhdGVzIGVycm9yLCBzbyBhZnRlciBhIGxvbmdcbiAgICAgIC8vICAgICAgY29udGludW91cyB6b29tIHRoZSBwb2ludCBlbmRzIHVwIG5vdGljZWFibHkgc2hpZnRlZCBmcm9tIHdoYXQgd2FzXG4gICAgICAvLyAgICAgIG9yaWdpbmFsbHkgdW5kZXIgdGhlIGN1cnNvci5cbiAgICAgIC8vIFRoZSByZWNlbnRlciBiZWxvdyBpcyBhbiAqZXhhY3QgYWJzb2x1dGUqIHRyYW5zbGF0aW9uOiB1bnByb2plY3QgdGhlXG4gICAgICAvLyBjdXJzb3IgcGl4ZWwgaW4gdGhlIHpvb21lZCB2aWV3cG9ydCB0byBnZXQgdGhlIGdlbyBwb2ludCBjdXJyZW50bHkgdW5kZXIgaXQsXG4gICAgICAvLyB0aGVuIHNoaWZ0IHRoZSBjZW50ZXIgYnkgKGFuY2hvciAtIHRoYXRQb2ludCkuIE5vIHpvb20gY291cGxpbmcsIG5vXG4gICAgICAvLyByb3RhdGlvblNwZWVkLCBhbmQgaXQgYXBwbGllcyB0byB6b29tLWluIGFuZCB6b29tLW91dCBzeW1tZXRyaWNhbGx5LCBzb1xuICAgICAgLy8gdGhlcmUgaXMgbm8gcGVyLXRpY2sgYWNjdW11bGF0ZWQgZHJpZnQuXG4gICAgICB6b29tKHtcbiAgICAgICAgcG9zLFxuICAgICAgICBzdGFydFBvcyxcbiAgICAgICAgc2NhbGVcbiAgICAgIH06IHtcbiAgICAgICAgcG9zOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl07XG4gICAgICAgIHNjYWxlOiBudW1iZXI7XG4gICAgICB9KSB7XG4gICAgICAgIGxldCB7c3RhcnRab29tLCBzdGFydFpvb21MbmdMYXR9ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcHMgPSAodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIC8vIFdoZWVsIHpvb206IHJlLWRlcml2ZSBhbmNob3IgZWFjaCB0aWNrIChwaW5jaCBzZXRzIGl0IG9uY2UgaW4gem9vbVN0YXJ0KS5cbiAgICAgICAgICBzdGFydFpvb20gPSBjdXJyZW50UHJvcHMuem9vbTtcblxuICAgICAgICAgIC8vIFN1cHByZXNzIGN1cnNvci1hbmNob3Jpbmcgd2hlbiB0aGUgY3Vyc29yIGlzIG9mZi1nbG9iZSBvciB3aGVuIGFcbiAgICAgICAgICAvLyByZWNlbnQgdGljayB3YXMgb2ZmLWdsb2JlICh3aXRoaW4gQlVSU1RfVElNRU9VVF9NUykuICBkZWNrLmdsIG5ldmVyXG4gICAgICAgICAgLy8gY2FsbHMgem9vbUVuZCgpIGZvciB3aGVlbCBldmVudHMgc28gd2UgdHJhY2sgdGhlIHNlc3Npb24gd2l0aCB0aGVcbiAgICAgICAgICAvLyBjbG9zdXJlIHZhcmlhYmxlIGBvZmZHbG9iZVpvb21BdGAgcmF0aGVyIHRoYW4gVmlld1N0YXRlLlxuICAgICAgICAgIGNvbnN0IEJVUlNUX1RJTUVPVVRfTVMgPSAyMDA7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBjb25zdCBhbmNob3JWaWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KGN1cnJlbnRQcm9wcyk7XG4gICAgICAgICAgY29uc3Qgb25HbG9iZSA9IGlzUGl4ZWxPbkdsb2JlKGFuY2hvclZpZXdwb3J0LCBzdGFydFBvcyB8fCBwb3MpO1xuXG4gICAgICAgICAgaWYgKCFvbkdsb2JlKSBvZmZHbG9iZVpvb21BdCA9IG5vdztcblxuICAgICAgICAgIGlmICghb25HbG9iZSB8fCAob2ZmR2xvYmVab29tQXQgIT09IG51bGwgJiYgbm93IC0gb2ZmR2xvYmVab29tQXQgPCBCVVJTVF9USU1FT1VUX01TKSkge1xuICAgICAgICAgICAgY29uc3Qgem9vbSA9ICh0aGlzIGFzIGFueSkuX2NvbnN0cmFpblpvb20oc3RhcnRab29tICsgTWF0aC5sb2cyKHNjYWxlKSk7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2ZmR2xvYmVab29tQXQgPSBudWxsO1xuICAgICAgICAgIHN0YXJ0Wm9vbUxuZ0xhdCA9ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChzdGFydFBvcykgfHwgKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6b29tID0gKHRoaXMgYXMgYW55KS5fY29uc3RyYWluWm9vbShzdGFydFpvb20gKyBNYXRoLmxvZzIoc2NhbGUpKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFpvb20tb3V0IChzY2FsZSA8IDEpOiBleGFjdCBjdXJzb3IgYW5jaG9yaW5nIGlzIHVuc3RhYmxlIG5lYXIgdGhlIGxpbWJcbiAgICAgICAgLy8gKG5vbi1saW5lYXIgZ2VvLXRvLXBpeGVsIG1hcHBpbmcgcHVsbHMgdGhlIHZpZXcgdG93YXJkIHRoZSBwb2xlcykuXG4gICAgICAgIC8vIEluc3RlYWQsIGdlbnRseSBzdGVlciB0aGUgY2VudGVyIHRvd2FyZCB0aGUgY3Vyc29yIGxvY2F0aW9uIHBlciB0aWNrLlxuICAgICAgICBpZiAoc2NhbGUgPCAxKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoc3RhcnRab29tTG5nTGF0KSB8fFxuICAgICAgICAgICAgIU51bWJlci5pc0Zpbml0ZShzdGFydFpvb21MbmdMYXRbMF0pIHx8XG4gICAgICAgICAgICAhTnVtYmVyLmlzRmluaXRlKHN0YXJ0Wm9vbUxuZ0xhdFsxXSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQZXItdGljayBsZXJwIHN0cmVuZ3RoIHNjYWxlcyB3aXRoIHpvb20tb3V0IGFtb3VudDsgY2xhbXBlZCB0byBhdm9pZCBvdmVyc2hvb3QuXG4gICAgICAgICAgY29uc3QgdCA9IE1hdGgubWluKDEsICgxIC0gc2NhbGUpICogMC4xMSk7XG5cbiAgICAgICAgICAvLyBTaG9ydGVzdC1wYXRoIGxvbmdpdHVkZSBpbnRlcnBvbGF0aW9uIChoYW5kbGVzIGFudGltZXJpZGlhbiB3cmFwKS5cbiAgICAgICAgICBsZXQgZExuZyA9IHN0YXJ0Wm9vbUxuZ0xhdFswXSAtIGN1cnJlbnRQcm9wcy5sb25naXR1ZGU7XG4gICAgICAgICAgaWYgKGRMbmcgPiAxODApIGRMbmcgLT0gMzYwO1xuICAgICAgICAgIGlmIChkTG5nIDwgLTE4MCkgZExuZyArPSAzNjA7XG5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHpvb20sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGN1cnJlbnRQcm9wcy5sb25naXR1ZGUgKyBkTG5nICogdCxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjdXJyZW50UHJvcHMubGF0aXR1ZGUgKyAoc3RhcnRab29tTG5nTGF0WzFdIC0gY3VycmVudFByb3BzLmxhdGl0dWRlKSAqIHRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHpvb21lZFZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoe1xuICAgICAgICAgIC4uLmN1cnJlbnRQcm9wcyxcbiAgICAgICAgICB6b29tXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFpvb20taW46IGV4YWN0IGFuY2hvciDigJQgdW5wcm9qZWN0IHRoZSBjdXJzb3IgaW4gdGhlIHBvc3Qtem9vbSB2aWV3cG9ydCBhbmRcbiAgICAgICAgLy8gc2hpZnQgdGhlIGNlbnRlciBzbyB0aGUgZ3JhYmJlZCBnZW8gcG9pbnQgbGFuZHMgYmFjayB1bmRlciB0aGUgY3Vyc29yLlxuICAgICAgICAvLyBHdWFyZCB3aXRoIGlzUGl4ZWxPbkdsb2JlOiBpZiBwb3MgbW92ZWQgb2ZmLWdsb2JlIGR1cmluZyBhIGZhc3QgcGluY2gsXG4gICAgICAgIC8vIGZhbGwgYmFjayB0byBjZW50ZXIgem9vbS5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh6b29tZWRWaWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IHpvb21lZFZpZXdwb3J0LnVucHJvamVjdChwb3MpO1xuXG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHpvb20sXG4gICAgICAgICAgbG9uZ2l0dWRlOiBzdGFydFpvb21MbmdMYXRbMF0gLSBmcm9tUG9zaXRpb25bMF0gKyB6b29tZWRWaWV3cG9ydC5sb25naXR1ZGUsXG4gICAgICAgICAgbGF0aXR1ZGU6IHN0YXJ0Wm9vbUxuZ0xhdFsxXSAtIGZyb21Qb3NpdGlvblsxXSArIHpvb21lZFZpZXdwb3J0LmxhdGl0dWRlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBDbGVhciB0aGUgcGVyc2lzdGVkIHBpbmNoIGFuY2hvciBhdCBnZXN0dXJlIGVuZC5cbiAgICAgIHpvb21FbmQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHN0YXJ0Wm9vbTogbnVsbCxcbiAgICAgICAgICBzdGFydFpvb21MbmdMYXQ6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4YWN0LCBjdXJzb3ItYW5jaG9yZWQgcGFuOiB0aGUgZ2VvIHBvaW50IGdyYWJiZWQgb24gbW91c2Vkb3duIHN0YXlzXG4gICAgICAvLyBsb2NrZWQgdW5kZXIgdGhlIGN1cnNvciBmb3IgdGhlIHdob2xlIGRyYWcuXG4gICAgICAvL1xuICAgICAgLy8gZGVjay5nbCA5LngncyBHbG9iZUNvbnRyb2xsZXIgcGFucyB3aXRoIGEgKmxpbmVhcml6ZWQsIGNlbnRlci1hbmNob3JlZCpcbiAgICAgIC8vIHJvdGF0aW9uIChHbG9iZVZpZXdwb3J0LnBhbkJ5UG9zaXRpb24oW2xuZyxsYXQsem9vbV0sIHBpeGVsLCBzdGFydFBpeGVsKTpcbiAgICAgIC8vIGxvbmdpdHVkZSArPSAoMC4yNS9zY2FsZSkqKHN0YXJ0UGl4ZWwtcGl4ZWwpKS4gQmVjYXVzZSB0aGUgYW5jaG9yIGlzIHRoZVxuICAgICAgLy8gdmlldyBDRU5URVIgcmF0aGVyIHRoYW4gdGhlIGdyYWJiZWQgcG9pbnQsIHRoZSBmaXJzdCBkcmFnIGZyYW1lIHNuYXBzIHRoZVxuICAgICAgLy8gY2VudGVyIHRvIHNhdGlzZnkgdGhlIGxpbmVhciBhcHByb3hpbWF0aW9uLCBwcm9kdWNpbmcgdGhlIHZpc2libGUgXCJqdW1wIHRvXG4gICAgICAvLyB0aGUgc2lkZS91cFwiIGF0IHRoZSBzdGFydCBvZiBhIHBhbiAobW9zdCBub3RpY2VhYmxlIGF0IGhpZ2ggem9vbSksIGFmdGVyXG4gICAgICAvLyB3aGljaCBpbmNyZW1lbnRhbCBkZWx0YXMgdHJhY2sgZmluZS4gVGhlIGV4YWN0IGFuY2hvciBiZWxvdyByZW1vdmVzIHRoYXRcbiAgICAgIC8vIGZpcnN0LWZyYW1lIHNuYXAuXG4gICAgICBwYW5TdGFydCh7cG9zfToge3BvczogW251bWJlciwgbnVtYmVyXX0pIHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydCgodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKSk7XG4gICAgICAgIC8vIElmIHRoZSBtb3VzZWRvd24gcGl4ZWwgaXMgb3V0c2lkZSB0aGUgZ2xvYmUgc2lsaG91ZXR0ZSwgc3RvcmUgYGZhbHNlYFxuICAgICAgICAvLyBhcyBhbiBleHBsaWNpdCBzZW50aW5lbCBzbyB0aGF0IGV2ZXJ5IHN1YnNlcXVlbnQgYHBhbmAgY2FsbCBmb3IgdGhpc1xuICAgICAgICAvLyBnZXN0dXJlIGlzIGEgbm8tb3AuICBXZSBjYW4ndCByZWx5IG9uIGBfdW5wcm9qZWN0KHBvcylgIHJldHVybmluZ1xuICAgICAgICAvLyB1bmRlZmluZWQgaGVyZSBiZWNhdXNlIEdsb2JlVmlld3BvcnQudW5wcm9qZWN0IGNsYW1wcyB0aGVcbiAgICAgICAgLy8gcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB0byAwIHZpYSBNYXRoLm1heCgwLCDigKYpLCB3aGljaCBtZWFucyBpdFxuICAgICAgICAvLyBhbHdheXMgcmV0dXJucyBhIHZhbGlkLWxvb2tpbmcgbG5nL2xhdCBldmVuIGZvciBvZmYtZ2xvYmUgcGl4ZWxzLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IGZhbHNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgc3RhcnRQYW5MbmdMYXQ6ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwYW4oe3Bvcywgc3RhcnRQb3N9OiB7cG9zOiBbbnVtYmVyLCBudW1iZXJdOyBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl19KSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZFN0YXJ0ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpLnN0YXJ0UGFuTG5nTGF0O1xuXG4gICAgICAgIGNvbnN0IHByb3BzID0gKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQocHJvcHMpO1xuXG4gICAgICAgIC8vIGBmYWxzZWAgbWVhbnMgdGhlIGRyYWcgc3RhcnRlZCBvdXRzaWRlIHRoZSBnbG9iZS4gSWYgdGhlIGN1cnNvciBoYXNcbiAgICAgICAgLy8gbm93IG1vdmVkIG9udG8gdGhlIGdsb2JlLCBsYXRjaCB0aGUgY3VycmVudCBwb3NpdGlvbiBhcyB0aGUgYW5jaG9yXG4gICAgICAgIC8vIHNvIHJvdGF0aW9uIGJlZ2lucyBmcm9tIHRoZSBlbnRyeSBwb2ludC4gT3RoZXJ3aXNlIHN0YXkgZnJvemVuLlxuICAgICAgICBpZiAoc3RvcmVkU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEN1cnNvciBqdXN0IGVudGVyZWQgdGhlIGdsb2JlIOKAlCBlc3RhYmxpc2ggdGhlIGFuY2hvciBhbmQgcmV0dXJuXG4gICAgICAgICAgLy8gd2l0aG91dCBtb3Zpbmc7IHRoZSBuZXh0IHBhbiBldmVudCB3aWxsIGFwcGx5IHRoZSBmaXJzdCBkZWx0YS5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0UGFuTG5nTGF0OiAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhcnRQYW5MbmdMYXQgPSBzdG9yZWRTdGFydCB8fCAodGhpcyBhcyBhbnkpLl91bnByb2plY3Qoc3RhcnRQb3MpO1xuICAgICAgICBpZiAoIXN0YXJ0UGFuTG5nTGF0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmNlIHRoZSBjdXJzb3IgbGVhdmVzIHRoZSBnbG9iZSBzaWxob3VldHRlIG1pZC1kcmFnLCBmcmVlemUgdGhlIHZpZXcuXG4gICAgICAgIC8vIHZpZXdwb3J0LnVucHJvamVjdCgpIHNuYXBzIG9mZi1nbG9iZSBwaXhlbHMgdG8gdGhlIG5lYXJlc3QgbGltYiBwb2ludFxuICAgICAgICAvLyAodmlhIE1hdGgubWF4KDAsIOKApikgaW4gaXRzIHJheeKAk3NwaGVyZSBkaXNjcmltaW5hbnQpLCBzbyB3aXRob3V0IHRoaXNcbiAgICAgICAgLy8gZ3VhcmQgdGhlIGdsb2JlIHdvdWxkIGtlZXAgcm90YXRpbmcgdG93YXJkIHRoZSBlZGdlIGFzIHRoZSBjdXJzb3IgbW92ZXNcbiAgICAgICAgLy8gZnVydGhlciBvdXRzaWRlLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tUG9zaXRpb24gPSB2aWV3cG9ydC51bnByb2plY3QocG9zKTtcblxuICAgICAgICBjb25zdCBsb25naXR1ZGUgPSBzdGFydFBhbkxuZ0xhdFswXSAtIGZyb21Qb3NpdGlvblswXSArIHByb3BzLmxvbmdpdHVkZTtcbiAgICAgICAgbGV0IGxhdGl0dWRlID0gc3RhcnRQYW5MbmdMYXRbMV0gLSBmcm9tUG9zaXRpb25bMV0gKyBwcm9wcy5sYXRpdHVkZTtcbiAgICAgICAgbGF0aXR1ZGUgPSBjbGFtcChsYXRpdHVkZSwgLUdMT0JFX01BWF9MQVRJVFVERSwgR0xPQkVfTUFYX0xBVElUVURFKTtcblxuICAgICAgICAvLyBkZWNrLmdsIDkncyBHbG9iZVZpZXdwb3J0IHNjYWxlID0gMl4oem9vbSAtIHpvb21BZGp1c3QobGF0aXR1ZGUpKSwgc28gYVxuICAgICAgICAvLyBjb25zdGFudCB6b29tIHdvdWxkIG1ha2UgdGhlIGdsb2JlIGdyb3cgb24gc2NyZWVuIGFzIHRoZSBjZW50ZXIgbW92ZXNcbiAgICAgICAgLy8gdG93YXJkIHRoZSBwb2xlcy4gUmUtY291cGxlIHpvb20gdG8gdGhlIG5ldyBsYXRpdHVkZSAoYXMgZGVjay5nbCA5J3Mgb3duXG4gICAgICAgIC8vIHBhbiBkb2VzKSB0byBrZWVwIHRoZSBvbi1zY3JlZW4gc2NhbGUg4oCUIGFuZCB0aHVzIHRpbGUgTE9EIOKAlCBjb25zdGFudC5cbiAgICAgICAgY29uc3QgdmlzdWFsWm9vbSA9IHByb3BzLnpvb20gLSB6b29tQWRqdXN0KHByb3BzLmxhdGl0dWRlKTtcbiAgICAgICAgY29uc3Qgem9vbSA9IHZpc3VhbFpvb20gKyB6b29tQWRqdXN0KGxhdGl0dWRlKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tfSk7XG4gICAgICB9XG5cbiAgICAgIHBhbkVuZCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IG51bGx9KTtcbiAgICAgIH1cbiAgICB9IGFzIGFueTtcbiAgfVxufVxuXG4vKipcbiAqIEN1c3RvbSBHbG9iZVZpZXcgdGhhdCB1c2VzIHpvb20tdG8tY3Vyc29yIGNvbnRyb2xsZXIgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXBsZXJHbG9iZVZpZXcgZXh0ZW5kcyBEZWNrR2xvYmVWaWV3IHtcbiAgLy8gRm9yd2FyZCBjb25zdHJ1Y3RvciBwcm9wcyB0byBkZWNrLmdsJ3MgR2xvYmVWaWV3LiBEZWNsYXJlZCBleHBsaWNpdGx5IGJlY2F1c2VcbiAgLy8gdGhlIGJhc2UgY2xhc3MgaXMgbG9vc2VseSB0eXBlZCAoc2VlIERlY2tHbG9iZVZpZXcgYWJvdmUpLCB3aGljaCB3b3VsZFxuICAvLyBvdGhlcndpc2Ugc3VyZmFjZSBhIHBhcmFtZXRlcmxlc3MgY29uc3RydWN0b3IgdG8gY2FsbGVycy5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBhbnkpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBnZXQgQ29udHJvbGxlclR5cGUoKSB7XG4gICAgcmV0dXJuIFpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlcjtcbiAgfVxuXG4gIC8vIGRlY2suZ2wgOSdzIEdsb2JlVmlldy5nZXRWaWV3cG9ydFR5cGUoKSBzd2FwcyB0aGUgdmlld3BvcnQgY2xhc3MgYmFzZWQgb24gem9vbTpcbiAgLy8gICBgcmV0dXJuIHZpZXdTdGF0ZS56b29tID4gMTIgPyBXZWJNZXJjYXRvclZpZXdwb3J0IDogR2xvYmVWaWV3cG9ydDtgXG4gIC8vIENyb3NzaW5nIHpvb20gMTIgdGhlcmVmb3JlIHJlY29tcHV0ZXMgdGlsZSBib3VuZHMgd2l0aCBjb21wbGV0ZWx5IGRpZmZlcmVudFxuICAvLyBwcm9qZWN0aW9uIG1hdGggKGdsb2JlIHZzIGZsYXQgbWVyY2F0b3IpLiBUaGF0IG1ha2VzIGRlY2sncyBUaWxlTGF5ZXIvTVZUTGF5ZXJcbiAgLy8gcmVzZWxlY3QgdGlsZXMgaW5jb25zaXN0ZW50bHkgYWNyb3NzIHRoZSBib3VuZGFyeSDigJQgbWl4ZWQgTE9EcyAoZS5nLiBhIHo0IHRpbGVcbiAgLy8gbmV4dCB0byB6MTEpLCBhIHZpc2libGUgXCJmbGlja2VyXCIgYXQgMTIsIGFuZCB0aWxlcyB0aGF0IGdldCBkcm9wcGVkIGFuZCBzdGlja1xuICAvLyBhcyBibGFjay9lbXB0eSBxdWFkcyAobW9zdCBvZnRlbiBjcm9zc2luZyAxMiBvbiB0aGUgd2F5ICpvdXQqKS5cbiAgLy9cbiAgLy8gRm9yY2UgR2xvYmVWaWV3cG9ydCBhdCBldmVyeSB6b29tIHRvIGVsaW1pbmF0ZSB0aGUgej0xMiB2aWV3cG9ydCBzd2FwIHNvIHRpbGVcbiAgLy8gc2VsZWN0aW9uIHN0YXlzIGNvbnNpc3RlbnQuIFRoZSB0cmFkZS1vZmYgaXMgdGhhdCB6b29tID4gMTIgbm93IHVzZXMgZmxvYXQzMlxuICAvLyBnbG9iZSBwcmVjaXNpb24gKGRlY2sncyBkb2N1bWVudGVkIFwibm8gaGlnaC1wcmVjaXNpb24gcmVuZGVyaW5nID4gMTJcIiBsaW1pdClcbiAgLy8gaW5zdGVhZCBvZiBzd2l0Y2hpbmcgdG8gbWVyY2F0b3Ig4oCUIGZhciBwcmVmZXJhYmxlIHRvIHRoZSBibGFjayBxdWFkcy5cbiAgZ2V0Vmlld3BvcnRUeXBlKCkge1xuICAgIHJldHVybiBEZWNrR2xvYmVWaWV3cG9ydDtcbiAgfVxufVxuXG5LZXBsZXJHbG9iZVZpZXcuZGlzcGxheU5hbWUgPSAnS2VwbGVyR2xvYmVWaWV3JztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFBNkQsU0FBQUQsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFQLHVCQUFBLFlBQUFBLHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxH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a0QsNkJBQWtCLEVBQUVBLDZCQUFrQixDQUFDOztVQUVuRTtVQUNBO1VBQ0E7VUFDQTtVQUNBLElBQU0yQyxVQUFVLEdBQUcvQyxLQUFLLENBQUNLLElBQUksR0FBR3BELFVBQVUsQ0FBQytDLEtBQUssQ0FBQzlDLFFBQVEsQ0FBQztVQUMxRCxJQUFNbUQsSUFBSSxHQUFHMEMsVUFBVSxHQUFHOUYsVUFBVSxDQUFDQyxRQUFRLENBQUM7VUFFOUMsT0FBUSxJQUFJLENBQVMyRSxnQkFBZ0IsQ0FBQztZQUFDTyxTQUFTLEVBQVRBLFNBQVM7WUFBRWxGLFFBQVEsRUFBUkEsUUFBUTtZQUFFbUQsSUFBSSxFQUFKQTtVQUFJLENBQUMsQ0FBQztRQUNwRTtNQUFDO1FBQUFSLEdBQUE7UUFBQUMsS0FBQSxFQUVELFNBQUFrRCxNQUFNQSxDQUFBLEVBQUc7VUFDUCxPQUFRLElBQUksQ0FBU25CLGdCQUFnQixDQUFDO1lBQUNjLGNBQWMsRUFBRTtVQUFJLENBQUMsQ0FBQztRQUMvRDtNQUFDO0lBQUEsRUFqT29EckQsa0JBQWtCLENBa09qRTtJQUFDLE9BQUFQLEtBQUE7RUFDWDtFQUFDLElBQUFZLFVBQUEsYUFBQWIsMkJBQUEsRUFBQWhDLGdCQUFBO0VBQUEsV0FBQThDLGFBQUEsYUFBQWQsMkJBQUE7QUFBQSxFQW5QdUNqQyxlQUFlO0FBc1B6RDtBQUNBO0FBQ0E7QUFGQSxJQUdhb0csZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsMEJBQUFFLGNBQUE7RUFDMUI7RUFDQTtFQUNBO0VBQ0EsU0FBQUYsZ0JBQVlqRCxLQUFXLEVBQUU7SUFBQSxJQUFBaEIsZ0JBQUEsbUJBQUFpRSxlQUFBO0lBQUEsT0FBQTlHLFVBQUEsT0FBQThHLGVBQUEsR0FDakJqRCxLQUFLO0VBQ2I7RUFBQyxJQUFBTCxVQUFBLGFBQUFzRCxlQUFBLEVBQUFFLGNBQUE7RUFBQSxXQUFBdkQsYUFBQSxhQUFBcUQsZUFBQTtJQUFBcEQsR0FBQTtJQUFBckYsR0FBQSxFQUVELFNBQUFBLElBQUEsRUFBcUI7TUFDbkIsT0FBT3NFLDJCQUEyQjtJQUNwQzs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFBQTtJQUFBZSxHQUFBO0lBQUFDLEtBQUEsRUFDQSxTQUFBc0QsZUFBZUEsQ0FBQSxFQUFHO01BQ2hCLE9BQU9yRyxpQkFBaUI7SUFDMUI7RUFBQztBQUFBLEVBMUJrQ0osYUFBYTtBQTZCbERzRyxlQUFlLENBQUNJLFdBQVcsR0FBRyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -4,6 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ Object.defineProperty(exports, "AtmosphereHugeHaloLayer", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _atmosphereLayer.AtmosphereHugeHaloLayer;
11
+ }
12
+ });
7
13
  Object.defineProperty(exports, "AtmosphereLayerRealistic", {
8
14
  enumerable: true,
9
15
  get: function get() {
@@ -46,6 +52,12 @@ Object.defineProperty(exports, "MVTLabelLayer", {
46
52
  return _mvtLabelLayer.MVTLabelLayer;
47
53
  }
48
54
  });
55
+ Object.defineProperty(exports, "drawStarsBackground", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _globeStarsLayer.drawStarsBackground;
59
+ }
60
+ });
49
61
  Object.defineProperty(exports, "getBasemapColors", {
50
62
  enumerable: true,
51
63
  get: function get() {
@@ -94,6 +106,12 @@ Object.defineProperty(exports, "getGlobeDepthDiskLayer", {
94
106
  return _globeDepthDiskLayer.getGlobeDepthDiskLayer;
95
107
  }
96
108
  });
109
+ Object.defineProperty(exports, "getGlobeHugeHaloLayer", {
110
+ enumerable: true,
111
+ get: function get() {
112
+ return _atmosphereLayer.getGlobeHugeHaloLayer;
113
+ }
114
+ });
97
115
  Object.defineProperty(exports, "getGlobeTopLayers", {
98
116
  enumerable: true,
99
117
  get: function get() {
@@ -119,4 +137,4 @@ var _mvtLabelLayer = require("./mvt-label-layer");
119
137
  var _enhancedMultiIconLayer = _interopRequireDefault(require("./enhanced-multi-icon-layer"));
120
138
  var _globeView = require("./globe-view");
121
139
  var _globeStarsLayer = require("./globe-stars-layer");
122
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXRtb3NwaGVyZUxheWVyIiwicmVxdWlyZSIsIl9nbG9iZURlcHRoRGlza0xheWVyIiwiX2dsb2JlTGF5ZXJzIiwiX212dExhYmVsTGF5ZXIiLCJfZW5oYW5jZWRNdWx0aUljb25MYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2xvYmVWaWV3IiwiX2dsb2JlU3RhcnNMYXllciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBHbG9iZSBtb2RlIGxheWVyIGFkanVzdG1lbnRzLlxuLy9cbi8vIEdsb2JlLXNwZWNpZmljIGFkanVzdG1lbnRzIGhhbmRsZWQgaGVyZTpcbi8vIC0gR3JpZCAvIEhleGFnb24gYWdncmVnYXRpb24gY2VsbHMgb24gdGhlIGdsb2JlOiBkZWNrLmdsIDkueCdzIEdyaWRDZWxsTGF5ZXIgL1xuLy8gICBIZXhhZ29uQ2VsbExheWVyIHBvc2l0aW9uIGNlbGxzIGluIGZsYXQgbWVyY2F0b3IgY29tbW9uIHNwYWNlIGFuZCBkcmF3IHRoZW0gd2l0aFxuLy8gICBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UsIHdoaWNoIGxlYXZlcyB0aGVtIG9uIHRoZSBYWSBwbGFuZSB0aHJvdWdoIHRoZVxuLy8gICBnbG9iZSBjZW50ZXIgcmF0aGVyIHRoYW4gb24gaXRzIHN1cmZhY2UuIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgL1xuLy8gICBTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIHN3YXAgaW4gYSBnbG9iZS1hd2FyZSBjZWxsIHN1YmNsYXNzIChzZWVcbi8vICAgbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscykgdGhhdCByZW1hcHMgZWFjaCBjZWxsIHZlcnRleCBmcm9tIGNvbW1vbiBzcGFjZSBiYWNrIHRvXG4vLyAgIGxuZy9sYXQgYW5kIG9udG8gdGhlIHNwaGVyZS5cbi8vIC0gVGV4dC9MYWJlbCByZW5kZXJpbmcgd2l0aCBiYWNrLWZhY2UgY3VsbGluZzogTVZUTGFiZWxMYXllciByZW5kZXJzIHBsYWNlIGxhYmVscyB2aWEgYVxuLy8gICBUZXh0TGF5ZXIgd2hvc2UgZ2x5cGggc3VibGF5ZXIgaXMgRW5oYW5jZWRNdWx0aUljb25MYXllciwgd2hpY2ggZGVnZW5lcmF0ZXMgZ2x5cGhcbi8vICAgdmVydGljZXMgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBnbG9iZSAoZG90KHN1cmZhY2VOb3JtYWwsIHRvQ2FtZXJhKSA8IDAuMSkgc28gbGFiZWxzXG4vLyAgIGRvbid0IHNob3cgdGhyb3VnaCB0aGUgcGxhbmV0LiBJbXBsZW1lbnRlZCBhcyBhIEdMU0wgaW5qZWN0LlxuXG5leHBvcnQge1xuICBBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMsXG4gIEF0bW9zcGhlcmVTa3lMYXllclJlYWxpc3RpYyxcbiAgZ2V0R2xvYmVBdG1vc3BoZXJlTGF5ZXIsXG4gIGdldEdsb2JlQXRtb3NwaGVyZVNreUxheWVyXG59IGZyb20gJy4vYXRtb3NwaGVyZS1sYXllcic7XG5leHBvcnQge0dsb2JlRGVwdGhEaXNrTGF5ZXIsIGdldEdsb2JlRGVwdGhEaXNrTGF5ZXJ9IGZyb20gJy4vZ2xvYmUtZGVwdGgtZGlzay1sYXllcic7XG5leHBvcnQge1xuICBnZXRHbG9iZUJhc2VMYXllcnMsXG4gIGdldEdsb2JlVG9wTGF5ZXJzLFxuICBnZXRHbG9iZUNsZWFyQ29sb3IsXG4gIGdldEdsb2JlQmFzZW1hcEF0dHJpYnV0aW9ucyxcbiAgcmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyLFxuICBERUZBVUxUX0JBU0VNQVBfQ09MT1IsXG4gIGdldEJhc2VtYXBDb2xvcnMsXG4gIGdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZVxufSBmcm9tICcuL2dsb2JlLWxheWVycyc7XG5leHBvcnQgdHlwZSB7R2xvYmVCYXNlbWFwUHJvdmlkZXIsIEdsb2JlQXR0cmlidXRpb259IGZyb20gJy4vZ2xvYmUtbGF5ZXJzJztcbmV4cG9ydCB7TVZUTGFiZWxMYXllcn0gZnJvbSAnLi9tdnQtbGFiZWwtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkTXVsdGlJY29uTGF5ZXJ9IGZyb20gJy4vZW5oYW5jZWQtbXVsdGktaWNvbi1sYXllcic7XG5leHBvcnQge0tlcGxlckdsb2JlVmlld30gZnJvbSAnLi9nbG9iZS12aWV3JztcbmV4cG9ydCB7Z2V0U3RhcnNCYWNrZ3JvdW5kSW1hZ2V9IGZyb20gJy4vZ2xvYmUtc3RhcnMtbGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQU1BLElBQUFDLG9CQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFXQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXRtb3NwaGVyZUxheWVyIiwicmVxdWlyZSIsIl9nbG9iZURlcHRoRGlza0xheWVyIiwiX2dsb2JlTGF5ZXJzIiwiX212dExhYmVsTGF5ZXIiLCJfZW5oYW5jZWRNdWx0aUljb25MYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2xvYmVWaWV3IiwiX2dsb2JlU3RhcnNMYXllciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBHbG9iZSBtb2RlIGxheWVyIGFkanVzdG1lbnRzLlxuLy9cbi8vIEdsb2JlLXNwZWNpZmljIGFkanVzdG1lbnRzIGhhbmRsZWQgaGVyZTpcbi8vIC0gR3JpZCAvIEhleGFnb24gYWdncmVnYXRpb24gY2VsbHMgb24gdGhlIGdsb2JlOiBkZWNrLmdsIDkueCdzIEdyaWRDZWxsTGF5ZXIgL1xuLy8gICBIZXhhZ29uQ2VsbExheWVyIHBvc2l0aW9uIGNlbGxzIGluIGZsYXQgbWVyY2F0b3IgY29tbW9uIHNwYWNlIGFuZCBkcmF3IHRoZW0gd2l0aFxuLy8gICBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UsIHdoaWNoIGxlYXZlcyB0aGVtIG9uIHRoZSBYWSBwbGFuZSB0aHJvdWdoIHRoZVxuLy8gICBnbG9iZSBjZW50ZXIgcmF0aGVyIHRoYW4gb24gaXRzIHN1cmZhY2UuIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgL1xuLy8gICBTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIHN3YXAgaW4gYSBnbG9iZS1hd2FyZSBjZWxsIHN1YmNsYXNzIChzZWVcbi8vICAgbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscykgdGhhdCByZW1hcHMgZWFjaCBjZWxsIHZlcnRleCBmcm9tIGNvbW1vbiBzcGFjZSBiYWNrIHRvXG4vLyAgIGxuZy9sYXQgYW5kIG9udG8gdGhlIHNwaGVyZS5cbi8vIC0gVGV4dC9MYWJlbCByZW5kZXJpbmcgd2l0aCBiYWNrLWZhY2UgY3VsbGluZzogTVZUTGFiZWxMYXllciByZW5kZXJzIHBsYWNlIGxhYmVscyB2aWEgYVxuLy8gICBUZXh0TGF5ZXIgd2hvc2UgZ2x5cGggc3VibGF5ZXIgaXMgRW5oYW5jZWRNdWx0aUljb25MYXllciwgd2hpY2ggZGVnZW5lcmF0ZXMgZ2x5cGhcbi8vICAgdmVydGljZXMgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBnbG9iZSAoZG90KHN1cmZhY2VOb3JtYWwsIHRvQ2FtZXJhKSA8IDAuMSkgc28gbGFiZWxzXG4vLyAgIGRvbid0IHNob3cgdGhyb3VnaCB0aGUgcGxhbmV0LiBJbXBsZW1lbnRlZCBhcyBhIEdMU0wgaW5qZWN0LlxuXG5leHBvcnQge1xuICBBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMsXG4gIEF0bW9zcGhlcmVTa3lMYXllclJlYWxpc3RpYyxcbiAgQXRtb3NwaGVyZUh1Z2VIYWxvTGF5ZXIsXG4gIGdldEdsb2JlQXRtb3NwaGVyZUxheWVyLFxuICBnZXRHbG9iZUF0bW9zcGhlcmVTa3lMYXllcixcbiAgZ2V0R2xvYmVIdWdlSGFsb0xheWVyXG59IGZyb20gJy4vYXRtb3NwaGVyZS1sYXllcic7XG5leHBvcnQge0dsb2JlRGVwdGhEaXNrTGF5ZXIsIGdldEdsb2JlRGVwdGhEaXNrTGF5ZXJ9IGZyb20gJy4vZ2xvYmUtZGVwdGgtZGlzay1sYXllcic7XG5leHBvcnQge1xuICBnZXRHbG9iZUJhc2VMYXllcnMsXG4gIGdldEdsb2JlVG9wTGF5ZXJzLFxuICBnZXRHbG9iZUNsZWFyQ29sb3IsXG4gIGdldEdsb2JlQmFzZW1hcEF0dHJpYnV0aW9ucyxcbiAgcmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyLFxuICBERUZBVUxUX0JBU0VNQVBfQ09MT1IsXG4gIGdldEJhc2VtYXBDb2xvcnMsXG4gIGdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZVxufSBmcm9tICcuL2dsb2JlLWxheWVycyc7XG5leHBvcnQgdHlwZSB7R2xvYmVCYXNlbWFwUHJvdmlkZXIsIEdsb2JlQXR0cmlidXRpb259IGZyb20gJy4vZ2xvYmUtbGF5ZXJzJztcbmV4cG9ydCB7TVZUTGFiZWxMYXllcn0gZnJvbSAnLi9tdnQtbGFiZWwtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkTXVsdGlJY29uTGF5ZXJ9IGZyb20gJy4vZW5oYW5jZWQtbXVsdGktaWNvbi1sYXllcic7XG5leHBvcnQge0tlcGxlckdsb2JlVmlld30gZnJvbSAnLi9nbG9iZS12aWV3JztcbmV4cG9ydCB7Z2V0U3RhcnNCYWNrZ3JvdW5kSW1hZ2UsIGRyYXdTdGFyc0JhY2tncm91bmR9IGZyb20gJy4vZ2xvYmUtc3RhcnMtbGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQVFBLElBQUFDLG9CQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFXQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -11,10 +11,12 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
  var _supercluster = _interopRequireDefault(require("supercluster"));
14
- var _memoize = _interopRequireDefault(require("lodash/memoize"));
14
+ var _memoize = _interopRequireDefault(require("es-toolkit/compat/memoize"));
15
15
  // SPDX-License-Identifier: MIT
16
16
  // Copyright contributors to the kepler.gl project
17
17
 
18
+ // es-toolkit/compat memoize does not export lodash's MemoizedFunction type.
19
+
18
20
  function getGeoJSON(data, getPosition, filterData) {
19
21
  var raw = typeof filterData === 'function' ? data.filter(filterData) : data;
20
22
  return raw.map(function (d) {
@@ -90,4 +92,4 @@ var ClusterBuilder = exports["default"] = /*#__PURE__*/function () {
90
92
  }
91
93
  }]);
92
94
  }();
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3VwZXJjbHVzdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVtb2l6ZSIsImdldEdlb0pTT04iLCJkYXRhIiwiZ2V0UG9zaXRpb24iLCJmaWx0ZXJEYXRhIiwicmF3IiwiZmlsdGVyIiwibWFwIiwiZCIsInR5cGUiLCJwcm9wZXJ0aWVzIiwicG9pbnRzIiwicG9pbnRfY291bnQiLCJwb2ludF9jb3VudF9hYmJyZXZpYXRlZCIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJldmVyeSIsIk51bWJlciIsImlzRmluaXRlIiwiY2x1c3RlclJlc29sdmVyIiwiX3JlZiIsImNsdXN0ZXJSYWRpdXMiLCJjb25jYXQiLCJnZXRDbHVzdGVyZXIiLCJfcmVmMiIsImdlb0pTT04iLCJTdXBlcmNsdXN0ZXIiLCJtYXhab29tIiwicmFkaXVzIiwicmVkdWNlIiwiYWNjdW11bGF0ZWQiLCJwcm9wcyIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJsb2FkIiwiQ2x1c3RlckJ1aWxkZXIiLCJleHBvcnRzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJjbHVzdGVyZXIiLCJtZW1vaXplIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY2x1c3RlcnNBdFpvb20iLCJfcmVmMyIsImJib3giLCJ6b29tIiwiY2x1c3RlcnMiLCJnZXRDbHVzdGVycyIsImMiLCJpIiwicG9zaXRpb24iLCJpbmRleCIsImNsZWFyQ2x1c3RlcmVyQ2FjaGUiLCJfdGhpcyRjbHVzdGVyZXIkY2FjaGUiLCJfdGhpcyRjbHVzdGVyZXIkY2FjaGUyIiwiY2FjaGUiLCJjbGVhciIsImNhbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvY2x1c3Rlci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgU3VwZXJjbHVzdGVyIGZyb20gJ3N1cGVyY2x1c3Rlcic7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdsb2Rhc2gvbWVtb2l6ZSc7XG5pbXBvcnQge01lbW9pemVkRnVuY3Rpb259IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0JCb3gsIFBvc2l0aW9ufSBmcm9tICdnZW9qc29uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb0pTT04oZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGEpIHtcbiAgY29uc3QgcmF3ID0gdHlwZW9mIGZpbHRlckRhdGEgPT09ICdmdW5jdGlvbicgPyBkYXRhLmZpbHRlcihmaWx0ZXJEYXRhKSA6IGRhdGE7XG5cbiAgcmV0dXJuIHJhd1xuICAgIC5tYXAoZCA9PiAoe1xuICAgICAgdHlwZTogJ1BvaW50JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZGF0YTogZCxcbiAgICAgICAgcG9pbnRzOiBbZF0sXG4gICAgICAgIHBvaW50X2NvdW50OiAxLFxuICAgICAgICBwb2ludF9jb3VudF9hYmJyZXZpYXRlZDogJzEnXG4gICAgICB9LFxuICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgY29vcmRpbmF0ZXM6IGdldFBvc2l0aW9uKGQpXG4gICAgICB9XG4gICAgfSkpXG4gICAgLmZpbHRlcihkID0+IGQuZ2VvbWV0cnkuY29vcmRpbmF0ZXMuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSk7XG59XG5cbmNvbnN0IGNsdXN0ZXJSZXNvbHZlciA9ICh7Y2x1c3RlclJhZGl1c306IHtjbHVzdGVyUmFkaXVzOiBudW1iZXJ9KSA9PiBgJHtjbHVzdGVyUmFkaXVzfWA7XG5cbmNvbnN0IGdldENsdXN0ZXJlciA9ICh7Y2x1c3RlclJhZGl1cywgZ2VvSlNPTn06IHtjbHVzdGVyUmFkaXVzOiBudW1iZXI7IGdlb0pTT059KSA9PlxuICBuZXcgU3VwZXJjbHVzdGVyKHtcbiAgICBtYXhab29tOiAyMCxcbiAgICByYWRpdXM6IGNsdXN0ZXJSYWRpdXMsXG4gICAgcmVkdWNlOiAoYWNjdW11bGF0ZWQsIHByb3BzKSA9PiB7XG4gICAgICBhY2N1bXVsYXRlZC5wb2ludHMgPSBbLi4uYWNjdW11bGF0ZWQucG9pbnRzLCAuLi5wcm9wcy5wb2ludHNdO1xuICAgIH0sXG4gICAgbWFwOiBwcm9wcyA9PiAoe3BvaW50czogW3Byb3BzLmRhdGFdfSlcbiAgfSkubG9hZChnZW9KU09OKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2x1c3RlckJ1aWxkZXIge1xuICBjbHVzdGVyZXI6ICgoe2NsdXN0ZXJSYWRpdXMsIGdlb0pTT059OiB7Y2x1c3RlclJhZGl1czogbnVtYmVyOyBnZW9KU09OfSkgPT4gU3VwZXJjbHVzdGVyKSAmXG4gICAgTWVtb2l6ZWRGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNsdXN0ZXJlciA9IG1lbW9pemUoZ2V0Q2x1c3RlcmVyLCBjbHVzdGVyUmVzb2x2ZXIpO1xuICB9XG5cbiAgY2x1c3RlcnNBdFpvb20oe1xuICAgIGJib3gsXG4gICAgY2x1c3RlclJhZGl1cyxcbiAgICBnZW9KU09OLFxuICAgIHpvb21cbiAgfToge1xuICAgIGJib3g6IEJCb3g7XG4gICAgY2x1c3RlclJhZGl1czogbnVtYmVyO1xuICAgIGdlb0pTT047XG4gICAgem9vbTogbnVtYmVyO1xuICB9KToge1xuICAgIHBvaW50czogYW55O1xuICAgIHBvc2l0aW9uOiBQb3NpdGlvbjtcbiAgICBpbmRleDogbnVtYmVyO1xuICB9W10ge1xuICAgIGNvbnN0IGNsdXN0ZXJlciA9IHRoaXMuY2x1c3RlcmVyKHtjbHVzdGVyUmFkaXVzLCBnZW9KU09OfSk7XG5cbiAgICAvLyBtYXAgY2x1c3RlcnMgdG8gZm9ybWF0dGVkIGJpbnMgdG8gYmUgcGFzc2VkIHRvIGRlY2suZ2wgYmluLXNvcnRlclxuICAgIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlcmVyLmdldENsdXN0ZXJzKGJib3gsIHpvb20pLm1hcCgoYywgaSkgPT4gKHtcbiAgICAgIHBvaW50czogYy5wcm9wZXJ0aWVzLnBvaW50cyxcbiAgICAgIHBvc2l0aW9uOiBjLmdlb21ldHJ5LmNvb3JkaW5hdGVzLFxuICAgICAgaW5kZXg6IGlcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gY2x1c3RlcnM7XG4gIH1cblxuICBjbGVhckNsdXN0ZXJlckNhY2hlKCkge1xuICAgIHRoaXMuY2x1c3RlcmVyLmNhY2hlLmNsZWFyPy4oKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxhQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFKQTtBQUNBOztBQU9PLFNBQVNFLFVBQVVBLENBQUNDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxVQUFVLEVBQUU7RUFDeEQsSUFBTUMsR0FBRyxHQUFHLE9BQU9ELFVBQVUsS0FBSyxVQUFVLEdBQUdGLElBQUksQ0FBQ0ksTUFBTSxDQUFDRixVQUFVLENBQUMsR0FBR0YsSUFBSTtFQUU3RSxPQUFPRyxHQUFHLENBQ1BFLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO0lBQUEsT0FBSztNQUNUQyxJQUFJLEVBQUUsT0FBTztNQUNiQyxVQUFVLEVBQUU7UUFDVlIsSUFBSSxFQUFFTSxDQUFDO1FBQ1BHLE1BQU0sRUFBRSxDQUFDSCxDQUFDLENBQUM7UUFDWEksV0FBVyxFQUFFLENBQUM7UUFDZEMsdUJBQXVCLEVBQUU7TUFDM0IsQ0FBQztNQUNEQyxRQUFRLEVBQUU7UUFDUkMsV0FBVyxFQUFFWixXQUFXLENBQUNLLENBQUM7TUFDNUI7SUFDRixDQUFDO0VBQUEsQ0FBQyxDQUFDLENBQ0ZGLE1BQU0sQ0FBQyxVQUFBRSxDQUFDO0lBQUEsT0FBSUEsQ0FBQyxDQUFDTSxRQUFRLENBQUNDLFdBQVcsQ0FBQ0MsS0FBSyxDQUFDQyxNQUFNLENBQUNDLFFBQVEsQ0FBQztFQUFBLEVBQUM7QUFDL0Q7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUFDLElBQUE7RUFBQSxJQUFLQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtFQUFBLFVBQUFDLE1BQUEsQ0FBa0NELGFBQWE7QUFBQSxDQUFFO0FBRXhGLElBQU1FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxLQUFBO0VBQUEsSUFBS0gsYUFBYSxHQUFBRyxLQUFBLENBQWJILGFBQWE7SUFBRUksT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFBQSxPQUMzQyxJQUFJQyx3QkFBWSxDQUFDO0lBQ2ZDLE9BQU8sRUFBRSxFQUFFO0lBQ1hDLE1BQU0sRUFBRVAsYUFBYTtJQUNyQlEsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLFdBQVcsRUFBRUMsS0FBSyxFQUFLO01BQzlCRCxXQUFXLENBQUNuQixNQUFNLE1BQUFXLE1BQUEsS0FBQVUsbUJBQUEsYUFBT0YsV0FBVyxDQUFDbkIsTUFBTSxPQUFBcUIsbUJBQUEsYUFBS0QsS0FBSyxDQUFDcEIsTUFBTSxFQUFDO0lBQy9ELENBQUM7SUFDREosR0FBRyxFQUFFLFNBQUxBLEdBQUdBLENBQUV3QixLQUFLO01BQUEsT0FBSztRQUFDcEIsTUFBTSxFQUFFLENBQUNvQixLQUFLLENBQUM3QixJQUFJO01BQUMsQ0FBQztJQUFBO0VBQ3ZDLENBQUMsQ0FBQyxDQUFDK0IsSUFBSSxDQUFDUixPQUFPLENBQUM7QUFBQTtBQUFDLElBRUVTLGNBQWMsR0FBQUMsT0FBQTtFQUlqQyxTQUFBRCxlQUFBLEVBQWM7SUFBQSxJQUFBRSxnQkFBQSxtQkFBQUYsY0FBQTtJQUFBLElBQUFHLGdCQUFBO0lBQ1osSUFBSSxDQUFDQyxTQUFTLEdBQUcsSUFBQUMsbUJBQU8sRUFBQ2hCLFlBQVksRUFBRUosZUFBZSxDQUFDO0VBQ3pEO0VBQUMsV0FBQXFCLGFBQUEsYUFBQU4sY0FBQTtJQUFBTyxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBQyxjQUFjQSxDQUFBQyxLQUFBLEVBY1Y7TUFBQSxJQWJGQyxJQUFJLEdBQUFELEtBQUEsQ0FBSkMsSUFBSTtRQUNKeEIsYUFBYSxHQUFBdUIsS0FBQSxDQUFidkIsYUFBYTtRQUNiSSxPQUFPLEdBQUFtQixLQUFBLENBQVBuQixPQUFPO1FBQ1BxQixJQUFJLEdBQUFGLEtBQUEsQ0FBSkUsSUFBSTtNQVdKLElBQU1SLFNBQVMsR0FBRyxJQUFJLENBQUNBLFNBQVMsQ0FBQztRQUFDakIsYUFBYSxFQUFiQSxhQUFhO1FBQUVJLE9BQU8sRUFBUEE7TUFBTyxDQUFDLENBQUM7O01BRTFEO01BQ0EsSUFBTXNCLFFBQVEsR0FBR1QsU0FBUyxDQUFDVSxXQUFXLENBQUNILElBQUksRUFBRUMsSUFBSSxDQUFDLENBQUN2QyxHQUFHLENBQUMsVUFBQzBDLENBQUMsRUFBRUMsQ0FBQztRQUFBLE9BQU07VUFDaEV2QyxNQUFNLEVBQUVzQyxDQUFDLENBQUN2QyxVQUFVLENBQUNDLE1BQU07VUFDM0J3QyxRQUFRLEVBQUVGLENBQUMsQ0FBQ25DLFFBQVEsQ0FBQ0MsV0FBVztVQUNoQ3FDLEtBQUssRUFBRUY7UUFDVCxDQUFDO01BQUEsQ0FBQyxDQUFDO01BRUgsT0FBT0gsUUFBUTtJQUNqQjtFQUFDO0lBQUFOLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFXLG1CQUFtQkEsQ0FBQSxFQUFHO01BQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUE7TUFDcEIsQ0FBQUQscUJBQUEsSUFBQUMsc0JBQUEsT0FBSSxDQUFDakIsU0FBUyxDQUFDa0IsS0FBSyxFQUFDQyxLQUFLLGNBQUFILHFCQUFBLGVBQTFCQSxxQkFBQSxDQUFBSSxJQUFBLENBQUFILHNCQUE2QixDQUFDO0lBQ2hDO0VBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3VwZXJjbHVzdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVtb2l6ZSIsImdldEdlb0pTT04iLCJkYXRhIiwiZ2V0UG9zaXRpb24iLCJmaWx0ZXJEYXRhIiwicmF3IiwiZmlsdGVyIiwibWFwIiwiZCIsInR5cGUiLCJwcm9wZXJ0aWVzIiwicG9pbnRzIiwicG9pbnRfY291bnQiLCJwb2ludF9jb3VudF9hYmJyZXZpYXRlZCIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJldmVyeSIsIk51bWJlciIsImlzRmluaXRlIiwiY2x1c3RlclJlc29sdmVyIiwiX3JlZiIsImNsdXN0ZXJSYWRpdXMiLCJjb25jYXQiLCJnZXRDbHVzdGVyZXIiLCJfcmVmMiIsImdlb0pTT04iLCJTdXBlcmNsdXN0ZXIiLCJtYXhab29tIiwicmFkaXVzIiwicmVkdWNlIiwiYWNjdW11bGF0ZWQiLCJwcm9wcyIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJsb2FkIiwiQ2x1c3RlckJ1aWxkZXIiLCJleHBvcnRzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJjbHVzdGVyZXIiLCJtZW1vaXplIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY2x1c3RlcnNBdFpvb20iLCJfcmVmMyIsImJib3giLCJ6b29tIiwiY2x1c3RlcnMiLCJnZXRDbHVzdGVycyIsImMiLCJpIiwicG9zaXRpb24iLCJpbmRleCIsImNsZWFyQ2x1c3RlcmVyQ2FjaGUiLCJfdGhpcyRjbHVzdGVyZXIkY2FjaGUiLCJfdGhpcyRjbHVzdGVyZXIkY2FjaGUyIiwiY2FjaGUiLCJjbGVhciIsImNhbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvY2x1c3Rlci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgU3VwZXJjbHVzdGVyIGZyb20gJ3N1cGVyY2x1c3Rlcic7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdlcy10b29sa2l0L2NvbXBhdC9tZW1vaXplJztcbmltcG9ydCB7QkJveCwgUG9zaXRpb259IGZyb20gJ2dlb2pzb24nO1xuXG4vLyBlcy10b29sa2l0L2NvbXBhdCBtZW1vaXplIGRvZXMgbm90IGV4cG9ydCBsb2Rhc2gncyBNZW1vaXplZEZ1bmN0aW9uIHR5cGUuXG50eXBlIE1lbW9pemVkRnVuY3Rpb24gPSB7XG4gIGNhY2hlOiB7XG4gICAgY2xlYXI/OiAoKSA9PiB2b2lkO1xuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb0pTT04oZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGEpIHtcbiAgY29uc3QgcmF3ID0gdHlwZW9mIGZpbHRlckRhdGEgPT09ICdmdW5jdGlvbicgPyBkYXRhLmZpbHRlcihmaWx0ZXJEYXRhKSA6IGRhdGE7XG5cbiAgcmV0dXJuIHJhd1xuICAgIC5tYXAoZCA9PiAoe1xuICAgICAgdHlwZTogJ1BvaW50JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZGF0YTogZCxcbiAgICAgICAgcG9pbnRzOiBbZF0sXG4gICAgICAgIHBvaW50X2NvdW50OiAxLFxuICAgICAgICBwb2ludF9jb3VudF9hYmJyZXZpYXRlZDogJzEnXG4gICAgICB9LFxuICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgY29vcmRpbmF0ZXM6IGdldFBvc2l0aW9uKGQpXG4gICAgICB9XG4gICAgfSkpXG4gICAgLmZpbHRlcihkID0+IGQuZ2VvbWV0cnkuY29vcmRpbmF0ZXMuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSk7XG59XG5cbmNvbnN0IGNsdXN0ZXJSZXNvbHZlciA9ICh7Y2x1c3RlclJhZGl1c306IHtjbHVzdGVyUmFkaXVzOiBudW1iZXJ9KSA9PiBgJHtjbHVzdGVyUmFkaXVzfWA7XG5cbmNvbnN0IGdldENsdXN0ZXJlciA9ICh7Y2x1c3RlclJhZGl1cywgZ2VvSlNPTn06IHtjbHVzdGVyUmFkaXVzOiBudW1iZXI7IGdlb0pTT059KSA9PlxuICBuZXcgU3VwZXJjbHVzdGVyKHtcbiAgICBtYXhab29tOiAyMCxcbiAgICByYWRpdXM6IGNsdXN0ZXJSYWRpdXMsXG4gICAgcmVkdWNlOiAoYWNjdW11bGF0ZWQsIHByb3BzKSA9PiB7XG4gICAgICBhY2N1bXVsYXRlZC5wb2ludHMgPSBbLi4uYWNjdW11bGF0ZWQucG9pbnRzLCAuLi5wcm9wcy5wb2ludHNdO1xuICAgIH0sXG4gICAgbWFwOiBwcm9wcyA9PiAoe3BvaW50czogW3Byb3BzLmRhdGFdfSlcbiAgfSkubG9hZChnZW9KU09OKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2x1c3RlckJ1aWxkZXIge1xuICBjbHVzdGVyZXI6ICgoe2NsdXN0ZXJSYWRpdXMsIGdlb0pTT059OiB7Y2x1c3RlclJhZGl1czogbnVtYmVyOyBnZW9KU09OfSkgPT4gU3VwZXJjbHVzdGVyKSAmXG4gICAgTWVtb2l6ZWRGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNsdXN0ZXJlciA9IG1lbW9pemUoZ2V0Q2x1c3RlcmVyLCBjbHVzdGVyUmVzb2x2ZXIpO1xuICB9XG5cbiAgY2x1c3RlcnNBdFpvb20oe1xuICAgIGJib3gsXG4gICAgY2x1c3RlclJhZGl1cyxcbiAgICBnZW9KU09OLFxuICAgIHpvb21cbiAgfToge1xuICAgIGJib3g6IEJCb3g7XG4gICAgY2x1c3RlclJhZGl1czogbnVtYmVyO1xuICAgIGdlb0pTT047XG4gICAgem9vbTogbnVtYmVyO1xuICB9KToge1xuICAgIHBvaW50czogYW55O1xuICAgIHBvc2l0aW9uOiBQb3NpdGlvbjtcbiAgICBpbmRleDogbnVtYmVyO1xuICB9W10ge1xuICAgIGNvbnN0IGNsdXN0ZXJlciA9IHRoaXMuY2x1c3RlcmVyKHtjbHVzdGVyUmFkaXVzLCBnZW9KU09OfSk7XG5cbiAgICAvLyBtYXAgY2x1c3RlcnMgdG8gZm9ybWF0dGVkIGJpbnMgdG8gYmUgcGFzc2VkIHRvIGRlY2suZ2wgYmluLXNvcnRlclxuICAgIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlcmVyLmdldENsdXN0ZXJzKGJib3gsIHpvb20pLm1hcCgoYywgaSkgPT4gKHtcbiAgICAgIHBvaW50czogYy5wcm9wZXJ0aWVzLnBvaW50cyxcbiAgICAgIHBvc2l0aW9uOiBjLmdlb21ldHJ5LmNvb3JkaW5hdGVzLFxuICAgICAgaW5kZXg6IGlcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gY2x1c3RlcnM7XG4gIH1cblxuICBjbGVhckNsdXN0ZXJlckNhY2hlKCkge1xuICAgIHRoaXMuY2x1c3RlcmVyLmNhY2hlLmNsZWFyPy4oKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxhQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFKQTtBQUNBOztBQU1BOztBQU9PLFNBQVNFLFVBQVVBLENBQUNDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxVQUFVLEVBQUU7RUFDeEQsSUFBTUMsR0FBRyxHQUFHLE9BQU9ELFVBQVUsS0FBSyxVQUFVLEdBQUdGLElBQUksQ0FBQ0ksTUFBTSxDQUFDRixVQUFVLENBQUMsR0FBR0YsSUFBSTtFQUU3RSxPQUFPRyxHQUFHLENBQ1BFLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO0lBQUEsT0FBSztNQUNUQyxJQUFJLEVBQUUsT0FBTztNQUNiQyxVQUFVLEVBQUU7UUFDVlIsSUFBSSxFQUFFTSxDQUFDO1FBQ1BHLE1BQU0sRUFBRSxDQUFDSCxDQUFDLENBQUM7UUFDWEksV0FBVyxFQUFFLENBQUM7UUFDZEMsdUJBQXVCLEVBQUU7TUFDM0IsQ0FBQztNQUNEQyxRQUFRLEVBQUU7UUFDUkMsV0FBVyxFQUFFWixXQUFXLENBQUNLLENBQUM7TUFDNUI7SUFDRixDQUFDO0VBQUEsQ0FBQyxDQUFDLENBQ0ZGLE1BQU0sQ0FBQyxVQUFBRSxDQUFDO0lB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
@@ -140,7 +140,7 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
140
140
  return (0, _createClass2["default"])(GlobeCellLayer, [{
141
141
  key: "getShaders",
142
142
  value: function getShaders() {
143
- var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 1)();
143
+ var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 3)([]);
144
144
  return _objectSpread(_objectSpread({}, shaders), {}, {
145
145
  vs: addGlobeCellProjection(shaders.vs, type),
146
146
  modules: [].concat((0, _toConsumableArray2["default"])(shaders.modules || []), [globeCellUniforms])
@@ -162,7 +162,7 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
162
162
  }
163
163
  });
164
164
  }
165
- _superPropGet(GlobeCellLayer, "draw", this, 1)(opts);
165
+ _superPropGet(GlobeCellLayer, "draw", this, 3)([opts]);
166
166
  }
167
167
  }]);
168
168
  }(BaseCellLayer);
@@ -170,4 +170,4 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
170
170
  globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
171
171
  return GlobeCellLayer;
172
172
  }
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gKHN1cGVyLmdldFNoYWRlcnMgYXMgKCkgPT4gYW55KSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIChzdXBlci5kcmF3IGFzIChvOiBhbnkpID0+IHZvaWQpKG9wdHMpO1xuICAgIH1cbiAgfVxuICAoR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyB7bGF5ZXJOYW1lOiBzdHJpbmd9KS5sYXllck5hbWUgPSBgR2xvYmUke3R5cGV9Q2VsbExheWVyYDtcbiAgZ2xvYmVDZWxsQ2xhc3NDYWNoZS5zZXQoQmFzZUNlbGxMYXllciwgR2xvYmVDZWxsTGF5ZXIpO1xuICByZXR1cm4gR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyBUO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FB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
173
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQWtELFNBQUFDLFFBQUFDLENBQUEsRUFBQUMs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
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.loadImages = loadImages;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _constants = require("@luma.gl/constants");
10
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
10
+ var _isEqual = _interopRequireDefault(require("es-toolkit/compat/isEqual"));
11
11
  var _constants2 = require("@kepler.gl/constants");
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -268,4 +268,4 @@ function loadTexture(gl, device, imageData) {
268
268
  return null;
269
269
  }
270
270
  }
271
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9pc0VxdWFsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlMiLCJtaW5GaWx0ZXIiLCJGSUxURVJfTU9ERSIsIk5FQVJFU1QiLCJtYWdGaWx0ZXIiLCJhZGRyZXNzTW9kZVUiLCJBRERSRVNTX01PREUiLCJDTEFNUF9UT19FREdFIiwiYWRkcmVzc01vZGVWIiwibG9hZEltYWdlSXRlbSIsImdsIiwiZGV2aWNlIiwiaW1hZ2VJdGVtIiwicmVzdWx0IiwiZGlydHlSZXN1bHQiLCJtYXAiLCJ4IiwibG9hZFRleHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInRleHR1cmUiLCJlcnIiLCJsb2FkSW1hZ2VzIiwiX3JlZiIsImltYWdlcyIsImltYWdlc0RhdGEiLCJvbGRJbWFnZXNEYXRhIiwiaW1hZ2VzRGlydHkiLCJoYXNQZW5kaW5nVXBsb2FkcyIsImtleSIsImNoYW5nZWRLZXlzIiwiaXNFcXVhbCIsIl9pIiwiX2NoYW5nZWRLZXlzIiwiaW1hZ2VEYXRhIiwibG9hZGVkSXRlbSIsIm1hcFNhbXBsZXJQYXJhbWV0ZXJzIiwib2xkUGFyYW1zIiwibWFnRmlsdGVyTWFwIiwiR0wiLCJMSU5FQVIiLCJtaW5GaWx0ZXJNYXAiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwibWlwbWFwRmlsdGVyIiwiTkVBUkVTVF9NSVBNQVBfTElORUFSIiwiTElORUFSX01JUE1BUF9ORUFSRVNUIiwiTElORUFSX01JUE1BUF9MSU5FQVIiLCJ3cmFwTWFwIiwiUkVQRUFUIiwiTUlSUk9SRURfUkVQRUFUIiwiTUlSUk9SX1JFUEVBVCIsIlRFWFRVUkVfTUlOX0ZJTFRFUiIsInVuZGVmaW5lZCIsIm1hcHBlZCIsIlRFWFRVUkVfTUFHX0ZJTFRFUiIsIlRFWFRVUkVfV1JBUF9TIiwiVEVYVFVSRV9XUkFQX1QiLCJtYXBUZXh0dXJlRm9ybWF0IiwiZ2xGb3JtYXQiLCJfZ2xUeXBlIiwiUjhVSSIsIlRFWFRVUkVfRk9STUFUIiwiUjhfVUlOVCIsIlIxNlVJIiwiUjE2X1VJTlQiLCJSMzJVSSIsIlIzMl9VSU5UIiwiUjhJIiwiUjhfU0lOVCIsIlIxNkkiLCJSMTZfU0lOVCIsIlIzMkkiLCJSMzJfU0lOVCIsIlIzMkYiLCJSMzJfRkxPQVQiLCJSR0JBIiwiUkdCQThfVU5PUk0iLCJSR0IiLCJleHBhbmRSR0J0b1JHQkEiLCJkYXRhIiwid2lkdGgiLCJoZWlnaHQiLCJwaXhlbENvdW50IiwicmdiYSIsIlVpbnQ4QXJyYXkiLCJpIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkMiIsIl9nbCRsdW1hIiwicmFzdGVyVGV4dHVyZURhdGEiLCJoYW5kbGUiLCJpZCIsInN0YXJ0c1dpdGgiLCJyYXdEYXRhIiwibHVtYURldmljZSIsImx1bWEiLCJfX2x1bWFfZGV2aWNlIiwiY3JlYXRlVGV4dHVyZSIsImNvbnNvbGUiLCJ3YXJuIiwiX3Jhd0RhdGEkZGF0YSIsIl9yYXdEYXRhJGRhdGEyIiwic2FtcGxlclBhcmFtcyIsInBhcmFtZXRlcnMiLCJ0ZXh0dXJlRm9ybWF0IiwiZm9ybWF0IiwidHlwZSIsInRleHR1cmVQcm9wcyIsInNhbXBsZXIiLCJtaXBtYXBzIiwiSFRNTEltYWdlRWxlbWVudCIsIkhUTUxDYW52YXNFbGVtZW50IiwiSW1hZ2VCaXRtYXAiLCJJbWFnZURhdGEiLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jhc3Rlci9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gQHRzLWlnbm9yZSBHTCByZXNvbHV0aW9uIGRlcGVuZHMgb24gbW9kdWxlUmVzb2x1dGlvbiBzZXR0aW5nXG5pbXBvcnQge0dMfSBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5pbXBvcnQge0ZJTFRFUl9NT0RFLCBBRERSRVNTX01PREUsIFRFWFRVUkVfRk9STUFUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgdHlwZSB7SW1hZ2VJbnB1dCwgSW1hZ2VTdGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTGVnYWN5IHRleHR1cmUgY3JlYXRpb24gZGVzY3JpcHRvciB1c2VkIGJ5IHJhc3RlciBzaGFkZXIgbW9kdWxlcy5cbiAqIENvbnRhaW5zIENQVS1zaWRlIGRhdGEgKyBvbGQgR0wtZW51bS1iYXNlZCBwYXJhbWV0ZXJzIHRoYXQgZ2V0XG4gKiB0cmFuc2xhdGVkIHRvIGx1bWEuZ2wgOSdzIGRldmljZS5jcmVhdGVUZXh0dXJlKCkgcHJvcHMuXG4gKi9cbnR5cGUgVGV4dHVyZURhdGFTb3VyY2UgPVxuICB8IEhUTUxJbWFnZUVsZW1lbnRcbiAgfCBIVE1MQ2FudmFzRWxlbWVudFxuICB8IEltYWdlQml0bWFwXG4gIHwgSW1hZ2VEYXRhXG4gIHwgQXJyYXlCdWZmZXJWaWV3O1xuXG50eXBlIFJhc3RlclRleHR1cmVEYXRhID0ge1xuICBoYW5kbGU/OiB1bmtub3duO1xuICBpZD86IHN0cmluZztcbiAgZGV2aWNlPzogdW5rbm93bjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgZm9ybWF0PzogbnVtYmVyO1xuICB0eXBlPzogbnVtYmVyO1xuICBwYXJhbWV0ZXJzPzogUmVjb3JkPG51bWJlciwgbnVtYmVyPjtcbiAgbWlwbWFwcz86IGJvb2xlYW47XG4gIGRhdGE/OiBUZXh0dXJlRGF0YVNvdXJjZSAmIHt3aWR0aD86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyfTtcbn07XG5cbi8qKlxuICogVGV4dHVyZSBzYW1wbGVyIHBhcmFtZXRlcnMgZm9yIGx1bWEuZ2wgOSB0ZXh0dXJlc1xuICovXG5jb25zdCBERUZBVUxUX1NBTVBMRVJfUEFSQU1FVEVSUyA9IHtcbiAgbWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULFxuICBtYWdGaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gIGFkZHJlc3NNb2RlVTogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0UsXG4gIGFkZHJlc3NNb2RlVjogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0Vcbn07XG5cbi8qKiBsdW1hLmdsIGRldmljZSBpbnRlcmZhY2UgZm9yIHRleHR1cmUgY3JlYXRpb24gKi9cbmludGVyZmFjZSBMdW1hRGV2aWNlIHtcbiAgY3JlYXRlVGV4dHVyZShwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBUZXh0dXJlO1xuICBnbD86IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG59XG5cbnR5cGUgTG9hZEltYWdlc09wdGlvbnMgPSB7XG4gIGdsOiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0O1xuICBkZXZpY2U/OiBMdW1hRGV2aWNlO1xuICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIGltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG4gIG9sZEltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG59O1xuXG4vKipcbiAqIExvYWQgaW1hZ2UgaXRlbXMgdG8gd2ViZ2wgY29udGV4dFxuICovXG5mdW5jdGlvbiBsb2FkSW1hZ2VJdGVtKFxuICBnbDogV2ViR0wyUmVuZGVyaW5nQ29udGV4dCxcbiAgZGV2aWNlOiBMdW1hRGV2aWNlIHwgdW5kZWZpbmVkLFxuICBpbWFnZUl0ZW06IFJhc3RlclRleHR1cmVEYXRhIHwgVGV4dHVyZSB8IChSYXN0ZXJUZXh0dXJlRGF0YSB8IFRleHR1cmUpW11cbik6IG51bGwgfCBUZXh0dXJlIHwgVGV4dHVyZVtdIHtcbiAgbGV0IHJlc3VsdDogbnVsbCB8IFRleHR1cmUgfCBUZXh0dXJlW107XG4gIGlmIChBcnJheS5pc0FycmF5KGltYWdlSXRlbSkpIHtcbiAgICBjb25zdCBkaXJ0eVJlc3VsdCA9IGltYWdlSXRlbS5tYXAoeCA9PiBsb2FkVGV4dHVyZShnbCwgZGV2aWNlLCB4KSk7XG4gICAgcmVzdWx0ID0gW107XG4gICAgZm9yIChjb25zdCB0ZXh0dXJlIG9mIGRpcnR5UmVzdWx0KSB7XG4gICAgICBpZiAodGV4dHVyZSkge1xuICAgICAgICByZXN1bHQucHVzaCh0ZXh0dXJlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgPSBudWxsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBsb2FkVGV4dHVyZShnbCwgZGV2aWNlLCBpbWFnZUl0ZW0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogTG9hZCBpbWFnZSBpdGVtcyB0byB3ZWJnbCBjb250ZXh0XG4gKi9cbnR5cGUgTG9hZEltYWdlc1Jlc3VsdCA9IHtcbiAgLyoqIFVwZGF0ZWQgaW1hZ2VzIHN0YXRlLCBvciBudWxsIGlmIG5vdGhpbmcgY2hhbmdlZCAqL1xuICBpbWFnZXM6IEltYWdlU3RhdGUgfCBudWxsO1xuICAvKiogVHJ1ZSB3aGVuIGF0IGxlYXN0IG9uZSB0ZXh0dXJlIHVwbG9hZCBmYWlsZWQgYW5kIHNob3VsZCBiZSByZXRyaWVkICovXG4gIGhhc1BlbmRpbmdVcGxvYWRzOiBib29sZWFuO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBsb2FkSW1hZ2VzKHtcbiAgZ2wsXG4gIGRldmljZSxcbiAgaW1hZ2VzLFxuICBpbWFnZXNEYXRhLFxuICBvbGRJbWFnZXNEYXRhXG59OiBMb2FkSW1hZ2VzT3B0aW9ucyk6IExvYWRJbWFnZXNSZXN1bHQge1xuICBsZXQgaW1hZ2VzRGlydHkgPSBmYWxzZTtcbiAgbGV0IGhhc1BlbmRpbmdVcGxvYWRzID0gZmFsc2U7XG5cbiAgaWYgKG9sZEltYWdlc0RhdGEpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvbGRJbWFnZXNEYXRhKSB7XG4gICAgICBpZiAoaW1hZ2VzRGF0YSAmJiAhKGtleSBpbiBpbWFnZXNEYXRhKSAmJiBrZXkgaW4gaW1hZ2VzKSB7XG4gICAgICAgIGRlbGV0ZSBpbWFnZXNba2V5XTtcbiAgICAgICAgaW1hZ2VzRGlydHkgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNoYW5nZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBpbWFnZXNEYXRhKSB7XG4gICAgaWYgKCFvbGRJbWFnZXNEYXRhIHx8IChvbGRJbWFnZXNEYXRhICYmICEoa2V5IGluIG9sZEltYWdlc0RhdGEpKSkge1xuICAgICAgY2hhbmdlZEtleXMucHVzaChrZXkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKGltYWdlc0RhdGFba2V5XSwgb2xkSW1hZ2VzRGF0YVtrZXldKSkge1xuICAgICAgY2hhbmdlZEtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIGNoYW5nZWRLZXlzKSB7XG4gICAgY29uc3QgaW1hZ2VEYXRhID0gaW1hZ2VzRGF0YVtrZXldO1xuICAgIGlmICghaW1hZ2VEYXRhKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkZWRJdGVtID0gbG9hZEltYWdlSXRlbShnbCwgZGV2aWNlLCBpbWFnZURhdGEpO1xuICAgIGlmIChsb2FkZWRJdGVtKSB7XG4gICAgICBpbWFnZXNba2V5XSA9IGxvYWRlZEl0ZW07XG4gICAgICAvLyBPbmx5IG1hcmsgZGlydHkgd2hlbiB0aGUgdGV4dHVyZSB3YXMgYWN0dWFsbHkgdXBsb2FkZWQuXG4gICAgICBpbWFnZXNEaXJ0eSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwbG9hZCBmYWlsZWQgKGRldmljZSBub3QgcmVhZHkgb3IgY3JlYXRlVGV4dHVyZSB0aHJldykuIFNpZ25hbCB0aGF0XG4gICAgICAvLyB0aGUgY2FsbGVyIHNob3VsZCByZXRyeSBuZXh0IGZyYW1lIOKAlCBkbyBOT1Qgc2V0IGltYWdlc0RpcnR5IHNvIHdlXG4gICAgICAvLyBkb24ndCBwcm9wYWdhdGUgYW4gaW1hZ2VzIG9iamVjdCB3aXRoIGEgbWlzc2luZyBrZXkgdGhhdCBjYXVzZXNcbiAgICAgIC8vIGRyYXcoKSB0byBiYWlsIHBlcm1hbmVudGx5LlxuICAgICAgaGFzUGVuZGluZ1VwbG9hZHMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7aW1hZ2VzOiBpbWFnZXNEaXJ0eSA/IGltYWdlcyA6IG51bGwsIGhhc1BlbmRpbmdVcGxvYWRzfTtcbn1cblxuLyoqXG4gKiBNYXAgb2xkIEdMIHRleHR1cmUgcGFyYW1ldGVyIGNvbnN0YW50cyB0byBsdW1hLmdsIDkgc2FtcGxlciBwYXJhbWV0ZXJzXG4gKi9cbmZ1bmN0aW9uIG1hcFNhbXBsZXJQYXJhbWV0ZXJzKG9sZFBhcmFtczogUmVjb3JkPG51bWJlciwgbnVtYmVyPik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7Li4uREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlN9O1xuXG4gIGNvbnN0IG1hZ0ZpbHRlck1hcCA9IHtcbiAgICBbR0wuTkVBUkVTVF06IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gICAgW0dMLkxJTkVBUl06IEZJTFRFUl9NT0RFLkxJTkVBUlxuICB9O1xuXG4gIGNvbnN0IG1pbkZpbHRlck1hcDogUmVjb3JkPG51bWJlciwge21pbkZpbHRlcjogc3RyaW5nOyBtaXBtYXBGaWx0ZXI/OiBzdHJpbmd9PiA9IHtcbiAgICBbR0wuTkVBUkVTVF06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1R9LFxuICAgIFtHTC5MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVJ9LFxuICAgIFtHTC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUXToge1xuICAgICAgbWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULFxuICAgICAgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNUXG4gICAgfSxcbiAgICBbR0wuTkVBUkVTVF9NSVBNQVBfTElORUFSXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVCwgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVJ9LFxuICAgIFtHTC5MSU5FQVJfTUlQTUFQX05FQVJFU1RdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVIsIG1pcG1hcEZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVH0sXG4gICAgW0dMLkxJTkVBUl9NSVBNQVBfTElORUFSXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTElORUFSLCBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn1cbiAgfTtcblxuICBjb25zdCB3cmFwTWFwID0ge1xuICAgIFtHTC5DTEFNUF9UT19FREdFXTogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0UsXG4gICAgW0dMLlJFUEVBVF06IEFERFJFU1NfTU9ERS5SRVBFQVQsXG4gICAgW0dMLk1JUlJPUkVEX1JFUEVBVF06IEFERFJFU1NfTU9ERS5NSVJST1JfUkVQRUFUXG4gIH07XG5cbiAgaWYgKG9sZFBhcmFtcykge1xuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9NSU5fRklMVEVSXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBtYXBwZWQgPSBtaW5GaWx0ZXJNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfTUlOX0ZJTFRFUl1dO1xuICAgICAgaWYgKG1hcHBlZCkge1xuICAgICAgICByZXN1bHQubWluRmlsdGVyID0gbWFwcGVkLm1pbkZpbHRlcjtcbiAgICAgICAgaWYgKG1hcHBlZC5taXBtYXBGaWx0ZXIpIHtcbiAgICAgICAgICByZXN1bHQubWlwbWFwRmlsdGVyID0gbWFwcGVkLm1pcG1hcEZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAob2xkUGFyYW1zW0dMLlRFWFRVUkVfTUFHX0ZJTFRFUl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0Lm1hZ0ZpbHRlciA9IG1hZ0ZpbHRlck1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9NQUdfRklMVEVSXV0gfHwgRklMVEVSX01PREUuTkVBUkVTVDtcbiAgICB9XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfU10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmFkZHJlc3NNb2RlVSA9IHdyYXBNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9TXV0gfHwgQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0U7XG4gICAgfVxuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9XUkFQX1RdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5hZGRyZXNzTW9kZVYgPSB3cmFwTWFwW29sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfVF1dIHx8IEFERFJFU1NfTU9ERS5DTEFNUF9UT19FREdFO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogTWFwIG9sZCBHTCBmb3JtYXQvdHlwZSB0byBsdW1hLmdsIDkgdGV4dHVyZSBmb3JtYXQgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIG1hcFRleHR1cmVGb3JtYXQoZ2xGb3JtYXQ6IG51bWJlciwgX2dsVHlwZT86IG51bWJlcik6IHN0cmluZyB7XG4gIHN3aXRjaCAoZ2xGb3JtYXQpIHtcbiAgICBjYXNlIEdMLlI4VUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjhfVUlOVDtcbiAgICBjYXNlIEdMLlIxNlVJOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIxNl9VSU5UO1xuICAgIGNhc2UgR0wuUjMyVUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjMyX1VJTlQ7XG4gICAgY2FzZSBHTC5SOEk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjhfU0lOVDtcbiAgICBjYXNlIEdMLlIxNkk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjE2X1NJTlQ7XG4gICAgY2FzZSBHTC5SMzJJOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIzMl9TSU5UO1xuICAgIGNhc2UgR0wuUjMyRjpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMzJfRkxPQVQ7XG4gICAgY2FzZSBHTC5SR0JBOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuICAgIGNhc2UgR0wuUkdCOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBhbmQgMy1ieXRlLXBlci1waXhlbCBSR0IgZGF0YSB0byA0LWJ5dGUtcGVyLXBpeGVsIFJHQkEuXG4gKiBOZWVkZWQgYmVjYXVzZSBXZWJHUFUvbHVtYS5nbCA5IGhhcyBubyAzLWNoYW5uZWwgdGV4dHVyZSBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIGV4cGFuZFJHQnRvUkdCQShcbiAgZGF0YTogVWludDhBcnJheSB8IFVpbnQ4Q2xhbXBlZEFycmF5LFxuICB3aWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlclxuKTogVWludDhBcnJheSB7XG4gIGNvbnN0IHBpeGVsQ291bnQgPSB3aWR0aCAqIGhlaWdodDtcbiAgY29uc3QgcmdiYSA9IG5ldyBVaW50OEFycmF5KHBpeGVsQ291bnQgKiA0KTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwaXhlbENvdW50OyBpKyspIHtcbiAgICByZ2JhW2kgKiA0XSA9IGRhdGFbaSAqIDNdO1xuICAgIHJnYmFbaSAqIDQgKyAxXSA9IGRhdGFbaSAqIDMgKyAxXTtcbiAgICByZ2JhW2kgKiA0ICsgMl0gPSBkYXRhW2kgKiAzICsgMl07XG4gICAgcmdiYVtpICogNCArIDNdID0gMjU1O1xuICB9XG4gIHJldHVybiByZ2JhO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0ZXh0dXJlIG9iamVjdCBmcm9tIGltYWdlIGRhdGEgdXNpbmcgbHVtYS5nbCA5IGRldmljZSBBUEkuXG4gKiBSZXR1cm5zIGEgcHJvcGVyIGx1bWEuZ2wgVGV4dHVyZSBvYmplY3QgdGhhdCB3b3JrcyB3aXRoIHRoZSBiaW5kaW5nIHN5c3RlbS5cbiAqL1xuZnVuY3Rpb24gbG9hZFRleHR1cmUoXG4gIGdsOiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LFxuICBkZXZpY2U6IEx1bWFEZXZpY2UgfCB1bmRlZmluZWQsXG4gIGltYWdlRGF0YTogVGV4dHVyZSB8IFJhc3RlclRleHR1cmVEYXRhXG4pOiBUZXh0dXJlIHwgbnVsbCB7XG4gIGlmICghaW1hZ2VEYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJZiBhbHJlYWR5IGEgbHVtYS5nbCBUZXh0dXJlIGluc3RhbmNlLCByZXR1cm4gYXMtaXNcbiAgY29uc3QgcmFzdGVyVGV4dHVyZURhdGEgPSBpbWFnZURhdGEgYXMgUmFzdGVyVGV4dHVyZURhdGE7XG4gIGlmIChcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5oYW5kbGUgfHxcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5pZD8uc3RhcnRzV2l0aD8uKCdsdW1hJykgfHxcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5kZXZpY2VcbiAgKSB7XG4gICAgcmV0dXJuIGltYWdlRGF0YSBhcyBUZXh0dXJlO1xuICB9XG5cbiAgY29uc3QgcmF3RGF0YSA9IGltYWdlRGF0YSBhcyBSYXN0ZXJUZXh0dXJlRGF0YTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGx1bWEgaW50ZXJuYWwgcHJvcGVydGllcyBub3QgaW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dCB0eXBlXG4gIGNvbnN0IGx1bWFEZXZpY2UgPSBkZXZpY2UgfHwgZ2wubHVtYT8uZGV2aWNlIHx8IGdsLl9fbHVtYV9kZXZpY2U7XG5cbiAgaWYgKCFsdW1hRGV2aWNlPy5jcmVhdGVUZXh0dXJlKSB7XG4gICAgY29uc29sZS53YXJuKCdSYXN0ZXJMYXllcjogTm8gbHVtYS5nbCBkZXZpY2UgYXZhaWxhYmxlIGZvciB0ZXh0dXJlIGNyZWF0aW9uJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHNhbXBsZXJQYXJhbXMgPSBtYXBTYW1wbGVyUGFyYW1ldGVycyhyYXdEYXRhLnBhcmFtZXRlcnMgfHwge30pO1xuICAgIGNvbnN0IHRleHR1cmVGb3JtYXQgPSByYXdEYXRhLmZvcm1hdFxuICAgICAgPyBtYXBUZXh0dXJlRm9ybWF0KHJhd0RhdGEuZm9ybWF0LCByYXdEYXRhLnR5cGUpXG4gICAgICA6IFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuXG4gICAgY29uc3Qgd2lkdGggPSByYXdEYXRhLndpZHRoIHx8IHJhd0RhdGEuZGF0YT8ud2lkdGggfHwgMTtcbiAgICBjb25zdCBoZWlnaHQgPSByYXdEYXRhLmhlaWdodCB8fCByYXdEYXRhLmRhdGE/LmhlaWdodCB8fCAxO1xuXG4gICAgY29uc3QgdGV4dHVyZVByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgZm9ybWF0OiB0ZXh0dXJlRm9ybWF0LFxuICAgICAgc2FtcGxlcjogc2FtcGxlclBhcmFtcyxcbiAgICAgIC4uLihyYXdEYXRhLm1pcG1hcHMgPT09IGZhbHNlID8ge21pcG1hcHM6IGZhbHNlfSA6IHt9KVxuICAgIH07XG5cbiAgICBpZiAocmF3RGF0YS5kYXRhKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHJhd0RhdGEuZGF0YSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXAgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VEYXRhXG4gICAgICApIHtcbiAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSByYXdEYXRhLmRhdGE7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhyYXdEYXRhLmRhdGEpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXdEYXRhLmZvcm1hdCA9PT0gR0wuUkdCICYmXG4gICAgICAgICAgKHJhd0RhdGEuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgfHwgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpXG4gICAgICAgICkge1xuICAgICAgICAgIHRleHR1cmVQcm9wcy5kYXRhID0gZXhwYW5kUkdCdG9SR0JBKHJhd0RhdGEuZGF0YSwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSByYXdEYXRhLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbHVtYURldmljZS5jcmVhdGVUZXh0dXJlKHRleHR1cmVQcm9wcyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oJ1Jhc3RlckxheWVyOiBGYWlsZWQgdG8gY3JlYXRlIHRleHR1cmUgdmlhIGRldmljZS5jcmVhdGVUZXh0dXJlOicsIGUpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQStFLFNBQUFJLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FB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
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9pc0VxdWFsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlMiLCJtaW5GaWx0ZXIiLCJGSUxURVJfTU9ERSIsIk5FQVJFU1QiLCJtYWdGaWx0ZXIiLCJhZGRyZXNzTW9kZVUiLCJBRERSRVNTX01PREUiLCJDTEFNUF9UT19FREdFIiwiYWRkcmVzc01vZGVWIiwibG9hZEltYWdlSXRlbSIsImdsIiwiZGV2aWNlIiwiaW1hZ2VJdGVtIiwicmVzdWx0IiwiZGlydHlSZXN1bHQiLCJtYXAiLCJ4IiwibG9hZFRleHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInRleHR1cmUiLCJlcnIiLCJsb2FkSW1hZ2VzIiwiX3JlZiIsImltYWdlcyIsImltYWdlc0RhdGEiLCJvbGRJbWFnZXNEYXRhIiwiaW1hZ2VzRGlydHkiLCJoYXNQZW5kaW5nVXBsb2FkcyIsImtleSIsImNoYW5nZWRLZXlzIiwiaXNFcXVhbCIsIl9pIiwiX2NoYW5nZWRLZXlzIiwiaW1hZ2VEYXRhIiwibG9hZGVkSXRlbSIsIm1hcFNhbXBsZXJQYXJhbWV0ZXJzIiwib2xkUGFyYW1zIiwibWFnRmlsdGVyTWFwIiwiR0wiLCJMSU5FQVIiLCJtaW5GaWx0ZXJNYXAiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwibWlwbWFwRmlsdGVyIiwiTkVBUkVTVF9NSVBNQVBfTElORUFSIiwiTElORUFSX01JUE1BUF9ORUFSRVNUIiwiTElORUFSX01JUE1BUF9MSU5FQVIiLCJ3cmFwTWFwIiwiUkVQRUFUIiwiTUlSUk9SRURfUkVQRUFUIiwiTUlSUk9SX1JFUEVBVCIsIlRFWFRVUkVfTUlOX0ZJTFRFUiIsInVuZGVmaW5lZCIsIm1hcHBlZCIsIlRFWFRVUkVfTUFHX0ZJTFRFUiIsIlRFWFRVUkVfV1JBUF9TIiwiVEVYVFVSRV9XUkFQX1QiLCJtYXBUZXh0dXJlRm9ybWF0IiwiZ2xGb3JtYXQiLCJfZ2xUeXBlIiwiUjhVSSIsIlRFWFRVUkVfRk9STUFUIiwiUjhfVUlOVCIsIlIxNlVJIiwiUjE2X1VJTlQiLCJSMzJVSSIsIlIzMl9VSU5UIiwiUjhJIiwiUjhfU0lOVCIsIlIxNkkiLCJSMTZfU0lOVCIsIlIzMkkiLCJSMzJfU0lOVCIsIlIzMkYiLCJSMzJfRkxPQVQiLCJSR0JBIiwiUkdCQThfVU5PUk0iLCJSR0IiLCJleHBhbmRSR0J0b1JHQkEiLCJkYXRhIiwid2lkdGgiLCJoZWlnaHQiLCJwaXhlbENvdW50IiwicmdiYSIsIlVpbnQ4QXJyYXkiLCJpIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkMiIsIl9nbCRsdW1hIiwicmFzdGVyVGV4dHVyZURhdGEiLCJoYW5kbGUiLCJpZCIsInN0YXJ0c1dpdGgiLCJyYXdEYXRhIiwibHVtYURldmljZSIsImx1bWEiLCJfX2x1bWFfZGV2aWNlIiwiY3JlYXRlVGV4dHVyZSIsImNvbnNvbGUiLCJ3YXJuIiwiX3Jhd0RhdGEkZGF0YSIsIl9yYXdEYXRhJGRhdGEyIiwic2FtcGxlclBhcmFtcyIsInBhcmFtZXRlcnMiLCJ0ZXh0dXJlRm9ybWF0IiwiZm9ybWF0IiwidHlwZSIsInRleHR1cmVQcm9wcyIsInNhbXBsZXIiLCJtaXBtYXBzIiwiSFRNTEltYWdlRWxlbWVudCIsIkhUTUxDYW52YXNFbGVtZW50IiwiSW1hZ2VCaXRtYXAiLCJJbWFnZURhdGEiLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jhc3Rlci9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gQHRzLWlnbm9yZSBHTCByZXNvbHV0aW9uIGRlcGVuZHMgb24gbW9kdWxlUmVzb2x1dGlvbiBzZXR0aW5nXG5pbXBvcnQge0dMfSBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnZXMtdG9vbGtpdC9jb21wYXQvaXNFcXVhbCc7XG5cbmltcG9ydCB7RklMVEVSX01PREUsIEFERFJFU1NfTU9ERSwgVEVYVFVSRV9GT1JNQVR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUZXh0dXJlfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB0eXBlIHtJbWFnZUlucHV0LCBJbWFnZVN0YXRlfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBMZWdhY3kgdGV4dHVyZSBjcmVhdGlvbiBkZXNjcmlwdG9yIHVzZWQgYnkgcmFzdGVyIHNoYWRlciBtb2R1bGVzLlxuICogQ29udGFpbnMgQ1BVLXNpZGUgZGF0YSArIG9sZCBHTC1lbnVtLWJhc2VkIHBhcmFtZXRlcnMgdGhhdCBnZXRcbiAqIHRyYW5zbGF0ZWQgdG8gbHVtYS5nbCA5J3MgZGV2aWNlLmNyZWF0ZVRleHR1cmUoKSBwcm9wcy5cbiAqL1xudHlwZSBUZXh0dXJlRGF0YVNvdXJjZSA9XG4gIHwgSFRNTEltYWdlRWxlbWVudFxuICB8IEhUTUxDYW52YXNFbGVtZW50XG4gIHwgSW1hZ2VCaXRtYXBcbiAgfCBJbWFnZURhdGFcbiAgfCBBcnJheUJ1ZmZlclZpZXc7XG5cbnR5cGUgUmFzdGVyVGV4dHVyZURhdGEgPSB7XG4gIGhhbmRsZT86IHVua25vd247XG4gIGlkPzogc3RyaW5nO1xuICBkZXZpY2U/OiB1bmtub3duO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBmb3JtYXQ/OiBudW1iZXI7XG4gIHR5cGU/OiBudW1iZXI7XG4gIHBhcmFtZXRlcnM/OiBSZWNvcmQ8bnVtYmVyLCBudW1iZXI+O1xuICBtaXBtYXBzPzogYm9vbGVhbjtcbiAgZGF0YT86IFRleHR1cmVEYXRhU291cmNlICYge3dpZHRoPzogbnVtYmVyOyBoZWlnaHQ/OiBudW1iZXJ9O1xufTtcblxuLyoqXG4gKiBUZXh0dXJlIHNhbXBsZXIgcGFyYW1ldGVycyBmb3IgbHVtYS5nbCA5IHRleHR1cmVzXG4gKi9cbmNvbnN0IERFRkFVTFRfU0FNUExFUl9QQVJBTUVURVJTID0ge1xuICBtaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gIG1hZ0ZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVCxcbiAgYWRkcmVzc01vZGVVOiBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRSxcbiAgYWRkcmVzc01vZGVWOiBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRVxufTtcblxuLyoqIGx1bWEuZ2wgZGV2aWNlIGludGVyZmFjZSBmb3IgdGV4dHVyZSBjcmVhdGlvbiAqL1xuaW50ZXJmYWNlIEx1bWFEZXZpY2Uge1xuICBjcmVhdGVUZXh0dXJlKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFRleHR1cmU7XG4gIGdsPzogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDtcbn1cblxudHlwZSBMb2FkSW1hZ2VzT3B0aW9ucyA9IHtcbiAgZ2w6IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG4gIGRldmljZT86IEx1bWFEZXZpY2U7XG4gIGltYWdlczogSW1hZ2VTdGF0ZTtcbiAgaW1hZ2VzRGF0YTogSW1hZ2VJbnB1dDtcbiAgb2xkSW1hZ2VzRGF0YTogSW1hZ2VJbnB1dDtcbn07XG5cbi8qKlxuICogTG9hZCBpbWFnZSBpdGVtcyB0byB3ZWJnbCBjb250ZXh0XG4gKi9cbmZ1bmN0aW9uIGxvYWRJbWFnZUl0ZW0oXG4gIGdsOiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LFxuICBkZXZpY2U6IEx1bWFEZXZpY2UgfCB1bmRlZmluZWQsXG4gIGltYWdlSXRlbTogUmFzdGVyVGV4dHVyZURhdGEgfCBUZXh0dXJlIHwgKFJhc3RlclRleHR1cmVEYXRhIHwgVGV4dHVyZSlbXVxuKTogbnVsbCB8IFRleHR1cmUgfCBUZXh0dXJlW10ge1xuICBsZXQgcmVzdWx0OiBudWxsIHwgVGV4dHVyZSB8IFRleHR1cmVbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW1hZ2VJdGVtKSkge1xuICAgIGNvbnN0IGRpcnR5UmVzdWx0ID0gaW1hZ2VJdGVtLm1hcCh4ID0+IGxvYWRUZXh0dXJlKGdsLCBkZXZpY2UsIHgpKTtcbiAgICByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRleHR1cmUgb2YgZGlydHlSZXN1bHQpIHtcbiAgICAgIGlmICh0ZXh0dXJlKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRleHR1cmUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlc3VsdC5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdCA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGxvYWRUZXh0dXJlKGdsLCBkZXZpY2UsIGltYWdlSXRlbSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBMb2FkIGltYWdlIGl0ZW1zIHRvIHdlYmdsIGNvbnRleHRcbiAqL1xudHlwZSBMb2FkSW1hZ2VzUmVzdWx0ID0ge1xuICAvKiogVXBkYXRlZCBpbWFnZXMgc3RhdGUsIG9yIG51bGwgaWYgbm90aGluZyBjaGFuZ2VkICovXG4gIGltYWdlczogSW1hZ2VTdGF0ZSB8IG51bGw7XG4gIC8qKiBUcnVlIHdoZW4gYXQgbGVhc3Qgb25lIHRleHR1cmUgdXBsb2FkIGZhaWxlZCBhbmQgc2hvdWxkIGJlIHJldHJpZWQgKi9cbiAgaGFzUGVuZGluZ1VwbG9hZHM6IGJvb2xlYW47XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRJbWFnZXMoe1xuICBnbCxcbiAgZGV2aWNlLFxuICBpbWFnZXMsXG4gIGltYWdlc0RhdGEsXG4gIG9sZEltYWdlc0RhdGFcbn06IExvYWRJbWFnZXNPcHRpb25zKTogTG9hZEltYWdlc1Jlc3VsdCB7XG4gIGxldCBpbWFnZXNEaXJ0eSA9IGZhbHNlO1xuICBsZXQgaGFzUGVuZGluZ1VwbG9hZHMgPSBmYWxzZTtcblxuICBpZiAob2xkSW1hZ2VzRGF0YSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9sZEltYWdlc0RhdGEpIHtcbiAgICAgIGlmIChpbWFnZXNEYXRhICYmICEoa2V5IGluIGltYWdlc0RhdGEpICYmIGtleSBpbiBpbWFnZXMpIHtcbiAgICAgICAgZGVsZXRlIGltYWdlc1trZXldO1xuICAgICAgICBpbWFnZXNEaXJ0eSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2hhbmdlZEtleXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3Qga2V5IGluIGltYWdlc0RhdGEpIHtcbiAgICBpZiAoIW9sZEltYWdlc0RhdGEgfHwgKG9sZEltYWdlc0RhdGEgJiYgIShrZXkgaW4gb2xkSW1hZ2VzRGF0YSkpKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoaW1hZ2VzRGF0YVtrZXldLCBvbGRJbWFnZXNEYXRhW2tleV0pKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgY2hhbmdlZEtleXMpIHtcbiAgICBjb25zdCBpbWFnZURhdGEgPSBpbWFnZXNEYXRhW2tleV07XG4gICAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYWRlZEl0ZW0gPSBsb2FkSW1hZ2VJdGVtKGdsLCBkZXZpY2UsIGltYWdlRGF0YSk7XG4gICAgaWYgKGxvYWRlZEl0ZW0pIHtcbiAgICAgIGltYWdlc1trZXldID0gbG9hZGVkSXRlbTtcbiAgICAgIC8vIE9ubHkgbWFyayBkaXJ0eSB3aGVuIHRoZSB0ZXh0dXJlIHdhcyBhY3R1YWxseSB1cGxvYWRlZC5cbiAgICAgIGltYWdlc0RpcnR5ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBsb2FkIGZhaWxlZCAoZGV2aWNlIG5vdCByZWFkeSBvciBjcmVhdGVUZXh0dXJlIHRocmV3KS4gU2lnbmFsIHRoYXRcbiAgICAgIC8vIHRoZSBjYWxsZXIgc2hvdWxkIHJldHJ5IG5leHQgZnJhbWUg4oCUIGRvIE5PVCBzZXQgaW1hZ2VzRGlydHkgc28gd2VcbiAgICAgIC8vIGRvbid0IHByb3BhZ2F0ZSBhbiBpbWFnZXMgb2JqZWN0IHdpdGggYSBtaXNzaW5nIGtleSB0aGF0IGNhdXNlc1xuICAgICAgLy8gZHJhdygpIHRvIGJhaWwgcGVybWFuZW50bHkuXG4gICAgICBoYXNQZW5kaW5nVXBsb2FkcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtpbWFnZXM6IGltYWdlc0RpcnR5ID8gaW1hZ2VzIDogbnVsbCwgaGFzUGVuZGluZ1VwbG9hZHN9O1xufVxuXG4vKipcbiAqIE1hcCBvbGQgR0wgdGV4dHVyZSBwYXJhbWV0ZXIgY29uc3RhbnRzIHRvIGx1bWEuZ2wgOSBzYW1wbGVyIHBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gbWFwU2FtcGxlclBhcmFtZXRlcnMob2xkUGFyYW1zOiBSZWNvcmQ8bnVtYmVyLCBudW1iZXI+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsuLi5ERUZBVUxUX1NBTVBMRVJfUEFSQU1FVEVSU307XG5cbiAgY29uc3QgbWFnRmlsdGVyTWFwID0ge1xuICAgIFtHTC5ORUFSRVNUXTogRklMVEVSX01PREUuTkVBUkVTVCxcbiAgICBbR0wuTElORUFSXTogRklMVEVSX01PREUuTElORUFSXG4gIH07XG5cbiAgY29uc3QgbWluRmlsdGVyTWFwOiBSZWNvcmQ8bnVtYmVyLCB7bWluRmlsdGVyOiBzdHJpbmc7IG1pcG1hcEZpbHRlcj86IHN0cmluZ30+ID0ge1xuICAgIFtHTC5ORUFSRVNUXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVH0sXG4gICAgW0dMLkxJTkVBUl06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn0sXG4gICAgW0dMLk5FQVJFU1RfTUlQTUFQX05FQVJFU1RdOiB7XG4gICAgICBtaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gICAgICBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1RcbiAgICB9LFxuICAgIFtHTC5ORUFSRVNUX01JUE1BUF9MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULCBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn0sXG4gICAgW0dMLkxJTkVBUl9NSVBNQVBfTkVBUkVTVF06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUiwgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNUfSxcbiAgICBbR0wuTElORUFSX01JUE1BUF9MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVIsIG1pcG1hcEZpbHRlcjogRklMVEVSX01PREUuTElORUFSfVxuICB9O1xuXG4gIGNvbnN0IHdyYXBNYXAgPSB7XG4gICAgW0dMLkNMQU1QX1RPX0VER0VdOiBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRSxcbiAgICBbR0wuUkVQRUFUXTogQUREUkVTU19NT0RFLlJFUEVBVCxcbiAgICBbR0wuTUlSUk9SRURfUkVQRUFUXTogQUREUkVTU19NT0RFLk1JUlJPUl9SRVBFQVRcbiAgfTtcblxuICBpZiAob2xkUGFyYW1zKSB7XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX01JTl9GSUxURVJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG1hcHBlZCA9IG1pbkZpbHRlck1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9NSU5fRklMVEVSXV07XG4gICAgICBpZiAobWFwcGVkKSB7XG4gICAgICAgIHJlc3VsdC5taW5GaWx0ZXIgPSBtYXBwZWQubWluRmlsdGVyO1xuICAgICAgICBpZiAobWFwcGVkLm1pcG1hcEZpbHRlcikge1xuICAgICAgICAgIHJlc3VsdC5taXBtYXBGaWx0ZXIgPSBtYXBwZWQubWlwbWFwRmlsdGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9NQUdfRklMVEVSXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQubWFnRmlsdGVyID0gbWFnRmlsdGVyTWFwW29sZFBhcmFtc1tHTC5URVhUVVJFX01BR19GSUxURVJdXSB8fCBGSUxURVJfTU9ERS5ORUFSRVNUO1xuICAgIH1cbiAgICBpZiAob2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9TXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQuYWRkcmVzc01vZGVVID0gd3JhcE1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9XUkFQX1NdXSB8fCBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRTtcbiAgICB9XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfVF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmFkZHJlc3NNb2RlViA9IHdyYXBNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9UXV0gfHwgQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBNYXAgb2xkIEdMIGZvcm1hdC90eXBlIHRvIGx1bWEuZ2wgOSB0ZXh0dXJlIGZvcm1hdCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gbWFwVGV4dHVyZUZvcm1hdChnbEZvcm1hdDogbnVtYmVyLCBfZ2xUeXBlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChnbEZvcm1hdCkge1xuICAgIGNhc2UgR0wuUjhVSTpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SOF9VSU5UO1xuICAgIGNhc2UgR0wuUjE2VUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjE2X1VJTlQ7XG4gICAgY2FzZSBHTC5SMzJVSTpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMzJfVUlOVDtcbiAgICBjYXNlIEdMLlI4STpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SOF9TSU5UO1xuICAgIGNhc2UgR0wuUjE2STpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMTZfU0lOVDtcbiAgICBjYXNlIEdMLlIzMkk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjMyX1NJTlQ7XG4gICAgY2FzZSBHTC5SMzJGOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIzMl9GTE9BVDtcbiAgICBjYXNlIEdMLlJHQkE6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gICAgY2FzZSBHTC5SR0I6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SR0JBOF9VTk9STTtcbiAgfVxufVxuXG4vKipcbiAqIEV4cGFuZCAzLWJ5dGUtcGVyLXBpeGVsIFJHQiBkYXRhIHRvIDQtYnl0ZS1wZXItcGl4ZWwgUkdCQS5cbiAqIE5lZWRlZCBiZWNhdXNlIFdlYkdQVS9sdW1hLmdsIDkgaGFzIG5vIDMtY2hhbm5lbCB0ZXh0dXJlIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gZXhwYW5kUkdCdG9SR0JBKFxuICBkYXRhOiBVaW50OEFycmF5IHwgVWludDhDbGFtcGVkQXJyYXksXG4gIHdpZHRoOiBudW1iZXIsXG4gIGhlaWdodDogbnVtYmVyXG4pOiBVaW50OEFycmF5IHtcbiAgY29uc3QgcGl4ZWxDb3VudCA9IHdpZHRoICogaGVpZ2h0O1xuICBjb25zdCByZ2JhID0gbmV3IFVpbnQ4QXJyYXkocGl4ZWxDb3VudCAqIDQpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHBpeGVsQ291bnQ7IGkrKykge1xuICAgIHJnYmFbaSAqIDRdID0gZGF0YVtpICogM107XG4gICAgcmdiYVtpICogNCArIDFdID0gZGF0YVtpICogMyArIDFdO1xuICAgIHJnYmFbaSAqIDQgKyAyXSA9IGRhdGFbaSAqIDMgKyAyXTtcbiAgICByZ2JhW2kgKiA0ICsgM10gPSAyNTU7XG4gIH1cbiAgcmV0dXJuIHJnYmE7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRleHR1cmUgb2JqZWN0IGZyb20gaW1hZ2UgZGF0YSB1c2luZyBsdW1hLmdsIDkgZGV2aWNlIEFQSS5cbiAqIFJldHVybnMgYSBwcm9wZXIgbHVtYS5nbCBUZXh0dXJlIG9iamVjdCB0aGF0IHdvcmtzIHdpdGggdGhlIGJpbmRpbmcgc3lzdGVtLlxuICovXG5mdW5jdGlvbiBsb2FkVGV4dHVyZShcbiAgZ2w6IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQsXG4gIGRldmljZTogTHVtYURldmljZSB8IHVuZGVmaW5lZCxcbiAgaW1hZ2VEYXRhOiBUZXh0dXJlIHwgUmFzdGVyVGV4dHVyZURhdGFcbik6IFRleHR1cmUgfCBudWxsIHtcbiAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElmIGFscmVhZHkgYSBsdW1hLmdsIFRleHR1cmUgaW5zdGFuY2UsIHJldHVybiBhcy1pc1xuICBjb25zdCByYXN0ZXJUZXh0dXJlRGF0YSA9IGltYWdlRGF0YSBhcyBSYXN0ZXJUZXh0dXJlRGF0YTtcbiAgaWYgKFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmhhbmRsZSB8fFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmlkPy5zdGFydHNXaXRoPy4oJ2x1bWEnKSB8fFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmRldmljZVxuICApIHtcbiAgICByZXR1cm4gaW1hZ2VEYXRhIGFzIFRleHR1cmU7XG4gIH1cblxuICBjb25zdCByYXdEYXRhID0gaW1hZ2VEYXRhIGFzIFJhc3RlclRleHR1cmVEYXRhO1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbHVtYSBpbnRlcm5hbCBwcm9wZXJ0aWVzIG5vdCBpbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHR5cGVcbiAgY29uc3QgbHVtYURldmljZSA9IGRldmljZSB8fCBnbC5sdW1hPy5kZXZpY2UgfHwgZ2wuX19sdW1hX2RldmljZTtcblxuICBpZiAoIWx1bWFEZXZpY2U/LmNyZWF0ZVRleHR1cmUpIHtcbiAgICBjb25zb2xlLndhcm4oJ1Jhc3RlckxheWVyOiBObyBsdW1hLmdsIGRldmljZSBhdmFpbGFibGUgZm9yIHRleHR1cmUgY3JlYXRpb24nKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2FtcGxlclBhcmFtcyA9IG1hcFNhbXBsZXJQYXJhbWV0ZXJzKHJhd0RhdGEucGFyYW1ldGVycyB8fCB7fSk7XG4gICAgY29uc3QgdGV4dHVyZUZvcm1hdCA9IHJhd0RhdGEuZm9ybWF0XG4gICAgICA/IG1hcFRleHR1cmVGb3JtYXQocmF3RGF0YS5mb3JtYXQsIHJhd0RhdGEudHlwZSlcbiAgICAgIDogVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG5cbiAgICBjb25zdCB3aWR0aCA9IHJhd0RhdGEud2lkdGggfHwgcmF3RGF0YS5kYXRhPy53aWR0aCB8fCAxO1xuICAgIGNvbnN0IGhlaWdodCA9IHJhd0RhdGEuaGVpZ2h0IHx8IHJhd0RhdGEuZGF0YT8uaGVpZ2h0IHx8IDE7XG5cbiAgICBjb25zdCB0ZXh0dXJlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBmb3JtYXQ6IHRleHR1cmVGb3JtYXQsXG4gICAgICBzYW1wbGVyOiBzYW1wbGVyUGFyYW1zLFxuICAgICAgLi4uKHJhd0RhdGEubWlwbWFwcyA9PT0gZmFsc2UgPyB7bWlwbWFwczogZmFsc2V9IDoge30pXG4gICAgfTtcblxuICAgIGlmIChyYXdEYXRhLmRhdGEpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBJbWFnZURhdGFcbiAgICAgICkge1xuICAgICAgICB0ZXh0dXJlUHJvcHMuZGF0YSA9IHJhd0RhdGEuZGF0YTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHJhd0RhdGEuZGF0YSkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJhd0RhdGEuZm9ybWF0ID09PSBHTC5SR0IgJiZcbiAgICAgICAgICAocmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSBleHBhbmRSR0J0b1JHQkEocmF3RGF0YS5kYXRhLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZXh0dXJlUHJvcHMuZGF0YSA9IHJhd0RhdGEuZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsdW1hRGV2aWNlLmNyZWF0ZVRleHR1cmUodGV4dHVyZVByb3BzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybignUmFzdGVyTGF5ZXI6IEZhaWxlZCB0byBjcmVhdGUgdGV4dHVyZSB2aWEgZGV2aWNlLmNyZWF0ZVRleHR1cmU6JywgZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFBK0UsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFB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