@kando-env/kando-ui 1.2.64-alpha.6 → 1.2.64-alpha.7
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.
|
@@ -440,12 +440,13 @@ var PointMarker = function PointMarker(props) {
|
|
|
440
440
|
|
|
441
441
|
(0, _react.useEffect)(function () {
|
|
442
442
|
var markerLocation = [point['latitude'], point['longitude']];
|
|
443
|
+
if (!point.eventsViewHovered) createManholePoint(markerLocation);
|
|
443
444
|
|
|
444
445
|
if (markerLocation[0] !== null) {
|
|
445
|
-
createManholePoint(markerLocation);
|
|
446
446
|
if (point.part_of_monitored_path && !point.has_device) return;
|
|
447
447
|
|
|
448
448
|
if (matchIconToPoint(point) !== null && (centeredEvent === null || centeredEvent !== null && pointIsObservation() || point.group.type === 'Groups::WastewaterTreatmentPlant')) {
|
|
449
|
+
if (point.eventsViewHovered) createManholePoint(markerLocation);
|
|
449
450
|
createCustomIconPoint(markerLocation);
|
|
450
451
|
}
|
|
451
452
|
|
|
@@ -488,4 +489,4 @@ var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function
|
|
|
488
489
|
}));
|
|
489
490
|
|
|
490
491
|
exports.default = _default;
|
|
491
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwiTCIsIm1hcCIsInBvaW50IiwiZm9jdXNlZEV2ZW50IiwiaG92ZXJlZEV2ZW50IiwiZGlzcGF0Y2giLCJjZW50ZXJlZEV2ZW50Iiwic2VsZWN0ZWRCYWNrZ3JvdW5kIiwiaWNvbiIsImljb25VcmwiLCJyZWRQaW5SZWRTaGFkb3ciLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJwb3B1cEFuY2hvciIsImJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQiLCJ3aGl0ZVBpblJlZFNoYWRvdyIsInN0YW5kYXJkQmFja2dyb3VuZCIsInNlY29uZGFyeSIsInRoaXJkIiwid2hpdGVQaW5CbGFja1NoYWRvdyIsImNvbWJpbmVkRmFjdG9yeUljb24iLCJ5ZWxsb3dDaXJjbGVVUkwiLCJwbGFudEljb25VUkwiLCJjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiIsImdyZWVuQ2lyY2xlVVJMIiwicHVtcFN0YXRpb25JY29uVVJMIiwiY29tYmluZWRDb2xsZWN0b3JzSWNvbiIsImNvbGxlY3Rvckljb24iLCJjb21iaW5lZFdXVFBJY29uIiwiYnJpZ2h0Qmx1ZUNpcmNsZVVSTCIsIldXVFBJY29uVVJMIiwibWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UiLCJzb3VyY2UiLCJzb3VyY2VzIiwiZmlsdGVyIiwicG9pbnRfaWQiLCJpZCIsInNlbGVjdGVkX3NvdXJjZSIsIm1hcmtlckJlbG9uZ3NUb1NvdXJjZSIsImlzQ29sbGVjdG9yRm9jdXNlZCIsIm9ic2VydmF0aW9ucyIsImxlbmd0aCIsIm1hdGNoSWNvblRvUG9pbnQiLCJncm91cCIsInR5cGUiLCJ1bnNoaWZ0Iiwid2F0ZXJJY29uTm9CYWNrZ3JvdW5kIiwiY3JlYXRlTWFuaG9sZVBvaW50IiwibWFya2VyTG9jYXRpb24iLCJwb2ludEljb24iLCJ3aGl0ZVBvaW50IiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJuYW1lIiwiY3JlYXRlQ3VzdG9tSWNvblBvaW50IiwiZm9yRWFjaCIsInBvaW50Q3VzdG9tSWNvbiIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJkaXZJY29uIiwiY2xhc3NOYW1lIiwiaHRtbCIsImNyZWF0ZVNhbXBsaW5nSWNvblBvaW50Iiwic2Vjb25kYXJ5SWNvbiIsInNhbXBsaW5nSWNvbiIsImJsdWVDaXJjbGVVUkwiLCJzYW1wbGluZ0ljb25VUkwiLCJjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCIsIm9ic2VydmF0aW9uSWNvbiIsInBpbmtDaXJjbGVVUkwiLCJvYnNlcnZhdGlvbkljb25VUkwiLCJwb3B1cENvbnRlbnQiLCJvYnMiLCJHcmFwaEljb24iLCJpMThuIiwidCIsInNldmVyaXR5IiwicG9pbnRJc09ic2VydmF0aW9uIiwicG9pbnRCZWxvbmdzVG9FdmVudCIsImJpbmRQb3B1cFRvUG9pbnQiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJpbmNsdWRlcyIsImthbmRvX29iamVjdCIsImthbmRvX29iamVjdF9pZCIsImJpbmRQb3B1cCIsIm1pbldpZHRoIiwib24iLCJlIiwiZmlyc3RTZWVuIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwibGFzdFNlZW4iLCJzZWN0b3IiLCJSZWFjdERPTSIsInJlbmRlciIsInN0YXJ0X3RpbWUiLCJ0aW1lX3pvbmUiLCJsYXN0X3NlZW5fdGltZSIsInNlY3Rvcl9uYW1lIiwic2VjdG9yX2ljb25fbmFtZSIsInNldFRpbWVvdXQiLCJhcHBlbmQiLCJhdHRhY2hDbGlja0V2ZW50Iiwic2VsZWN0b3IiLCJvYnNlcnZhdGlvbiIsImJvZHkiLCJvcGVuUG9wdXAiLCJwYXJ0X29mX21vbml0b3JlZF9wYXRoIiwiaGFzX2RldmljZSIsImhhc1ByaW1hcnlJY29uIiwic2FtcGxpbmdzIiwiY2xlYW51cCIsImNvbm5lY3RvciIsIlJlYWN0IiwibWVtbyIsInByZXZQcm9wcyIsIm5leHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBOzs7O0FBRUE7O0FBQ0E7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUlBOztBQUtBOztBQUNBOzs7Ozs7QUFFQSxTQUFTQSxlQUFULENBQXlCQyxLQUF6QixFQUEyQztBQUN6QyxNQUFRQyxXQUFSLEdBQXdCRCxLQUF4QixDQUFRQyxXQUFSO0FBRUEsU0FBTztBQUNMQSxJQUFBQSxXQUFXLEVBQVhBO0FBREssR0FBUDtBQUdEOztBQVFELElBQU1DLFdBQTRCLEdBQUcsU0FBL0JBLFdBQStCLENBQUNDLEtBQUQsRUFBVztBQUM5QyxNQUFRQyxDQUFSLEdBQXVDRCxLQUF2QyxDQUFRQyxDQUFSO0FBQUEsTUFBV0MsR0FBWCxHQUF1Q0YsS0FBdkMsQ0FBV0UsR0FBWDtBQUFBLE1BQWdCQyxLQUFoQixHQUF1Q0gsS0FBdkMsQ0FBZ0JHLEtBQWhCO0FBQUEsTUFBdUJMLFdBQXZCLEdBQXVDRSxLQUF2QyxDQUF1QkYsV0FBdkI7QUFDQSxNQUFRTSxZQUFSLEdBQXVDTixXQUF2QyxDQUFRTSxZQUFSO0FBQUEsTUFBc0JDLFlBQXRCLEdBQXVDUCxXQUF2QyxDQUFzQk8sWUFBdEI7QUFDQSxNQUFNQyxRQUFRLEdBQUcsOEJBQWpCO0FBRUEsTUFBTUMsYUFBYSxHQUFHLG9CQUNwQjtBQUFBLFdBQU1ILFlBQVksSUFBSUMsWUFBdEI7QUFBQSxHQURvQixFQUVwQixDQUFDRCxZQUFELEVBQWVDLFlBQWYsQ0FGb0IsQ0FBdEIsQ0FMOEMsQ0FTOUM7QUFDQTs7QUFDQSxNQUFNRyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQXFCLEdBQU07QUFDL0IsV0FBT1AsQ0FBQyxDQUFDUSxJQUFGLENBQU87QUFDWkMsTUFBQUEsT0FBTyxFQUFFQyx3QkFERztBQUVaQyxNQUFB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QixFQUFqRCxFQUFxRDtBQUNuRCxZQUFJTixHQUFHLEdBQUdwRSxhQUFhLENBQUNrQyxZQUFkLENBQTJCTixNQUEzQixDQUNSLFVBQUN3QyxHQUFEO0FBQUEsaUJBQVNBLEdBQUcsQ0FBQ3ZDLFFBQUosS0FBaUJqQyxLQUFLLENBQUNrQyxFQUFoQztBQUFBLFNBRFEsRUFFUixDQUZRLENBQVY7QUFHQTZDLFFBQUFBLGdCQUFnQixDQUFDUCxHQUFELENBQWhCO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLFNBQVN5QyxPQUFULEdBQW1CO0FBQ3hCO0FBQ0Esa0RBQWNsSCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixhQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixPQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixVQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixZQUExQjtBQUNELEtBTkQ7QUFPRCxHQTdDRCxFQTZDRyxDQUFDSSxhQUFELENBN0NIO0FBK0NBLHNCQUFPLHlDQUFQO0FBQ0QsQ0FsZ0JEOztBQW9nQkEsSUFBTThHLFNBQVMsR0FBRyx5QkFBUXpILGVBQVIsQ0FBbEI7O2VBQ2V5SCxTQUFTLGVBQ3RCQyxlQUFNQyxJQUFOLENBQVd4SCxXQUFYLEVBQXdCLFVBQUN5SCxTQUFELEVBQVlDLFNBQVosRUFBMEI7QUFDaEQsTUFDRUQsU0FBUyxDQUFDMUgsV0FBVixDQUFzQk0sWUFBdEIsS0FBdUNxSCxTQUFTLENBQUMzSCxXQUFWLENBQXNCTSxZQUQvRCxFQUVFO0FBQ0EsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQ0FSRCxDQURzQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBHcmFwaEljb24gZnJvbSAnc3JjL2Fzc2V0cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICdzcmMvYXNzZXRzL21hcC9waW4td2F0ZXIuc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy93YXRlci1uby1iYWNrZ3JvdW5kLnN2Zyc7XG5pbXBvcnQgYmx1ZUNpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgYnJpZ2h0Qmx1ZUNpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IHBsYW50SWNvblVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvZ3JlZW4tY2lyY2xlLnN2Zyc7XG5pbXBvcnQgb2JzZXJ2YXRpb25JY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvb2JzZXJ2YXRpb24taWNvbi5zdmcnO1xuaW1wb3J0IHBpbmtDaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9waW5rLWNpcmNsZS5zdmcnO1xuaW1wb3J0IHB1bXBTdGF0aW9uSWNvblVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgcmVkUGluUmVkU2hhZG93IGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvcmVkLXBpbi1yZWQtc2hhZG93LnBuZyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvc2FtcGxpbmctaWNvbi5zdmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tYmxhY2stc2hhZG93LnBuZyc7XG5pbXBvcnQgd2hpdGVQaW5SZWRTaGFkb3cgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvV1dUUC1pY29uLnN2Zyc7XG5pbXBvcnQgeWVsbG93Q2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMveWVsbG93LWNpcmNsZS5zdmcnO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnc3JjL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IFNlY3RvciBmcm9tICdzcmMvY29tcG9uZW50cy9TZWN0b3InO1xuaW1wb3J0IHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzLCB7XG4gIHJlbW92ZUZyb21NYXAsXG59IGZyb20gJ3NyYy9ob29rcy91c2VSZW1vdmVFeGlzdGluZ0xheWVycyc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQge1xuICBjbG9zZUZsb2F0aW5nR3JhcGgsXG4gIG9wZW5GbG9hdGluZ0dyYXBoLFxufSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgVGltZUZvcm1hdCBmcm9tICdzcmMvdXRpbGl0aWVzL1RpbWVGb3JtYXQnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGV2ZW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBMOiBhbnk7XG4gIHBvaW50OiBJUG9pbnQ7XG59O1xuXG5jb25zdCBQb2ludE1hcmtlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgTCwgbWFwLCBwb2ludCwgZXZlbnRzX2RhdGEgfSA9IHByb3BzO1xuICBjb25zdCB7IGZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50IH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGNlbnRlcmVkRXZlbnQgPSB1c2VNZW1vKFxuICAgICgpID0+IGZvY3VzZWRFdmVudCB8fCBob3ZlcmVkRXZlbnQsXG4gICAgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50XSxcbiAgKTtcbiAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgY29uc3Qgc2VsZWN0ZWRCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICAgIHJldHVybiBMLmljb24oe1xuICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgICByZXR1cm4gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHdoaXRlUGluUmVkU2hhZG93LFxuICAgICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc3RhbmRhcmRCYWNrZ3JvdW5kID0gKFxuICAgIHNlY29uZGFyeTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHRoaXJkOiBib29sZWFuID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHJldHVybiBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQaW5CbGFja1NoYWRvdyxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnkgPyBbMjAsIDIwXSA6IFs0MywgNDZdLFxuICAgICAgaWNvbkFuY2hvcjpcbiAgICAgICAgc2Vjb25kYXJ5ICYmIHRoaXJkID8gWy0yLCAxOV0gOiBzZWNvbmRhcnkgPyBbLTIsIDQ0XSA6IFsyMCwgNDJdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNvbWJpbmVkRmFjdG9yeUljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHllbGxvd0NpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBbMjUsIDI0XSxcbiAgICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogcGxhbnRJY29uVVJMLFxuICAgICAgaWNvblNpemU6IFsxNSwgMTVdLFxuICAgICAgaWNvbkFuY2hvcjogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogZ3JlZW5DaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogWzI1LCAyNF0sXG4gICAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHB1bXBTdGF0aW9uSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBbMjAsIDIwXSxcbiAgICAgIGljb25BbmNob3I6IFs3LCAzMl0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgY29tYmluZWRDb2xsZWN0b3JzSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogY29sbGVjdG9ySWNvbixcbiAgICAgIGljb25TaXplOiBbNDUsIDQ1XSxcblxuICAgICAgaWNvbkFuY2hvcjogWzI1LCA1MF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgY29tYmluZWRXV1RQSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogYnJpZ2h0Qmx1ZUNpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBbMjUsIDI1XSxcbiAgICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogV1dUUEljb25VUkwsXG4gICAgICBpY29uU2l6ZTogWzIwLCAyMF0sXG4gICAgICBpY29uQW5jaG9yOiBbOCwgMzFdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlID0gKCkgPT4ge1xuICAgIGxldCBzb3VyY2U7XG5cbiAgICBpZiAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCkge1xuICAgICAgc291cmNlID0gY2VudGVyZWRFdmVudC5zb3VyY2VzLmZpbHRlcihcbiAgICAgICAgKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZCxcbiAgICAgIClbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiZcbiAgICAgIHNvdXJjZSAmJlxuICAgICAgY2VudGVyZWRFdmVudC5zZWxlY3RlZF9zb3VyY2UgPT09IHNvdXJjZS5wb2ludF9pZFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgbWFya2VyQmVsb25nc1RvU291cmNlID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBjZW50ZXJlZEV2ZW50LnNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBpc0NvbGxlY3RvckZvY3VzZWQgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50Py5vYnNlcnZhdGlvbnM/Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgcG9pbnQuaWQgPT09IGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zWzBdLnBvaW50X2lkXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBtYXRjaEljb25Ub1BvaW50ID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICBzd2l0Y2ggKHBvaW50Lmdyb3VwLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0dyb3Vwczo6RmFjdG9yeSc6XG4gICAgICAgIGlmIChjb21iaW5lZEZhY3RvcnlJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZEZhY3RvcnlJY29uO1xuICAgICAgY2FzZSAnR3JvdXBzOjpQdW1wU3RhdGlvbic6XG4gICAgICAgIGlmIChjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRQdW1wU3RhdGlvbkljb247XG4gICAgICBjYXNlICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc6XG4gICAgICAgIGlmIChjb21iaW5lZFdXVFBJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZFdXVFBJY29uO1xuXG4gICAgICBjYXNlICdHcm91cHM6OkNvbGxlY3RvcnMnOlxuICAgICAgICBpZiAoaXNDb2xsZWN0b3JGb2N1c2VkKHBvaW50KSkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgICAgICAgICAgIGljb25TaXplOiBbNjIsIDYyXSxcbiAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzMwLCA1Ml0sXG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgICAgaWNvblVybDogd2F0ZXJJY29uTm9CYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICBpY29uU2l6ZTogWzQ2LCA0Nl0sXG5cbiAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzIyLCA0NF0sXG4gICAgICAgICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRDb2xsZWN0b3JzSWNvbjtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU1hbmhvbGVQb2ludCA9IChtYXJrZXJMb2NhdGlvbjogb2JqZWN0KSA9PiB7XG4gICAgbGV0IHBvaW50SWNvbiA9IEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICAgIGljb25BbmNob3I6IFs0LjUsIDQuNV0sXG4gICAgfSk7XG4gICAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSkuYWRkVG8obWFwKTtcbiAgICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgfTtcblxuICBjb25zdCBjcmVhdGVDdXN0b21JY29uUG9pbnQgPSAobWFya2VyTG9jYXRpb246IG9iamVjdCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50KSAhPT0gbnVsbCAmJlxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCkuZm9yRWFjaCgoaWNvbjogYW55KSA9PiB7XG4gICAgICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gICAgICB9KTtcblxuICAgIGlmIChwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGxldCBwb2ludEN1c3RvbUljb24gPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgIGNsYXNzTmFtZTogYGNpcmNsZS1ldmVudHMtYW1vdW50ICR7XG4gICAgICAgICAgICBwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50ID4gMiA/ICdhbGVydC1jb2xvcicgOiAnJ1xuICAgICAgICAgIH1gLFxuICAgICAgICAgIGh0bWw6IGAke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnR9YCxcbiAgICAgICAgICBpY29uQW5jaG9yOiBbLTUsIDQyXSxcbiAgICAgICAgfSksXG4gICAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnSWNvbk51bWJlcic7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50ID0gKFxuICAgIG1hcmtlckxvY2F0aW9uOiBvYmplY3QsXG4gICAgc2Vjb25kYXJ5SWNvbjogYm9vbGVhbixcbiAgKSA9PiB7XG4gICAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICAgIGxldCBzYW1wbGluZ0ljb24gPSBbXG4gICAgICBMLmljb24oe1xuICAgICAgICBpY29uVXJsOiBibHVlQ2lyY2xlVVJMLFxuICAgICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFsxMCwgMTBdIDogWzI1LCAyNF0sXG4gICAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTcsIDE1XSA6IFsxMC43LCAzMy43XSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgfSksXG4gICAgICBMLmljb24oe1xuICAgICAgICBpY29uVXJsOiBzYW1wbGluZ0ljb25VUkwsXG4gICAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzcsIDddIDogWzEzLCAxNV0sXG4gICAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTgsIDEzXSA6IFs1LCAzMF0sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZChzZWNvbmRhcnlJY29uLCB0cnVlKSk7XG4gICAgfVxuXG4gICAgc2FtcGxpbmdJY29uLmZvckVhY2goKGljb24pID0+IHtcbiAgICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgIGljb246IGljb24sXG4gICAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdTYW1wbGluZyc7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQgPSAoXG4gICAgbWFya2VyTG9jYXRpb246IG9iamVjdCxcbiAgICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICApID0+IHtcbiAgICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAgIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gICAgbGV0IG9ic2VydmF0aW9uSWNvbiA9IFtcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IHBpbmtDaXJjbGVVUkwsXG4gICAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzEwLCAxMF0gOiBbMjUsIDI0XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgNDBdIDogWzEwLjcsIDMzLjddLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IG9ic2VydmF0aW9uSWNvblVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbNywgN10gOiBbMTMsIDE1XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMzhdIDogWzUsIDMwXSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24pKTtcbiAgICB9XG5cbiAgICBvYnNlcnZhdGlvbkljb24uZm9yRWFjaCgoaWNvbikgPT4ge1xuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ09ic2VydmF0aW9uJztcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBwb3B1cENvbnRlbnQgPSAob2JzOiBhbnkpID0+IHtcbiAgICBpZiAob2JzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke3BvaW50LmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7R3JhcGhJY29ufVwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zaXRlLW5hbWVcIj48Yj4ke3BvaW50Lmdyb3VwLm5hbWV9PC9iPjwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwic2VjdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7b2JzLmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7R3JhcGhJY29ufVwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zaXRlLW5hbWVcIj48Yj4ke1xuICAgICAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfTwvYj48L2g1PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXR5YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICl9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAncG9wdXAtY29udGVudF9fc2V2ZXJpdHktLScgKyBvYnMuc2V2ZXJpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLiR7b2JzLnNldmVyaXR5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2hyXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudF9fZGlzY2hhcmdlLXRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LmZpcnN0X3NlZW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48YiBpZD1cImZpcnN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5sYXN0X3NlZW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48YiBpZD1cImxhc3Qtc2Vlbi1wb3B1cFwiPjwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICB9XG4gIH07XG5cbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ1BvaW50Jyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdPYnNlcnZhdGlvbicpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcblxuICBjb25zdCBwb2ludElzT2JzZXJ2YXRpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiZcbiAgICAgIGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zLmZpbHRlcigob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkKVswXVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcG9pbnRCZWxvbmdzVG9FdmVudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBiaW5kUG9wdXBUb1BvaW50ID0gKG9iczogYW55ID0gbnVsbCkgPT4ge1xuICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBbJ1BvaW50JywgJ09ic2VydmF0aW9uJ10uaW5jbHVkZXMobGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QpICYmXG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0X2lkID09PSBwb2ludC5pZFxuICAgICAgKSB7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0uYmluZFBvcHVwKHBvcHVwQ29udGVudChvYnMpLCB7XG4gICAgICAgICAgbWluV2lkdGg6IDIwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub24oJ3BvcHVwb3BlbicsIGZ1bmN0aW9uIChlOiBhbnkpIHtcbiAgICAgICAgICBpZiAoZm9jdXNlZEV2ZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXQgZmlyc3RTZWVuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBsZXQgbGFzdFNlZW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGxldCBzZWN0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICAgICAgaWYgKG9icyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17b2JzLnN0YXJ0X3RpbWV9XG4gICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e29icy50aW1lX3pvbmV9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgZmlyc3RTZWVuLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17b2JzLmxhc3Rfc2Vlbl90aW1lfVxuICAgICAgICAgICAgICAgICAgdGltZV96b25lPXtvYnMudGltZV96b25lfVxuICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgIGxhc3RTZWVuLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgICAgICAgIDxTZWN0b3JcbiAgICAgICAgICAgICAgICAgIHNlY3Rvck5hbWU9e3BvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfVxuICAgICAgICAgICAgICAgICAgc2VjdG9ySWNvbk5hbWU9e3BvaW50Lmdyb3VwLnNlY3Rvcl9pY29uX25hbWV9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjM3XCJcbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBzZWN0b3IsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAkKCcjZmlyc3Qtc2Vlbi1wb3B1cCcpLmFwcGVuZChmaXJzdFNlZW4pO1xuICAgICAgICAgICAgICAkKCcjbGFzdC1zZWVuLXBvcHVwJykuYXBwZW5kKGxhc3RTZWVuKTtcbiAgICAgICAgICAgICAgJCgnI3NlY3RvcicpLmFwcGVuZChzZWN0b3IpO1xuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgYXR0YWNoQ2xpY2tFdmVudCA9IChzZWxlY3Rvcjogc3RyaW5nLCBvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAkKGRvY3VtZW50LmJvZHkpLm9uKCdjbGljaycsIHNlbGVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoKGNsb3NlRmxvYXRpbmdHcmFwaCgpKTtcbiAgICAgICAgICAgICAgZGlzcGF0Y2gob3BlbkZsb2F0aW5nR3JhcGgodHJ1ZSwgb2JzZXJ2YXRpb24sIHBvaW50KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKG9icyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgYXR0YWNoQ2xpY2tFdmVudCgnLnBvcHVwLWdyYXBoLWljb24tJyArIG9icy5pZCwgb2JzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXR0YWNoQ2xpY2tFdmVudCgnLnBvcHVwLWdyYXBoLWljb24tJyArIHBvaW50LmlkLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsYXllcnNbcHJvcGVydHldLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBsYXllcnNbcHJvcGVydHldLm9wZW5Qb3B1cCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgbWFya2VyTG9jYXRpb24gPSBbcG9pbnRbJ2xhdGl0dWRlJ10sIHBvaW50Wydsb25naXR1ZGUnXV07XG5cbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gIT09IG51bGwpIHtcbiAgICAgIGNyZWF0ZU1hbmhvbGVQb2ludChtYXJrZXJMb2NhdGlvbik7XG5cbiAgICAgIGlmIChwb2ludC5wYXJ0X29mX21vbml0b3JlZF9wYXRoICYmICFwb2ludC5oYXNfZGV2aWNlKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCkgIT09IG51bGwgJiZcbiAgICAgICAgKGNlbnRlcmVkRXZlbnQgPT09IG51bGwgfHxcbiAgICAgICAgICAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJiBwb2ludElzT2JzZXJ2YXRpb24oKSkgfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnKVxuICAgICAgKSB7XG4gICAgICAgIGNyZWF0ZUN1c3RvbUljb25Qb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgcG9pbnRJc09ic2VydmF0aW9uKCkpIHtcbiAgICAgICAgbGV0IGhhc1ByaW1hcnlJY29uID0gbWF0Y2hJY29uVG9Qb2ludChwb2ludCkgIT09IG51bGw7XG4gICAgICAgIGNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50KG1hcmtlckxvY2F0aW9uLCBoYXNQcmltYXJ5SWNvbik7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgICAgIGZvY3VzZWRFdmVudC5zYW1wbGluZ3MubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICAgZm9jdXNlZEV2ZW50LnNhbXBsaW5nc1swXS5wb2ludF9pZCA9PT0gcG9pbnQuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQobWFya2VyTG9jYXRpb24sIGhhc1ByaW1hcnlJY29uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJiBwb2ludEJlbG9uZ3NUb0V2ZW50KCkpIHtcbiAgICAgICAgbGV0IG9icyA9IGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkLFxuICAgICAgICApWzBdO1xuICAgICAgICBiaW5kUG9wdXBUb1BvaW50KG9icyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBVTkJJTkQgUE9QVVBcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcbiAgICB9O1xuICB9LCBbY2VudGVyZWRFdmVudF0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihcbiAgUmVhY3QubWVtbyhQb2ludE1hcmtlciwgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgaWYgKFxuICAgICAgcHJldlByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCAhPT0gbmV4dFByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KSxcbik7XG4iXX0=
|
|
492
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwiTCIsIm1hcCIsInBvaW50IiwiZm9jdXNlZEV2ZW50IiwiaG92ZXJlZEV2ZW50IiwiZGlzcGF0Y2giLCJjZW50ZXJlZEV2ZW50Iiwic2VsZWN0ZWRCYWNrZ3JvdW5kIiwiaWNvbiIsImljb25VcmwiLCJyZWRQaW5SZWRTaGFkb3ciLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJwb3B1cEFuY2hvciIsImJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQiLCJ3aGl0ZVBpblJlZFNoYWRvdyIsInN0YW5kYXJkQmFja2dyb3VuZCIsInNlY29uZGFyeSIsInRoaXJkIiwid2hpdGVQaW5CbGFja1NoYWRvdyIsImNvbWJpbmVkRmFjdG9yeUljb24iLCJ5ZWxsb3dDaXJjbGVVUkwiLCJwbGFudEljb25VUkwiLCJjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiIsImdyZWVuQ2lyY2xlVVJMIiwicHVtcFN0YXRpb25JY29uVVJMIiwiY29tYmluZWRDb2xsZWN0b3JzSWNvbiIsImNvbGxlY3Rvckljb24iLCJjb21iaW5lZFdXVFBJY29uIiwiYnJpZ2h0Qmx1ZUNpcmNsZVVSTCIsIldXVFBJY29uVVJMIiwibWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UiLCJzb3VyY2UiLCJzb3VyY2VzIiwiZmlsdGVyIiwicG9pbnRfaWQiLCJpZCIsInNlbGVjdGVkX3NvdXJjZSIsIm1hcmtlckJlbG9uZ3NUb1NvdXJjZSIsImlzQ29sbGVjdG9yRm9jdXNlZCIsIm9ic2VydmF0aW9ucyIsImxlbmd0aCIsIm1hdGNoSWNvblRvUG9pbnQiLCJncm91cCIsInR5cGUiLCJ1bnNoaWZ0Iiwid2F0ZXJJY29uTm9CYWNrZ3JvdW5kIiwiY3JlYXRlTWFuaG9sZVBvaW50IiwibWFya2VyTG9jYXRpb24iLCJwb2ludEljb24iLCJ3aGl0ZVBvaW50IiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJuYW1lIiwiY3JlYXRlQ3VzdG9tSWNvblBvaW50IiwiZm9yRWFjaCIsInBvaW50Q3VzdG9tSWNvbiIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJkaXZJY29uIiwiY2xhc3NOYW1lIiwiaHRtbCIsImNyZWF0ZVNhbXBsaW5nSWNvblBvaW50Iiwic2Vjb25kYXJ5SWNvbiIsInNhbXBsaW5nSWNvbiIsImJsdWVDaXJjbGVVUkwiLCJzYW1wbGluZ0ljb25VUkwiLCJjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCIsIm9ic2VydmF0aW9uSWNvbiIsInBpbmtDaXJjbGVVUkwiLCJvYnNlcnZhdGlvbkljb25VUkwiLCJwb3B1cENvbnRlbnQiLCJvYnMiLCJHcmFwaEljb24iLCJpMThuIiwidCIsInNldmVyaXR5IiwicG9pbnRJc09ic2VydmF0aW9uIiwicG9pbnRCZWxvbmdzVG9FdmVudCIsImJpbmRQb3B1cFRvUG9pbnQiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJpbmNsdWRlcyIsImthbmRvX29iamVjdCIsImthbmRvX29iamVjdF9pZCIsImJpbmRQb3B1cCIsIm1pbldpZHRoIiwib24iLCJlIiwiZmlyc3RTZWVuIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwibGFzdFNlZW4iLCJzZWN0b3IiLCJSZWFjdERPTSIsInJlbmRlciIsInN0YXJ0X3RpbWUiLCJ0aW1lX3pvbmUiLCJsYXN0X3NlZW5fdGltZSIsInNlY3Rvcl9uYW1lIiwic2VjdG9yX2ljb25fbmFtZSIsInNldFRpbWVvdXQiLCJhcHBlbmQiLCJhdHRhY2hDbGlja0V2ZW50Iiwic2VsZWN0b3IiLCJvYnNlcnZhdGlvbiIsImJvZHkiLCJvcGVuUG9wdXAiLCJldmVudHNWaWV3SG92ZXJlZCIsInBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgiLCJoYXNfZGV2aWNlIiwiaGFzUHJpbWFyeUljb24iLCJzYW1wbGluZ3MiLCJjbGVhbnVwIiwiY29ubmVjdG9yIiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7Ozs7QUFFQTs7QUFDQTs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBS0E7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBd0JELEtBQXhCLENBQVFDLFdBQVI7QUFFQSxTQUFPO0FBQ0xBLElBQUFBLFdBQVcsRUFBWEE7QUFESyxHQUFQO0FBR0Q7O0FBUUQsSUFBTUMsV0FBNEIsR0FBRyxTQUEvQkEsV0FBK0IsQ0FBQ0MsS0FBRCxFQUFXO0FBQzlDLE1BQVFDLENBQVIsR0FBdUNELEtBQXZDLENBQVFDLENBQVI7QUFBQSxNQUFXQyxHQUFYLEdBQXVDRixLQUF2QyxDQUFXRSxHQUFYO0FBQUEsTUFBZ0JDLEtBQWhCLEdBQXVDSCxLQUF2QyxDQUFnQkcsS0FBaEI7QUFBQSxNQUF1QkwsV0FBdkIsR0FBdUNFLEtBQXZDLENBQXVCRixXQUF2QjtBQUNBLE1BQVFNLFlBQVIsR0FBdUNOLFdBQXZDLENBQVFNLFlBQVI7QUFBQSxNQUFzQkMsWUFBdEIsR0FBdUNQLFdBQXZDLENBQXNCTyxZQUF0QjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7QUFFQSxNQUFNQyxhQUFhLEdBQUcsb0JBQ3BCO0FBQUEsV0FBTUgsWUFBWSxJQUFJQyxZQUF0QjtBQUFBLEdBRG9CLEVBRXBCLENBQUNELFlBQUQsRUFBZUMsWUFBZixDQUZvQixDQUF0QixDQUw4QyxDQVM5QztBQUNBOztBQUNBLE1BQU1HLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsR0FBTTtBQUMvQixXQUFPUCxDQUFDLENBQUNRLElBQUYsQ0FBTztBQUNaQyxNQUFBQSxPQUFPLEVB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cXVlcnknO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IEdyYXBoSWNvbiBmcm9tICdzcmMvYXNzZXRzL2xpbmUtY2hhcnQuc3ZnJztcbmltcG9ydCBjb2xsZWN0b3JJY29uIGZyb20gJ3NyYy9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IHdhdGVySWNvbk5vQmFja2dyb3VuZCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCBibHVlQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvYmx1ZS1jaXJjbGUuc3ZnJztcbmltcG9ydCBicmlnaHRCbHVlQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvYnJpZ2h0LWJsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgcGxhbnRJY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvZmFjdG9yeS1pY29uLnN2Zyc7XG5pbXBvcnQgZ3JlZW5DaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9vYnNlcnZhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3BpbmstY2lyY2xlLnN2Zyc7XG5pbXBvcnQgcHVtcFN0YXRpb25JY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvcHVtcC1zdGF0aW9uLWljb24uc3ZnJztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9yZWQtcGluLXJlZC1zaGFkb3cucG5nJztcbmltcG9ydCBzYW1wbGluZ0ljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgd2hpdGVQaW5CbGFja1NoYWRvdyBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB3aGl0ZVBpblJlZFNoYWRvdyBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1yZWQtc2hhZG93LnBuZyc7XG5pbXBvcnQgV1dUUEljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy95ZWxsb3ctY2lyY2xlLnN2Zyc7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICdzcmMvYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgU2VjdG9yIGZyb20gJ3NyYy9jb21wb25lbnRzL1NlY3Rvcic7XG5pbXBvcnQgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMsIHtcbiAgcmVtb3ZlRnJvbU1hcCxcbn0gZnJvbSAnc3JjL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7XG4gIGNsb3NlRmxvYXRpbmdHcmFwaCxcbiAgb3BlbkZsb2F0aW5nR3JhcGgsXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgcG9pbnQ6IElQb2ludDtcbn07XG5cbmNvbnN0IFBvaW50TWFya2VyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBMLCBtYXAsIHBvaW50LCBldmVudHNfZGF0YSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgY2VudGVyZWRFdmVudCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZm9jdXNlZEV2ZW50IHx8IGhvdmVyZWRFdmVudCxcbiAgICBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnRdLFxuICApO1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBjb25zdCBzZWxlY3RlZEJhY2tncm91bmQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgICBpY29uU2l6ZTogWzY3LCA3MF0sXG4gICAgICBpY29uQW5jaG9yOiBbMzIsIDU0XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICAgIHJldHVybiBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQaW5SZWRTaGFkb3csXG4gICAgICBpY29uU2l6ZTogWzY3LCA3MF0sXG4gICAgICBpY29uQW5jaG9yOiBbMzIsIDU0XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBzdGFuZGFyZEJhY2tncm91bmQgPSAoXG4gICAgc2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UsXG4gICAgdGhpcmQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKSA9PiB7XG4gICAgcmV0dXJuIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB3aGl0ZVBpbkJsYWNrU2hhZG93LFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeSA/IFsyMCwgMjBdIDogWzQzLCA0Nl0sXG4gICAgICBpY29uQW5jaG9yOlxuICAgICAgICBzZWNvbmRhcnkgJiYgdGhpcmQgPyBbLTIsIDE5XSA6IHNlY29uZGFyeSA/IFstMiwgNDRdIDogWzIwLCA0Ml0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgY29tYmluZWRGYWN0b3J5SWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogeWVsbG93Q2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IFsyNSwgMjRdLFxuICAgICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBwbGFudEljb25VUkwsXG4gICAgICBpY29uU2l6ZTogWzE1LCAxNV0sXG4gICAgICBpY29uQW5jaG9yOiBbNSwgMzBdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmVkUHVtcFN0YXRpb25JY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBncmVlbkNpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBbMjUsIDI0XSxcbiAgICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogcHVtcFN0YXRpb25JY29uVVJMLFxuICAgICAgaWNvblNpemU6IFsyMCwgMjBdLFxuICAgICAgaWNvbkFuY2hvcjogWzcsIDMyXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBjb21iaW5lZENvbGxlY3RvcnNJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBjb2xsZWN0b3JJY29uLFxuICAgICAgaWNvblNpemU6IFs0NSwgNDVdLFxuXG4gICAgICBpY29uQW5jaG9yOiBbMjUsIDUwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBjb21iaW5lZFdXVFBJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBicmlnaHRCbHVlQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IFsyNSwgMjVdLFxuICAgICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBXV1RQSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBbMjAsIDIwXSxcbiAgICAgIGljb25BbmNob3I6IFs4LCAzMV0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgbWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UgPSAoKSA9PiB7XG4gICAgbGV0IHNvdXJjZTtcblxuICAgIGlmIChjZW50ZXJlZEV2ZW50ICE9PSBudWxsKSB7XG4gICAgICBzb3VyY2UgPSBjZW50ZXJlZEV2ZW50LnNvdXJjZXMuZmlsdGVyKFxuICAgICAgICAoc291cmNlKSA9PiBzb3VyY2UucG9pbnRfaWQgPT09IHBvaW50LmlkLFxuICAgICAgKVswXTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgc291cmNlICYmXG4gICAgICBjZW50ZXJlZEV2ZW50LnNlbGVjdGVkX3NvdXJjZSA9PT0gc291cmNlLnBvaW50X2lkXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBtYXJrZXJCZWxvbmdzVG9Tb3VyY2UgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiZcbiAgICAgIGNlbnRlcmVkRXZlbnQuc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZClbMF1cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGlzQ29sbGVjdG9yRm9jdXNlZCA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNlbnRlcmVkRXZlbnQ/Lm9ic2VydmF0aW9ucz8ubGVuZ3RoID09PSAxICYmXG4gICAgICBwb2ludC5pZCA9PT0gY2VudGVyZWRFdmVudC5vYnNlcnZhdGlvbnNbMF0ucG9pbnRfaWRcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IG1hdGNoSWNvblRvUG9pbnQgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHN3aXRjaCAocG9pbnQuZ3JvdXAudHlwZSkge1xuICAgICAgY2FzZSAnR3JvdXBzOjpGYWN0b3J5JzpcbiAgICAgICAgaWYgKGNvbWJpbmVkRmFjdG9yeUljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVkRmFjdG9yeUljb247XG4gICAgICBjYXNlICdHcm91cHM6OlB1bXBTdGF0aW9uJzpcbiAgICAgICAgaWYgKGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbjtcbiAgICAgIGNhc2UgJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JzpcbiAgICAgICAgaWYgKGNvbWJpbmVkV1dUUEljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVkV1dUUEljb247XG5cbiAgICAgIGNhc2UgJ0dyb3Vwczo6Q29sbGVjdG9ycyc6XG4gICAgICAgIGlmIChpc0NvbGxlY3RvckZvY3VzZWQocG9pbnQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIEwuaWNvbih7XG4gICAgICAgICAgICAgIGljb25Vcmw6IHJlZFBpblJlZFNoYWRvdyxcbiAgICAgICAgICAgICAgaWNvblNpemU6IFs2MiwgNjJdLFxuICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMzAsIDUyXSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgICBpY29uVXJsOiB3YXRlckljb25Ob0JhY2tncm91bmQsXG4gICAgICAgICAgICAgIGljb25TaXplOiBbNDYsIDQ2XSxcblxuICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMjIsIDQ0XSxcbiAgICAgICAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZENvbGxlY3RvcnNJY29uO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlTWFuaG9sZVBvaW50ID0gKG1hcmtlckxvY2F0aW9uOiBvYmplY3QpID0+IHtcbiAgICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgICBpY29uU2l6ZTogWzksIDldLFxuICAgICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgICB9KTtcbiAgICBsZXQgbWFuaG9sZUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBwb2ludEljb24sXG4gICAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuICAgIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKGAke3BvaW50Lmdyb3VwLm5hbWV9ICgke3BvaW50LmlkfSlgKTtcbiAgICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUN1c3RvbUljb25Qb2ludCA9IChtYXJrZXJMb2NhdGlvbjogb2JqZWN0KSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpICE9PSBudWxsICYmXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50KS5mb3JFYWNoKChpY29uOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgICBpY29uOiBpY29uLFxuICAgICAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGAke3BvaW50Lmdyb3VwLm5hbWV9ICgke3BvaW50LmlkfSlgKTtcbiAgICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgICAgIH0pO1xuXG4gICAgaWYgKHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbiA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgY2xhc3NOYW1lOiBgY2lyY2xlLWV2ZW50cy1hbW91bnQgJHtcbiAgICAgICAgICAgIHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPiAyID8gJ2FsZXJ0LWNvbG9yJyA6ICcnXG4gICAgICAgICAgfWAsXG4gICAgICAgICAgaHRtbDogYCR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudH1gLFxuICAgICAgICAgIGljb25BbmNob3I6IFstNSwgNDJdLFxuICAgICAgICB9KSxcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVyJztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQgPSAoXG4gICAgbWFya2VyTG9jYXRpb246IG9iamVjdCxcbiAgICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICApID0+IHtcbiAgICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAgIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gICAgbGV0IHNhbXBsaW5nSWNvbiA9IFtcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IGJsdWVDaXJjbGVVUkwsXG4gICAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzEwLCAxMF0gOiBbMjUsIDI0XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgMTVdIDogWzEwLjcsIDMzLjddLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IHNhbXBsaW5nSWNvblVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbNywgN10gOiBbMTMsIDE1XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMTNdIDogWzUsIDMwXSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBzYW1wbGluZ0ljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24sIHRydWUpKTtcbiAgICB9XG5cbiAgICBzYW1wbGluZ0ljb24uZm9yRWFjaCgoaWNvbikgPT4ge1xuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nJztcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCA9IChcbiAgICBtYXJrZXJMb2NhdGlvbjogb2JqZWN0LFxuICAgIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gICAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgICBsZXQgb2JzZXJ2YXRpb25JY29uID0gW1xuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogcGlua0NpcmNsZVVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMTAsIDEwXSA6IFsyNSwgMjRdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCA0MF0gOiBbMTAuNywgMzMuN10sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgIH0pLFxuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogb2JzZXJ2YXRpb25JY29uVVJMLFxuICAgICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFs3LCA3XSA6IFsxMywgMTVdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAzOF0gOiBbNSwgMzBdLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbikpO1xuICAgIH1cblxuICAgIG9ic2VydmF0aW9uSWNvbi5mb3JFYWNoKChpY29uKSA9PiB7XG4gICAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgICBpY29uOiBpY29uLFxuICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGAke3BvaW50Lmdyb3VwLm5hbWV9ICgke3BvaW50LmlkfSlgKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb24nO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHBvcHVwQ29udGVudCA9IChvYnM6IGFueSkgPT4ge1xuICAgIGlmIChvYnMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7cG9pbnQuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7cG9pbnQuZ3JvdXAubmFtZX08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWN0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ncmFwaC1pY29uIHBvcHVwLWdyYXBoLWljb24tJHtvYnMuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7XG4gICAgICAgICAgICAgICAgICAgICAgcG9pbnQuZ3JvdXAubmFtZVxuICAgICAgICAgICAgICAgICAgICB9PC9iPjwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdHlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwb3B1cC1jb250ZW50X19zZXZlcml0eS0tJyArIG9icy5zZXZlcml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktYlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuJHtvYnMuc2V2ZXJpdHl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwicG9wdXAtY29udGVudF9faHJcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19kaXNjaGFyZ2UtdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuZmlyc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwiZmlyc3Qtc2Vlbi1wb3B1cFwiPjwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3Lmxhc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwibGFzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgO1xuICAgIH1cbiAgfTtcblxuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdTYW1wbGluZycpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnSWNvbk51bWJlcicpO1xuXG4gIGNvbnN0IHBvaW50SXNPYnNlcnZhdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgY2VudGVyZWRFdmVudC5vYnNlcnZhdGlvbnMuZmlsdGVyKChvYnMpID0+IG9icy5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBwb2ludEJlbG9uZ3NUb0V2ZW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGJpbmRQb3B1cFRvUG9pbnQgPSAob2JzOiBhbnkgPSBudWxsKSA9PiB7XG4gICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFsnUG9pbnQnLCAnT2JzZXJ2YXRpb24nXS5pbmNsdWRlcyhsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCkgJiZcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBvaW50LmlkXG4gICAgICApIHtcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5iaW5kUG9wdXAocG9wdXBDb250ZW50KG9icyksIHtcbiAgICAgICAgICBtaW5XaWR0aDogMjAwLFxuICAgICAgICB9KTtcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKGU6IGFueSkge1xuICAgICAgICAgIGlmIChmb2N1c2VkRXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFNlZW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGxldCBsYXN0U2VlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgbGV0IHNlY3RvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgICAgICBpZiAob2JzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtvYnMuc3RhcnRfdGltZX1cbiAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBmaXJzdFNlZW4sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtvYnMubGFzdF9zZWVuX3RpbWV9XG4gICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e29icy50aW1lX3pvbmV9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgbGFzdFNlZW4sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgPFNlY3RvclxuICAgICAgICAgICAgICAgICAgc2VjdG9yTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX25hbWV9XG4gICAgICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX2ljb25fbmFtZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzdcIlxuICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgIHNlY3RvcixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICQoJyNmaXJzdC1zZWVuLXBvcHVwJykuYXBwZW5kKGZpcnN0U2Vlbik7XG4gICAgICAgICAgICAgICQoJyNsYXN0LXNlZW4tcG9wdXAnKS5hcHBlbmQobGFzdFNlZW4pO1xuICAgICAgICAgICAgICAkKCcjc2VjdG9yJykuYXBwZW5kKHNlY3Rvcik7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBhdHRhY2hDbGlja0V2ZW50ID0gKHNlbGVjdG9yOiBzdHJpbmcsIG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ2NsaWNrJywgc2VsZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2goY2xvc2VGbG9hdGluZ0dyYXBoKCkpO1xuICAgICAgICAgICAgICBkaXNwYXRjaChvcGVuRmxvYXRpbmdHcmFwaCh0cnVlLCBvYnNlcnZhdGlvbiwgcG9pbnQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob2JzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgb2JzLmlkLCBvYnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgcG9pbnQuaWQsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub3BlblBvcHVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBtYXJrZXJMb2NhdGlvbiA9IFtwb2ludFsnbGF0aXR1ZGUnXSwgcG9pbnRbJ2xvbmdpdHVkZSddXTtcbiAgICBpZiAoIXBvaW50LmV2ZW50c1ZpZXdIb3ZlcmVkKSBjcmVhdGVNYW5ob2xlUG9pbnQobWFya2VyTG9jYXRpb24pO1xuXG4gICAgaWYgKG1hcmtlckxvY2F0aW9uWzBdICE9PSBudWxsKSB7XG4gICAgICBpZiAocG9pbnQucGFydF9vZl9tb25pdG9yZWRfcGF0aCAmJiAhcG9pbnQuaGFzX2RldmljZSkgcmV0dXJuO1xuICAgICAgaWYgKFxuICAgICAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50KSAhPT0gbnVsbCAmJlxuICAgICAgICAoY2VudGVyZWRFdmVudCA9PT0gbnVsbCB8fFxuICAgICAgICAgIChjZW50ZXJlZEV2ZW50ICE9PSBudWxsICYmIHBvaW50SXNPYnNlcnZhdGlvbigpKSB8fFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHBvaW50LmV2ZW50c1ZpZXdIb3ZlcmVkKSBjcmVhdGVNYW5ob2xlUG9pbnQobWFya2VyTG9jYXRpb24pO1xuICAgICAgICBjcmVhdGVDdXN0b21JY29uUG9pbnQobWFya2VyTG9jYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9jdXNlZEV2ZW50ICE9PSBudWxsICYmIHBvaW50SXNPYnNlcnZhdGlvbigpKSB7XG4gICAgICAgIGxldCBoYXNQcmltYXJ5SWNvbiA9IG1hdGNoSWNvblRvUG9pbnQocG9pbnQpICE9PSBudWxsO1xuICAgICAgICBjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludChtYXJrZXJMb2NhdGlvbiwgaGFzUHJpbWFyeUljb24pO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiZcbiAgICAgICAgICBmb2N1c2VkRXZlbnQuc2FtcGxpbmdzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAgIGZvY3VzZWRFdmVudC5zYW1wbGluZ3NbMF0ucG9pbnRfaWQgPT09IHBvaW50LmlkXG4gICAgICAgICkge1xuICAgICAgICAgIGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50KG1hcmtlckxvY2F0aW9uLCBoYXNQcmltYXJ5SWNvbik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiYgcG9pbnRCZWxvbmdzVG9FdmVudCgpKSB7XG4gICAgICAgIGxldCBvYnMgPSBjZW50ZXJlZEV2ZW50Lm9ic2VydmF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZCxcbiAgICAgICAgKVswXTtcbiAgICAgICAgYmluZFBvcHVwVG9Qb2ludChvYnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgLy8gVU5CSU5EIFBPUFVQXG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdPYnNlcnZhdGlvbicpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG4gICAgfTtcbiAgfSwgW2NlbnRlcmVkRXZlbnRdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGlmIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgIT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSksXG4pO1xuIl19
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -104,6 +104,7 @@ var EventsMapContainer = function EventsMapContainer(props) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
newPoint.relatedEventsAmount = EventsPerSite[point.id] || 0;
|
|
107
|
+
newPoint.eventsViewHovered = true;
|
|
107
108
|
return newPoint;
|
|
108
109
|
});
|
|
109
110
|
}, [points_data, EventsPerSite, events_data.focusedEvent, events_data.hoveredEvent]); // eslint-disable-next-line
|
|
@@ -151,4 +152,4 @@ var EventsMapContainer = function EventsMapContainer(props) {
|
|
|
151
152
|
};
|
|
152
153
|
|
|
153
154
|
exports.EventsMapContainer = EventsMapContainer;
|
|
154
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50c01hcENvbnRhaW5lciIsInByb3BzIiwiZGlzcGF0Y2giLCJSZWR1eFN0YXRlIiwic3RhdGUiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImV2ZW50c19kYXRhIiwiZWRnZXNfZGF0YSIsImlzVGltZUZpbHRlck5vdFNlbGVjdGVkIiwiZmlsdGVycyIsImFjdGl2ZUZpbHRlciIsImZpbHRlcl9pdGVtcyIsImxlbmd0aCIsImluZGV4IiwidHlwZSIsIm1hcHBlZEFyZWFzIiwiRXZlbnRzUGVyU2l0ZSIsIml0ZW1zIiwiTXVzdFNlZW5TaXRlcyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIm1hcHBlZFBvaW50cyIsIm1hcCIsInBvaW50IiwibmV3UG9pbnQiLCJpZCIsImdyb3VwIiwiaGlkZSIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJtYXBwZWRFZGdlcyIsImZpbHRlciIsImVkZ2UiLCJOdW1iZXIiLCJzb3VyY2VfcG9pbnRfaWQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJhcmVhVG9DZW50ZXJCeSIsIndhdGVyQXV0aG9yaXR5SWQiLCJmb2N1c2VkRXZlbnRQYXRocyIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsImZsb2F0aW5nR3JhcGgiLCJvcGVuIiwiZG5kR3JhcGhJbml0T3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFJTyxJQUFNQSxrQkFBcUQsR0FBRyxTQUF4REEsa0JBQXdELENBQ25FQyxLQURtRSxFQUVoRTtBQUFBOztBQUNILE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7QUFD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QjFDLFFBQUFBLFFBQVEsQ0FBQyxtQ0FBRCxDQUFSO0FBQ0QsT0FMSDtBQU1FLE1BQUEsdUJBQXVCLEVBQUVJLFdBQVcsQ0FBQ29DLGFBTnZDO0FBT0UsTUFBQSxVQUFVLEVBQUVsQyxXQUFGLGFBQUVBLFdBQUYsdUJBQUVBLFdBQVcsQ0FBRWEsWUFQM0I7QUFRRSxNQUFBLE9BQU8sRUFBRWYsV0FBRixhQUFFQSxXQUFGLGdEQUFFQSxXQUFXLENBQUVvQyxhQUFmLG9GQUFFLHNCQUE0QmpCLEtBQTlCLDJEQUFFLHVCQUFtQ0U7QUFSOUM7QUFGSCxHQURILENBakJKLENBREY7QUFxQ0QsQ0E1SU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgYXJlYXNNYXBwZXIsXG4gIENvdW50RXZlbnRzUGVyU2l0ZUlELFxuICBnZXRBcmVhc1RvQ2VudGVyQnksXG4gIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMsXG59IGZyb20gJ3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXJIZWxwZXJzJztcbmltcG9ydCB7IGZldGNoQXJlYXMgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaEVkZ2VzIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcCc7XG5pbXBvcnQgRmxvYXRpbmdHcmFwaCBmcm9tICdzcmMvcGFnZXMvRXZlbnRzUGFnZS9GbG9hdGluZ0dyYXBoL0Zsb2F0aW5nR3JhcGgnO1xuaW1wb3J0IHsgZG5kR3JhcGhJbml0T3B0aW9ucyB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9HcmFwaFV0aWxzJztcbmltcG9ydCB7IGNsb3NlRmxvYXRpbmdHcmFwaCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgRHJhZ0FuZERyb3BBcmVhIGZyb20gJy4uL0RyYWdBbmREcm9wQXJlYSc7XG5pbnRlcmZhY2UgRXZlbnRzTWFwQ29udGFpbmVyUHJvcHMge1xuICBzaG93U2Vjb25kTWFwOiBib29sZWFuO1xufVxuZXhwb3J0IGNvbnN0IEV2ZW50c01hcENvbnRhaW5lcjogUmVhY3QuRkM8RXZlbnRzTWFwQ29udGFpbmVyUHJvcHM+ID0gKFxuICBwcm9wcyxcbikgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgeyBhcmVhc19kYXRhLCBnbG9iYWxfZGF0YSwgcG9pbnRzX2RhdGEsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhIH0gPVxuICAgIFJlZHV4U3RhdGU7XG5cbiAgY29uc3QgaXNUaW1lRmlsdGVyTm90U2VsZWN0ZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gZ2xvYmFsX2RhdGE/LmFjdGl2ZUZpbHRlcj8uZmlsdGVyX2l0ZW1zO1xuXG4gICAgaWYgKCFmaWx0ZXJzIHx8IGZpbHRlcnMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZiAoZmlsdGVyc1tpbmRleF0udHlwZSA9PT0gJ1RpbWVGaWx0ZXJJdGVtJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0sIFtnbG9iYWxfZGF0YT8uYWN0aXZlRmlsdGVyXSk7XG5cbiAgY29uc3QgbWFwcGVkQXJlYXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGFyZWFzTWFwcGVyKGFyZWFzX2RhdGEsIGlzVGltZUZpbHRlck5vdFNlbGVjdGVkKSxcbiAgICBbYXJlYXNfZGF0YSwgaXNUaW1lRmlsdGVyTm90U2VsZWN0ZWRdLFxuICApO1xuXG4gIGNvbnN0IEV2ZW50c1BlclNpdGUgPSB1c2VNZW1vKFxuICAgICgpID0+IENvdW50RXZlbnRzUGVyU2l0ZUlEKGV2ZW50c19kYXRhLml0ZW1zKSxcbiAgICBbZXZlbnRzX2RhdGEuaXRlbXNdLFxuICApO1xuXG4gIGNvbnN0IE11c3RTZWVuU2l0ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZEV2ZW50TXVzdFNlZW5TaXRlcyhldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZEV2ZW50TXVzdFNlZW5TaXRlcyhldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnQpO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH0sIFtFdmVudHNQZXJTaXRlLCBldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQsIGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IG1hcHBlZFBvaW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgbmV3UG9pbnQgPSB7IC4uLnBvaW50IH07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFFdmVudHNQZXJTaXRlW3BvaW50LmlkXSB8fFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnXG4gICAgICAgICkge1xuICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgICAgIGlmICghTXVzdFNlZW5TaXRlc1twb2ludC5pZF0pIHtcbiAgICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFNdXN0U2VlblNpdGVzW3BvaW50LmlkXSAmJlxuICAgICAgICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6Q29sbGVjdG9ycydcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmV3UG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA9IEV2ZW50c1BlclNpdGVbcG9pbnQuaWRdIHx8IDA7XG4gICAgICAgIHJldHVybiBuZXdQb2ludDtcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHBvaW50c19kYXRhLFxuICAgICAgRXZlbnRzUGVyU2l0ZSxcbiAgICAgIGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCxcbiAgICAgIGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudCxcbiAgICBdLFxuICApO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBjb25zdCBtYXBwZWRFZGdlcyA9IGVkZ2VzX2RhdGEuaXRlbXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PlxuICAgICAgTnVtYmVyKEV2ZW50c1BlclNpdGVbZWRnZS5zb3VyY2VfcG9pbnRfaWRdKSA+IDAgfHxcbiAgICAgIE51bWJlcihFdmVudHNQZXJTaXRlW2VkZ2UudGFyZ2V0X3BvaW50X2lkXSkgPiAwLFxuICApO1xuXG4gIGNvbnN0IGFyZWFUb0NlbnRlckJ5ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBnZXRBcmVhc1RvQ2VudGVyQnkoZ2xvYmFsX2RhdGEsIG1hcHBlZEFyZWFzKSxcbiAgICBbZ2xvYmFsX2RhdGE/LmFjdGl2ZUZpbHRlciwgbWFwcGVkQXJlYXNdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIGRpc3BhdGNoKGZldGNoUG9pbnRzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKGZldGNoRWRnZXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hBcmVhcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgfVxuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPE1hcFxuICAgICAgey4uLlJlZHV4U3RhdGV9XG4gICAgICBhcmVhcz17bWFwcGVkQXJlYXN9XG4gICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICBwb2ludHM9e21hcHBlZFBvaW50c31cbiAgICAgIGVkZ2VzPXttYXBwZWRFZGdlc31cbiAgICAgIGV2ZW50cz17ZXZlbnRzX2RhdGEuaXRlbXN9XG4gICAgICBmb2N1c2VkRXZlbnQ9e2V2ZW50c19kYXRhLmZvY3VzZWRFdmVudH1cbiAgICAgIGhvdmVyZWRFdmVudD17ZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50fVxuICAgICAgZm9jdXNlZEV2ZW50UGF0aHM9e2V2ZW50c19kYXRhLmZvY3VzZWRFdmVudFBhdGhzfVxuICAgICAgaG92ZXJlZEV2ZW50UGF0aHM9e2V2ZW50c19kYXRhLmhvdmVyZWRFdmVudFBhdGhzfVxuICAgICAgaG92ZXJlZEVkZ2VQYXRocz17ZXZlbnRzX2RhdGEuaG92ZXJlZEVkZ2VQYXRoc31cbiAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgIGhpZGVFZGdlcz17dHJ1ZX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7XG4gICAgICAgIDxEcmFnQW5kRHJvcEFyZWEgZm9jdXNlZEV2ZW50UGF0aD17ZXZlbnRzX2RhdGE/LmZvY3VzZWRFdmVudFBhdGhzfT5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgZmxvYXRpbmdHcmFwaDogKFxuICAgICAgICAgICAgICA8RmxvYXRpbmdHcmFwaFxuICAgICAgICAgICAgICAgIGlzT3Blbj17Z2xvYmFsX2RhdGE/LmZsb2F0aW5nR3JhcGgub3Blbn1cbiAgICAgICAgICAgICAgICBjdXN0b21IaWdoQ2hhcnRPcHRpb25zPXtkbmRHcmFwaEluaXRPcHRpb25zfVxuICAgICAgICAgICAgICAgIGNsb3NlR3JhcGhIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaChjbG9zZUZsb2F0aW5nR3JhcGgoKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBnbG9iYWxEYXRhRmxvYXRpbmdHcmFwaD17Z2xvYmFsX2RhdGEuZmxvYXRpbmdHcmFwaH1cbiAgICAgICAgICAgICAgICBldmVudF9kYXRhPXtldmVudHNfZGF0YT8uZm9jdXNlZEV2ZW50fVxuICAgICAgICAgICAgICAgIGdyYXBoSWQ9e2dsb2JhbF9kYXRhPy5mbG9hdGluZ0dyYXBoPy5wb2ludD8uaWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgIH19XG4gICAgICAgIDwvRHJhZ0FuZERyb3BBcmVhPlxuICAgICAgfVxuICAgIDwvTWFwPlxuICApO1xufTtcbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50c01hcENvbnRhaW5lciIsInByb3BzIiwiZGlzcGF0Y2giLCJSZWR1eFN0YXRlIiwic3RhdGUiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImV2ZW50c19kYXRhIiwiZWRnZXNfZGF0YSIsImlzVGltZUZpbHRlck5vdFNlbGVjdGVkIiwiZmlsdGVycyIsImFjdGl2ZUZpbHRlciIsImZpbHRlcl9pdGVtcyIsImxlbmd0aCIsImluZGV4IiwidHlwZSIsIm1hcHBlZEFyZWFzIiwiRXZlbnRzUGVyU2l0ZSIsIml0ZW1zIiwiTXVzdFNlZW5TaXRlcyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIm1hcHBlZFBvaW50cyIsIm1hcCIsInBvaW50IiwibmV3UG9pbnQiLCJpZCIsImdyb3VwIiwiaGlkZSIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJldmVudHNWaWV3SG92ZXJlZCIsIm1hcHBlZEVkZ2VzIiwiZmlsdGVyIiwiZWRnZSIsIk51bWJlciIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldF9wb2ludF9pZCIsImFyZWFUb0NlbnRlckJ5Iiwid2F0ZXJBdXRob3JpdHlJZCIsImZvY3VzZWRFdmVudFBhdGhzIiwiaG92ZXJlZEV2ZW50UGF0aHMiLCJob3ZlcmVkRWRnZVBhdGhzIiwiZmxvYXRpbmdHcmFwaCIsIm9wZW4iLCJkbmRHcmFwaEluaXRPcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUlPLElBQU1BLGtCQUFxRCxHQUFHLFNBQXhEQSxrQkFBd0QsQ0FDbkVDLEtBRG1FLEVBRWhFO0FBQUE7O0FBQ0gsTUFBTUMs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O0FBRUUsTUFBQSxzQkFBc0IsRUFBRUMsK0JBRjFCO0FBR0UsTUFBQSxpQkFBaUIsRUFBRSw2QkFBTTtBQUN2QjNDLFFBQUFBLFFBQVEsQ0FBQyxtQ0FBRCxDQUFSO0FBQ0QsT0FMSDtBQU1FLE1BQUEsdUJBQXVCLEVBQUVJLFdBQVcsQ0FBQ3FDLGFBTnZDO0FBT0UsTUFBQSxVQUFVLEVBQUVuQyxXQUFGLGFBQUVBLFdBQUYsdUJBQUVBLFdBQVcsQ0FBRWEsWUFQM0I7QUFRRSxNQUFBLE9BQU8sRUFBRWYsV0FBRixhQUFFQSxXQUFGLGdEQUFFQSxXQUFXLENBQUVxQyxhQUFmLG9GQUFFLHNCQUE0QmxCLEtBQTlCLDJEQUFFLHVCQUFtQ0U7QUFSOUM7QUFGSCxHQURILENBakJKLENBREY7QUFxQ0QsQ0E3SU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgYXJlYXNNYXBwZXIsXG4gIENvdW50RXZlbnRzUGVyU2l0ZUlELFxuICBnZXRBcmVhc1RvQ2VudGVyQnksXG4gIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMsXG59IGZyb20gJ3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXJIZWxwZXJzJztcbmltcG9ydCB7IGZldGNoQXJlYXMgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaEVkZ2VzIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcCc7XG5pbXBvcnQgRmxvYXRpbmdHcmFwaCBmcm9tICdzcmMvcGFnZXMvRXZlbnRzUGFnZS9GbG9hdGluZ0dyYXBoL0Zsb2F0aW5nR3JhcGgnO1xuaW1wb3J0IHsgZG5kR3JhcGhJbml0T3B0aW9ucyB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9HcmFwaFV0aWxzJztcbmltcG9ydCB7IGNsb3NlRmxvYXRpbmdHcmFwaCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgRHJhZ0FuZERyb3BBcmVhIGZyb20gJy4uL0RyYWdBbmREcm9wQXJlYSc7XG5pbnRlcmZhY2UgRXZlbnRzTWFwQ29udGFpbmVyUHJvcHMge1xuICBzaG93U2Vjb25kTWFwOiBib29sZWFuO1xufVxuZXhwb3J0IGNvbnN0IEV2ZW50c01hcENvbnRhaW5lcjogUmVhY3QuRkM8RXZlbnRzTWFwQ29udGFpbmVyUHJvcHM+ID0gKFxuICBwcm9wcyxcbikgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgeyBhcmVhc19kYXRhLCBnbG9iYWxfZGF0YSwgcG9pbnRzX2RhdGEsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhIH0gPVxuICAgIFJlZHV4U3RhdGU7XG5cbiAgY29uc3QgaXNUaW1lRmlsdGVyTm90U2VsZWN0ZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gZ2xvYmFsX2RhdGE/LmFjdGl2ZUZpbHRlcj8uZmlsdGVyX2l0ZW1zO1xuXG4gICAgaWYgKCFmaWx0ZXJzIHx8IGZpbHRlcnMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZiAoZmlsdGVyc1tpbmRleF0udHlwZSA9PT0gJ1RpbWVGaWx0ZXJJdGVtJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0sIFtnbG9iYWxfZGF0YT8uYWN0aXZlRmlsdGVyXSk7XG5cbiAgY29uc3QgbWFwcGVkQXJlYXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGFyZWFzTWFwcGVyKGFyZWFzX2RhdGEsIGlzVGltZUZpbHRlck5vdFNlbGVjdGVkKSxcbiAgICBbYXJlYXNfZGF0YSwgaXNUaW1lRmlsdGVyTm90U2VsZWN0ZWRdLFxuICApO1xuXG4gIGNvbnN0IEV2ZW50c1BlclNpdGUgPSB1c2VNZW1vKFxuICAgICgpID0+IENvdW50RXZlbnRzUGVyU2l0ZUlEKGV2ZW50c19kYXRhLml0ZW1zKSxcbiAgICBbZXZlbnRzX2RhdGEuaXRlbXNdLFxuICApO1xuXG4gIGNvbnN0IE11c3RTZWVuU2l0ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZEV2ZW50TXVzdFNlZW5TaXRlcyhldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZEV2ZW50TXVzdFNlZW5TaXRlcyhldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnQpO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH0sIFtFdmVudHNQZXJTaXRlLCBldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQsIGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IG1hcHBlZFBvaW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgbmV3UG9pbnQgPSB7IC4uLnBvaW50IH07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFFdmVudHNQZXJTaXRlW3BvaW50LmlkXSB8fFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnXG4gICAgICAgICkge1xuICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgICAgIGlmICghTXVzdFNlZW5TaXRlc1twb2ludC5pZF0pIHtcbiAgICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFNdXN0U2VlblNpdGVzW3BvaW50LmlkXSAmJlxuICAgICAgICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6Q29sbGVjdG9ycydcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG5ld1BvaW50LmhpZGUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmV3UG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA9IEV2ZW50c1BlclNpdGVbcG9pbnQuaWRdIHx8IDA7XG4gICAgICAgIG5ld1BvaW50LmV2ZW50c1ZpZXdIb3ZlcmVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG5ld1BvaW50O1xuICAgICAgfSksXG4gICAgW1xuICAgICAgcG9pbnRzX2RhdGEsXG4gICAgICBFdmVudHNQZXJTaXRlLFxuICAgICAgZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50LFxuICAgICAgZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50LFxuICAgIF0sXG4gICk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IG1hcHBlZEVkZ2VzID0gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+XG4gICAgICBOdW1iZXIoRXZlbnRzUGVyU2l0ZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0pID4gMCB8fFxuICAgICAgTnVtYmVyKEV2ZW50c1BlclNpdGVbZWRnZS50YXJnZXRfcG9pbnRfaWRdKSA+IDAsXG4gICk7XG5cbiAgY29uc3QgYXJlYVRvQ2VudGVyQnkgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldEFyZWFzVG9DZW50ZXJCeShnbG9iYWxfZGF0YSwgbWFwcGVkQXJlYXMpLFxuICAgIFtnbG9iYWxfZGF0YT8uYWN0aXZlRmlsdGVyLCBtYXBwZWRBcmVhc10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgZGlzcGF0Y2goZmV0Y2hQb2ludHMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hFZGdlcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEFyZWFzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICB9XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWFwXG4gICAgICB7Li4uUmVkdXhTdGF0ZX1cbiAgICAgIGFyZWFzPXttYXBwZWRBcmVhc31cbiAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgIHBvaW50cz17bWFwcGVkUG9pbnRzfVxuICAgICAgZWRnZXM9e21hcHBlZEVkZ2VzfVxuICAgICAgZXZlbnRzPXtldmVudHNfZGF0YS5pdGVtc31cbiAgICAgIGZvY3VzZWRFdmVudD17ZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50fVxuICAgICAgaG92ZXJlZEV2ZW50PXtldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnR9XG4gICAgICBmb2N1c2VkRXZlbnRQYXRocz17ZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50UGF0aHN9XG4gICAgICBob3ZlcmVkRXZlbnRQYXRocz17ZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50UGF0aHN9XG4gICAgICBob3ZlcmVkRWRnZVBhdGhzPXtldmVudHNfZGF0YS5ob3ZlcmVkRWRnZVBhdGhzfVxuICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgaGlkZUVkZ2VzPXt0cnVlfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtcbiAgICAgICAgPERyYWdBbmREcm9wQXJlYSBmb2N1c2VkRXZlbnRQYXRoPXtldmVudHNfZGF0YT8uZm9jdXNlZEV2ZW50UGF0aHN9PlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBmbG9hdGluZ0dyYXBoOiAoXG4gICAgICAgICAgICAgIDxGbG9hdGluZ0dyYXBoXG4gICAgICAgICAgICAgICAgaXNPcGVuPXtnbG9iYWxfZGF0YT8uZmxvYXRpbmdHcmFwaC5vcGVufVxuICAgICAgICAgICAgICAgIGN1c3RvbUhpZ2hDaGFydE9wdGlvbnM9e2RuZEdyYXBoSW5pdE9wdGlvbnN9XG4gICAgICAgICAgICAgICAgY2xvc2VHcmFwaEhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKGNsb3NlRmxvYXRpbmdHcmFwaCgpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGdsb2JhbERhdGFGbG9hdGluZ0dyYXBoPXtnbG9iYWxfZGF0YS5mbG9hdGluZ0dyYXBofVxuICAgICAgICAgICAgICAgIGV2ZW50X2RhdGE9e2V2ZW50c19kYXRhPy5mb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICAgICAgZ3JhcGhJZD17Z2xvYmFsX2RhdGE/LmZsb2F0aW5nR3JhcGg/LnBvaW50Py5pZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9EcmFnQW5kRHJvcEFyZWE+XG4gICAgICB9XG4gICAgPC9NYXA+XG4gICk7XG59O1xuIl19
|