@kando-env/kando-ui 1.2.358-alpha.13 → 1.2.358-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/Map/Map.js +3 -6
- package/lib/Widgets/Map/Map.scss +0 -4
- package/lib/Widgets/Map/MapUtils.js +4 -7
- package/lib/Widgets/Map/edges/Edge.js +8 -5
- package/lib/Widgets/Map/edges/Edges.js +1 -2
- package/lib/Widgets/Map/events/EventIndicator.js +12 -10
- package/lib/Widgets/Map/events/EventUtils.js +4 -4
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +3 -3
- package/lib/styles/theme/theme.js +2 -2
- package/lib/utilities/polylinedecorator.js +1 -4
- package/package.json +1 -1
|
@@ -355,7 +355,4 @@ function interpolateBetweenPoints(ptA, ptB, ratio) {
|
|
|
355
355
|
y: ptA.y + (ptB.y - ptA.y) * ratio
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
|
-
window.L = _leaflet.default;
|
|
359
|
-
window.L.polylineDecorator = _leaflet.default.polylineDecorator;
|
|
360
|
-
window.L.Symbol = _leaflet.default.Symbol;
|
|
361
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJjb29yZHMiLCJjb25jYXQiLCJQb2x5bGluZSIsImdldExhdExuZ3MiLCJQb2x5Z29uIiwicmVkdWNlIiwiZmxhdEFycmF5IiwicCIsInBhdHRlcm5EZWZzIiwiX3BhcnNlUGF0dGVybkRlZiIsInNldFBhdHRlcm5zIiwicmVkcmF3Iiwic2V0UGF0aHMiLCJwYXR0ZXJuRGVmIiwic3ltYm9sRmFjdG9yeSIsInN5bWJvbCIsIm9mZnNldCIsInBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUiLCJlbmRPZmZzZXQiLCJyZXBlYXQiLCJvbkFkZCIsIl9kcmF3Iiwib24iLCJvblJlbW92ZSIsIm9mZiIsImFsbFBhdGhDb29yZHMiLCJhY2MiLCJwYXRoIiwibGF0TG5nQm91bmRzIiwiZ2V0Qm91bmRzIiwiX2J1aWxkU3ltYm9scyIsImRpcmVjdGlvblBvaW50cyIsImkiLCJfZ2V0RGlyZWN0aW9uUG9pbnRzIiwicGF0dGVybiIsInBhdGhBc1BvaW50cyIsInByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgiLCJwdCIsImNsZWFyTGF5ZXJzIiwiX2dldFBhdHRlcm5MYXllcnMiLCJtYXBCb3VuZHMiLCJwYWQiLCJmaWx0ZXIiLCJjb250YWlucyIsImZlYXR1cmVHcm91cCIsImZvckVhY2giLCJsYXllcnMiLCJhZGRMYXllciIsInBvbHlsaW5lRGVjb3JhdG9yIiwicG9pbnREaXN0YW5jZSIsInB0QSIsInB0QiIsInNxcnQiLCJjb21wdXRlU2VnbWVudEhlYWRpbmciLCJhdGFuMiIsImV4cG9ydHMiLCJhc1JhdGlvVG9QYXRoTGVuZ3RoIiwiX3JlZiIsInRvdGFsUGF0aExlbmd0aCIsInZhbHVlIiwiaXNJblBpeGVscyIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwicGFyc2VkVmFsdWUiLCJwb2ludHNFcXVhbCIsInBvaW50c1RvU2VnbWVudHMiLCJwdHMiLCJzZWdtZW50cyIsImlkeCIsInBvaW50cyIsImRpc3RBIiwiZGlzdEIiLCJkaXN0QUIiLCJwdXNoIiwibmJTZWdtZW50cyIsInJlcGVhdEludGVydmFsUGl4ZWxzIiwic3RhcnRPZmZzZXRQaXhlbHMiLCJlbmRPZmZzZXRQaXhlbHMiLCJwb3NpdGlvbk9mZnNldHMiLCJwb3NpdGlvbk9mZnNldCIsInNlZ21lbnRJbmRleCIsInNlZ21lbnQiLCJzZWdtZW50UmF0aW8iLCJpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMiLCJyYXRpbyIsIndpbmRvdyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG4vLyBlbmFibGUgcm90YXRpb25BbmdsZSBhbmQgcm90YXRpb25PcmlnaW4gc3VwcG9ydCBvbiBMLk1hcmtlclxuaW1wb3J0ICdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInO1xuXG4vKipcbiAqIERlZmluZXMgc2V2ZXJhbCBjbGFzc2VzIG9mIHN5bWJvbCBmYWN0b3JpZXMsXG4gKiB0byBiZSB1c2VkIHdpdGggTC5Qb2x5bGluZURlY29yYXRvclxuICovXG5cbkwuU3ltYm9sID0gTC5TeW1ib2wgfHwge307XG5cbi8qKlxuICogQSBzaW1wbGUgZGFzaCBzeW1ib2wsIGRyYXduIGFzIGEgUG9seWxpbmUuXG4gKiBDYW4gYWxzbyBiZSB1c2VkIGZvciBkb3RzLCBpZiAncGl4ZWxTaXplJyBvcHRpb24gaXMgZ2l2ZW4gdGhlIDAgdmFsdWUuXG4gKi9cbkwuU3ltYm9sLkRhc2ggPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIHBhdGhPcHRpb25zOiB7fSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcblxuICAgIC8vIGZvciBhIGRvdCwgbm90aGluZyBtb3JlIHRvIGNvbXB1dGVcbiAgICBpZiAob3B0cy5waXhlbFNpemUgPD0gMSkge1xuICAgICAgcmV0dXJuIEwucG9seWxpbmUoW2RpclBvaW50LmxhdExuZywgZGlyUG9pbnQubGF0TG5nXSwgb3B0cy5wYXRoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWlkUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGFuZ2xlID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IGEgPSBMLnBvaW50KFxuICAgICAgbWlkUG9pbnQueCArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguY29zKGFuZ2xlICsgTWF0aC5QSSkpIC8gMixcbiAgICAgIG1pZFBvaW50LnkgKyAob3B0cy5waXhlbFNpemUgKiBNYXRoLnNpbihhbmdsZSkpIC8gMixcbiAgICApO1xuICAgIC8vIGNvbXB1dGUgc2Vjb25kIHBvaW50IGJ5IGNlbnRyYWwgc3ltbWV0cnkgdG8gYXZvaWQgdW5lY2Vzc2FyeSBjb3Mvc2luXG4gICAgY29uc3QgYiA9IG1pZFBvaW50LmFkZChtaWRQb2ludC5zdWJ0cmFjdChhKSk7XG4gICAgcmV0dXJuIEwucG9seWxpbmUoW21hcC51bnByb2plY3QoYSksIG1hcC51bnByb2plY3QoYildLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5kYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5EYXNoKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuQXJyb3dIZWFkID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcG9seWdvbjogdHJ1ZSxcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIGhlYWRBbmdsZTogNjAsXG4gICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgIHN0cm9rZTogZmFsc2UsXG4gICAgICB3ZWlnaHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucG9seWdvblxuICAgICAgPyBMLnBvbHlnb24odGhpcy5fYnVpbGRBcnJvd1BhdGgoZGlyUG9pbnQsIG1hcCksIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucylcbiAgICAgIDogTC5wb2x5bGluZShcbiAgICAgICAgICB0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSxcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGF0aE9wdGlvbnMsXG4gICAgICAgICk7XG4gIH0sXG5cbiAgX2J1aWxkQXJyb3dQYXRoOiBmdW5jdGlvbiAoZGlyUG9pbnQsIG1hcCkge1xuICAgIGNvbnN0IGQyciA9IE1hdGguUEkgLyAxODA7XG4gICAgY29uc3QgdGlwUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IC0oZGlyUG9pbnQuaGVhZGluZyAtIDkwKSAqIGQycjtcbiAgICBjb25zdCByYWRpYW5BcnJvd0FuZ2xlID0gKHRoaXMub3B0aW9ucy5oZWFkQW5nbGUgLyAyKSAqIGQycjtcblxuICAgIGNvbnN0IGhlYWRBbmdsZTEgPSBkaXJlY3Rpb24gKyByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGhlYWRBbmdsZTIgPSBkaXJlY3Rpb24gLSByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGFycm93SGVhZDEgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUxKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMSksXG4gICAgKTtcbiAgICBjb25zdCBhcnJvd0hlYWQyID0gTC5wb2ludChcbiAgICAgIHRpcFBvaW50LnggLSB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5jb3MoaGVhZEFuZ2xlMiksXG4gICAgICB0aXBQb2ludC55ICsgdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguc2luKGhlYWRBbmdsZTIpLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQxKSxcbiAgICAgIGRpclBvaW50LmxhdExuZyxcbiAgICAgIG1hcC51bnByb2plY3QoYXJyb3dIZWFkMiksXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5hcnJvd0hlYWQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkFycm93SGVhZChvcHRpb25zKTtcbn07XG5cbkwuU3ltYm9sLk1hcmtlciA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIG1hcmtlck9wdGlvbnM6IHt9LFxuICAgIHJvdGF0ZTogZmFsc2UsXG4gIH0sXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBMLlV0aWwuc2V0T3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpcmVjdGlvblBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucm90YXRlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5yb3RhdGlvbkFuZ2xlID1cbiAgICAgICAgZGlyZWN0aW9uUG9pbnQuaGVhZGluZyArICh0aGlzLm9wdGlvbnMuYW5nbGVDb3JyZWN0aW9uIHx8IDApO1xuICAgIH1cbiAgICByZXR1cm4gTC5tYXJrZXIoZGlyZWN0aW9uUG9pbnQubGF0TG5nLCB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucyk7XG4gIH0sXG59KTtcblxuTC5TeW1ib2wubWFya2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5NYXJrZXIob3B0aW9ucyk7XG59O1xuXG5jb25zdCBpc0Nvb3JkID0gKGMpID0+XG4gIGMgaW5zdGFuY2VvZiBMLkxhdExuZyB8fFxuICAoQXJyYXkuaXNBcnJheShjKSAmJiBjLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgY1swXSA9PT0gJ251bWJlcicpO1xuXG5jb25zdCBpc0Nvb3JkQXJyYXkgPSAobGwpID0+IEFycmF5LmlzQXJyYXkobGwpICYmIGlzQ29vcmQobGxbMF0pO1xuXG5MLlBvbHlsaW5lRGVjb3JhdG9yID0gTC5GZWF0dXJlR3JvdXAuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBhdHRlcm5zOiBbXSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAocGF0aHMsIG9wdGlvbnMpIHtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMpO1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuX21hcCA9IG51bGw7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWFscyB3aXRoIGFsbCB0aGUgZGlmZmVyZW50IGNhc2VzLiBpbnB1dCBjYW4gYmUgb25lIG9mIHRoZXNlIHR5cGVzOlxuICAgKiBhcnJheSBvZiBMYXRMbmcsIGFycmF5IG9mIDItbnVtYmVyIGFycmF5cywgUG9seWxpbmUsIFBvbHlnb24sXG4gICAqIGFycmF5IG9mIG9uZSBvZiB0aGUgcHJldmlvdXMuXG4gICAqL1xuICBfaW5pdFBhdGhzOiBmdW5jdGlvbiAoaW5wdXQsIGlzUG9seWdvbikge1xuICAgIGlmIChpc0Nvb3JkQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBMZWFmbGV0IFBvbHlnb25zIGRvbid0IG5lZWQgdGhlIGZpcnN0IHBvaW50IHRvIGJlIHJlcGVhdGVkLCBidXQgd2UgZG9cbiAgICAgIGNvbnN0IGNvb3JkcyA9IGlzUG9seWdvbiA/IGlucHV0LmNvbmNhdChbaW5wdXRbMF1dKSA6IGlucHV0O1xuICAgICAgcmV0dXJuIFtjb29yZHNdO1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlsaW5lKSB7XG4gICAgICAvLyB3ZSBuZWVkIHNvbWUgcmVjdXJzaXZpdHkgdG8gc3VwcG9ydCBtdWx0aS1wb2x5KlxuICAgICAgcmV0dXJuIHRoaXMuX2luaXRQYXRocyhpbnB1dC5nZXRMYXRMbmdzKCksIGlucHV0IGluc3RhbmNlb2YgTC5Qb2x5Z29uKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBmbGF0dGVuIGV2ZXJ5dGhpbmcsIHdlIGp1c3QgbmVlZCBjb29yZGluYXRlIGxpc3RzIHRvIGFwcGx5IHBhdHRlcm5zXG4gICAgICByZXR1cm4gaW5wdXQucmVkdWNlKFxuICAgICAgICAoZmxhdEFycmF5LCBwKSA9PiBmbGF0QXJyYXkuY29uY2F0KHRoaXMuX2luaXRQYXRocyhwLCBpc1BvbHlnb24pKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG5cbiAgLy8gcGFyc2UgcGF0dGVybiBkZWZpbml0aW9ucyBhbmQgcHJlY29tcHV0ZSBzb21lIHZhbHVlc1xuICBfaW5pdFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybkRlZnMpIHtcbiAgICByZXR1cm4gcGF0dGVybkRlZnMubWFwKHRoaXMuX3BhcnNlUGF0dGVybkRlZik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXR0ZXJuczogZnVuY3Rpb24gKHBhdHRlcm5zKSB7XG4gICAgdGhpcy5vcHRpb25zLnBhdHRlcm5zID0gcGF0dGVybnM7XG4gICAgdGhpcy5fcGF0dGVybnMgPSB0aGlzLl9pbml0UGF0dGVybnModGhpcy5vcHRpb25zLnBhdHRlcm5zKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBwYXR0ZXJucyB1c2VkIGJ5IHRoaXMgZGVjb3JhdG9yXG4gICAqIGFuZCByZWRyYXdzIHRoZSBuZXcgb25lLlxuICAgKi9cbiAgc2V0UGF0aHM6IGZ1bmN0aW9uIChwYXRocykge1xuICAgIHRoaXMuX3BhdGhzID0gdGhpcy5faW5pdFBhdGhzKHBhdGhzKTtcbiAgICB0aGlzLl9ib3VuZHMgPSB0aGlzLl9pbml0Qm91bmRzKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHBhdHRlcm4gZGVmaW5pdGlvblxuICAgKi9cbiAgX3BhcnNlUGF0dGVybkRlZjogZnVuY3Rpb24gKHBhdHRlcm5EZWYsIGxhdExuZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3ltYm9sRmFjdG9yeTogcGF0dGVybkRlZi5zeW1ib2wsXG4gICAgICAvLyBQYXJzZSBvZmZzZXQgYW5kIHJlcGVhdCB2YWx1ZXMsIG1hbmFnaW5nIHRoZSB0d28gY2FzZXM6XG4gICAgICAvLyBhYnNvbHV0ZSAoaW4gcGl4ZWxzKSBvciByZWxhdGl2ZSAoaW4gcGVyY2VudGFnZSBvZiB0aGUgcG9seWxpbmUgbGVuZ3RoKVxuICAgICAgb2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYub2Zmc2V0KSxcbiAgICAgIGVuZE9mZnNldDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLmVuZE9mZnNldCksXG4gICAgICByZXBlYXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5yZXBlYXQpLFxuICAgIH07XG4gIH0sXG5cbiAgb25BZGQ6IGZ1bmN0aW9uIChtYXApIHtcbiAgICB0aGlzLl9tYXAgPSBtYXA7XG4gICAgdGhpcy5fZHJhdygpO1xuICAgIHRoaXMuX21hcC5vbignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgfSxcblxuICBvblJlbW92ZTogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcC5vZmYoJ21vdmVlbmQnLCB0aGlzLnJlZHJhdywgdGhpcyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUub25SZW1vdmUuY2FsbCh0aGlzLCBtYXApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBcyByZWFsIHBhdHRlcm4gYm91bmRzIGRlcGVuZHMgb24gbWFwIHpvb20gYW5kIGJvdW5kcyxcbiAgICogd2UganVzdCBjb21wdXRlIHRoZSB0b3RhbCBib3VuZHMgb2YgYWxsIHBhdGhzIGRlY29yYXRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgX2luaXRCb3VuZHM6IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhbGxQYXRoQ29vcmRzID0gdGhpcy5fcGF0aHMucmVkdWNlKFxuICAgICAgKGFjYywgcGF0aCkgPT4gYWNjLmNvbmNhdChwYXRoKSxcbiAgICAgIFtdLFxuICAgICk7XG4gICAgcmV0dXJuIEwubGF0TG5nQm91bmRzKGFsbFBhdGhDb29yZHMpO1xuICB9LFxuXG4gIGdldEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl9ib3VuZHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgSUxheWVycyBvYmplY3RcbiAgICovXG4gIF9idWlsZFN5bWJvbHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBzeW1ib2xGYWN0b3J5LCBkaXJlY3Rpb25Qb2ludHMpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uUG9pbnRzLm1hcCgoZGlyZWN0aW9uUG9pbnQsIGkpID0+XG4gICAgICBzeW1ib2xGYWN0b3J5LmJ1aWxkU3ltYm9sKFxuICAgICAgICBkaXJlY3Rpb25Qb2ludCxcbiAgICAgICAgbGF0TG5ncyxcbiAgICAgICAgdGhpcy5fbWFwLFxuICAgICAgICBpLFxuICAgICAgICBkaXJlY3Rpb25Qb2ludHMubGVuZ3RoLFxuICAgICAgKSxcbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHBhaXJzIG9mIExhdExuZyBhbmQgaGVhZGluZyBhbmdsZSxcbiAgICogdGhhdCBkZWZpbmUgcG9zaXRpb25zIGFuZCBkaXJlY3Rpb25zIG9mIHRoZSBzeW1ib2xzIG9uIHRoZSBwYXRoXG4gICAqL1xuICBfZ2V0RGlyZWN0aW9uUG9pbnRzOiBmdW5jdGlvbiAobGF0TG5ncywgcGF0dGVybikge1xuICAgIGlmIChsYXRMbmdzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGF0aEFzUG9pbnRzID0gbGF0TG5ncy5tYXAoKGxhdExuZykgPT4gdGhpcy5fbWFwLnByb2plY3QobGF0TG5nKSk7XG4gICAgcmV0dXJuIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgocGF0aEFzUG9pbnRzLCBwYXR0ZXJuKS5tYXAoKHBvaW50KSA9PiAoe1xuICAgICAgbGF0TG5nOiB0aGlzLl9tYXAudW5wcm9qZWN0KEwucG9pbnQocG9pbnQucHQpKSxcbiAgICAgIGhlYWRpbmc6IHBvaW50LmhlYWRpbmcsXG4gICAgfSkpO1xuICB9LFxuXG4gIHJlZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xlYXJMYXllcnMoKTtcbiAgICB0aGlzLl9kcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN5bWJvbHMgZm9yIGEgZ2l2ZW4gcGF0dGVybiBhcyBhbiBhcnJheSBvZiBGZWF0dXJlR3JvdXBcbiAgICovXG4gIF9nZXRQYXR0ZXJuTGF5ZXJzOiBmdW5jdGlvbiAocGF0dGVybikge1xuICAgIGNvbnN0IG1hcEJvdW5kcyA9IHRoaXMuX21hcC5nZXRCb3VuZHMoKS5wYWQoMC4xKTtcbiAgICByZXR1cm4gdGhpcy5fcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb25Qb2ludHMgPSB0aGlzLl9nZXREaXJlY3Rpb25Qb2ludHMocGF0aCwgcGF0dGVybilcbiAgICAgICAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgcG9pbnRzXG4gICAgICAgIC5maWx0ZXIoKHBvaW50KSA9PiBtYXBCb3VuZHMuY29udGFpbnMocG9pbnQubGF0TG5nKSk7XG4gICAgICByZXR1cm4gTC5mZWF0dXJlR3JvdXAoXG4gICAgICAgIHRoaXMuX2J1aWxkU3ltYm9scyhwYXRoLCBwYXR0ZXJuLnN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cyksXG4gICAgICApO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEcmF3IGFsbCBwYXR0ZXJuc1xuICAgKi9cbiAgX2RyYXc6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9wYXR0ZXJuc1xuICAgICAgLm1hcCgocGF0dGVybikgPT4gdGhpcy5fZ2V0UGF0dGVybkxheWVycyhwYXR0ZXJuKSlcbiAgICAgIC5mb3JFYWNoKChsYXllcnMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRMYXllcihMLmZlYXR1cmVHcm91cChsYXllcnMpKTtcbiAgICAgIH0pO1xuICB9LFxufSk7XG4vKlxuICogQWxsb3dzIGNvbXBhY3Qgc3ludGF4IHRvIGJlIHVzZWRcbiAqL1xuTC5wb2x5bGluZURlY29yYXRvciA9IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuUG9seWxpbmVEZWNvcmF0b3IocGF0aHMsIG9wdGlvbnMpO1xufTtcblxuLy8gZnVuY3Rpb25hbCByZS1pbXBsIG9mIEwuUG9pbnQuZGlzdGFuY2VUbyxcbi8vIHdpdGggbm8gZGVwZW5kZW5jeSBvbiBMZWFmbGV0IGZvciBlYXNpZXIgdGVzdGluZ1xuZnVuY3Rpb24gcG9pbnREaXN0YW5jZShwdEEsIHB0Qikge1xuICBjb25zdCB4ID0gcHRCLnggLSBwdEEueDtcbiAgY29uc3QgeSA9IHB0Qi55IC0gcHRBLnk7XG4gIHJldHVybiBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG59XG5cbmNvbnN0IGNvbXB1dGVTZWdtZW50SGVhZGluZyA9IChhLCBiKSA9PlxuICAoKE1hdGguYXRhbjIoYi55IC0gYS55LCBiLnggLSBhLngpICogMTgwKSAvIE1hdGguUEkgKyA5MCArIDM2MCkgJSAzNjA7XG5cbmNvbnN0IGFzUmF0aW9Ub1BhdGhMZW5ndGggPSAoeyB2YWx1ZSwgaXNJblBpeGVscyB9LCB0b3RhbFBhdGhMZW5ndGgpID0+XG4gIGlzSW5QaXhlbHMgPyB2YWx1ZSAvIHRvdGFsUGF0aExlbmd0aCA6IHZhbHVlO1xuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwLFxuICAgICAgaXNJblBpeGVsczogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBjb25zdCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiAwO1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiBwYXJzZWRWYWx1ZSxcbiAgICBpc0luUGl4ZWxzOiBwYXJzZWRWYWx1ZSA+IDAsXG4gIH07XG59XG5cbmNvbnN0IHBvaW50c0VxdWFsID0gKGEsIGIpID0+IGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55O1xuXG5mdW5jdGlvbiBwb2ludHNUb1NlZ21lbnRzKHB0cykge1xuICByZXR1cm4gcHRzLnJlZHVjZSgoc2VnbWVudHMsIGIsIGlkeCwgcG9pbnRzKSA9PiB7XG4gICAgLy8gdGhpcyB0ZXN0IHNraXBzIHNhbWUgYWRqYWNlbnQgcG9pbnRzXG4gICAgaWYgKGlkeCA+IDAgJiYgIXBvaW50c0VxdWFsKGIsIHBvaW50c1tpZHggLSAxXSkpIHtcbiAgICAgIGNvbnN0IGEgPSBwb2ludHNbaWR4IC0gMV07XG4gICAgICBjb25zdCBkaXN0QSA9XG4gICAgICAgIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5kaXN0QiA6IDA7XG4gICAgICBjb25zdCBkaXN0QUIgPSBwb2ludERpc3RhbmNlKGEsIGIpO1xuICAgICAgc2VnbWVudHMucHVzaCh7XG4gICAgICAgIGEsXG4gICAgICAgIGIsXG4gICAgICAgIGRpc3RBLFxuICAgICAgICBkaXN0QjogZGlzdEEgKyBkaXN0QUIsXG4gICAgICAgIGhlYWRpbmc6IGNvbXB1dGVTZWdtZW50SGVhZGluZyhhLCBiKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudHM7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwdHMsIHBhdHRlcm4pIHtcbiAgLy8gMS4gc3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50IGluZm9zXG4gIGNvbnN0IHNlZ21lbnRzID0gcG9pbnRzVG9TZWdtZW50cyhwdHMpO1xuICBjb25zdCBuYlNlZ21lbnRzID0gc2VnbWVudHMubGVuZ3RoO1xuICBpZiAobmJTZWdtZW50cyA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsUGF0aExlbmd0aCA9IHNlZ21lbnRzW25iU2VnbWVudHMgLSAxXS5kaXN0QjtcblxuICBjb25zdCBvZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ub2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCBlbmRPZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4uZW5kT2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCByZXBlYXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ucmVwZWF0LCB0b3RhbFBhdGhMZW5ndGgpO1xuXG4gIGNvbnN0IHJlcGVhdEludGVydmFsUGl4ZWxzID0gdG90YWxQYXRoTGVuZ3RoICogcmVwZWF0O1xuICBjb25zdCBzdGFydE9mZnNldFBpeGVscyA9IG9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBvZmZzZXQgOiAwO1xuICBjb25zdCBlbmRPZmZzZXRQaXhlbHMgPSBlbmRPZmZzZXQgPiAwID8gdG90YWxQYXRoTGVuZ3RoICogZW5kT2Zmc2V0IDogMDtcblxuICAvLyAyLiBnZW5lcmF0ZSB0aGUgcG9zaXRpb25zIG9mIHRoZSBwYXR0ZXJuIGFzIG9mZnNldHMgZnJvbSB0aGUgcGF0aCBzdGFydFxuICBjb25zdCBwb3NpdGlvbk9mZnNldHMgPSBbXTtcbiAgbGV0IHBvc2l0aW9uT2Zmc2V0ID0gc3RhcnRPZmZzZXRQaXhlbHM7XG4gIGRvIHtcbiAgICBwb3NpdGlvbk9mZnNldHMucHVzaChwb3NpdGlvbk9mZnNldCk7XG4gICAgcG9zaXRpb25PZmZzZXQgKz0gcmVwZWF0SW50ZXJ2YWxQaXhlbHM7XG4gIH0gd2hpbGUgKFxuICAgIHJlcGVhdEludGVydmFsUGl4ZWxzID4gMCAmJlxuICAgIHBvc2l0aW9uT2Zmc2V0IDwgdG90YWxQYXRoTGVuZ3RoIC0gZW5kT2Zmc2V0UGl4ZWxzXG4gICk7XG5cbiAgLy8gMy4gcHJvamVjdHMgb2Zmc2V0cyB0byBzZWdtZW50c1xuICBsZXQgc2VnbWVudEluZGV4ID0gMDtcbiAgbGV0IHNlZ21lbnQgPSBzZWdtZW50c1swXTtcbiAgcmV0dXJuIHBvc2l0aW9uT2Zmc2V0cy5tYXAoKHBvc2l0aW9uT2Zmc2V0KSA9PiB7XG4gICAgLy8gZmluZCB0aGUgc2VnbWVudCBtYXRjaGluZyB0aGUgb2Zmc2V0LFxuICAgIC8vIHN0YXJ0aW5nIGZyb20gdGhlIHByZXZpb3VzIG9uZSBhcyBvZmZzZXRzIGFyZSBvcmRlcmVkXG4gICAgd2hpbGUgKHBvc2l0aW9uT2Zmc2V0ID4gc2VnbWVudC5kaXN0QiAmJiBzZWdtZW50SW5kZXggPCBuYlNlZ21lbnRzIC0gMSkge1xuICAgICAgc2VnbWVudEluZGV4Kys7XG4gICAgICBzZWdtZW50ID0gc2VnbWVudHNbc2VnbWVudEluZGV4XTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWdtZW50UmF0aW8gPVxuICAgICAgKHBvc2l0aW9uT2Zmc2V0IC0gc2VnbWVudC5kaXN0QSkgLyAoc2VnbWVudC5kaXN0QiAtIHNlZ21lbnQuZGlzdEEpO1xuICAgIHJldHVybiB7XG4gICAgICBwdDogaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHNlZ21lbnQuYSwgc2VnbWVudC5iLCBzZWdtZW50UmF0aW8pLFxuICAgICAgaGVhZGluZzogc2VnbWVudC5oZWFkaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBwb2ludCB3aGljaCBsaWVzIG9uIHRoZSBzZWdtZW50IGRlZmluZWQgYnkgcG9pbnRzIEEgYW5kIEIsXG4gKiBhdCB0aGUgZ2l2ZW4gcmF0aW8gb2YgdGhlIGRpc3RhbmNlIGZyb20gQSB0byBCLCBieSBsaW5lYXIgaW50ZXJwb2xhdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHB0QSwgcHRCLCByYXRpbykge1xuICBpZiAocHRCLnggIT09IHB0QS54KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHB0QS54ICsgcmF0aW8gKiAocHRCLnggLSBwdEEueCksXG4gICAgICB5OiBwdEEueSArIHJhdGlvICogKHB0Qi55IC0gcHRBLnkpLFxuICAgIH07XG4gIH1cbiAgLy8gc3BlY2lhbCBjYXNlIHdoZXJlIHBvaW50cyBsaWUgb24gdGhlIHNhbWUgdmVydGljYWwgYXhpc1xuICByZXR1cm4ge1xuICAgIHg6IHB0QS54LFxuICAgIHk6IHB0QS55ICsgKHB0Qi55IC0gcHRBLnkpICogcmF0aW8sXG4gIH07XG59XG5cbmV4cG9ydCB7XG4gIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgsXG4gIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUsXG4gIC8vIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYXJlIGV4cG9ydGVkIG9ubHkgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlXG4gIGNvbXB1dGVTZWdtZW50SGVhZGluZyxcbiAgYXNSYXRpb1RvUGF0aExlbmd0aCxcbn07XG5cbndpbmRvdy5MID0gTDtcbndpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yID0gTC5wb2x5bGluZURlY29yYXRvcjtcbndpbmRvdy5MLlN5bWJvbCA9IEwuU3ltYm9sO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQUEsT0FBQTtBQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBQyxnQkFBQyxDQUFDQyxNQUFNLEdBQUdELGdCQUFDLENBQUNDLE1BQU0sSUFBSSxDQUFDLENBQUM7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0FELGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHRixnQkFBQyxDQUFDRyxLQUFLLENBQUNDLE1BQU0sQ0FBQztFQUM3QkMsT0FBTyxFQUFFO0lBQ1BD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
|
|
358
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJjb29yZHMiLCJjb25jYXQiLCJQb2x5bGluZSIsImdldExhdExuZ3MiLCJQb2x5Z29uIiwicmVkdWNlIiwiZmxhdEFycmF5IiwicCIsInBhdHRlcm5EZWZzIiwiX3BhcnNlUGF0dGVybkRlZiIsInNldFBhdHRlcm5zIiwicmVkcmF3Iiwic2V0UGF0aHMiLCJwYXR0ZXJuRGVmIiwic3ltYm9sRmFjdG9yeSIsInN5bWJvbCIsIm9mZnNldCIsInBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUiLCJlbmRPZmZzZXQiLCJyZXBlYXQiLCJvbkFkZCIsIl9kcmF3Iiwib24iLCJvblJlbW92ZSIsIm9mZiIsImFsbFBhdGhDb29yZHMiLCJhY2MiLCJwYXRoIiwibGF0TG5nQm91bmRzIiwiZ2V0Qm91bmRzIiwiX2J1aWxkU3ltYm9scyIsImRpcmVjdGlvblBvaW50cyIsImkiLCJfZ2V0RGlyZWN0aW9uUG9pbnRzIiwicGF0dGVybiIsInBhdGhBc1BvaW50cyIsInByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgiLCJwdCIsImNsZWFyTGF5ZXJzIiwiX2dldFBhdHRlcm5MYXllcnMiLCJtYXBCb3VuZHMiLCJwYWQiLCJmaWx0ZXIiLCJjb250YWlucyIsImZlYXR1cmVHcm91cCIsImZvckVhY2giLCJsYXllcnMiLCJhZGRMYXllciIsInBvbHlsaW5lRGVjb3JhdG9yIiwicG9pbnREaXN0YW5jZSIsInB0QSIsInB0QiIsInNxcnQiLCJjb21wdXRlU2VnbWVudEhlYWRpbmciLCJhdGFuMiIsImV4cG9ydHMiLCJhc1JhdGlvVG9QYXRoTGVuZ3RoIiwiX3JlZiIsInRvdGFsUGF0aExlbmd0aCIsInZhbHVlIiwiaXNJblBpeGVscyIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwicGFyc2VkVmFsdWUiLCJwb2ludHNFcXVhbCIsInBvaW50c1RvU2VnbWVudHMiLCJwdHMiLCJzZWdtZW50cyIsImlkeCIsInBvaW50cyIsImRpc3RBIiwiZGlzdEIiLCJkaXN0QUIiLCJwdXNoIiwibmJTZWdtZW50cyIsInJlcGVhdEludGVydmFsUGl4ZWxzIiwic3RhcnRPZmZzZXRQaXhlbHMiLCJlbmRPZmZzZXRQaXhlbHMiLCJwb3NpdGlvbk9mZnNldHMiLCJwb3NpdGlvbk9mZnNldCIsInNlZ21lbnRJbmRleCIsInNlZ21lbnQiLCJzZWdtZW50UmF0aW8iLCJpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMiLCJyYXRpbyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG4vLyBlbmFibGUgcm90YXRpb25BbmdsZSBhbmQgcm90YXRpb25PcmlnaW4gc3VwcG9ydCBvbiBMLk1hcmtlclxuaW1wb3J0ICdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInO1xuXG4vKipcbiAqIERlZmluZXMgc2V2ZXJhbCBjbGFzc2VzIG9mIHN5bWJvbCBmYWN0b3JpZXMsXG4gKiB0byBiZSB1c2VkIHdpdGggTC5Qb2x5bGluZURlY29yYXRvclxuICovXG5cbkwuU3ltYm9sID0gTC5TeW1ib2wgfHwge307XG5cbi8qKlxuICogQSBzaW1wbGUgZGFzaCBzeW1ib2wsIGRyYXduIGFzIGEgUG9seWxpbmUuXG4gKiBDYW4gYWxzbyBiZSB1c2VkIGZvciBkb3RzLCBpZiAncGl4ZWxTaXplJyBvcHRpb24gaXMgZ2l2ZW4gdGhlIDAgdmFsdWUuXG4gKi9cbkwuU3ltYm9sLkRhc2ggPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIHBhdGhPcHRpb25zOiB7fSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcblxuICAgIC8vIGZvciBhIGRvdCwgbm90aGluZyBtb3JlIHRvIGNvbXB1dGVcbiAgICBpZiAob3B0cy5waXhlbFNpemUgPD0gMSkge1xuICAgICAgcmV0dXJuIEwucG9seWxpbmUoW2RpclBvaW50LmxhdExuZywgZGlyUG9pbnQubGF0TG5nXSwgb3B0cy5wYXRoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWlkUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGFuZ2xlID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IGEgPSBMLnBvaW50KFxuICAgICAgbWlkUG9pbnQueCArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguY29zKGFuZ2xlICsgTWF0aC5QSSkpIC8gMixcbiAgICAgIG1pZFBvaW50LnkgKyAob3B0cy5waXhlbFNpemUgKiBNYXRoLnNpbihhbmdsZSkpIC8gMixcbiAgICApO1xuICAgIC8vIGNvbXB1dGUgc2Vjb25kIHBvaW50IGJ5IGNlbnRyYWwgc3ltbWV0cnkgdG8gYXZvaWQgdW5lY2Vzc2FyeSBjb3Mvc2luXG4gICAgY29uc3QgYiA9IG1pZFBvaW50LmFkZChtaWRQb2ludC5zdWJ0cmFjdChhKSk7XG4gICAgcmV0dXJuIEwucG9seWxpbmUoW21hcC51bnByb2plY3QoYSksIG1hcC51bnByb2plY3QoYildLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5kYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5EYXNoKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuQXJyb3dIZWFkID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcG9seWdvbjogdHJ1ZSxcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIGhlYWRBbmdsZTogNjAsXG4gICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgIHN0cm9rZTogZmFsc2UsXG4gICAgICB3ZWlnaHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucG9seWdvblxuICAgICAgPyBMLnBvbHlnb24odGhpcy5fYnVpbGRBcnJvd1BhdGgoZGlyUG9pbnQsIG1hcCksIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucylcbiAgICAgIDogTC5wb2x5bGluZShcbiAgICAgICAgICB0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSxcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGF0aE9wdGlvbnMsXG4gICAgICAgICk7XG4gIH0sXG5cbiAgX2J1aWxkQXJyb3dQYXRoOiBmdW5jdGlvbiAoZGlyUG9pbnQsIG1hcCkge1xuICAgIGNvbnN0IGQyciA9IE1hdGguUEkgLyAxODA7XG4gICAgY29uc3QgdGlwUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IC0oZGlyUG9pbnQuaGVhZGluZyAtIDkwKSAqIGQycjtcbiAgICBjb25zdCByYWRpYW5BcnJvd0FuZ2xlID0gKHRoaXMub3B0aW9ucy5oZWFkQW5nbGUgLyAyKSAqIGQycjtcblxuICAgIGNvbnN0IGhlYWRBbmdsZTEgPSBkaXJlY3Rpb24gKyByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGhlYWRBbmdsZTIgPSBkaXJlY3Rpb24gLSByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGFycm93SGVhZDEgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUxKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMSksXG4gICAgKTtcbiAgICBjb25zdCBhcnJvd0hlYWQyID0gTC5wb2ludChcbiAgICAgIHRpcFBvaW50LnggLSB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5jb3MoaGVhZEFuZ2xlMiksXG4gICAgICB0aXBQb2ludC55ICsgdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguc2luKGhlYWRBbmdsZTIpLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQxKSxcbiAgICAgIGRpclBvaW50LmxhdExuZyxcbiAgICAgIG1hcC51bnByb2plY3QoYXJyb3dIZWFkMiksXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5hcnJvd0hlYWQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkFycm93SGVhZChvcHRpb25zKTtcbn07XG5cbkwuU3ltYm9sLk1hcmtlciA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIG1hcmtlck9wdGlvbnM6IHt9LFxuICAgIHJvdGF0ZTogZmFsc2UsXG4gIH0sXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBMLlV0aWwuc2V0T3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpcmVjdGlvblBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucm90YXRlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5yb3RhdGlvbkFuZ2xlID1cbiAgICAgICAgZGlyZWN0aW9uUG9pbnQuaGVhZGluZyArICh0aGlzLm9wdGlvbnMuYW5nbGVDb3JyZWN0aW9uIHx8IDApO1xuICAgIH1cbiAgICByZXR1cm4gTC5tYXJrZXIoZGlyZWN0aW9uUG9pbnQubGF0TG5nLCB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucyk7XG4gIH0sXG59KTtcblxuTC5TeW1ib2wubWFya2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5NYXJrZXIob3B0aW9ucyk7XG59O1xuXG5jb25zdCBpc0Nvb3JkID0gKGMpID0+XG4gIGMgaW5zdGFuY2VvZiBMLkxhdExuZyB8fFxuICAoQXJyYXkuaXNBcnJheShjKSAmJiBjLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgY1swXSA9PT0gJ251bWJlcicpO1xuXG5jb25zdCBpc0Nvb3JkQXJyYXkgPSAobGwpID0+IEFycmF5LmlzQXJyYXkobGwpICYmIGlzQ29vcmQobGxbMF0pO1xuXG5MLlBvbHlsaW5lRGVjb3JhdG9yID0gTC5GZWF0dXJlR3JvdXAuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBhdHRlcm5zOiBbXSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAocGF0aHMsIG9wdGlvbnMpIHtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMpO1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuX21hcCA9IG51bGw7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWFscyB3aXRoIGFsbCB0aGUgZGlmZmVyZW50IGNhc2VzLiBpbnB1dCBjYW4gYmUgb25lIG9mIHRoZXNlIHR5cGVzOlxuICAgKiBhcnJheSBvZiBMYXRMbmcsIGFycmF5IG9mIDItbnVtYmVyIGFycmF5cywgUG9seWxpbmUsIFBvbHlnb24sXG4gICAqIGFycmF5IG9mIG9uZSBvZiB0aGUgcHJldmlvdXMuXG4gICAqL1xuICBfaW5pdFBhdGhzOiBmdW5jdGlvbiAoaW5wdXQsIGlzUG9seWdvbikge1xuICAgIGlmIChpc0Nvb3JkQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBMZWFmbGV0IFBvbHlnb25zIGRvbid0IG5lZWQgdGhlIGZpcnN0IHBvaW50IHRvIGJlIHJlcGVhdGVkLCBidXQgd2UgZG9cbiAgICAgIGNvbnN0IGNvb3JkcyA9IGlzUG9seWdvbiA/IGlucHV0LmNvbmNhdChbaW5wdXRbMF1dKSA6IGlucHV0O1xuICAgICAgcmV0dXJuIFtjb29yZHNdO1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlsaW5lKSB7XG4gICAgICAvLyB3ZSBuZWVkIHNvbWUgcmVjdXJzaXZpdHkgdG8gc3VwcG9ydCBtdWx0aS1wb2x5KlxuICAgICAgcmV0dXJuIHRoaXMuX2luaXRQYXRocyhpbnB1dC5nZXRMYXRMbmdzKCksIGlucHV0IGluc3RhbmNlb2YgTC5Qb2x5Z29uKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBmbGF0dGVuIGV2ZXJ5dGhpbmcsIHdlIGp1c3QgbmVlZCBjb29yZGluYXRlIGxpc3RzIHRvIGFwcGx5IHBhdHRlcm5zXG4gICAgICByZXR1cm4gaW5wdXQucmVkdWNlKFxuICAgICAgICAoZmxhdEFycmF5LCBwKSA9PiBmbGF0QXJyYXkuY29uY2F0KHRoaXMuX2luaXRQYXRocyhwLCBpc1BvbHlnb24pKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG5cbiAgLy8gcGFyc2UgcGF0dGVybiBkZWZpbml0aW9ucyBhbmQgcHJlY29tcHV0ZSBzb21lIHZhbHVlc1xuICBfaW5pdFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybkRlZnMpIHtcbiAgICByZXR1cm4gcGF0dGVybkRlZnMubWFwKHRoaXMuX3BhcnNlUGF0dGVybkRlZik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXR0ZXJuczogZnVuY3Rpb24gKHBhdHRlcm5zKSB7XG4gICAgdGhpcy5vcHRpb25zLnBhdHRlcm5zID0gcGF0dGVybnM7XG4gICAgdGhpcy5fcGF0dGVybnMgPSB0aGlzLl9pbml0UGF0dGVybnModGhpcy5vcHRpb25zLnBhdHRlcm5zKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBwYXR0ZXJucyB1c2VkIGJ5IHRoaXMgZGVjb3JhdG9yXG4gICAqIGFuZCByZWRyYXdzIHRoZSBuZXcgb25lLlxuICAgKi9cbiAgc2V0UGF0aHM6IGZ1bmN0aW9uIChwYXRocykge1xuICAgIHRoaXMuX3BhdGhzID0gdGhpcy5faW5pdFBhdGhzKHBhdGhzKTtcbiAgICB0aGlzLl9ib3VuZHMgPSB0aGlzLl9pbml0Qm91bmRzKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHBhdHRlcm4gZGVmaW5pdGlvblxuICAgKi9cbiAgX3BhcnNlUGF0dGVybkRlZjogZnVuY3Rpb24gKHBhdHRlcm5EZWYsIGxhdExuZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3ltYm9sRmFjdG9yeTogcGF0dGVybkRlZi5zeW1ib2wsXG4gICAgICAvLyBQYXJzZSBvZmZzZXQgYW5kIHJlcGVhdCB2YWx1ZXMsIG1hbmFnaW5nIHRoZSB0d28gY2FzZXM6XG4gICAgICAvLyBhYnNvbHV0ZSAoaW4gcGl4ZWxzKSBvciByZWxhdGl2ZSAoaW4gcGVyY2VudGFnZSBvZiB0aGUgcG9seWxpbmUgbGVuZ3RoKVxuICAgICAgb2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYub2Zmc2V0KSxcbiAgICAgIGVuZE9mZnNldDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLmVuZE9mZnNldCksXG4gICAgICByZXBlYXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5yZXBlYXQpLFxuICAgIH07XG4gIH0sXG5cbiAgb25BZGQ6IGZ1bmN0aW9uIChtYXApIHtcbiAgICB0aGlzLl9tYXAgPSBtYXA7XG4gICAgdGhpcy5fZHJhdygpO1xuICAgIHRoaXMuX21hcC5vbignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgfSxcblxuICBvblJlbW92ZTogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcC5vZmYoJ21vdmVlbmQnLCB0aGlzLnJlZHJhdywgdGhpcyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUub25SZW1vdmUuY2FsbCh0aGlzLCBtYXApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBcyByZWFsIHBhdHRlcm4gYm91bmRzIGRlcGVuZHMgb24gbWFwIHpvb20gYW5kIGJvdW5kcyxcbiAgICogd2UganVzdCBjb21wdXRlIHRoZSB0b3RhbCBib3VuZHMgb2YgYWxsIHBhdGhzIGRlY29yYXRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgX2luaXRCb3VuZHM6IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhbGxQYXRoQ29vcmRzID0gdGhpcy5fcGF0aHMucmVkdWNlKFxuICAgICAgKGFjYywgcGF0aCkgPT4gYWNjLmNvbmNhdChwYXRoKSxcbiAgICAgIFtdLFxuICAgICk7XG4gICAgcmV0dXJuIEwubGF0TG5nQm91bmRzKGFsbFBhdGhDb29yZHMpO1xuICB9LFxuXG4gIGdldEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl9ib3VuZHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgSUxheWVycyBvYmplY3RcbiAgICovXG4gIF9idWlsZFN5bWJvbHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBzeW1ib2xGYWN0b3J5LCBkaXJlY3Rpb25Qb2ludHMpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uUG9pbnRzLm1hcCgoZGlyZWN0aW9uUG9pbnQsIGkpID0+XG4gICAgICBzeW1ib2xGYWN0b3J5LmJ1aWxkU3ltYm9sKFxuICAgICAgICBkaXJlY3Rpb25Qb2ludCxcbiAgICAgICAgbGF0TG5ncyxcbiAgICAgICAgdGhpcy5fbWFwLFxuICAgICAgICBpLFxuICAgICAgICBkaXJlY3Rpb25Qb2ludHMubGVuZ3RoLFxuICAgICAgKSxcbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHBhaXJzIG9mIExhdExuZyBhbmQgaGVhZGluZyBhbmdsZSxcbiAgICogdGhhdCBkZWZpbmUgcG9zaXRpb25zIGFuZCBkaXJlY3Rpb25zIG9mIHRoZSBzeW1ib2xzIG9uIHRoZSBwYXRoXG4gICAqL1xuICBfZ2V0RGlyZWN0aW9uUG9pbnRzOiBmdW5jdGlvbiAobGF0TG5ncywgcGF0dGVybikge1xuICAgIGlmIChsYXRMbmdzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGF0aEFzUG9pbnRzID0gbGF0TG5ncy5tYXAoKGxhdExuZykgPT4gdGhpcy5fbWFwLnByb2plY3QobGF0TG5nKSk7XG4gICAgcmV0dXJuIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgocGF0aEFzUG9pbnRzLCBwYXR0ZXJuKS5tYXAoKHBvaW50KSA9PiAoe1xuICAgICAgbGF0TG5nOiB0aGlzLl9tYXAudW5wcm9qZWN0KEwucG9pbnQocG9pbnQucHQpKSxcbiAgICAgIGhlYWRpbmc6IHBvaW50LmhlYWRpbmcsXG4gICAgfSkpO1xuICB9LFxuXG4gIHJlZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xlYXJMYXllcnMoKTtcbiAgICB0aGlzLl9kcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN5bWJvbHMgZm9yIGEgZ2l2ZW4gcGF0dGVybiBhcyBhbiBhcnJheSBvZiBGZWF0dXJlR3JvdXBcbiAgICovXG4gIF9nZXRQYXR0ZXJuTGF5ZXJzOiBmdW5jdGlvbiAocGF0dGVybikge1xuICAgIGNvbnN0IG1hcEJvdW5kcyA9IHRoaXMuX21hcC5nZXRCb3VuZHMoKS5wYWQoMC4xKTtcbiAgICByZXR1cm4gdGhpcy5fcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb25Qb2ludHMgPSB0aGlzLl9nZXREaXJlY3Rpb25Qb2ludHMocGF0aCwgcGF0dGVybilcbiAgICAgICAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgcG9pbnRzXG4gICAgICAgIC5maWx0ZXIoKHBvaW50KSA9PiBtYXBCb3VuZHMuY29udGFpbnMocG9pbnQubGF0TG5nKSk7XG4gICAgICByZXR1cm4gTC5mZWF0dXJlR3JvdXAoXG4gICAgICAgIHRoaXMuX2J1aWxkU3ltYm9scyhwYXRoLCBwYXR0ZXJuLnN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cyksXG4gICAgICApO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEcmF3IGFsbCBwYXR0ZXJuc1xuICAgKi9cbiAgX2RyYXc6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9wYXR0ZXJuc1xuICAgICAgLm1hcCgocGF0dGVybikgPT4gdGhpcy5fZ2V0UGF0dGVybkxheWVycyhwYXR0ZXJuKSlcbiAgICAgIC5mb3JFYWNoKChsYXllcnMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRMYXllcihMLmZlYXR1cmVHcm91cChsYXllcnMpKTtcbiAgICAgIH0pO1xuICB9LFxufSk7XG4vKlxuICogQWxsb3dzIGNvbXBhY3Qgc3ludGF4IHRvIGJlIHVzZWRcbiAqL1xuTC5wb2x5bGluZURlY29yYXRvciA9IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuUG9seWxpbmVEZWNvcmF0b3IocGF0aHMsIG9wdGlvbnMpO1xufTtcblxuLy8gZnVuY3Rpb25hbCByZS1pbXBsIG9mIEwuUG9pbnQuZGlzdGFuY2VUbyxcbi8vIHdpdGggbm8gZGVwZW5kZW5jeSBvbiBMZWFmbGV0IGZvciBlYXNpZXIgdGVzdGluZ1xuZnVuY3Rpb24gcG9pbnREaXN0YW5jZShwdEEsIHB0Qikge1xuICBjb25zdCB4ID0gcHRCLnggLSBwdEEueDtcbiAgY29uc3QgeSA9IHB0Qi55IC0gcHRBLnk7XG4gIHJldHVybiBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG59XG5cbmNvbnN0IGNvbXB1dGVTZWdtZW50SGVhZGluZyA9IChhLCBiKSA9PlxuICAoKE1hdGguYXRhbjIoYi55IC0gYS55LCBiLnggLSBhLngpICogMTgwKSAvIE1hdGguUEkgKyA5MCArIDM2MCkgJSAzNjA7XG5cbmNvbnN0IGFzUmF0aW9Ub1BhdGhMZW5ndGggPSAoeyB2YWx1ZSwgaXNJblBpeGVscyB9LCB0b3RhbFBhdGhMZW5ndGgpID0+XG4gIGlzSW5QaXhlbHMgPyB2YWx1ZSAvIHRvdGFsUGF0aExlbmd0aCA6IHZhbHVlO1xuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwLFxuICAgICAgaXNJblBpeGVsczogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBjb25zdCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiAwO1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiBwYXJzZWRWYWx1ZSxcbiAgICBpc0luUGl4ZWxzOiBwYXJzZWRWYWx1ZSA+IDAsXG4gIH07XG59XG5cbmNvbnN0IHBvaW50c0VxdWFsID0gKGEsIGIpID0+IGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55O1xuXG5mdW5jdGlvbiBwb2ludHNUb1NlZ21lbnRzKHB0cykge1xuICByZXR1cm4gcHRzLnJlZHVjZSgoc2VnbWVudHMsIGIsIGlkeCwgcG9pbnRzKSA9PiB7XG4gICAgLy8gdGhpcyB0ZXN0IHNraXBzIHNhbWUgYWRqYWNlbnQgcG9pbnRzXG4gICAgaWYgKGlkeCA+IDAgJiYgIXBvaW50c0VxdWFsKGIsIHBvaW50c1tpZHggLSAxXSkpIHtcbiAgICAgIGNvbnN0IGEgPSBwb2ludHNbaWR4IC0gMV07XG4gICAgICBjb25zdCBkaXN0QSA9XG4gICAgICAgIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5kaXN0QiA6IDA7XG4gICAgICBjb25zdCBkaXN0QUIgPSBwb2ludERpc3RhbmNlKGEsIGIpO1xuICAgICAgc2VnbWVudHMucHVzaCh7XG4gICAgICAgIGEsXG4gICAgICAgIGIsXG4gICAgICAgIGRpc3RBLFxuICAgICAgICBkaXN0QjogZGlzdEEgKyBkaXN0QUIsXG4gICAgICAgIGhlYWRpbmc6IGNvbXB1dGVTZWdtZW50SGVhZGluZyhhLCBiKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudHM7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwdHMsIHBhdHRlcm4pIHtcbiAgLy8gMS4gc3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50IGluZm9zXG4gIGNvbnN0IHNlZ21lbnRzID0gcG9pbnRzVG9TZWdtZW50cyhwdHMpO1xuICBjb25zdCBuYlNlZ21lbnRzID0gc2VnbWVudHMubGVuZ3RoO1xuICBpZiAobmJTZWdtZW50cyA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsUGF0aExlbmd0aCA9IHNlZ21lbnRzW25iU2VnbWVudHMgLSAxXS5kaXN0QjtcblxuICBjb25zdCBvZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ub2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCBlbmRPZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4uZW5kT2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCByZXBlYXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ucmVwZWF0LCB0b3RhbFBhdGhMZW5ndGgpO1xuXG4gIGNvbnN0IHJlcGVhdEludGVydmFsUGl4ZWxzID0gdG90YWxQYXRoTGVuZ3RoICogcmVwZWF0O1xuICBjb25zdCBzdGFydE9mZnNldFBpeGVscyA9IG9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBvZmZzZXQgOiAwO1xuICBjb25zdCBlbmRPZmZzZXRQaXhlbHMgPSBlbmRPZmZzZXQgPiAwID8gdG90YWxQYXRoTGVuZ3RoICogZW5kT2Zmc2V0IDogMDtcblxuICAvLyAyLiBnZW5lcmF0ZSB0aGUgcG9zaXRpb25zIG9mIHRoZSBwYXR0ZXJuIGFzIG9mZnNldHMgZnJvbSB0aGUgcGF0aCBzdGFydFxuICBjb25zdCBwb3NpdGlvbk9mZnNldHMgPSBbXTtcbiAgbGV0IHBvc2l0aW9uT2Zmc2V0ID0gc3RhcnRPZmZzZXRQaXhlbHM7XG4gIGRvIHtcbiAgICBwb3NpdGlvbk9mZnNldHMucHVzaChwb3NpdGlvbk9mZnNldCk7XG4gICAgcG9zaXRpb25PZmZzZXQgKz0gcmVwZWF0SW50ZXJ2YWxQaXhlbHM7XG4gIH0gd2hpbGUgKFxuICAgIHJlcGVhdEludGVydmFsUGl4ZWxzID4gMCAmJlxuICAgIHBvc2l0aW9uT2Zmc2V0IDwgdG90YWxQYXRoTGVuZ3RoIC0gZW5kT2Zmc2V0UGl4ZWxzXG4gICk7XG5cbiAgLy8gMy4gcHJvamVjdHMgb2Zmc2V0cyB0byBzZWdtZW50c1xuICBsZXQgc2VnbWVudEluZGV4ID0gMDtcbiAgbGV0IHNlZ21lbnQgPSBzZWdtZW50c1swXTtcbiAgcmV0dXJuIHBvc2l0aW9uT2Zmc2V0cy5tYXAoKHBvc2l0aW9uT2Zmc2V0KSA9PiB7XG4gICAgLy8gZmluZCB0aGUgc2VnbWVudCBtYXRjaGluZyB0aGUgb2Zmc2V0LFxuICAgIC8vIHN0YXJ0aW5nIGZyb20gdGhlIHByZXZpb3VzIG9uZSBhcyBvZmZzZXRzIGFyZSBvcmRlcmVkXG4gICAgd2hpbGUgKHBvc2l0aW9uT2Zmc2V0ID4gc2VnbWVudC5kaXN0QiAmJiBzZWdtZW50SW5kZXggPCBuYlNlZ21lbnRzIC0gMSkge1xuICAgICAgc2VnbWVudEluZGV4Kys7XG4gICAgICBzZWdtZW50ID0gc2VnbWVudHNbc2VnbWVudEluZGV4XTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWdtZW50UmF0aW8gPVxuICAgICAgKHBvc2l0aW9uT2Zmc2V0IC0gc2VnbWVudC5kaXN0QSkgLyAoc2VnbWVudC5kaXN0QiAtIHNlZ21lbnQuZGlzdEEpO1xuICAgIHJldHVybiB7XG4gICAgICBwdDogaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHNlZ21lbnQuYSwgc2VnbWVudC5iLCBzZWdtZW50UmF0aW8pLFxuICAgICAgaGVhZGluZzogc2VnbWVudC5oZWFkaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBwb2ludCB3aGljaCBsaWVzIG9uIHRoZSBzZWdtZW50IGRlZmluZWQgYnkgcG9pbnRzIEEgYW5kIEIsXG4gKiBhdCB0aGUgZ2l2ZW4gcmF0aW8gb2YgdGhlIGRpc3RhbmNlIGZyb20gQSB0byBCLCBieSBsaW5lYXIgaW50ZXJwb2xhdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHB0QSwgcHRCLCByYXRpbykge1xuICBpZiAocHRCLnggIT09IHB0QS54KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHB0QS54ICsgcmF0aW8gKiAocHRCLnggLSBwdEEueCksXG4gICAgICB5OiBwdEEueSArIHJhdGlvICogKHB0Qi55IC0gcHRBLnkpLFxuICAgIH07XG4gIH1cbiAgLy8gc3BlY2lhbCBjYXNlIHdoZXJlIHBvaW50cyBsaWUgb24gdGhlIHNhbWUgdmVydGljYWwgYXhpc1xuICByZXR1cm4ge1xuICAgIHg6IHB0QS54LFxuICAgIHk6IHB0QS55ICsgKHB0Qi55IC0gcHRBLnkpICogcmF0aW8sXG4gIH07XG59XG5cbmV4cG9ydCB7XG4gIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgsXG4gIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUsXG4gIC8vIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYXJlIGV4cG9ydGVkIG9ubHkgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlXG4gIGNvbXB1dGVTZWdtZW50SGVhZGluZyxcbiAgYXNSYXRpb1RvUGF0aExlbmd0aCxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBQSxPQUFBO0FBREE7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUFDLGdCQUFDLENBQUNDLE1BQU0sR0FBR0QsZ0JBQUMsQ0FBQ0MsTUFBTSxJQUFJLENBQUMsQ0FBQzs7QUFFekI7QUFDQTtBQUNBO0FBQ0E7QUFDQUQsZ0JBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLEdBQUdGLGdCQUFDLENBQUNHLEtBQUssQ0FBQ0MsTUFBTSxDQUFDO0VBQzdCQyxPQUFPLEVBQUU7SUFDUEMsU0FBUyxFQUFFLEVBQUU7SUFDYkMsV0FBVyxFQUFFLENBQUM7RUFDaEIsQ0FBQztFQUVEQyxVQUFVLEVBQUUsU0FBQUEsQ0FBVUgsT0FBTyxFQUFFO0lBQzdCTCxnQkFBQyxDQUFDUyxJ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
|