@kando-env/kando-ui 1.2.75-alpha.4 → 1.2.75-alpha.41
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 +19 -5
- package/lib/Widgets/Map/areas/AreaPolygons.js +1 -6
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +2 -5
- package/lib/Widgets/Map/points/PointMarker.js +21 -6
- package/lib/Widgets/Map/points/PointMarkers.js +2 -2
- package/lib/assets/icons/close-modal.svg +8 -0
- package/lib/assets/icons/index.js +8 -0
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +2 -2
- package/lib/components/DischargeHeatmap/mocks/handlers.js +19 -0
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +3 -1
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +3 -1
- package/lib/components/Sector/Sector.test.js +4 -11
- package/lib/hooks/useApiWithDashboardQuery.js +2 -4
- package/lib/hooks/useUserTimeZone.js +2 -2
- package/lib/hooks/useUserTimeZone.test.js +45 -0
- package/lib/i18n/en.json +36 -26
- package/lib/i18n/en_uk.json +3760 -0
- package/lib/i18n/fr.json +4 -2
- package/lib/i18n/he.json +16 -6
- package/lib/i18n/it.json +4 -2
- package/lib/index.js +8 -1
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +6 -4
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +3 -3
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +2 -2
- package/lib/pages/EventsPage/events/events_list/EventsList.js +8 -10
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +4 -1
- package/lib/pages/EventsPage/events/events_list/Filter/FilterStyle.scss +1 -1
- package/lib/pages/ImportFileWizard/ValidationForm.js +7 -12
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +5 -1
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +41 -0
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +39 -0
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +172 -0
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +74 -0
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +48 -0
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +99 -0
- package/lib/pages/SamplingsPage/NewSamplingAction.js +4 -3
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +1 -17
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +10 -3
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +9 -12
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +26 -19
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +15 -10
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +14 -4
- package/lib/pages/SamplingsPage/SamplingProperties/style.module.scss +2 -1
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +4 -2
- package/lib/pages/SamplingsPage/SamplingsPage.js +4 -2
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +2 -5
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +57 -27
- package/lib/pages/SamplingsPage/style.module.scss +1 -1
- package/lib/pages/SamplingsPage/table.styles.scss +8 -6
- package/lib/pages/WbeDashboard/SummaryGraph.js +15 -6
- package/lib/store/permissions/permissionsSlice.js +3 -1
- package/lib/styles.scss +7 -0
- package/lib/test/mocks/browser.js +23 -0
- package/lib/test/test-utils.js +61 -0
- package/lib/ui-kit/Button/Button.test.js +26 -11
- package/lib/ui-kit/DropDown/DropDown.js +12 -6
- package/lib/ui-kit/DropDown/DropDown.test.js +50 -41
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +9 -2
- package/lib/ui-kit/KandoTable/KandoTable.test.js +46 -43
- package/lib/utilities/i18n.js +6 -1
- package/lib/utilities/urls.js +8 -5
- package/package.json +5 -2
- package/lib/pages/SamplingsPage/SamplingActionDropdown.js +0 -189
package/lib/Widgets/Map/Map.js
CHANGED
|
@@ -39,6 +39,8 @@ var _NetworkForSpecificEvent = require("./events/NetworkForSpecificEvent");
|
|
|
39
39
|
|
|
40
40
|
var _PointMarkers = require("./points/PointMarkers");
|
|
41
41
|
|
|
42
|
+
var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
|
|
43
|
+
|
|
42
44
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
45
|
|
|
44
46
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -86,6 +88,18 @@ var Map = function Map(_ref) {
|
|
|
86
88
|
return area && area.length > 0 && Object.keys(area[0]).length > 0;
|
|
87
89
|
};
|
|
88
90
|
|
|
91
|
+
var query = (0, _useQueryURL.default)();
|
|
92
|
+
|
|
93
|
+
var isValidEvent = function isValidEvent() {
|
|
94
|
+
var validEvent = query.get('validEvent');
|
|
95
|
+
|
|
96
|
+
if (validEvent === 'false') {
|
|
97
|
+
return false;
|
|
98
|
+
} else {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
89
103
|
var initializeMap = function initializeMap() {
|
|
90
104
|
// @ts-ignore
|
|
91
105
|
mapRef.current = _leaflet.default.map('map', {
|
|
@@ -164,13 +178,13 @@ var Map = function Map(_ref) {
|
|
|
164
178
|
}
|
|
165
179
|
}, [hoveredEvent]);
|
|
166
180
|
var renderPoints = (0, _react.useMemo)(function () {
|
|
167
|
-
return !eventsData.isFetching && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, {
|
|
181
|
+
return !eventsData.isFetching && mapRef.current !== null && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, {
|
|
168
182
|
map: mapRef.current,
|
|
169
183
|
L: _leaflet.default,
|
|
170
184
|
points: points,
|
|
171
185
|
includeUnmonitoredPoints: includeUnmonitoredPoints
|
|
172
186
|
});
|
|
173
|
-
}, [eventsData.isFetching]);
|
|
187
|
+
}, [eventsData.isFetching, mapRef.current, points]);
|
|
174
188
|
(0, _react.useEffect)(function () {
|
|
175
189
|
initializeMap();
|
|
176
190
|
return function cleanup() {
|
|
@@ -226,9 +240,9 @@ var Map = function Map(_ref) {
|
|
|
226
240
|
L: _leaflet.default,
|
|
227
241
|
points: points,
|
|
228
242
|
hideEdges: hideEdges
|
|
229
|
-
})), children), /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, focusedEvent !== null && /*#__PURE__*/_react.default.createElement("div", {
|
|
243
|
+
})), children), /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, focusedEvent !== null && isValidEvent() && /*#__PURE__*/_react.default.createElement("div", {
|
|
230
244
|
className: 'event-timerange'
|
|
231
|
-
}, /*#__PURE__*/_react.default.createElement(_EventTimeRange.default, null)))), focusedEvent && /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_NetworkForSpecificEvent.NetworkForSpecificEvent, {
|
|
245
|
+
}, /*#__PURE__*/_react.default.createElement(_EventTimeRange.default, null)))), focusedEvent && isValidEvent() && /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_NetworkForSpecificEvent.NetworkForSpecificEvent, {
|
|
232
246
|
event: focusedEvent,
|
|
233
247
|
map: map,
|
|
234
248
|
edges: edges,
|
|
@@ -247,4 +261,4 @@ var Map = function Map(_ref) {
|
|
|
247
261
|
};
|
|
248
262
|
|
|
249
263
|
exports.Map = Map;
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sIm5hbWVzIjpbIk1BUEJPWF9ERUZBVUxUX0tBTkRPX1NUWUxFIiwiTWFwIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiZXZlbnRzIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJmb2N1c2VkRXZlbnRQYXRocyIsImhpZGVFZGdlcyIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIm1hcEJveFN0eWxlIiwiY2hpbGRyZW4iLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJtYXAiLCJtYXBSZWYiLCJkaXNwYXRjaCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsImV2ZW50c0RhdGEiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwibGVuZ3RoIiwiT2JqZWN0Iiwia2V5cyIsImluaXRpYWxpemVNYXAiLCJjdXJyZW50IiwiTCIsImNlbnRlciIsInpvb21TbmFwIiwiem9vbSIsInByZWZlckNhbnZhcyIsImxheWVycyIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwibWF4Wm9vbSIsImlkIiwidGlsZVNpemUiLCJ6b29tT2Zmc2V0IiwidXBkYXRlV2hlblpvb21pbmciLCJ1cGRhdGVXaGVuSWRsZSIsIndoZW5SZWFkeSIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImZpdEJvdW5kcyIsIm9uIiwiZSIsImdldFpvb20iLCJyZW5kZXJOZXR3b3JrIiwicmVuZGVyRXZlbnRQYXRoT25Ib3ZlciIsInJlbmRlclBvaW50cyIsImlzRmV0Y2hpbmciLCJjbGVhbnVwIiwicmVtb3ZlIiwidW5kZWZpbmVkIiwid2F0ZXJBdXRob3JpdHlJZCIsIm1hcEluc3RhbmNlIiwicGFkZGluZyIsImdyb3VwIiwicHJvcGVydHkiLCJfbGF5ZXJzIiwia2FuZG9fb2JqZWN0IiwicHVzaCIsImZlYXR1cmVHcm91cCIsImdldEJvdW5kcyIsInNpZGVuYXZFeHBhbmRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUlBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFuQkE7QUFzQ0EsSUFBTUEsMEJBQTBCLEdBQUcsMkJBQW5DOztBQUNPLElBQU1DLEdBQXVCLEdBQUcsU0FBMUJBLEdBQTBCLE9BZ0JqQztBQUFBLE1BZkpDLEtBZUksUUFmSkEsS0FlSTtBQUFBLE1BZEpDLEtBY0ksUUFkSkEsS0FjSTtBQUFBLE1BYkpDLE1BYUksUUFiSkEsTUFhSTtBQUFBLE1BWkpDLFdBWUksUUFaSkEsV0FZSTtBQUFBLE1BWEpDLE1BV0ksUUFYSkEsTUFXSTtBQUFBLE1BVkpDLGNBVUksUUFWSkEsY0FVSTtBQUFBLE1BVEpDLFlBU0ksUUFUSkEsWUFTSTtBQUFBLG1DQVJKQyxpQkFRSTtBQUFBLE1BUkpBLGlCQVFJLHNDQVJnQixFQVFoQjtBQUFBLDRCQVBKQyxTQU9JO0FBQUEsTUFQSkEsU0FPSSwrQkFQUSxLQU9SO0FBQUEsK0JBTkpDLFlBTUk7QUFBQSxNQU5KQSxZQU1JLGtDQU5XLElBTVg7QUFBQSxtQ0FMSkMsaUJBS0k7QUFBQSxNQUxKQSxpQkFLSSxzQ0FMZ0IsRUFLaEI7QUFBQSxtQ0FKSkMsZ0JBSUk7QUFBQSxNQUpKQSxnQkFJSSxzQ0FKZSxFQUlmO0FBQUEsOEJBSEpDLFdBR0k7QUFBQSxNQUhKQSxXQUdJLGlDQUhVZCwwQkFHVjtBQUFBLE1BRkplLFFBRUksUUFGSkEsUUFFSTtBQUFBLG1DQURKQyx3QkFDSTtBQUFBLE1BREpBLHdCQUNJLHNDQUR1QixLQUN2QjtBQUNKLE1BQVFDLEdBQVIsR0FBZ0JaLFdBQWhCLENBQVFZLEdBQVI7QUFDQSxNQUFNQyxNQUFNLEdBQUcsbUJBQWMsSUFBZCxDQUFmO0FBQ0EsTUFBTUMsUUFBUSxHQUFHLDhCQUFqQjs7QUFDQSxrQkFBd0MscUJBQVMsRUFBVCxDQUF4QztBQUFBO0FBQUEsTUFBT0MsWUFBUDtBQUFBLE1BQXFCQyxlQUFyQjs7QUFDQSxNQUFNQyxVQUFVLEdBQUcsNkJBQ2pCLFVBQUNDLEtBQUQ7QUFBQSxXQUEwQ0EsS0FBSyxDQUFDQyxXQUFoRDtBQUFBLEdBRGlCLENBQW5COztBQUlBLE1BQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLElBQUQsRUFBVTtBQUM1QixXQUFPQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsTUFBTCxHQUFjLENBQXRCLElBQTJCQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsSUFBSSxDQUFDLENBQUQsQ0FBaEIsRUFBcUJDLE1BQXJCLEdBQThCLENBQWhFO0FBQ0QsR0FGRDs7QUFJQSxNQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLEdBQU07QUFDMUI7QUFDQVosSUFBQUEsTUFBTSxDQUFDYSxPQUFQLEdBQWlCQyxpQkFBRWYsR0FBRixDQUFNLEtBQU4sRUFBYTtBQUM1QmdCLE1BQUFBLE1BQU0sRUFBRSxDQUFDLFNBQUQsRUFBWSxTQUFaLENBRG9CO0FBQ0k7QUFDaENDLE1BQUFBLFFBQVEsRUFBRSxDQUZrQjtBQUc1QkMsTUFBQUEsSUFBSSxFQUFFZixZQUhzQjtBQUk1QmdCLE1BQUFBLFlBQVksRUFBRSxJQUpjO0FBSzVCQyxNQUFBQSxNQUFNLEVBQUUsQ0FDTkwsaUJBQUVNLFNBQUYsd0RBQ2tEeEIsV0FEbEQsNElBRUU7QUFDRXlCLFFBQUFBLFdBQVcsRUFDVCx5TkFGSjtBQUdFQyxRQUFBQSxPQUFPLEVBQUUsRUFIWDtBQUlFQyxRQUFBQSxFQUFFLEVBQUUsb0JBSk47QUFLRUMsUUFBQUEsUUFBUSxFQUFFLEdBTFo7QUFNRUMsUUFBQUEsVUFBVSxFQUFFLENBQUMsQ0FOZjtBQU9FQyxRQUFBQSxpQkFBaUIsRUFBRSxLQVByQjtBQVFFQyxRQUFBQSxjQUFjLEVBQUU7QUFSbEIsT0FGRixDQURNO0FBTG9CLEtBQWIsQ0FBakI7QUFzQkEzQixJQUFBQSxNQUFNLENBQUNhLE9BQVAsQ0FBZWUsU0FBZixDQUF5QixZQUFNO0FBQzdCQyxNQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmLFlBQUksQ0FBQzdCLE1BQU0sQ0FBQ2EsT0FBWixFQUFxQjtBQUNuQjtBQUNEOztBQUVELFlBQUk7QUFDRmIsVUFBQUEsTUFBTSxDQUFDYSxPQUFQLENBQWVpQixjQUFmLENBQThCLElBQTlCO0FBQ0QsU0FGRCxDQUVFLE9BQU9DLEdBQVAsRUFBWTtBQUNaQyxVQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBYyxLQUFkLEVBQXFCRixHQUFyQjtBQUNEOztBQUVEOUIsUUFBQUEsUUFBUSxDQUFDLHVCQUFTRCxNQUFNLENBQUNhLE9BQWhCLENBQUQsQ0FBUjtBQUNBWixRQUFBQSxRQUFRLENBQUMsOEJBQWdCLElBQWhCLENBQUQsQ0FBUjtBQUNELE9BYlMsRUFhUCxDQWJPLENBQVY7O0FBY0EsVUFBSUQsTUFBTSxDQUFDYSxPQUFQLElBQWtCTixXQUFXLENBQUNsQixjQUFELENBQWpDLEVBQW1EO0FBQ2pEVyxRQUFBQSxNQUFNLENBQUNhLE9BQVAsQ0FBZXFCLFNBQWYsQ0FBeUI3QyxjQUF6QjtBQUNEO0FBQ0YsS0FsQkQ7QUFvQkFXLElBQUFBLE1BQU0sQ0FBQ2EsT0FBUCxDQUFlc0IsRUFBZixDQUFrQixTQUFsQixFQUE2QixVQUFVQyxDQUFWLEVBQWE7QUFDeEMsVUFBSSxDQUFDcEMsTUFBTSxDQUFDYSxPQUFaLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBQ0QsVUFBSUksSUFBSSxHQUFHakIsTUFBTSxDQUFDYSxPQUFQLENBQWV3QixPQUFmLEVBQVg7QUFDQWxDLE1BQUFBLGVBQWUsQ0FBQ2MsSUFBRCxDQUFmO0FBQ0QsS0FORDtBQU9ELEdBbkREOztBQXFEQSxNQUFNcUIsYUFBYSxHQUFHLG9CQUFRLFlBQU07QUFDbEMsUUFBSTVDLGlCQUFpQixJQUFJQSxpQkFBaUIsQ0FBQ2UsTUFBbEIsR0FBMkIsQ0FBaEQsSUFBcURoQixZQUF6RCxFQUF1RTtBQUNyRSwwQkFDRSx5RUFDRSw2QkFBQyxnREFBRDtBQUNFLFFBQUEsS0FBSyxFQUFFQSxZQURUO0FBRUUsUUFBQSxHQUFHLEVBQUVNLEdBRlA7QUFHRSxRQUFBLEtBQUssRUFBRWQsS0FIVDtBQUlFLFFBQUEsTUFBTSxFQUFFQztBQUpWLFFBREYsZUFPRSw2QkFBQyw0QkFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFYSxHQURQO0FBRUUsUUFBQSxLQUFLLEVBQUVMLGlCQUZUO0FBR0UsUUFBQSxZQUFZLEVBQUVELFlBSGhCO0FBSUUsUUFBQSxDQUFDLEVBQUVxQjtBQUpMLFFBUEYsQ0FERjtBQWdCRCxLQWpCRCxNQWlCTztBQUNMLDBCQUFPLDJEQUFQO0FBQ0Q7QUFDRixHQXJCcUIsRUFxQm5CLENBQUNyQixZQUFELEVBQWVDLGlCQUFmLENBckJtQixDQUF0QjtBQXVCQSxNQUFNNkMsc0JBQXNCLEdBQUcsb0JBQVEsWUFBTTtBQUMzQyxRQUFJOUMsWUFBSixFQUFrQjtBQUNoQiwwQkFDRSw2QkFBQyxrQkFBRDtBQUNFLFFBQUEsS0FBSyxFQUFFQSxZQURUO0FBRUUsUUFBQSxXQUFXLEVBQUVOLFdBRmY7QUFHRSxRQUFBLGlCQUFpQixFQUFFTyxpQkFIckI7QUFJRSxRQUFBLFlBQVksRUFBRUQ7QUFKaEIsUUFERjtBQVFELEtBVEQsTUFTTztBQUNMLDBCQUFPLDJEQUFQO0FBQ0Q7QUFDRixHQWI4QixFQWE1QixDQUFDQSxZQUFELENBYjRCLENBQS9CO0FBZUEsTUFBTStDLFlBQVksR0FBRyxvQkFBUSxZQUFNO0FBQ2pDLFdBQ0UsQ0FBQ3BDLFVBQVUsQ0FBQ3FDLFVBQVosaUJBQ0UsNkJBQUMsMEJBQUQ7QUFDRSxNQUFBLEdBQUcsRUFBRXpDLE1BQU0sQ0FBQ2EsT0FEZDtBQUVFLE1BQUEsQ0FBQyxFQUFFQyxnQkFGTDtBQUdFLE1BQUEsTUFBTSxFQUFFNUIsTUFIVjtBQUlFLE1BQUEsd0JBQXdCLEVBQUVZO0FBSjVCLE1BRko7QUFVRCxHQVhvQixFQVdsQixDQUFDTSxVQUFVLENBQUNxQyxVQUFaLENBWGtCLENBQXJCO0FBYUEsd0JBQVUsWUFBTTtBQUNkN0IsSUFBQUEsYUFBYTtBQUViLFdBQU8sU0FBUzhCLE9BQVQsR0FBbUI7QUFDeEI7QUFDQTFDLE1BQUFBLE1BQU0sQ0FBQ2EsT0FBUCxDQUFlOEIsTUFBZjtBQUNBMUMsTUFBQUEsUUFBUSxDQUFDLHVCQUFTMkMsU0FBVCxDQUFELENBQVI7QUFDRCxLQUpEO0FBS0QsR0FSRCxFQVFHLENBQUN6RCxXQUFXLENBQUMwRCxnQkFBYixDQVJIO0FBVUEsd0JBQVUsWUFBTTtBQUNkLFFBQUksQ0FBQzdDLE1BQU0sQ0FBQ2EsT0FBWixFQUFxQjtBQUNuQkQsTUFBQUEsYUFBYTtBQUNkLEtBRkQsTUFFTztBQUNMLFVBQUlrQyxXQUFnQixHQUFHOUMsTUFBTSxDQUFDYSxPQUE5Qjs7QUFDQSxVQUFJTixXQUFXLENBQUNsQixjQUFELENBQWYsRUFBaUM7QUFDL0J5RCxRQUFBQSxXQUFXLENBQUNaLFNBQVosQ0FBc0I3QyxjQUF0QixFQUFzQztBQUFFMEQsVUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUo7QUFBWCxTQUF0QztBQUNELE9BRkQsTUFFTztBQUNMLFlBQU1DLEtBQVksR0FBRyxFQUFyQjs7QUFFQSxhQUFLLElBQU1DLFFBQVgsSUFBdUJILFdBQVcsQ0FBQ0ksT0FBbkMsRUFBNEM7QUFDMUMsY0FBSUosV0FBVyxDQUFDSSxPQUFaLENBQW9CRCxRQUFwQixFQUE4QkUsWUFBOUIsS0FBK0MsTUFBbkQsRUFBMkQ7QUFDekRILFlBQUFBLEtBQUssQ0FBQ0ksSUFBTixDQUFXTixXQUFXLENBQUNJLE9BQVosQ0FBb0JELFFBQXBCLENBQVg7QUFDRDtBQUNGOztBQUVELFlBQUl2QyxNQUFNLENBQUNDLElBQVAsQ0FBWUcsaUJBQUV1QyxZQUFGLENBQWVMLEtBQWYsRUFBc0JNLFNBQXRCLEVBQVosRUFBK0M3QyxNQUEvQyxLQUEwRCxDQUE5RCxFQUFpRTtBQUMvRHFDLFVBQUFBLFdBQVcsQ0FBQ1osU0FBWixDQUFzQnBCLGlCQUFFdUMsWUFBRixDQUFlTCxLQUFmLEVBQXNCTSxTQUF0QixFQUF0QixFQUF5RDtBQUN2RFAsWUFBQUEsT0FBTyxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU47QUFEOEMsV0FBekQ7QUFHRDtBQUNGOztBQUNERCxNQUFBQSxXQUFXLENBQUNoQixjQUFaLENBQTJCLElBQTNCO0FBQ0Q7QUFDRixHQXhCRCxFQXdCRyxDQUFDekMsY0FBRCxDQXhCSDtBQXlCQSxzQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0U7QUFDRSxJQUFBLFNBQVMsMkJBQ1BGLFdBQVcsQ0FBQ29FLGVBQVosR0FBOEIsRUFBOUIsR0FBbUMsa0NBRDVCO0FBRFgsa0JBS0UsNkJBQUMsc0JBQUQscUJBQ0U7QUFBSyxJQUFBLEVBQUUsRUFBQztBQUFSLElBREYsRUFFR3BFLFdBQVcsQ0FBQ1ksR0FBWixLQUFvQjZDLFNBQXBCLElBQWlDNUMsTUFBTSxDQUFDYSxPQUFQLEtBQW1CLElBQXBELGlCQUNDLDREQUNHMkIsWUFESCxlQUVFLDZCQUFDLDBCQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUV4RCxLQURUO0FBRUUsSUFBQSxHQUFHLEVBQUVnQixNQUFNLENBQUNhLE9BRmQ7QUFHRSxJQUFBLENBQUMsRUFBRUMsZ0JBSEw7QUFJRSxJQUFBLGNBQWMsRUFBRXpCLGNBSmxCO0FBS0UsSUFBQSxPQUFPLEVBQUVhO0FBTFgsSUFGRixlQVVFLDZCQUFDLGNBQUQ7QUFDRSxJQUFBLEtBQUssRUFBRWpCLEtBRFQ7QUFFRSxJQUFBLEdBQUcsRUFBRWUsTUFBTSxDQUFDYSxPQUZkO0FBR0UsSUFBQSxDQUFDLEVBQUVDLGdCQUhMO0FBSUUsSUFBQSxNQUFNLEVBQUU1QixNQUpWO0FBS0UsSUFBQSxTQUFTLEVBQUVNO0FBTGIsSUFWRixDQUhKLEVBdUJHSyxRQXZCSCxDQUxGLGVBK0JFLDZCQUFDLHNCQUFELFFBQ0dQLFlBQVksS0FBSyxJQUFqQixpQkFDQztBQUFLLElBQUEsU0FBUyxFQUFFO0FBQWhCLGtCQUNFLDZCQUFDLHVCQUFELE9BREYsQ0FGSixDQS9CRixDQURGLEVBeUNHQSxZQUFZLGlCQUNYLDZCQUFDLHNCQUFELHFCQUNFLDZCQUFDLGdEQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUVBLFlBRFQ7QUFFRSxJQUFBLEdBQUcsRUFBRVMsR0FGUDtBQUdFLElBQUEsS0FBSyxFQUFFZCxLQUhUO0FBSUUsSUFBQSxNQUFNLEVBQUVDO0FBSlYsSUFERixlQU9FLDZCQUFDLGtCQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUVJLFlBRFQ7QUFFRSxJQUFBLFdBQVcsRUFBRUgsV0FGZjtBQUdFLElBQUEsaUJBQWlCLEVBQUVJLGlCQUhyQjtBQUlFLElBQUEsWUFBWSxFQUFFRDtBQUpoQixJQVBGLEVBY0dDLGlCQUFpQixDQUFDa0IsTUFBbEIsR0FBMkIsQ0FBM0IsaUJBQ0MsNkJBQUMsdUJBQUQ7QUFDRSxJQUFBLEdBQUcsRUFBRVYsR0FEUDtBQUVFLElBQUEsS0FBSyxFQUFFUixpQkFGVDtBQUdFLElBQUEsWUFBWSxFQUFFRCxZQUhoQjtBQUlFLElBQUEsQ0FBQyxFQUFFd0I7QUFKTCxJQWZKLENBMUNKLEVBbUVHckIsWUFBWSxpQkFDWCw2QkFBQyxzQkFBRCxRQUNHOEMsc0JBREgsRUFFR0QsYUFGSCxDQXBFSixDQURGO0FBNEVELENBcFBNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2lkZU5hdkV4cGFuZGVkLCBzdG9yZU1hcCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgRXZlbnRJbmRpY2F0b3IgZnJvbSAnLi9ldmVudHMvRXZlbnRJbmRpY2F0b3InO1xuaW1wb3J0IEV2ZW50UGF0aCBmcm9tICcuL2V2ZW50cy9FdmVudFBhdGgnO1xuaW1wb3J0IEV2ZW50VGltZVJhbmdlIGZyb20gJ3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudF9pbmZvL0V2ZW50VGltZVJhbmdlJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmRpY2F0b3JIb3ZlciBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50SW5kaWNhdG9ySG92ZXInO1xuaW1wb3J0IHsgTmV0d29ya0ZvclNwZWNpZmljRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9OZXR3b3JrRm9yU3BlY2lmaWNFdmVudCc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Jvb3RSZWR1Y2VyJztcblxuaW50ZXJmYWNlIE1hcFByb3BzIHtcbiAgYXJlYXM6IElBcmVhW107XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBwb2ludHM6IElQb2ludFtdO1xuICBldmVudHM6IElFdmVudFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgZm9jdXNlZEV2ZW50UGF0aHM/OiBhbnlbXTtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50UGF0aHM/OiBhbnlbXTtcbiAgaG92ZXJlZEVkZ2VQYXRocz86IGFueVtdO1xuICBtYXBCb3hTdHlsZT86IHN0cmluZztcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPzogYm9vbGVhbjtcbn1cbmNvbnN0IE1BUEJPWF9ERUZBVUxUX0tBTkRPX1NUWUxFID0gJ2NrZndjczM1azRnNjIxYXBrZWM5d3Bva2wnO1xuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBldmVudHMsXG4gIGFyZWFUb0NlbnRlckJ5LFxuICBmb2N1c2VkRXZlbnQsXG4gIGZvY3VzZWRFdmVudFBhdGhzID0gW10sXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBob3ZlcmVkRXZlbnQgPSBudWxsLFxuICBob3ZlcmVkRXZlbnRQYXRocyA9IFtdLFxuICBob3ZlcmVkRWRnZVBhdGhzID0gW10sXG4gIG1hcEJveFN0eWxlID0gTUFQQk9YX0RFRkFVTFRfS0FORE9fU1RZTEUsXG4gIGNoaWxkcmVuLFxuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSBmYWxzZSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8TC5NYXA+KG51bGwpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFttYXBab29tTGV2ZWwsIHNldE1hcFpvb21MZXZlbF0gPSB1c2VTdGF0ZSgxMik7XG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcblxuICBjb25zdCBpc1ZhbGlkQXJlYSA9IChhcmVhKSA9PiB7XG4gICAgcmV0dXJuIGFyZWEgJiYgYXJlYS5sZW5ndGggPiAwICYmIE9iamVjdC5rZXlzKGFyZWFbMF0pLmxlbmd0aCA+IDA7XG4gIH07XG5cbiAgY29uc3QgaW5pdGlhbGl6ZU1hcCA9ICgpID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbWFwUmVmLmN1cnJlbnQgPSBMLm1hcCgnbWFwJywge1xuICAgICAgY2VudGVyOiBbMzIuMTA5MzMzLCAzNC44NTU0OTldLCAvLyBUZWwtQXZpdlxuICAgICAgem9vbVNuYXA6IDEsXG4gICAgICB6b29tOiBtYXBab29tTGV2ZWwsXG4gICAgICBwcmVmZXJDYW52YXM6IHRydWUsXG4gICAgICBsYXllcnM6IFtcbiAgICAgICAgTC50aWxlTGF5ZXIoXG4gICAgICAgICAgYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL25hZGF2LWthbmRvLyR7bWFwQm94U3R5bGV9L3RpbGVzLzI1Ni97en0ve3h9L3t5fUAyeD9hY2Nlc3NfdG9rZW49cGsuZXlKMUlqb2libUZrWVhZdGEyRnVaRzhpTENKaElqb2lZMnB2ZUhwcmRHUnhNSGxtZERONGJEZzBkekp4T1hjNGRTSjkuSi0yb2hxN2o0eUtOYm00Tl8tUDZxd2AsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXR0cmlidXRpb246XG4gICAgICAgICAgICAgICdNYXAgZGF0YSAmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL1wiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgPGEgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvXCI+Q0MtQlktU0E8L2E+LCBJbWFnZXJ5IMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL1wiPk1hcGJveDwvYT4nLFxuICAgICAgICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICAgICAgICBpZDogJ21hcGJveC9zdHJlZXRzLXYxMScsXG4gICAgICAgICAgICB0aWxlU2l6ZTogNTEyLFxuICAgICAgICAgICAgem9vbU9mZnNldDogLTEsXG4gICAgICAgICAgICB1cGRhdGVXaGVuWm9vbWluZzogZmFsc2UsXG4gICAgICAgICAgICB1cGRhdGVXaGVuSWRsZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBtYXBSZWYuY3VycmVudC53aGVuUmVhZHkoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LmludmFsaWRhdGVTaXplKHRydWUpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGF0Y2goc3RvcmVNYXAobWFwUmVmLmN1cnJlbnQpKTtcbiAgICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcbiAgICAgIH0sIDApO1xuICAgICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5maXRCb3VuZHMoYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQub24oJ3pvb21lbmQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgem9vbSA9IG1hcFJlZi5jdXJyZW50LmdldFpvb20oKTtcbiAgICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJOZXR3b3JrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhvdmVyZWRFdmVudFBhdGhzICYmIGhvdmVyZWRFdmVudFBhdGhzLmxlbmd0aCA+IDAgJiYgaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxOZXR3b3JrRm9yU3BlY2lmaWNFdmVudFxuICAgICAgICAgICAgZXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgZWRnZXM9e2VkZ2VzfVxuICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RXZlbnRJbmRpY2F0b3JIb3ZlclxuICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICBwYXRocz17aG92ZXJlZEV2ZW50UGF0aHN9XG4gICAgICAgICAgICBob3ZlcmVkRXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPD48Lz47XG4gICAgfVxuICB9LCBbaG92ZXJlZEV2ZW50LCBob3ZlcmVkRXZlbnRQYXRoc10pO1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aE9uSG92ZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RXZlbnRQYXRoXG4gICAgICAgICAgZXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgZm9jdXNlZEV2ZW50UGF0aHM9e2hvdmVyZWRFdmVudFBhdGhzfVxuICAgICAgICAgIGhvdmVyZWRFdmVudD17aG92ZXJlZEV2ZW50fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDw+PC8+O1xuICAgIH1cbiAgfSwgW2hvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IHJlbmRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAhZXZlbnRzRGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgPFBvaW50TWFya2Vyc1xuICAgICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgICAgTD17TH1cbiAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM9e2luY2x1ZGVVbm1vbml0b3JlZFBvaW50c31cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICApO1xuICB9LCBbZXZlbnRzRGF0YS5pc0ZldGNoaW5nXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0aWFsaXplTWFwKCk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgZGlzcGF0Y2goc3RvcmVNYXAodW5kZWZpbmVkKSk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG1hcEluc3RhbmNlOiBhbnkgPSBtYXBSZWYuY3VycmVudDtcbiAgICAgIGlmIChpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICAgICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5LCB7IHBhZGRpbmc6IFswLCAwXSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdyb3VwOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwSW5zdGFuY2UuX2xheWVycykge1xuICAgICAgICAgIGlmIChtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcmVhJykge1xuICAgICAgICAgICAgZ3JvdXAucHVzaChtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSwge1xuICAgICAgICAgICAgcGFkZGluZzogWzEwMCwgMTAwXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbWFwSW5zdGFuY2UuaW52YWxpZGF0ZVNpemUodHJ1ZSk7XG4gICAgfVxuICB9LCBbYXJlYVRvQ2VudGVyQnldKTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgIG1hcC1jb250YWluZXIgJHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zaWRlbmF2RXhwYW5kZWQgPyAnJyA6ICdtYXAtY29udGFpbmVyLS1zaWRlbmF2LWNvbGxhcHNlZCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxkaXYgaWQ9XCJtYXBcIj48L2Rpdj5cbiAgICAgICAgICB7Z2xvYmFsX2RhdGEubWFwICE9PSB1bmRlZmluZWQgJiYgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge3JlbmRlclBvaW50c31cbiAgICAgICAgICAgICAgPEFyZWFQb2x5Z29uc1xuICAgICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICAgICAgICAgIG1hcFpvb209e21hcFpvb21MZXZlbH1cbiAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICA8RWRnZXNcbiAgICAgICAgICAgICAgICBlZGdlcz17ZWRnZXN9XG4gICAgICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICAgIGhpZGVFZGdlcz17aGlkZUVkZ2VzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIHtmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudC10aW1lcmFuZ2UnfT5cbiAgICAgICAgICAgICAgPEV2ZW50VGltZVJhbmdlIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICA8L2Rpdj5cblxuICAgICAge2ZvY3VzZWRFdmVudCAmJiAoXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxOZXR3b3JrRm9yU3BlY2lmaWNFdmVudFxuICAgICAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgZWRnZXM9e2VkZ2VzfVxuICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RXZlbnRQYXRoXG4gICAgICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50fVxuICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgZm9jdXNlZEV2ZW50UGF0aHM9e2ZvY3VzZWRFdmVudFBhdGhzfVxuICAgICAgICAgICAgZm9jdXNlZEV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtmb2N1c2VkRXZlbnRQYXRocy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxFdmVudEluZGljYXRvclxuICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAgcGF0aHM9e2ZvY3VzZWRFdmVudFBhdGhzfVxuICAgICAgICAgICAgICBmb2N1c2VkRXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgKX1cblxuICAgICAge2hvdmVyZWRFdmVudCAmJiAoXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIHtyZW5kZXJFdmVudFBhdGhPbkhvdmVyfVxuICAgICAgICAgIHtyZW5kZXJOZXR3b3JrfVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sIm5hbWVzIjpbIk1BUEJPWF9ERUZBVUxUX0tBTkRPX1NUWUxFIiwiTWFwIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiZXZlbnRzIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJmb2N1c2VkRXZlbnRQYXRocyIsImhpZGVFZGdlcyIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIm1hcEJveFN0eWxlIiwiY2hpbGRyZW4iLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJtYXAiLCJtYXBSZWYiLCJkaXNwYXRjaCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsImV2ZW50c0RhdGEiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwibGVuZ3RoIiwiT2JqZWN0Iiwia2V5cyIsInF1ZXJ5IiwiaXNWYWxpZEV2ZW50IiwidmFsaWRFdmVudCIsImdldCIsImluaXRpYWxpemVNYXAiLCJjdXJyZW50IiwiTCIsImNlbnRlciIsInpvb21TbmFwIiwiem9vbSIsInByZWZlckNhbnZhcyIsImxheWVycyIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwibWF4Wm9vbSIsImlkIiwidGlsZVNpemUiLCJ6b29tT2Zmc2V0IiwidXBkYXRlV2hlblpvb21pbmciLCJ1cGRhdGVXaGVuSWRsZSIsIndoZW5SZWFkeSIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImZpdEJvdW5kcyIsIm9uIiwiZSIsImdldFpvb20iLCJyZW5kZXJOZXR3b3JrIiwicmVuZGVyRXZlbnRQYXRoT25Ib3ZlciIsInJlbmRlclBvaW50cyIsImlzRmV0Y2hpbmciLCJjbGVhbnVwIiwicmVtb3ZlIiwidW5kZWZpbmVkIiwid2F0ZXJBdXRob3JpdHlJZCIsIm1hcEluc3RhbmNlIiwicGFkZGluZyIsImdyb3VwIiwicHJvcGVydHkiLCJfbGF5ZXJzIiwia2FuZG9fb2JqZWN0IiwicHVzaCIsImZlYXR1cmVHcm91cCIsImdldEJvdW5kcyIsInNpZGVuYXZFeHBhbmRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUlBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFyQkE7QUF1Q0EsSUFBTUEsMEJBQTBCLEdBQUcsMkJBQW5DOztBQUNPLElBQU1DLEdBQXVCLEdBQUcsU0FBMUJBLEdBQTBCLE9BZ0JqQztBQUFBLE1BZkpDLEtBZUksUUFmSkEsS0FlSTtBQUFBLE1BZEpDLEtBY0ksUUFkSkEsS0FjSTtBQUFBLE1BYkpDLE1BYUksUUFiSkEsTUFhSTtBQUFBLE1BWkpDLFdBWUksUUFaSkEsV0FZSTtBQUFBLE1BWEpDLE1BV0ksUUFYSkEsTUFXSTtBQUFBLE1BVkpDLGNBVUksUUFWSkEsY0FVSTtBQUFBLE1BVEpDLFlBU0ksUUFUSkEsWUFTSTtBQUFBLG1DQVJKQyxpQkFRSTtBQUFBLE1BUkpBLGlCQVFJLHNDQVJnQixFQVFoQjtBQUFBLDRCQVBKQyxTQU9JO0FBQUEsTUFQSkEsU0FPSSwrQkFQUSxLQU9SO0FBQUEsK0JBTkpDLFlBTUk7QUFBQSxNQU5KQSxZQU1JLGtDQU5XLElBTVg7QUFBQSxtQ0FMSkMsaUJBS0k7QUFBQSxNQUxKQSxpQkFLSSxzQ0FMZ0IsRUFLaEI7QUFBQSxtQ0FKSkMsZ0JBSUk7QUFBQSxNQUpKQSxnQkFJSSxzQ0FKZSxFQUlmO0FBQUEsOEJBSEpDLFdBR0k7QUFBQSxNQUhKQSxXQUdJLGlDQUhVZCwwQkFHVjtBQUFBLE1BRkplLFFBRUksUUFGSkEsUUFFSTtBQUFBLG1DQURKQyx3QkFDSTtBQUFBLE1BREpBLHdCQUNJLHNDQUR1QixLQUN2QjtBQUNKLE1BQVFDLEdBQVIsR0FBZ0JaLFdBQWhCLENBQVFZLEdBQVI7QUFDQSxNQUFNQyxNQUFNLEdBQUcsbUJBQWMsSUFBZCxDQUFmO0FBQ0EsTUFBTUMsUUFBUSxHQUFHLDhCQUFqQjs7QUFDQSxrQkFBd0MscUJBQVMsRUFBVCxDQUF4QztBQUFBO0FBQUEsTUFBT0MsWUFBUDtBQUFBLE1BQXFCQyxlQUFyQjs7QUFDQSxNQUFNQyxVQUFVLEdBQUcsNkJBQ2pCLFVBQUNDLEtBQUQ7QUFBQSxXQUEwQ0EsS0FBSyxDQUFDQyxXQUFoRDtBQUFBLEdBRGlCLENBQW5COztBQUlBLE1BQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLElBQUQsRUFBVTtBQUM1QixXQUFPQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsTUFBTCxHQUFjLENBQXRCLElBQTJCQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsSUFBSSxDQUFDLENBQUQsQ0FBaEIsRUFBcUJDLE1BQXJCLEdBQThCLENBQWhFO0FBQ0QsR0FGRDs7QUFJQSxNQUFNRyxLQUFLLEdBQUcsMkJBQWQ7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN6QixRQUFJQyxVQUFVLEdBQUdGLEtBQUssQ0FBQ0csR0FBTixDQUFVLFlBQVYsQ0FBakI7O0FBRUEsUUFBSUQsVUFBVSxLQUFLLE9BQW5CLEVBQTRCO0FBQzFCLGFBQU8sS0FBUDtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sSUFBUDtBQUNEO0FBQ0YsR0FSRDs7QUFVQSxNQUFNRSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLEdBQU07QUFDMUI7QUFDQWhCLElBQUFBLE1BQU0sQ0FBQ2lCLE9BQVAsR0FBaUJDLGlCQUFFbkIsR0FBRixDQUFNLEtBQU4sRUFBYTtBQUM1Qm9CLE1BQUFBLE1BQU0sRUFBRSxDQUFDLFNBQUQsRUFBWSxTQUFaLENBRG9CO0FBQ0k7QUFDaENDLE1BQUFBLFFBQVEsRUFBRSxDQUZrQjtBQUc1QkMsTUFBQUEsSUFBSSxFQUFFbkIsWUFIc0I7QUFJNUJvQixNQUFBQSxZQUFZLEVBQUUsSUFKYztBQUs1QkMsTUFBQUEsTUFBTSxFQUFFLENBQ05MLGlCQUFFTSxTQUFGLHdEQUNrRDVCLFdBRGxELDRJQUVFO0FBQ0U2QixRQUFBQSxXQUFXLEVBQ1QseU5BRko7QUFHRUMsUUFBQUEsT0FBTyxFQUFFLEVBSFg7QUFJRUMsUUFBQUEsRUFBRSxFQUFFLG9CQUpOO0FBS0VDLFFBQUFBLFFBQVEsRUFBRSxHQUxaO0FBTUVDLFFBQUFBLFVBQVUsRUFBRSxDQUFDLENBTmY7QUFPRUMsUUFBQUEsaUJBQWlCLEVBQUUsS0FQckI7QUFRRUMsUUFBQUEsY0FBYyxFQUFFO0FBUmxCLE9BRkYsQ0FETTtBQUxvQixLQUFiLENBQWpCO0FBc0JBL0IsSUFBQUEsTUFBTSxDQUFDaUIsT0FBUCxDQUFlZSxTQUFmLENBQXlCLFlBQU07QUFDN0JDLE1BQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2YsWUFBSSxDQUFDakMsTUFBTSxDQUFDaUIsT0FBWixFQUFxQjtBQUNuQjtBQUNEOztBQUVELFlBQUk7QUFDRmpCLFVBQUFBLE1BQU0sQ0FBQ2lCLE9BQVAsQ0FBZWlCLGNBQWYsQ0FBOEIsSUFBOUI7QUFDRCxTQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1pDLFVBQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLEtBQWQsRUFBcUJGLEdBQXJCO0FBQ0Q7O0FBRURsQyxRQUFBQSxRQUFRLENBQUMsdUJBQVNELE1BQU0sQ0FBQ2lCLE9BQWhCLENBQUQsQ0FBUjtBQUNBaEIsUUFBQUEsUUFBUSxDQUFDLDhCQUFnQixJQUFoQixDQUFELENBQVI7QUFDRCxPQWJTLEVBYVAsQ0FiTyxDQUFWOztBQWNBLFVBQUlELE1BQU0sQ0FBQ2lCLE9BQVAsSUFBa0JWLFdBQVcsQ0FBQ2xCLGNBQUQsQ0FBakMsRUFBbUQ7QUFDakRXLFFBQUFBLE1BQU0sQ0FBQ2lCLE9BQVAsQ0FBZXFCLFNBQWYsQ0FBeUJqRCxjQUF6QjtBQUNEO0FBQ0YsS0FsQkQ7QUFvQkFXLElBQUFBLE1BQU0sQ0FBQ2lCLE9BQVAsQ0FBZXNCLEVBQWYsQ0FBa0IsU0FBbEIsRUFBNkIsVUFBVUMsQ0FBVixFQUFhO0FBQ3hDLFVBQUksQ0FBQ3hDLE1BQU0sQ0FBQ2lCLE9BQVosRUFBcUI7QUFDbkI7QUFDRDs7QUFDRCxVQUFJSSxJQUFJLEdBQUdyQixNQUFNLENBQUNpQixPQUFQLENBQWV3QixPQUFmLEVBQVg7QUFDQXRDLE1BQUFBLGVBQWUsQ0FBQ2tCLElBQUQsQ0FBZjtBQUNELEtBTkQ7QUFPRCxHQW5ERDs7QUFxREEsTUFBTXFCLGFBQWEsR0FBRyxvQkFBUSxZQUFNO0FBQ2xDLFFBQUloRCxpQkFBaUIsSUFBSUEsaUJBQWlCLENBQUNlLE1BQWxCLEdBQTJCLENBQWhELElBQXFEaEIsWUFBekQsRUFBdUU7QUFDckUsMEJBQ0UseUVBQ0UsNkJBQUMsZ0RBQUQ7QUFDRSxRQUFBLEtBQUssRUFBRUEsWUFEVDtBQUVFLFFBQUEsR0FBRyxFQUFFTSxHQUZQO0FBR0UsUUFBQSxLQUFLLEVBQUVkLEtBSFQ7QUFJRSxRQUFBLE1BQU0sRUFBRUM7QUFKVixRQURGLGVBT0UsNkJBQUMsNEJBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRWEsR0FEUDtBQUVFLFFBQUEsS0FBSyxFQUFFTCxpQkFGVDtBQUdFLFFBQUEsWUFBWSxFQUFFRCxZQUhoQjtBQUlFLFFBQUEsQ0FBQyxFQUFFeUI7QUFKTCxRQVBGLENBREY7QUFnQkQsS0FqQkQsTUFpQk87QUFDTCwwQkFBTywyREFBUDtBQUNEO0FBQ0YsR0FyQnFCLEVBcUJuQixDQUFDekIsWUFBRCxFQUFlQyxpQkFBZixDQXJCbUIsQ0FBdEI7QUF1QkEsTUFBTWlELHNCQUFzQixHQUFHLG9CQUFRLFlBQU07QUFDM0MsUUFBSWxELFlBQUosRUFBa0I7QUFDaEIsMEJBQ0UsNkJBQUMsa0JBQUQ7QUFDRSxRQUFBLEtBQUssRUFBRUEsWUFEVDtBQUVFLFFBQUEsV0FBVyxFQUFFTixXQUZmO0FBR0UsUUFBQSxpQkFBaUIsRUFBRU8saUJBSHJCO0FBSUUsUUFBQSxZQUFZLEVBQUVEO0FBSmhCLFFBREY7QUFRRCxLQVRELE1BU087QUFDTCwwQkFBTywyREFBUDtBQUNEO0FBQ0YsR0FiOEIsRUFhNUIsQ0FBQ0EsWUFBRCxDQWI0QixDQUEvQjtBQWVBLE1BQU1tRCxZQUFZLEdBQUcsb0JBQVEsWUFBTTtBQUNqQyxXQUNFLENBQUN4QyxVQUFVLENBQUN5QyxVQUFaLElBQ0E3QyxNQUFNLENBQUNpQixPQUFQLEtBQW1CLElBRG5CLGlCQUVFLDZCQUFDLDBCQUFEO0FBQ0UsTUFBQSxHQUFHLEVBQUVqQixNQUFNLENBQUNpQixPQURkO0FBRUUsTUFBQSxDQUFDLEVBQUVDLGdCQUZMO0FBR0UsTUFBQSxNQUFNLEVBQUVoQyxNQUhWO0FBSUUsTUFBQSx3QkFBd0IsRUFBRVk7QUFKNUIsTUFISjtBQVdELEdBWm9CLEVBWWxCLENBQUNNLFVBQVUsQ0FBQ3lDLFVBQVosRUFBd0I3QyxNQUFNLENBQUNpQixPQUEvQixFQUF3Qy9CLE1BQXhDLENBWmtCLENBQXJCO0FBY0Esd0JBQVUsWUFBTTtBQUNkOEIsSUFBQUEsYUFBYTtBQUViLFdBQU8sU0FBUzhCLE9BQVQsR0FBbUI7QUFDeEI7QUFDQTlDLE1BQUFBLE1BQU0sQ0FBQ2lCLE9BQVAsQ0FBZThCLE1BQWY7QUFDQTlDLE1BQUFBLFFBQVEsQ0FBQyx1QkFBUytDLFNBQVQsQ0FBRCxDQUFSO0FBQ0QsS0FKRDtBQUtELEdBUkQsRUFRRyxDQUFDN0QsV0FBVyxDQUFDOEQsZ0JBQWIsQ0FSSDtBQVVBLHdCQUFVLFlBQU07QUFDZCxRQUFJLENBQUNqRCxNQUFNLENBQUNpQixPQUFaLEVBQXFCO0FBQ25CRCxNQUFBQSxhQUFhO0FBQ2QsS0FGRCxNQUVPO0FBQ0wsVUFBSWtDLFdBQWdCLEdBQUdsRCxNQUFNLENBQUNpQixPQUE5Qjs7QUFDQSxVQUFJVixXQUFXLENBQUNsQixjQUFELENBQWYsRUFBaUM7QUFDL0I2RCxRQUFBQSxXQUFXLENBQUNaLFNBQVosQ0FBc0JqRCxjQUF0QixFQUFzQztBQUFFOEQsVUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUo7QUFBWCxTQUF0QztBQUNELE9BRkQsTUFFTztBQUNMLFlBQU1DLEtBQVksR0FBRyxFQUFyQjs7QUFFQSxhQUFLLElBQU1DLFFBQVgsSUFBdUJILFdBQVcsQ0FBQ0ksT0FBbkMsRUFBNEM7QUFDMUMsY0FBSUosV0FBVyxDQUFDSSxPQUFaLENBQW9CRCxRQUFwQixFQUE4QkUsWUFBOUIsS0FBK0MsTUFBbkQsRUFBMkQ7QUFDekRILFlBQUFBLEtBQUssQ0FBQ0ksSUFBTixDQUFXTixXQUFXLENBQUNJLE9BQVosQ0FBb0JELFFBQXBCLENBQVg7QUFDRDtBQUNGOztBQUVELFlBQUkzQyxNQUFNLENBQUNDLElBQVAsQ0FBWU8saUJBQUV1QyxZQUFGLENBQWVMLEtBQWYsRUFBc0JNLFNBQXRCLEVBQVosRUFBK0NqRCxNQUEvQyxLQUEwRCxDQUE5RCxFQUFpRTtBQUMvRHlDLFVBQUFBLFdBQVcsQ0FBQ1osU0FBWixDQUFzQnBCLGlCQUFFdUMsWUFBRixDQUFlTCxLQUFmLEVBQXNCTSxTQUF0QixFQUF0QixFQUF5RDtBQUN2RFAsWUFBQUEsT0FBTyxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU47QUFEOEMsV0FBekQ7QUFHRDtBQUNGOztBQUNERCxNQUFBQSxXQUFXLENBQUNoQixjQUFaLENBQTJCLElBQTNCO0FBQ0Q7QUFDRixHQXhCRCxFQXdCRyxDQUFDN0MsY0FBRCxDQXhCSDtBQXlCQSxzQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0U7QUFDRSxJQUFBLFNBQVMsMkJBQ1BGLFdBQVcsQ0FBQ3dFLGVBQVosR0FBOEIsRUFBOUIsR0FBbUMsa0NBRDVCO0FBRFgsa0JBS0UsNkJBQUMsc0JBQUQscUJBQ0U7QUFBSyxJQUFBLEVBQUUsRUFBQztBQUFSLElBREYsRUFFR3hFLFdBQVcsQ0FBQ1ksR0FBWixLQUFvQmlELFNBQXBCLElBQWlDaEQsTUFBTSxDQUFDaUIsT0FBUCxLQUFtQixJQUFwRCxpQkFDQyw0REFDRzJCLFlBREgsZUFFRSw2QkFBQywwQkFBRDtBQUNFLElBQUEsS0FBSyxFQUFFNUQsS0FEVDtBQUVFLElBQUEsR0FBRyxFQUFFZ0IsTUFBTSxDQUFDaUIsT0FGZDtBQUdFLElBQUEsQ0FBQyxFQUFFQyxnQkFITDtBQUlFLElBQUEsY0FBYyxFQUFFN0IsY0FKbEI7QUFLRSxJQUFBLE9BQU8sRUFBRWE7QUFMWCxJQUZGLGVBVUUsNkJBQUMsY0FBRDtBQUNFLElBQUEsS0FBSyxFQUFFakIsS0FEVDtBQUVFLElBQUEsR0FBRyxFQUFFZSxNQUFNLENBQUNpQixPQUZkO0FBR0UsSUFBQSxDQUFDLEVBQUVDLGdCQUhMO0FBSUUsSUFBQSxNQUFNLEVBQUVoQyxNQUpWO0FBS0UsSUFBQSxTQUFTLEVBQUVNO0FBTGIsSUFWRixDQUhKLEVBdUJHSyxRQXZCSCxDQUxGLGVBK0JFLDZCQUFDLHNCQUFELFFBQ0dQLFlBQVksS0FBSyxJQUFqQixJQUF5QnVCLFlBQVksRUFBckMsaUJBQ0M7QUFBSyxJQUFBLFNBQVMsRUFBRTtBQUFoQixrQkFDRSw2QkFBQyx1QkFBRCxPQURGLENBRkosQ0EvQkYsQ0FERixFQXlDR3ZCLFlBQVksSUFBSXVCLFlBQVksRUFBNUIsaUJBQ0MsNkJBQUMsc0JBQUQscUJBQ0UsNkJBQUMsZ0RBQUQ7QUFDRSxJQUFBLEtBQUssRUFBRXZCLFlBRFQ7QUFFRSxJQUFBLEdBQUcsRUFBRVMsR0FGUDtBQUdFLElBQUEsS0FBSyxFQUFFZCxLQUhUO0FBSUUsSUFBQSxNQUFNLEVBQUVDO0FBSlYsSUFERixlQU9FLDZCQUFDLGtCQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUVJLFlBRFQ7QUFFRSxJQUFBLFdBQVcsRUFBRUgsV0FGZjtBQUdFLElBQUEsaUJBQWlCLEVBQUVJLGlCQUhyQjtBQUlFLElBQUEsWUFBWSxFQUFFRDtBQUpoQixJQVBGLEVBY0dDLGlCQUFpQixDQUFDa0IsTUFBbEIsR0FBMkIsQ0FBM0IsaUJBQ0MsNkJBQUMsdUJBQUQ7QUFDRSxJQUFBLEdBQUcsRUFBRVYsR0FEUDtBQUVFLElBQUEsS0FBSyxFQUFFUixpQkFGVDtBQUdFLElBQUEsWUFBWSxFQUFFRCxZQUhoQjtBQUlFLElBQUEsQ0FBQyxFQUFFNEI7QUFKTCxJQWZKLENBMUNKLEVBbUVHekIsWUFBWSxpQkFDWCw2QkFBQyxzQkFBRCxRQUNHa0Qsc0JBREgsRUFFR0QsYUFGSCxDQXBFSixDQURGO0FBNEVELENBaFFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2lkZU5hdkV4cGFuZGVkLCBzdG9yZU1hcCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgRXZlbnRJbmRpY2F0b3IgZnJvbSAnLi9ldmVudHMvRXZlbnRJbmRpY2F0b3InO1xuaW1wb3J0IEV2ZW50UGF0aCBmcm9tICcuL2V2ZW50cy9FdmVudFBhdGgnO1xuaW1wb3J0IEV2ZW50VGltZVJhbmdlIGZyb20gJ3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudF9pbmZvL0V2ZW50VGltZVJhbmdlJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmRpY2F0b3JIb3ZlciBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50SW5kaWNhdG9ySG92ZXInO1xuaW1wb3J0IHsgTmV0d29ya0ZvclNwZWNpZmljRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9OZXR3b3JrRm9yU3BlY2lmaWNFdmVudCc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICcuLi8uLi9ob29rcy91c2VRdWVyeVVSTCc7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlczogSUVkZ2VbXTtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgZXZlbnRzOiBJRXZlbnRbXTtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgYXJlYVRvQ2VudGVyQnk/OiBhbnk7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGZvY3VzZWRFdmVudFBhdGhzPzogYW55W107XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIGhvdmVyZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhvdmVyZWRFdmVudFBhdGhzPzogYW55W107XG4gIGhvdmVyZWRFZGdlUGF0aHM/OiBhbnlbXTtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG59XG5jb25zdCBNQVBCT1hfREVGQVVMVF9LQU5ET19TVFlMRSA9ICdja2Z3Y3MzNWs0ZzYyMWFwa2VjOXdwb2tsJztcbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIGFyZWFzLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBnbG9iYWxfZGF0YSxcbiAgZXZlbnRzLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBmb2N1c2VkRXZlbnRQYXRocyA9IFtdLFxuICBoaWRlRWRnZXMgPSBmYWxzZSxcbiAgaG92ZXJlZEV2ZW50ID0gbnVsbCxcbiAgaG92ZXJlZEV2ZW50UGF0aHMgPSBbXSxcbiAgaG92ZXJlZEVkZ2VQYXRocyA9IFtdLFxuICBtYXBCb3hTdHlsZSA9IE1BUEJPWF9ERUZBVUxUX0tBTkRPX1NUWUxFLFxuICBjaGlsZHJlbixcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwPihudWxsKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMTIpO1xuICBjb25zdCBldmVudHNEYXRhID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUuZXZlbnRzX2RhdGEsXG4gICk7XG5cbiAgY29uc3QgaXNWYWxpZEFyZWEgPSAoYXJlYSkgPT4ge1xuICAgIHJldHVybiBhcmVhICYmIGFyZWEubGVuZ3RoID4gMCAmJiBPYmplY3Qua2V5cyhhcmVhWzBdKS5sZW5ndGggPiAwO1xuICB9O1xuXG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgaXNWYWxpZEV2ZW50ID0gKCkgPT4ge1xuICAgIGxldCB2YWxpZEV2ZW50ID0gcXVlcnkuZ2V0KCd2YWxpZEV2ZW50Jyk7XG5cbiAgICBpZiAodmFsaWRFdmVudCA9PT0gJ2ZhbHNlJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaW5pdGlhbGl6ZU1hcCA9ICgpID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbWFwUmVmLmN1cnJlbnQgPSBMLm1hcCgnbWFwJywge1xuICAgICAgY2VudGVyOiBbMzIuMTA5MzMzLCAzNC44NTU0OTldLCAvLyBUZWwtQXZpdlxuICAgICAgem9vbVNuYXA6IDEsXG4gICAgICB6b29tOiBtYXBab29tTGV2ZWwsXG4gICAgICBwcmVmZXJDYW52YXM6IHRydWUsXG4gICAgICBsYXllcnM6IFtcbiAgICAgICAgTC50aWxlTGF5ZXIoXG4gICAgICAgICAgYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL25hZGF2LWthbmRvLyR7bWFwQm94U3R5bGV9L3RpbGVzLzI1Ni97en0ve3h9L3t5fUAyeD9hY2Nlc3NfdG9rZW49cGsuZXlKMUlqb2libUZrWVhZdGEyRnVaRzhpTENKaElqb2lZMnB2ZUhwcmRHUnhNSGxtZERONGJEZzBkekp4T1hjNGRTSjkuSi0yb2hxN2o0eUtOYm00Tl8tUDZxd2AsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXR0cmlidXRpb246XG4gICAgICAgICAgICAgICdNYXAgZGF0YSAmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL1wiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgPGEgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvXCI+Q0MtQlktU0E8L2E+LCBJbWFnZXJ5IMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL1wiPk1hcGJveDwvYT4nLFxuICAgICAgICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICAgICAgICBpZDogJ21hcGJveC9zdHJlZXRzLXYxMScsXG4gICAgICAgICAgICB0aWxlU2l6ZTogNTEyLFxuICAgICAgICAgICAgem9vbU9mZnNldDogLTEsXG4gICAgICAgICAgICB1cGRhdGVXaGVuWm9vbWluZzogZmFsc2UsXG4gICAgICAgICAgICB1cGRhdGVXaGVuSWRsZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBtYXBSZWYuY3VycmVudC53aGVuUmVhZHkoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LmludmFsaWRhdGVTaXplKHRydWUpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGF0Y2goc3RvcmVNYXAobWFwUmVmLmN1cnJlbnQpKTtcbiAgICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcbiAgICAgIH0sIDApO1xuICAgICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5maXRCb3VuZHMoYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQub24oJ3pvb21lbmQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgem9vbSA9IG1hcFJlZi5jdXJyZW50LmdldFpvb20oKTtcbiAgICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJOZXR3b3JrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhvdmVyZWRFdmVudFBhdGhzICYmIGhvdmVyZWRFdmVudFBhdGhzLmxlbmd0aCA+IDAgJiYgaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxOZXR3b3JrRm9yU3BlY2lmaWNFdmVudFxuICAgICAgICAgICAgZXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgZWRnZXM9e2VkZ2VzfVxuICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RXZlbnRJbmRpY2F0b3JIb3ZlclxuICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICBwYXRocz17aG92ZXJlZEV2ZW50UGF0aHN9XG4gICAgICAgICAgICBob3ZlcmVkRXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPD48Lz47XG4gICAgfVxuICB9LCBbaG92ZXJlZEV2ZW50LCBob3ZlcmVkRXZlbnRQYXRoc10pO1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aE9uSG92ZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RXZlbnRQYXRoXG4gICAgICAgICAgZXZlbnQ9e2hvdmVyZWRFdmVudH1cbiAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgZm9jdXNlZEV2ZW50UGF0aHM9e2hvdmVyZWRFdmVudFBhdGhzfVxuICAgICAgICAgIGhvdmVyZWRFdmVudD17aG92ZXJlZEV2ZW50fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDw+PC8+O1xuICAgIH1cbiAgfSwgW2hvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IHJlbmRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAhZXZlbnRzRGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJiAoXG4gICAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPXtpbmNsdWRlVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgKTtcbiAgfSwgW2V2ZW50c0RhdGEuaXNGZXRjaGluZywgbWFwUmVmLmN1cnJlbnQsIHBvaW50c10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5pdGlhbGl6ZU1hcCgpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmUoKTtcbiAgICAgIGRpc3BhdGNoKHN0b3JlTWFwKHVuZGVmaW5lZCkpO1xuICAgIH07XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsaXplTWFwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBtYXBJbnN0YW5jZTogYW55ID0gbWFwUmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoaXNWYWxpZEFyZWEoYXJlYVRvQ2VudGVyQnkpKSB7XG4gICAgICAgIG1hcEluc3RhbmNlLmZpdEJvdW5kcyhhcmVhVG9DZW50ZXJCeSwgeyBwYWRkaW5nOiBbMCwgMF0gfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBncm91cDogYW55W10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIG1hcEluc3RhbmNlLl9sYXllcnMpIHtcbiAgICAgICAgICBpZiAobWFwSW5zdGFuY2UuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnQXJlYScpIHtcbiAgICAgICAgICAgIGdyb3VwLnB1c2gobWFwSW5zdGFuY2UuX2xheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCkpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIG1hcEluc3RhbmNlLmZpdEJvdW5kcyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCksIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IFsxMDAsIDEwMF0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG1hcEluc3RhbmNlLmludmFsaWRhdGVTaXplKHRydWUpO1xuICAgIH1cbiAgfSwgW2FyZWFUb0NlbnRlckJ5XSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJrZC1tYXAtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCBtYXAtY29udGFpbmVyICR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnbWFwLWNvbnRhaW5lci0tc2lkZW5hdi1jb2xsYXBzZWQnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8ZGl2IGlkPVwibWFwXCI+PC9kaXY+XG4gICAgICAgICAge2dsb2JhbF9kYXRhLm1hcCAhPT0gdW5kZWZpbmVkICYmIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHtyZW5kZXJQb2ludHN9XG4gICAgICAgICAgICAgIDxBcmVhUG9seWdvbnNcbiAgICAgICAgICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgICAgICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPEVkZ2VzXG4gICAgICAgICAgICAgICAgZWRnZXM9e2VkZ2VzfVxuICAgICAgICAgICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgICBoaWRlRWRnZXM9e2hpZGVFZGdlc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cblxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICB7Zm9jdXNlZEV2ZW50ICE9PSBudWxsICYmIGlzVmFsaWRFdmVudCgpICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtdGltZXJhbmdlJ30+XG4gICAgICAgICAgICAgIDxFdmVudFRpbWVSYW5nZSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtmb2N1c2VkRXZlbnQgJiYgaXNWYWxpZEV2ZW50KCkgJiYgKFxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8TmV0d29ya0ZvclNwZWNpZmljRXZlbnRcbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgIGVkZ2VzPXtlZGdlc31cbiAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEV2ZW50UGF0aFxuICAgICAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgIGZvY3VzZWRFdmVudFBhdGhzPXtmb2N1c2VkRXZlbnRQYXRoc31cbiAgICAgICAgICAgIGZvY3VzZWRFdmVudD17Zm9jdXNlZEV2ZW50fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7Zm9jdXNlZEV2ZW50UGF0aHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8RXZlbnRJbmRpY2F0b3JcbiAgICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICAgIHBhdGhzPXtmb2N1c2VkRXZlbnRQYXRoc31cbiAgICAgICAgICAgICAgZm9jdXNlZEV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICl9XG5cbiAgICAgIHtob3ZlcmVkRXZlbnQgJiYgKFxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICB7cmVuZGVyRXZlbnRQYXRoT25Ib3Zlcn1cbiAgICAgICAgICB7cmVuZGVyTmV0d29ya31cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|
|
@@ -44,11 +44,6 @@ var AreaPolygons = function AreaPolygons(props) {
|
|
|
44
44
|
map.fitBounds(L.featureGroup(group).getBounds(), {
|
|
45
45
|
padding: [100, 100]
|
|
46
46
|
});
|
|
47
|
-
setTimeout(function () {
|
|
48
|
-
map.fitBounds(L.featureGroup(group).getBounds(), {
|
|
49
|
-
padding: [0, 0]
|
|
50
|
-
});
|
|
51
|
-
}, 2000);
|
|
52
47
|
setShouldFly(false);
|
|
53
48
|
}
|
|
54
49
|
|
|
@@ -67,4 +62,4 @@ var AreaPolygons = function AreaPolygons(props) {
|
|
|
67
62
|
};
|
|
68
63
|
|
|
69
64
|
exports.AreaPolygons = AreaPolygons;
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9hcmVhcy9BcmVhUG9seWdvbnMudHN4Il0sIm5hbWVzIjpbIkFyZWFQb2x5Z29ucyIsInByb3BzIiwiTCIsImFyZWFzIiwibWFwIiwibWFwWm9vbSIsImFyZWFUb0NlbnRlckJ5IiwiZ3JvdXAiLCJzaG91bGRGbHkiLCJzZXRTaG91bGRGbHkiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwibGVuZ3RoIiwiZml0Qm91bmRzIiwiZmVhdHVyZUdyb3VwIiwiZ2V0Qm91bmRzIiwicGFkZGluZyIsImludmFsaWRhdGVTaXplIiwiYXJlYSIsImFyZWFfaWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBVU8sSUFBTUEsWUFBNkIsR0FBRyxTQUFoQ0EsWUFBZ0MsQ0FBQ0MsS0FBRCxFQUFXO0FBQ3RELE1BQVFDLENBQVIsR0FBbURELEtBQW5ELENBQVFDLENBQVI7QUFBQSxNQUFXQyxLQUFYLEdBQW1ERixLQUFuRCxDQUFXRSxLQUFYO0FBQUEsTUFBa0JDLEdBQWxCLEdBQW1ESCxLQUFuRCxDQUFrQkcsR0FBbEI7QUFBQSxNQUF1QkMsT0FBdkIsR0FBbURKLEtBQW5ELENBQXVCSSxPQUF2QjtBQUFBLE1BQWdDQyxjQUFoQyxHQUFtREwsS0FBbkQsQ0FBZ0NLLGNBQWhDO0FBQ0EsTUFBTUMsS0FBWSxHQUFHLEVBQXJCOztBQUNBLGtCQUFrQyxxQkFBUyxJQUFULENBQWxDO0FBQUE7QUFBQSxNQUFPQyxTQUFQO0FBQUEsTUFBa0JDLFlBQWxCOztBQUVBLHdCQUFVLFlBQU07QUFDZCxRQUFJRCxTQUFKLEVBQWU7QUFDYixXQUFLLElBQU1FLFFBQVgsSUFBdUJOLEdBQUcsQ0FBQ08sT0FBM0IsRUFBb0M7QUFDbEMsWUFBSVAsR0FBRyxDQUFDTyxPQUFKLENBQVlELFFBQVosRUFBc0JFLFlBQXRCLEtBQXVDLE1BQTNDLEVBQW1EO0FBQ2pETCxVQUFBQSxLQUFLLENBQUNNLElBQU4sQ0FBV1QsR0FBRyxDQUFDTyxPQUFKLENBQVlELFFBQVosQ0FBWDtBQUNEO0FBQ0Y7O0FBRUQsVUFBSUgsS0FBSyxDQUFDTyxNQUFOLEtBQWlCLENBQWpCLElBQXNCLENBQUNSLGNBQTNCLEVBQTJDO0FBQ3pDRixRQUFBQSxHQUFHLENBQUNXLFNBQUosQ0FBY2IsQ0FBQyxDQUFDYyxZQUFGLENBQWVULEtBQWYsRUFBc0JVLFNBQXRCLEVBQWQsRUFBaUQ7QUFDL0NDLFVBQUFBLE9BQU8sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOO0FBRHNDLFNBQWpEO0FBR0FULFFBQUFBLFlBQVksQ0FBQyxLQUFELENBQVo7QUFDRDs7QUFFREwsTUFBQUEsR0FBRyxDQUFDZSxjQUFKLENBQW1CLElBQW5CO0FBQ0Q7QUFDRixHQWpCRCxFQWlCRyxDQUFDaEIsS0FBRCxDQWpCSDtBQW1CQSxzQkFDRSw0REFDR0EsS0FBSyxDQUFDVyxNQUFOLEtBQWlCLENBQWpCLElBQ0NYLEtBQUssQ0FBQ1csTUFBTixLQUFpQixDQURsQixJQUVDWCxLQUFLLENBQUNDLEdBQU4sQ0FBVSxVQUFDZ0IsSUFBRDtBQUFBLHdCQUNSLDZCQUFDLG9CQUFEO0FBQ0UsTUFBQSxJQUFJLEVBQUVBLElBRFI7QUFFRSxNQUFBLEdBQUcsRUFBRWhCLEdBRlA7QUFHRSxNQUFBLENBQUMsRUFBRUYsQ0FITDtBQUlFLE1BQUEsR0FBRyxFQUFFa0IsSUFBSSxDQUFDQyxPQUpaO0FBS0UsTUFBQSxPQUFPLEVBQUVoQjtBQUxYLE1BRFE7QUFBQSxHQUFWLENBSEosQ0FERjtBQWVELENBdkNNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IEFyZWFQb2x5Z29uIGZyb20gJy4vQXJlYVBvbHlnb24nO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBhcmVhczogSUFyZWFbXTtcbiAgbWFwWm9vbTogbnVtYmVyO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBBcmVhUG9seWdvbnM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIGFyZWFzLCBtYXAsIG1hcFpvb20sIGFyZWFUb0NlbnRlckJ5IH0gPSBwcm9wcztcbiAgY29uc3QgZ3JvdXA6IGFueVtdID0gW107XG4gIGNvbnN0IFtzaG91bGRGbHksIHNldFNob3VsZEZseV0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaG91bGRGbHkpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwLl9sYXllcnMpIHtcbiAgICAgICAgaWYgKG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcmVhJykge1xuICAgICAgICAgIGdyb3VwLnB1c2gobWFwLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZ3JvdXAubGVuZ3RoICE9PSAwICYmICFhcmVhVG9DZW50ZXJCeSkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSwge1xuICAgICAgICAgIHBhZGRpbmc6IFsxMDAsIDEwMF0sXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRTaG91bGRGbHkoZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBtYXAuaW52YWxpZGF0ZVNpemUodHJ1ZSk7XG4gICAgfVxuICB9LCBbYXJlYXNdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7YXJlYXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGFyZWFzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICBhcmVhcy5tYXAoKGFyZWE6IElBcmVhKSA9PiAoXG4gICAgICAgICAgPEFyZWFQb2x5Z29uXG4gICAgICAgICAgICBhcmVhPXthcmVhfVxuICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAga2V5PXthcmVhLmFyZWFfaWR9XG4gICAgICAgICAgICBtYXBab29tPXttYXBab29tfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgIDwvPlxuICApO1xufTtcbiJdfQ==
|
|
@@ -44,10 +44,7 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
44
44
|
var sourcePoint = points.find(function (point) {
|
|
45
45
|
return point.id === upstreamEdge.source_point_id;
|
|
46
46
|
});
|
|
47
|
-
|
|
48
|
-
if (sourcePoint && !sourcePoint.has_device) {
|
|
49
|
-
edgesToDraw.push(upstreamEdge);
|
|
50
|
-
}
|
|
47
|
+
if (sourcePoint) edgesToDraw.push(upstreamEdge);
|
|
51
48
|
}
|
|
52
49
|
}
|
|
53
50
|
|
|
@@ -140,4 +137,4 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
140
137
|
};
|
|
141
138
|
|
|
142
139
|
exports.NetworkForSpecificEvent = NetworkForSpecificEvent;
|
|
143
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiZWRnZXNUb0RyYXciLCJmaXJzdEVkZ2UiLCJmaW5kIiwiZWRnZSIsImlkIiwicGF0aCIsImVkZ2VfaWQiLCJ1bmRlZmluZWQiLCJ1cHN0cmVhbUVkZ2UiLCJ0YXJnZXRfcG9pbnRfaWQiLCJzb3VyY2VfcG9pbnRfaWQiLCJzb3VyY2VQb2ludCIsInBvaW50IiwiaGFzX2RldmljZSIsInB1c2giLCJmb3JFYWNoIiwicGFydCIsIm1hdGNoZWRQYXJ0IiwiZHJhd01hbmhvbGVJY29uIiwicG9pbnRJY29uIiwiTCIsImljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJncm91cCIsIm5hbWUiLCJkcmF3TmV0d29yayIsImxhdGxuZ3MiLCJzaGFwZV9kYXRhIiwiZGF0YSIsImxhdCIsImxuZyIsInBvbHlsaW5lQmFjayIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwibGVuZ3RoIiwidGFyZ2V0UG9pbnQiLCJiaW5kUG9wdXAiLCJkaXN0YW5jZSIsImJyaW5nVG9Gcm9udCIsInBvbHlsaW5lRnJvbnQiLCJjbGVhbnVwIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwicmVtb3ZlTGF5ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7Ozs7OztBQVJBO0FBaUJPLElBQU1BLHVCQUF5QyxHQUFHLFNBQTVDQSx1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QyxlQUZwQyxFQUdFO0FBQ0ExRCxVQUFBQSxHQUFHLENBQUMyRCxXQUFKLENBQWdCSixNQUFNLENBQUNFLFFBQUQsQ0FBdEI7QUFDRDtBQUNGO0FBQ0YsS0FYRDtBQVlELEdBZkQsRUFlRyxDQUFDNUQsS0FBRCxDQWZIO0FBaUJBLHNCQUFPLDJEQUFQO0FBQ0QsQ0FsSE0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgTCwgeyBNYXAgYXMgTGVhZmxldE1hcCB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEVkZ2VQYXRocyB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBlZGdlczogSUVkZ2VbXTtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgbWFwOiBMZWFmbGV0TWFwIHwgYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IE5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgZXZlbnQsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIG1hcCxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBsZXQgZWRnZXNUb0RyYXc6IElFZGdlW10gPSBbXTtcbiAgbGV0IGZpcnN0RWRnZSA9IGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG4gIGlmIChmaXJzdEVkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCB1cHN0cmVhbUVkZ2UgPSBlZGdlcy5maW5kKFxuICAgICAgKGVkZ2UpID0+IGVkZ2UudGFyZ2V0X3BvaW50X2lkID09PSBmaXJzdEVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICApO1xuICAgIGlmICh1cHN0cmVhbUVkZ2UpIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBpZiAoc291cmNlUG9pbnQgJiYgIXNvdXJjZVBvaW50Lmhhc19kZXZpY2UpIHtcbiAgICAgICAgZWRnZXNUb0RyYXcucHVzaCh1cHN0cmVhbUVkZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV2ZW50LnBhdGguZm9yRWFjaCgocGFydCkgPT4ge1xuICAgIGxldCBtYXRjaGVkUGFydCA9IGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhcnQuZWRnZV9pZCk7XG4gICAgaWYgKG1hdGNoZWRQYXJ0ICE9PSB1bmRlZmluZWQpIGVkZ2VzVG9EcmF3LnB1c2gobWF0Y2hlZFBhcnQpO1xuICB9KTtcblxuICBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQpID0+IHtcbiAgICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgICBpY29uU2l6ZTogWzksIDldLFxuICAgICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgICB9KTtcbiAgICBsZXQgbWFuaG9sZUljb246IGFueSA9IEwubWFya2VyKFxuICAgICAgW3NvdXJjZVBvaW50LmxhdGl0dWRlLCBzb3VyY2VQb2ludC5sb25naXR1ZGVdLFxuICAgICAge1xuICAgICAgICBpY29uOiBwb2ludEljb24sXG4gICAgICAgIHJpc2VPbkhvdmVyOiB0cnVlLFxuICAgICAgfSxcbiAgICApLmFkZFRvKG1hcCk7XG4gICAgbWFuaG9sZUljb24uYmluZFRvb2x0aXAoYCR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0gKCR7c291cmNlUG9pbnQuaWR9KWApO1xuICAgIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHNvdXJjZVBvaW50LmlkO1xuICAgIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50JztcbiAgfTtcblxuICBjb25zdCBkcmF3TmV0d29yayA9IChlZGdlcykgPT4ge1xuICAgIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGxhdGxuZ3MucHVzaChbZGF0YS5sYXQsIGRhdGEubG5nXSk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAncmdiKDIyNywyMjcsMjI3KScsXG4gICAgICAgIHdlaWdodDogNixcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IGVkZ2Uuc291cmNlX3BvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBsZXQgdGFyZ2V0UG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAoc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXRQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcG9seWxpbmVCYWNrLmJpbmRQb3B1cChgRWRnZSBJRDogJHtlZGdlLmlkfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCBwb2ludDogJHt0YXJnZXRQb2ludC5ncm91cC5uYW1lfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdGFuY2U6ICR7ZWRnZS5kaXN0YW5jZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2VQb2ludCkgZHJhd01hbmhvbGVJY29uKHNvdXJjZVBvaW50KTtcbiAgICAgICAgaWYgKHRhcmdldFBvaW50KSBkcmF3TWFuaG9sZUljb24odGFyZ2V0UG9pbnQpO1xuICAgICAgfVxuXG4gICAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2UnO1xuXG4gICAgICBwb2x5bGluZUJhY2suYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdyZ2IoMjksMjksMjkpJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2VGcm9udCc7XG5cbiAgICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtwb2x5bGluZUJhY2ssIHBvbHlsaW5lRnJvbnRdKSk7XG4gICAgICBsYXRsbmdzID0gW107XG4gICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkcmF3TmV0d29yayhlZGdlc1RvRHJhdyk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdVcHN0cmVhbVBvaW50J1xuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiZWRnZXNUb0RyYXciLCJmaXJzdEVkZ2UiLCJmaW5kIiwiZWRnZSIsImlkIiwicGF0aCIsImVkZ2VfaWQiLCJ1bmRlZmluZWQiLCJ1cHN0cmVhbUVkZ2UiLCJ0YXJnZXRfcG9pbnRfaWQiLCJzb3VyY2VfcG9pbnRfaWQiLCJzb3VyY2VQb2ludCIsInBvaW50IiwicHVzaCIsImZvckVhY2giLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TWFuaG9sZUljb24iLCJwb2ludEljb24iLCJMIiwiaWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInJpc2VPbkhvdmVyIiwiYWRkVG8iLCJiaW5kVG9vbHRpcCIsImdyb3VwIiwibmFtZSIsImRyYXdOZXR3b3JrIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJkYXRhIiwibGF0IiwibG5nIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJsZW5ndGgiLCJ0YXJnZXRQb2ludCIsImJpbmRQb3B1cCIsImRpc3RhbmNlIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsImNsZWFudXAiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJyZW1vdmVMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7Ozs7O0FBUkE7QUFpQk8sSUFBTUEsdUJBQXlDLEdBQUcsU0FBNUNBLHVCQUE0QyxPQUtuRDtB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RSxRQUFELENBQXRCO0FBQ0Q7QUFDRjtBQUNGLEtBWEQ7QUFZRCxHQWZELEVBZUcsQ0FBQzNELEtBQUQsQ0FmSDtBQWlCQSxzQkFBTywyREFBUDtBQUNELENBakhNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IEwsIHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIHBvaW50czogSVBvaW50W107XG4gIG1hcDogTGVhZmxldE1hcCB8IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrRm9yU3BlY2lmaWNFdmVudDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBtYXAsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gIGxldCBmaXJzdEVkZ2UgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xuICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgdXBzdHJlYW1FZGdlID0gZWRnZXMuZmluZChcbiAgICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgKTtcbiAgICBpZiAodXBzdHJlYW1FZGdlKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gdXBzdHJlYW1FZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoc291cmNlUG9pbnQpIGVkZ2VzVG9EcmF3LnB1c2godXBzdHJlYW1FZGdlKTtcbiAgICB9XG4gIH1cblxuICBldmVudC5wYXRoLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgIGlmIChtYXRjaGVkUGFydCAhPT0gdW5kZWZpbmVkKSBlZGdlc1RvRHJhdy5wdXNoKG1hdGNoZWRQYXJ0KTtcbiAgfSk7XG5cbiAgY29uc3QgZHJhd01hbmhvbGVJY29uID0gKHNvdXJjZVBvaW50KSA9PiB7XG4gICAgbGV0IHBvaW50SWNvbiA9IEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICAgIGljb25BbmNob3I6IFs0LjUsIDQuNV0sXG4gICAgfSk7XG4gICAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKS5hZGRUbyhtYXApO1xuICAgIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKGAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9ICgke3NvdXJjZVBvaW50LmlkfSlgKTtcbiAgICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBzb3VyY2VQb2ludC5pZDtcbiAgICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnVXBzdHJlYW1Qb2ludCc7XG4gIH07XG5cbiAgY29uc3QgZHJhd05ldHdvcmsgPSAoZWRnZXMpID0+IHtcbiAgICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgICB3ZWlnaHQ6IDYsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgaWYgKHBvaW50cy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNvdXJjZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgcG9pbnQ6ICR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgcG9pbnQ6ICR7dGFyZ2V0UG9pbnQuZ3JvdXAubmFtZX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlUG9pbnQpIGRyYXdNYW5ob2xlSWNvbihzb3VyY2VQb2ludCk7XG4gICAgICAgIGlmICh0YXJnZXRQb2ludCkgZHJhd01hbmhvbGVJY29uKHRhcmdldFBvaW50KTtcbiAgICAgIH1cblxuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlJztcblxuICAgICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICBsZXQgcG9seWxpbmVGcm9udDogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAncmdiKDI5LDI5LDI5KScsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlRnJvbnQnO1xuXG4gICAgICBwb2x5bGluZUZyb250LmJyaW5nVG9Gcm9udCgpO1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbcG9seWxpbmVCYWNrLCBwb2x5bGluZUZyb250XSkpO1xuICAgICAgbGF0bG5ncyA9IFtdO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZHJhd05ldHdvcmsoZWRnZXNUb0RyYXcpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtdKSk7XG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnVXBzdHJlYW1Qb2ludCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2V2ZW50XSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcbiJdfQ==
|
|
@@ -461,12 +461,25 @@ var PointMarker = function PointMarker(props) {
|
|
|
461
461
|
}
|
|
462
462
|
};
|
|
463
463
|
|
|
464
|
-
|
|
464
|
+
var createSamplingIcons = function createSamplingIcons(markerLocation) {
|
|
465
|
+
if (focusedEvent !== null) {
|
|
466
|
+
var sampledPointIds = focusedEvent.samplings.map(function (s) {
|
|
467
|
+
return s.point_id;
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
if (focusedEvent !== null && focusedEvent.samplings.length !== 0 && sampledPointIds.includes(point.id)) {
|
|
471
|
+
createSamplingIconPoint(markerLocation, matchIconToPoint(point) !== null);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
var renderLogic = function renderLogic() {
|
|
465
477
|
var markerLocation = [point['latitude'], point['longitude']];
|
|
466
478
|
customIconForPointsIfPartOfPathAndMonitored(markerLocation);
|
|
467
479
|
if (!point.eventsViewHovered) createManholePoint(markerLocation);
|
|
468
480
|
|
|
469
481
|
if (markerLocation[0] !== null) {
|
|
482
|
+
createSamplingIcons(markerLocation);
|
|
470
483
|
if (point.part_of_monitored_path && !point.has_device) return;
|
|
471
484
|
|
|
472
485
|
if (matchIconToPoint(point) !== null && (centeredEvent === null || centeredEvent !== null && pointIsObservation() || point.group.type === 'Groups::WastewaterTreatmentPlant')) {
|
|
@@ -474,12 +487,11 @@ var PointMarker = function PointMarker(props) {
|
|
|
474
487
|
createCustomIconPoint(markerLocation);
|
|
475
488
|
}
|
|
476
489
|
|
|
477
|
-
if (focusedEvent !== null
|
|
490
|
+
if (focusedEvent !== null) {
|
|
478
491
|
var hasPrimaryIcon = matchIconToPoint(point) !== null;
|
|
479
|
-
createObservationIconPoint(markerLocation, hasPrimaryIcon); // @ts-ignore
|
|
480
492
|
|
|
481
|
-
if (
|
|
482
|
-
|
|
493
|
+
if (pointIsObservation()) {
|
|
494
|
+
createObservationIconPoint(markerLocation, hasPrimaryIcon);
|
|
483
495
|
}
|
|
484
496
|
}
|
|
485
497
|
|
|
@@ -490,7 +502,10 @@ var PointMarker = function PointMarker(props) {
|
|
|
490
502
|
bindPopupToPoint(obs);
|
|
491
503
|
}
|
|
492
504
|
}
|
|
505
|
+
};
|
|
493
506
|
|
|
507
|
+
(0, _react.useEffect)(function () {
|
|
508
|
+
renderLogic();
|
|
494
509
|
return function cleanup() {
|
|
495
510
|
// UNBIND POPUP
|
|
496
511
|
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Observation');
|
|
@@ -513,4 +528,4 @@ var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function
|
|
|
513
528
|
}));
|
|
514
529
|
|
|
515
530
|
exports.default = _default;
|
|
516
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJlZGdlc19kYXRhIiwiUG9pbnRNYXJrZXIiLCJwcm9wcyIsIkwiLCJtYXAiLCJwb2ludCIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImRpc3BhdGNoIiwiY2VudGVyZWRFdmVudCIsInNlbGVjdGVkQmFja2dyb3VuZCIsImljb24iLCJpY29uVXJsIiwicmVkUGluUmVkU2hhZG93IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kIiwid2hpdGVQaW5SZWRTaGFkb3ciLCJzdGFuZGFyZEJhY2tncm91bmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsIndoaXRlUGluQmxhY2tTaGFkb3ciLCJjb21iaW5lZEZhY3RvcnlJY29uIiwieWVsbG93Q2lyY2xlVVJMIiwicGxhbnRJY29uVVJMIiwiY29tYmluZWRQdW1wU3RhdGlvbkljb24iLCJncmVlbkNpcmNsZVVSTCIsInB1bXBTdGF0aW9uSWNvblVSTCIsImNvbWJpbmVkQ29sbGVjdG9yc0ljb24iLCJjb2xsZWN0b3JJY29uIiwiY29tYmluZWRXV1RQSWNvbiIsImJyaWdodEJsdWVDaXJjbGVVUkwiLCJXV1RQSWNvblVSTCIsIm1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlIiwic291cmNlIiwic291cmNlcyIsImZpbHRlciIsInBvaW50X2lkIiwiaWQiLCJzZWxlY3RlZF9zb3VyY2UiLCJtYXJrZXJCZWxvbmdzVG9Tb3VyY2UiLCJpc0NvbGxlY3RvckZvY3VzZWQiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJtYXRjaEljb25Ub1BvaW50IiwiZ3JvdXAiLCJ0eXBlIiwidW5zaGlmdCIsIndhdGVySWNvbk5vQmFja2dyb3VuZCIsImNyZWF0ZU1hbmhvbGVQb2ludCIsIm1hcmtlckxvY2F0aW9uIiwicG9pbnRJY29uIiwid2hpdGVQb2ludCIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwibmFtZSIsImNyZWF0ZUN1c3RvbUljb25Qb2ludCIsImZvckVhY2giLCJwb2ludEN1c3RvbUljb24iLCJyZWxhdGVkRXZlbnRzQW1vdW50IiwiZGl2SWNvbiIsImNsYXNzTmFtZSIsImh0bWwiLCJjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCIsInNlY29uZGFyeUljb24iLCJzYW1wbGluZ0ljb24iLCJibHVlQ2lyY2xlVVJMIiwic2FtcGxpbmdJY29uVVJMIiwiY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQiLCJvYnNlcnZhdGlvbkljb24iLCJwaW5rQ2lyY2xlVVJMIiwib2JzZXJ2YXRpb25JY29uVVJMIiwicG9wdXBDb250ZW50Iiwib2JzIiwiR3JhcGhJY29uIiwiaTE4biIsInQiLCJzZXZlcml0eSIsInBvaW50SXNPYnNlcnZhdGlvbiIsInBvaW50QmVsb25nc1RvRXZlbnQiLCJiaW5kUG9wdXBUb1BvaW50IiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5IiwiaW5jbHVkZXMiLCJrYW5kb19vYmplY3QiLCJrYW5kb19vYmplY3RfaWQiLCJiaW5kUG9wdXAiLCJtaW5XaWR0aCIsIm9uIiwiZSIsImZpcnN0U2VlbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImxhc3RTZWVuIiwic2VjdG9yIiwiUmVhY3RET00iLCJyZW5kZXIiLCJzdGFydF90aW1lIiwidGltZV96b25lIiwibGFzdF9zZWVuX3RpbWUiLCJzZWN0b3JfbmFtZSIsInNlY3Rvcl9pY29uX25hbWUiLCJzZXRUaW1lb3V0IiwiYXBwZW5kIiwiYXR0YWNoQ2xpY2tFdmVudCIsInNlbGVjdG9yIiwib2JzZXJ2YXRpb24iLCJib2R5Iiwib3BlblBvcHVwIiwiY3VzdG9tSWNvbkZvclBvaW50c0lmUGFydE9mUGF0aEFuZE1vbml0b3JlZCIsImVkZ2VzSWRzIiwicGF0aCIsInBhcnQiLCJwdXNoIiwiZWRnZV9pZCIsInJlbGV2YW50RWRnZXMiLCJpdGVtcyIsImVkZ2UiLCJyZWxldmFudFBvaW50cyIsInNvdXJjZV9wb2ludF9pZCIsImV2ZW50c1ZpZXdIb3ZlcmVkIiwicGFydF9vZl9tb25pdG9yZWRfcGF0aCIsImhhc19kZXZpY2UiLCJoYXNQcmltYXJ5SWNvbiIsInNhbXBsaW5ncyIsImNsZWFudXAiLCJjb25uZWN0b3IiLCJSZWFjdCIsIm1lbW8iLCJwcmV2UHJvcHMiLCJuZXh0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTs7OztBQUVBOztBQUNBOzs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFLQTs7QUFDQTs7Ozs7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFBUUMsV0FBUixHQUFvQ0QsS0FBcEMsQ0FBUUMsV0FBUjtBQUFBLE1BQXFCQyxVQUFyQixHQUFvQ0YsS0FBcEMsQ0FBcUJFLFVBQXJCO0FBRUEsU0FBTztBQUNMRCxJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsVUFBVSxFQUFWQTtBQUZLLEdBQVA7QUFJRDs7QUFRRCxJQUFNQyxXQUE0QixHQUFHLFNBQS9CQSxXQUErQixDQUFDQyxLQUFELEVBQVc7QUFDOUMsTUFBUUMsQ0FBUixHQUFtREQsS0FBbkQsQ0FBUUMsQ0FBUjtBQUFBLE1BQVdDLEdBQVgsR0FBbURGLEtBQW5ELENBQVdFLEdBQVg7QUFBQSxNQUFnQkMsS0FBaEIsR0FBbURILEtBQW5ELENBQWdCRyxLQUFoQjtBQUFBLE1BQXVCTixXQUF2QixHQUFtREcsS0FBbkQsQ0FBdUJILFdBQXZCO0FBQUEsTUFBb0NDLFVBQXBDLEdBQW1ERSxLQUFuRCxDQUFvQ0YsVUFBcEM7QUFDQSxNQUFRTSxZQUFSLEdBQXVDUCxXQUF2QyxDQUFRTyxZQUFSO0FBQUEsTUFB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Q2hELE1BQ0VELFNBQVMsQ0FBQ3ZJLFdBQVYsQ0FBc0JPLFlBQXRCLEtBQXVDaUksU0FBUyxDQUFDeEksV0FBVixDQUFzQk8sWUFEL0QsRUFFRTtBQUNBLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU8sSUFBUDtBQUNELENBUkQsQ0FEc0IsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgR3JhcGhJY29uIGZyb20gJ3NyYy9hc3NldHMvbGluZS1jaGFydC5zdmcnO1xuaW1wb3J0IGNvbGxlY3Rvckljb24gZnJvbSAnc3JjL2Fzc2V0cy9tYXAvcGluLXdhdGVyLnN2Zyc7XG5pbXBvcnQgd2F0ZXJJY29uTm9CYWNrZ3JvdW5kIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvd2F0ZXItbm8tYmFja2dyb3VuZC5zdmcnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9icmlnaHQtYmx1ZS1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9mYWN0b3J5LWljb24uc3ZnJztcbmltcG9ydCBncmVlbkNpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL2dyZWVuLWNpcmNsZS5zdmcnO1xuaW1wb3J0IG9ic2VydmF0aW9uSWNvblVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCBwaW5rQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9wdW1wLXN0YXRpb24taWNvbi5zdmcnO1xuaW1wb3J0IHJlZFBpblJlZFNoYWRvdyBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHNhbXBsaW5nSWNvblVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3NhbXBsaW5nLWljb24uc3ZnJztcbmltcG9ydCB3aGl0ZVBpbkJsYWNrU2hhZG93IGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvd2hpdGUtcGluLWJsYWNrLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvd2hpdGUtcGluLXJlZC1zaGFkb3cucG5nJztcbmltcG9ydCBXV1RQSWNvblVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL1dXVFAtaWNvbi5zdmcnO1xuaW1wb3J0IHllbGxvd0NpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJ3NyYy9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcbmltcG9ydCBTZWN0b3IgZnJvbSAnc3JjL2NvbXBvbmVudHMvU2VjdG9yJztcbmltcG9ydCB1c2VSZW1vdmVFeGlzdGluZ0xheWVycywge1xuICByZW1vdmVGcm9tTWFwLFxufSBmcm9tICdzcmMvaG9va3MvdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHtcbiAgY2xvc2VGbG9hdGluZ0dyYXBoLFxuICBvcGVuRmxvYXRpbmdHcmFwaCxcbn0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IFRpbWVGb3JtYXQgZnJvbSAnc3JjL3V0aWxpdGllcy9UaW1lRm9ybWF0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBldmVudHNfZGF0YSwgZWRnZXNfZGF0YSB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBMOiBhbnk7XG4gIHBvaW50OiBJUG9pbnQ7XG59O1xuXG5jb25zdCBQb2ludE1hcmtlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgTCwgbWFwLCBwb2ludCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEgfSA9IHByb3BzO1xuICBjb25zdCB7IGZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50IH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGNlbnRlcmVkRXZlbnQgPSB1c2VNZW1vKFxuICAgICgpID0+IGZvY3VzZWRFdmVudCB8fCBob3ZlcmVkRXZlbnQsXG4gICAgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50XSxcbiAgKTtcbiAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgY29uc3Qgc2VsZWN0ZWRCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICAgIHJldHVybiBMLmljb24oe1xuICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgICByZXR1cm4gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHdoaXRlUGluUmVkU2hhZG93LFxuICAgICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc3RhbmRhcmRCYWNrZ3JvdW5kID0gKFxuICAgIHNlY29uZGFyeTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHRoaXJkOiBib29sZWFuID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHJldHVybiBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQaW5CbGFja1NoYWRvdyxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnkgPyBbMjAsIDIwXSA6IFs0MywgNDZdLFxuICAgICAgaWNvbkFuY2hvcjpcbiAgICAgICAgc2Vjb25kYXJ5ICYmIHRoaXJkID8gWy0yLCAxOV0gOiBzZWNvbmRhcnkgPyBbLTIsIDQ0XSA6IFsyMCwgNDJdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNvbWJpbmVkRmFjdG9yeUljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHllbGxvd0NpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBbMjUsIDI0XSxcbiAgICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogcGxhbnRJY29uVVJMLFxuICAgICAgaWNvblNpemU6IFsxNSwgMTVdLFxuICAgICAgaWNvbkFuY2hvcjogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogZ3JlZW5DaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogWzI1LCAyNF0sXG4gICAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHB1bXBTdGF0aW9uSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBbMjAsIDIwXSxcbiAgICAgIGljb25BbmNob3I6IFs3LCAzMl0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgY29tYmluZWRDb2xsZWN0b3JzSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogY29sbGVjdG9ySWNvbixcbiAgICAgIGljb25TaXplOiBbNDUsIDQ1XSxcblxuICAgICAgaWNvbkFuY2hvcjogWzI1LCA1MF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgY29tYmluZWRXV1RQSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogYnJpZ2h0Qmx1ZUNpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBbMjUsIDI1XSxcbiAgICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogV1dUUEljb25VUkwsXG4gICAgICBpY29uU2l6ZTogWzIwLCAyMF0sXG4gICAgICBpY29uQW5jaG9yOiBbOCwgMzFdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlID0gKCkgPT4ge1xuICAgIGxldCBzb3VyY2U7XG5cbiAgICBpZiAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCkge1xuICAgICAgc291cmNlID0gY2VudGVyZWRFdmVudC5zb3VyY2VzLmZpbHRlcihcbiAgICAgICAgKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZCxcbiAgICAgIClbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiZcbiAgICAgIHNvdXJjZSAmJlxuICAgICAgY2VudGVyZWRFdmVudC5zZWxlY3RlZF9zb3VyY2UgPT09IHNvdXJjZS5wb2ludF9pZFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgbWFya2VyQmVsb25nc1RvU291cmNlID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBjZW50ZXJlZEV2ZW50LnNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBpc0NvbGxlY3RvckZvY3VzZWQgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50Py5vYnNlcnZhdGlvbnM/Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgcG9pbnQuaWQgPT09IGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zWzBdLnBvaW50X2lkXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBtYXRjaEljb25Ub1BvaW50ID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICBzd2l0Y2ggKHBvaW50Lmdyb3VwLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0dyb3Vwczo6RmFjdG9yeSc6XG4gICAgICAgIGlmIChjb21iaW5lZEZhY3RvcnlJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZEZhY3RvcnlJY29uO1xuICAgICAgY2FzZSAnR3JvdXBzOjpQdW1wU3RhdGlvbic6XG4gICAgICAgIGlmIChjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRQdW1wU3RhdGlvbkljb247XG4gICAgICBjYXNlICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc6XG4gICAgICAgIGlmIChjb21iaW5lZFdXVFBJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21iaW5lZFdXVFBJY29uO1xuXG4gICAgICBjYXNlICdHcm91cHM6OkNvbGxlY3RvcnMnOlxuICAgICAgICBpZiAoaXNDb2xsZWN0b3JGb2N1c2VkKHBvaW50KSkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgICAgICAgICAgIGljb25TaXplOiBbNjIsIDYyXSxcbiAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzMwLCA1Ml0sXG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgICAgaWNvblVybDogd2F0ZXJJY29uTm9CYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICBpY29uU2l6ZTogWzQ2LCA0Nl0sXG5cbiAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzIyLCA0NF0sXG4gICAgICAgICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRDb2xsZWN0b3JzSWNvbjtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU1hbmhvbGVQb2ludCA9IChtYXJrZXJMb2NhdGlvbjogb2JqZWN0KSA9PiB7XG4gICAgbGV0IHBvaW50SWNvbiA9IEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICAgIGljb25BbmNob3I6IFs0LjUsIDQuNV0sXG4gICAgfSk7XG4gICAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSkuYWRkVG8obWFwKTtcbiAgICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgfTtcblxuICBjb25zdCBjcmVhdGVDdXN0b21JY29uUG9pbnQgPSAobWFya2VyTG9jYXRpb246IG9iamVjdCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50KSAhPT0gbnVsbCAmJlxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCkuZm9yRWFjaCgoaWNvbjogYW55KSA9PiB7XG4gICAgICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gICAgICB9KTtcblxuICAgIGlmIChwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50KSB7XG4gICAgICBsZXQgcG9pbnRDdXN0b21JY29uID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgICBjbGFzc05hbWU6IGBcbiAgICAgICAgICAke1xuICAgICAgICAgICAgcG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+PSAxMDBcbiAgICAgICAgICAgICAgPyAnY2lyY2xlLWV2ZW50cy1hbW91bnQgY2lyY2xlLWV2ZW50cy1hbW91bnQtLXRyaWRpZ2l0J1xuICAgICAgICAgICAgICA6ICdjaXJjbGUtZXZlbnRzLWFtb3VudCdcbiAgICAgICAgICB9IFxuICAgICAgICAgICR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+IDIgPyAnYWxlcnQtY29sb3InIDogJyd9XG4gICAgICAgICAgICBgLFxuICAgICAgICAgIGh0bWw6IGA8cD4ke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnR9PC9wPmAsXG4gICAgICAgICAgaWNvbkFuY2hvcjogWy01LCA0Ml0sXG4gICAgICAgIH0pLFxuICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ0ljb25OdW1iZXInO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCA9IChcbiAgICBtYXJrZXJMb2NhdGlvbjogb2JqZWN0LFxuICAgIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gICAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgICBsZXQgc2FtcGxpbmdJY29uID0gW1xuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogYmx1ZUNpcmNsZVVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMTAsIDEwXSA6IFsyNSwgMjRdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCAxNV0gOiBbMTAuNywgMzMuN10sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgIH0pLFxuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogc2FtcGxpbmdJY29uVVJMLFxuICAgICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFs3LCA3XSA6IFsxMywgMTVdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAxM10gOiBbNSwgMzBdLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBzYW1wbGluZ0ljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzYW1wbGluZ0ljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbiwgdHJ1ZSkpO1xuICAgIH1cblxuICAgIHNhbXBsaW5nSWNvbi5mb3JFYWNoKChpY29uKSA9PiB7XG4gICAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgICBpY29uOiBpY29uLFxuICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGAke3BvaW50Lmdyb3VwLm5hbWV9ICgke3BvaW50LmlkfSlgKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnU2FtcGxpbmcnO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50ID0gKFxuICAgIG1hcmtlckxvY2F0aW9uOiBvYmplY3QsXG4gICAgc2Vjb25kYXJ5SWNvbjogYm9vbGVhbixcbiAgKSA9PiB7XG4gICAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICAgIGxldCBvYnNlcnZhdGlvbkljb24gPSBbXG4gICAgICBMLmljb24oe1xuICAgICAgICBpY29uVXJsOiBwaW5rQ2lyY2xlVVJMLFxuICAgICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFsxMCwgMTBdIDogWzI1LCAyNF0sXG4gICAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTcsIDQwXSA6IFsxMC43LCAzMy43XSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgfSksXG4gICAgICBMLmljb24oe1xuICAgICAgICBpY29uVXJsOiBvYnNlcnZhdGlvbkljb25VUkwsXG4gICAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzcsIDddIDogWzEzLCAxNV0sXG4gICAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTgsIDM4XSA6IFs1LCAzMF0sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZChzZWNvbmRhcnlJY29uKSk7XG4gICAgfVxuXG4gICAgb2JzZXJ2YXRpb25JY29uLmZvckVhY2goKGljb24pID0+IHtcbiAgICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgIGljb246IGljb24sXG4gICAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdPYnNlcnZhdGlvbic7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcG9wdXBDb250ZW50ID0gKG9iczogYW55KSA9PiB7XG4gICAgaWYgKG9icyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ncmFwaC1pY29uIHBvcHVwLWdyYXBoLWljb24tJHtwb2ludC5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtwb2ludC5ncm91cC5uYW1lfTwvYj48L2g1PlxuICAgICAgICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInNlY3RvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke29icy5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtcbiAgICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwLWNvbnRlbnRfX3NldmVyaXR5LS0nICsgb2JzLnNldmVyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1iXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29icy5zZXZlcml0eX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19oclwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2Rpc2NoYXJnZS10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5maXJzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJmaXJzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJsYXN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgfVxuICB9O1xuXG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb24nKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG5cbiAgY29uc3QgcG9pbnRJc09ic2VydmF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBjZW50ZXJlZEV2ZW50Lm9ic2VydmF0aW9ucy5maWx0ZXIoKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZClbMF1cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHBvaW50QmVsb25nc1RvRXZlbnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgYmluZFBvcHVwVG9Qb2ludCA9IChvYnM6IGFueSA9IG51bGwpID0+IHtcbiAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgWydQb2ludCcsICdPYnNlcnZhdGlvbiddLmluY2x1ZGVzKGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0KSAmJlxuICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdF9pZCA9PT0gcG9pbnQuaWRcbiAgICAgICkge1xuICAgICAgICBsYXllcnNbcHJvcGVydHldLmJpbmRQb3B1cChwb3B1cENvbnRlbnQob2JzKSwge1xuICAgICAgICAgIG1pbldpZHRoOiAyMDAsXG4gICAgICAgIH0pO1xuICAgICAgICBsYXllcnNbcHJvcGVydHldLm9uKCdwb3B1cG9wZW4nLCBmdW5jdGlvbiAoZTogYW55KSB7XG4gICAgICAgICAgaWYgKGZvY3VzZWRFdmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGZpcnN0U2VlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgbGV0IGxhc3RTZWVuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBsZXQgc2VjdG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgICAgICAgIGlmIChvYnMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgICAgICAgIDxUaW1lRm9ybWF0XG4gICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e29icy5zdGFydF90aW1lfVxuICAgICAgICAgICAgICAgICAgdGltZV96b25lPXtvYnMudGltZV96b25lfVxuICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgIGZpcnN0U2VlbixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgICAgICAgIDxUaW1lRm9ybWF0XG4gICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e29icy5sYXN0X3NlZW5fdGltZX1cbiAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBsYXN0U2VlbixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgICA8U2VjdG9yXG4gICAgICAgICAgICAgICAgICBzZWN0b3JOYW1lPXtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1cbiAgICAgICAgICAgICAgICAgIHNlY3Rvckljb25OYW1lPXtwb2ludC5ncm91cC5zZWN0b3JfaWNvbl9uYW1lfVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzN1wiXG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgc2VjdG9yLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgJCgnI2ZpcnN0LXNlZW4tcG9wdXAnKS5hcHBlbmQoZmlyc3RTZWVuKTtcbiAgICAgICAgICAgICAgJCgnI2xhc3Qtc2Vlbi1wb3B1cCcpLmFwcGVuZChsYXN0U2Vlbik7XG4gICAgICAgICAgICAgICQoJyNzZWN0b3InKS5hcHBlbmQoc2VjdG9yKTtcbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IGF0dGFjaENsaWNrRXZlbnQgPSAoc2VsZWN0b3I6IHN0cmluZywgb2JzZXJ2YXRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgJChkb2N1bWVudC5ib2R5KS5vbignY2xpY2snLCBzZWxlY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgICBkaXNwYXRjaChjbG9zZUZsb2F0aW5nR3JhcGgoKSk7XG4gICAgICAgICAgICAgIGRpc3BhdGNoKG9wZW5GbG9hdGluZ0dyYXBoKHRydWUsIG9ic2VydmF0aW9uLCBwb2ludCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChvYnMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGF0dGFjaENsaWNrRXZlbnQoJy5wb3B1cC1ncmFwaC1pY29uLScgKyBvYnMuaWQsIG9icyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF0dGFjaENsaWNrRXZlbnQoJy5wb3B1cC1ncmFwaC1pY29uLScgKyBwb2ludC5pZCwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5vcGVuUG9wdXAoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGN1c3RvbUljb25Gb3JQb2ludHNJZlBhcnRPZlBhdGhBbmRNb25pdG9yZWQgPSAobWFya2VyTG9jYXRpb24pID0+IHtcbiAgICBpZiAoY2VudGVyZWRFdmVudCkge1xuICAgICAgbGV0IGVkZ2VzSWRzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgY2VudGVyZWRFdmVudC5wYXRoLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgICAgZWRnZXNJZHMucHVzaChwYXJ0LmVkZ2VfaWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCByZWxldmFudEVkZ2VzID0gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoKGVkZ2UpID0+XG4gICAgICAgIGVkZ2VzSWRzLmluY2x1ZGVzKGVkZ2UuaWQpLFxuICAgICAgKTtcblxuICAgICAgbGV0IHJlbGV2YW50UG9pbnRzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgcmVsZXZhbnRFZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICAgIHJlbGV2YW50UG9pbnRzLnB1c2goZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZWxldmFudFBvaW50cy5pbmNsdWRlcyhwb2ludC5pZCkpIHtcbiAgICAgICAgY3JlYXRlTWFuaG9sZVBvaW50KG1hcmtlckxvY2F0aW9uKTtcbiAgICAgICAgY3JlYXRlQ3VzdG9tSWNvblBvaW50KG1hcmtlckxvY2F0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgbWFya2VyTG9jYXRpb24gPSBbcG9pbnRbJ2xhdGl0dWRlJ10sIHBvaW50Wydsb25naXR1ZGUnXV07XG4gICAgY3VzdG9tSWNvbkZvclBvaW50c0lmUGFydE9mUGF0aEFuZE1vbml0b3JlZChtYXJrZXJMb2NhdGlvbik7XG4gICAgaWYgKCFwb2ludC5ldmVudHNWaWV3SG92ZXJlZCkgY3JlYXRlTWFuaG9sZVBvaW50KG1hcmtlckxvY2F0aW9uKTtcbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gIT09IG51bGwpIHtcbiAgICAgIGlmIChwb2ludC5wYXJ0X29mX21vbml0b3JlZF9wYXRoICYmICFwb2ludC5oYXNfZGV2aWNlKSByZXR1cm47XG4gICAgICBpZiAoXG4gICAgICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpICE9PSBudWxsICYmXG4gICAgICAgIChjZW50ZXJlZEV2ZW50ID09PSBudWxsIHx8XG4gICAgICAgICAgKGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiYgcG9pbnRJc09ic2VydmF0aW9uKCkpIHx8XG4gICAgICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JylcbiAgICAgICkge1xuICAgICAgICBpZiAocG9pbnQuZXZlbnRzVmlld0hvdmVyZWQpIGNyZWF0ZU1hbmhvbGVQb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICAgIGNyZWF0ZUN1c3RvbUljb25Qb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgcG9pbnRJc09ic2VydmF0aW9uKCkpIHtcbiAgICAgICAgbGV0IGhhc1ByaW1hcnlJY29uID0gbWF0Y2hJY29uVG9Qb2ludChwb2ludCkgIT09IG51bGw7XG4gICAgICAgIGNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50KG1hcmtlckxvY2F0aW9uLCBoYXNQcmltYXJ5SWNvbik7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgICAgIGZvY3VzZWRFdmVudC5zYW1wbGluZ3MubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICAgZm9jdXNlZEV2ZW50LnNhbXBsaW5nc1swXS5wb2ludF9pZCA9PT0gcG9pbnQuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQobWFya2VyTG9jYXRpb24sIGhhc1ByaW1hcnlJY29uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJiBwb2ludEJlbG9uZ3NUb0V2ZW50KCkpIHtcbiAgICAgICAgbGV0IG9icyA9IGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkLFxuICAgICAgICApWzBdO1xuICAgICAgICBiaW5kUG9wdXBUb1BvaW50KG9icyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBVTkJJTkQgUE9QVVBcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcbiAgICB9O1xuICB9LCBbY2VudGVyZWRFdmVudF0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihcbiAgUmVhY3QubWVtbyhQb2ludE1hcmtlciwgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgaWYgKFxuICAgICAgcHJldlByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCAhPT0gbmV4dFByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KSxcbik7XG4iXX0=
|
|
531
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJlZGdlc19kYXRhIiwiUG9pbnRNYXJrZXIiLCJwcm9wcyIsIkwiLCJtYXAiLCJwb2ludCIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImRpc3BhdGNoIiwiY2VudGVyZWRFdmVudCIsInNlbGVjdGVkQmFja2dyb3VuZCIsImljb24iLCJpY29uVXJsIiwicmVkUGluUmVkU2hhZG93IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kIiwid2hpdGVQaW5SZWRTaGFkb3ciLCJzdGFuZGFyZEJhY2tncm91bmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsIndoaXRlUGluQmxhY2tTaGFkb3ciLCJjb21iaW5lZEZhY3RvcnlJY29uIiwieWVsbG93Q2lyY2xlVVJMIiwicGxhbnRJY29uVVJMIiwiY29tYmluZWRQdW1wU3RhdGlvbkljb24iLCJncmVlbkNpcmNsZVVSTCIsInB1bXBTdGF0aW9uSWNvblVSTCIsImNvbWJpbmVkQ29sbGVjdG9yc0ljb24iLCJjb2xsZWN0b3JJY29uIiwiY29tYmluZWRXV1RQSWNvbiIsImJyaWdodEJsdWVDaXJjbGVVUkwiLCJXV1RQSWNvblVSTCIsIm1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlIiwic291cmNlIiwic291cmNlcyIsImZpbHRlciIsInBvaW50X2lkIiwiaWQiLCJzZWxlY3RlZF9zb3VyY2UiLCJtYXJrZXJCZWxvbmdzVG9Tb3VyY2UiLCJpc0NvbGxlY3RvckZvY3VzZWQiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJtYXRjaEljb25Ub1BvaW50IiwiZ3JvdXAiLCJ0eXBlIiwidW5zaGlmdCIsIndhdGVySWNvbk5vQmFja2dyb3VuZCIsImNyZWF0ZU1hbmhvbGVQb2ludCIsIm1hcmtlckxvY2F0aW9uIiwicG9pbnRJY29uIiwid2hpdGVQb2ludCIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwibmFtZSIsImNyZWF0ZUN1c3RvbUljb25Qb2ludCIsImZvckVhY2giLCJwb2ludEN1c3RvbUljb24iLCJyZWxhdGVkRXZlbnRzQW1vdW50IiwiZGl2SWNvbiIsImNsYXNzTmFtZSIsImh0bWwiLCJjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCIsInNlY29uZGFyeUljb24iLCJzYW1wbGluZ0ljb24iLCJibHVlQ2lyY2xlVVJMIiwic2FtcGxpbmdJY29uVVJMIiwiY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQiLCJvYnNlcnZhdGlvbkljb24iLCJwaW5rQ2lyY2xlVVJMIiwib2JzZXJ2YXRpb25JY29uVVJMIiwicG9wdXBDb250ZW50Iiwib2JzIiwiR3JhcGhJY29uIiwiaTE4biIsInQiLCJzZXZlcml0eSIsInBvaW50SXNPYnNlcnZhdGlvbiIsInBvaW50QmVsb25nc1RvRXZlbnQiLCJiaW5kUG9wdXBUb1BvaW50IiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5IiwiaW5jbHVkZXMiLCJrYW5kb19vYmplY3QiLCJrYW5kb19vYmplY3RfaWQiLCJiaW5kUG9wdXAiLCJtaW5XaWR0aCIsIm9uIiwiZSIsImZpcnN0U2VlbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImxhc3RTZWVuIiwic2VjdG9yIiwiUmVhY3RET00iLCJyZW5kZXIiLCJzdGFydF90aW1lIiwidGltZV96b25lIiwibGFzdF9zZWVuX3RpbWUiLCJzZWN0b3JfbmFtZSIsInNlY3Rvcl9pY29uX25hbWUiLCJzZXRUaW1lb3V0IiwiYXBwZW5kIiwiYXR0YWNoQ2xpY2tFdmVudCIsInNlbGVjdG9yIiwib2JzZXJ2YXRpb24iLCJib2R5Iiwib3BlblBvcHVwIiwiY3VzdG9tSWNvbkZvclBvaW50c0lmUGFydE9mUGF0aEFuZE1vbml0b3JlZCIsImVkZ2VzSWRzIiwicGF0aCIsInBhcnQiLCJwdXNoIiwiZWRnZV9pZCIsInJlbGV2YW50RWRnZXMiLCJpdGVtcyIsImVkZ2UiLCJyZWxldmFudFBvaW50cyIsInNvdXJjZV9wb2ludF9pZCIsImNyZWF0ZVNhbXBsaW5nSWNvbnMiLCJzYW1wbGVkUG9pbnRJZHMiLCJzYW1wbGluZ3MiLCJzIiwicmVuZGVyTG9naWMiLCJldmVudHNWaWV3SG92ZXJlZCIsInBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgiLCJoYXNfZGV2aWNlIiwiaGFzUHJpbWFyeUljb24iLCJjbGVhbnVwIiwiY29ubmVjdG9yIiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7Ozs7QUFFQTs7QUFDQTs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBS0E7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBb0NELEtBQXBDLENBQVFDLFdBQVI7QUFBQSxNQUFxQkMsVUFBckIsR0FBb0NGLEtBQXBDLENBQXFCRSxVQUFyQjtBQUVBLFNBQU87QUFDTEQsSUFBQUEsV0FBVyxFQUFYQSxXQURLO0FBRUxDLElBQUFBLFVBQVUsRUFBVkE7QUFGSyxHQUFQO0FBSUQ7O0FBUUQsSUFBTUMsV0FBNEIsR0FBRyxTQUEvQkEsV0FBK0IsQ0FBQ0MsS0FBRCxFQUFXO0FBQzlDLE1BQVFDLENBQVIsR0FBbURELEtBQW5ELENBQVFDLENBQVI7QUFBQSxNQUFXQyxHQUFYLEdBQW1ERixLQUFuRCxDQUFXRSxHQUFYO0FBQUEsTUFBZ0JDLEtBQWhCLEdBQW1ESCxLQUFuRCxDQUFnQkcsS0FBaEI7QUFBQSxNQUF1Qk4sV0FBdkIsR0FBbURHLEtBQW5ELENBQXVCSCxXQUF2QjtBQUFBLE1BQW9DQyxVQUFwQyxHQUFtREUsS0FBbkQsQ0FB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QSxXQUFXO0FBRVgsV0FBTyxTQUFTSyxPQUFULEdBQW1CO0FBQ3hCO0FBQ0Esa0RBQWNsSSxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixhQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixPQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixVQUExQjtBQUNBLGtEQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixZQUExQjtBQUNELEtBTkQ7QUFPRCxHQVZELEVBVUcsQ0FBQ0ksYUFBRCxDQVZIO0FBWUEsc0JBQU8seUNBQVA7QUFDRCxDQTVpQkQ7O0FBOGlCQSxJQUFNOEgsU0FBUyxHQUFHLHlCQUFRMUksZUFBUixDQUFsQjs7ZUFDZTBJLFNBQVMsZUFDdEJDLGVBQU1DLElBQU4sQ0FBV3hJLFdBQVgsRUFBd0IsVUFBQ3lJLFNBQUQsRUFBWUMsU0FBWixFQUEwQjtBQUNoRCxNQUNFRCxTQUFTLENBQUMzSSxXQUFWLENBQXNCTyxZQUF0QixLQUF1Q3FJLFNBQVMsQ0FBQzVJLFdBQVYsQ0FBc0JPLFlBRC9ELEVBRUU7QUFDQSxXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPLElBQVA7QUFDRCxDQVJELENBRHNCLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IEdyYXBoSWNvbiBmcm9tICdzcmMvYXNzZXRzL2xpbmUtY2hhcnQuc3ZnJztcbmltcG9ydCBjb2xsZWN0b3JJY29uIGZyb20gJ3NyYy9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IHdhdGVySWNvbk5vQmFja2dyb3VuZCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCBibHVlQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvYmx1ZS1jaXJjbGUuc3ZnJztcbmltcG9ydCBicmlnaHRCbHVlQ2lyY2xlVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvYnJpZ2h0LWJsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgcGxhbnRJY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvZmFjdG9yeS1pY29uLnN2Zyc7XG5pbXBvcnQgZ3JlZW5DaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9vYnNlcnZhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3BpbmstY2lyY2xlLnN2Zyc7XG5pbXBvcnQgcHVtcFN0YXRpb25JY29uVVJMIGZyb20gJ3NyYy9hc3NldHMvcG9pbnRfaWNvbnMvcHVtcC1zdGF0aW9uLWljb24uc3ZnJztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9yZWQtcGluLXJlZC1zaGFkb3cucG5nJztcbmltcG9ydCBzYW1wbGluZ0ljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgd2hpdGVQaW5CbGFja1NoYWRvdyBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB3aGl0ZVBpblJlZFNoYWRvdyBmcm9tICdzcmMvYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1yZWQtc2hhZG93LnBuZyc7XG5pbXBvcnQgV1dUUEljb25VUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnc3JjL2Fzc2V0cy9wb2ludF9pY29ucy95ZWxsb3ctY2lyY2xlLnN2Zyc7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICdzcmMvYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgU2VjdG9yIGZyb20gJ3NyYy9jb21wb25lbnRzL1NlY3Rvcic7XG5pbXBvcnQgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMsIHtcbiAgcmVtb3ZlRnJvbU1hcCxcbn0gZnJvbSAnc3JjL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7XG4gIGNsb3NlRmxvYXRpbmdHcmFwaCxcbiAgb3BlbkZsb2F0aW5nR3JhcGgsXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBwb2ludDogSVBvaW50O1xufTtcblxuY29uc3QgUG9pbnRNYXJrZXI6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgcG9pbnQsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhIH0gPSBwcm9wcztcbiAgY29uc3QgeyBmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCBjZW50ZXJlZEV2ZW50ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBmb2N1c2VkRXZlbnQgfHwgaG92ZXJlZEV2ZW50LFxuICAgIFtmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudF0sXG4gICk7XG4gIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gIGNvbnN0IHNlbGVjdGVkQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgICByZXR1cm4gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHJlZFBpblJlZFNoYWRvdyxcbiAgICAgIGljb25TaXplOiBbNjcsIDcwXSxcbiAgICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB3aGl0ZVBpblJlZFNoYWRvdyxcbiAgICAgIGljb25TaXplOiBbNjcsIDcwXSxcbiAgICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHN0YW5kYXJkQmFja2dyb3VuZCA9IChcbiAgICBzZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICB0aGlyZDogYm9vbGVhbiA9IGZhbHNlLFxuICApID0+IHtcbiAgICByZXR1cm4gTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHdoaXRlUGluQmxhY2tTaGFkb3csXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5ID8gWzIwLCAyMF0gOiBbNDMsIDQ2XSxcbiAgICAgIGljb25BbmNob3I6XG4gICAgICAgIHNlY29uZGFyeSAmJiB0aGlyZCA/IFstMiwgMTldIDogc2Vjb25kYXJ5ID8gWy0yLCA0NF0gOiBbMjAsIDQyXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjb21iaW5lZEZhY3RvcnlJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiB5ZWxsb3dDaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogWzI1LCAyNF0sXG4gICAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHBsYW50SWNvblVSTCxcbiAgICAgIGljb25TaXplOiBbMTUsIDE1XSxcbiAgICAgIGljb25BbmNob3I6IFs1LCAzMF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgY29uc3QgY29tYmluZWRQdW1wU3RhdGlvbkljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IGdyZWVuQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IFsyNSwgMjRdLFxuICAgICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBwdW1wU3RhdGlvbkljb25VUkwsXG4gICAgICBpY29uU2l6ZTogWzIwLCAyMF0sXG4gICAgICBpY29uQW5jaG9yOiBbNywgMzJdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmVkQ29sbGVjdG9yc0ljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IGNvbGxlY3Rvckljb24sXG4gICAgICBpY29uU2l6ZTogWzQ1LCA0NV0sXG5cbiAgICAgIGljb25BbmNob3I6IFsyNSwgNTBdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmVkV1dUUEljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IGJyaWdodEJsdWVDaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogWzI1LCAyNV0sXG4gICAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IFdXVFBJY29uVVJMLFxuICAgICAgaWNvblNpemU6IFsyMCwgMjBdLFxuICAgICAgaWNvbkFuY2hvcjogWzgsIDMxXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSA9ICgpID0+IHtcbiAgICBsZXQgc291cmNlO1xuXG4gICAgaWYgKGNlbnRlcmVkRXZlbnQgIT09IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IGNlbnRlcmVkRXZlbnQuc291cmNlcy5maWx0ZXIoXG4gICAgICAgIChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQsXG4gICAgICApWzBdO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBjZW50ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBzb3VyY2UgJiZcbiAgICAgIGNlbnRlcmVkRXZlbnQuc2VsZWN0ZWRfc291cmNlID09PSBzb3VyY2UucG9pbnRfaWRcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NvdXJjZSA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgY2VudGVyZWRFdmVudC5zb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UucG9pbnRfaWQgPT09IHBvaW50LmlkKVswXVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgaXNDb2xsZWN0b3JGb2N1c2VkID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgY2VudGVyZWRFdmVudD8ub2JzZXJ2YXRpb25zPy5sZW5ndGggPT09IDEgJiZcbiAgICAgIHBvaW50LmlkID09PSBjZW50ZXJlZEV2ZW50Lm9ic2VydmF0aW9uc1swXS5wb2ludF9pZFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgbWF0Y2hJY29uVG9Qb2ludCA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgc3dpdGNoIChwb2ludC5ncm91cC50eXBlKSB7XG4gICAgICBjYXNlICdHcm91cHM6OkZhY3RvcnknOlxuICAgICAgICBpZiAoY29tYmluZWRGYWN0b3J5SWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRGYWN0b3J5SWNvbjtcbiAgICAgIGNhc2UgJ0dyb3Vwczo6UHVtcFN0YXRpb24nOlxuICAgICAgICBpZiAoY29tYmluZWRQdW1wU3RhdGlvbkljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKCkpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uO1xuICAgICAgY2FzZSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnOlxuICAgICAgICBpZiAoY29tYmluZWRXV1RQSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpKSB7XG4gICAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tYmluZWRXV1RQSWNvbjtcblxuICAgICAgY2FzZSAnR3JvdXBzOjpDb2xsZWN0b3JzJzpcbiAgICAgICAgaWYgKGlzQ29sbGVjdG9yRm9jdXNlZChwb2ludCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgICAgICAgICBpY29uU2l6ZTogWzYyLCA2Ml0sXG4gICAgICAgICAgICAgIGljb25BbmNob3I6IFszMCwgNTJdLFxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIEwuaWNvbih7XG4gICAgICAgICAgICAgIGljb25Vcmw6IHdhdGVySWNvbk5vQmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgaWNvblNpemU6IFs0NiwgNDZdLFxuXG4gICAgICAgICAgICAgIGljb25BbmNob3I6IFsyMiwgNDRdLFxuICAgICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVkQ29sbGVjdG9yc0ljb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVNYW5ob2xlUG9pbnQgPSAobWFya2VyTG9jYXRpb246IG9iamVjdCkgPT4ge1xuICAgIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQb2ludCxcbiAgICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICAgIH0pO1xuICAgIGxldCBtYW5ob2xlSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgIGljb246IHBvaW50SWNvbixcbiAgICAgIHJpc2VPbkhvdmVyOiB0cnVlLFxuICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgbWFuaG9sZUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICAgIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlQ3VzdG9tSWNvblBvaW50ID0gKG1hcmtlckxvY2F0aW9uOiBvYmplY3QpID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCkgIT09IG51bGwgJiZcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpLmZvckVhY2goKGljb246IGFueSkgPT4ge1xuICAgICAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgICAgIGljb246IGljb24sXG4gICAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICAgICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICAgICAgfSk7XG5cbiAgICBpZiAocG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCkge1xuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbiA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgY2xhc3NOYW1lOiBgXG4gICAgICAgICAgJHtcbiAgICAgICAgICAgIHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPj0gMTAwXG4gICAgICAgICAgICAgID8gJ2NpcmNsZS1ldmVudHMtYW1vdW50IGNpcmNsZS1ldmVudHMtYW1vdW50LS10cmlkaWdpdCdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlLWV2ZW50cy1hbW91bnQnXG4gICAgICAgICAgfSBcbiAgICAgICAgICAke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPiAyID8gJ2FsZXJ0LWNvbG9yJyA6ICcnfVxuICAgICAgICAgICAgYCxcbiAgICAgICAgICBodG1sOiBgPHA+JHtwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50fTwvcD5gLFxuICAgICAgICAgIGljb25BbmNob3I6IFstNSwgNDJdLFxuICAgICAgICB9KSxcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVyJztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQgPSAoXG4gICAgbWFya2VyTG9jYXRpb246IG9iamVjdCxcbiAgICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICApID0+IHtcbiAgICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAgIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gICAgbGV0IHNhbXBsaW5nSWNvbiA9IFtcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IGJsdWVDaXJjbGVVUkwsXG4gICAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzEwLCAxMF0gOiBbMjUsIDI0XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgMTVdIDogWzEwLjcsIDMzLjddLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICAgIEwuaWNvbih7XG4gICAgICAgIGljb25Vcmw6IHNhbXBsaW5nSWNvblVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbNywgN10gOiBbMTMsIDE1XSxcbiAgICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMTNdIDogWzUsIDMwXSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBzYW1wbGluZ0ljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoKSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24sIHRydWUpKTtcbiAgICB9XG5cbiAgICBzYW1wbGluZ0ljb24uZm9yRWFjaCgoaWNvbikgPT4ge1xuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nJztcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCA9IChcbiAgICBtYXJrZXJMb2NhdGlvbjogb2JqZWN0LFxuICAgIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gICAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgICBsZXQgb2JzZXJ2YXRpb25JY29uID0gW1xuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogcGlua0NpcmNsZVVSTCxcbiAgICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMTAsIDEwXSA6IFsyNSwgMjRdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCA0MF0gOiBbMTAuNywgMzMuN10sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgIH0pLFxuICAgICAgTC5pY29uKHtcbiAgICAgICAgaWNvblVybDogb2JzZXJ2YXRpb25JY29uVVJMLFxuICAgICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFs3LCA3XSA6IFsxMywgMTVdLFxuICAgICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAzOF0gOiBbNSwgMzBdLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZSgpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbikpO1xuICAgIH1cblxuICAgIG9ic2VydmF0aW9uSWNvbi5mb3JFYWNoKChpY29uKSA9PiB7XG4gICAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgICBpY29uOiBpY29uLFxuICAgICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGAke3BvaW50Lmdyb3VwLm5hbWV9ICgke3BvaW50LmlkfSlgKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb24nO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHBvcHVwQ29udGVudCA9IChvYnM6IGFueSkgPT4ge1xuICAgIGlmIChvYnMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7cG9pbnQuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7cG9pbnQuZ3JvdXAubmFtZX08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWN0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ncmFwaC1pY29uIHBvcHVwLWdyYXBoLWljb24tJHtvYnMuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7XG4gICAgICAgICAgICAgICAgICAgICAgcG9pbnQuZ3JvdXAubmFtZVxuICAgICAgICAgICAgICAgICAgICB9PC9iPjwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdHlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwb3B1cC1jb250ZW50X19zZXZlcml0eS0tJyArIG9icy5zZXZlcml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktYlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuJHtvYnMuc2V2ZXJpdHl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwicG9wdXAtY29udGVudF9faHJcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19kaXNjaGFyZ2UtdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuZmlyc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwiZmlyc3Qtc2Vlbi1wb3B1cFwiPjwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3Lmxhc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwibGFzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgO1xuICAgIH1cbiAgfTtcblxuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdTYW1wbGluZycpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnSWNvbk51bWJlcicpO1xuXG4gIGNvbnN0IHBvaW50SXNPYnNlcnZhdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJlxuICAgICAgY2VudGVyZWRFdmVudC5vYnNlcnZhdGlvbnMuZmlsdGVyKChvYnMpID0+IG9icy5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBwb2ludEJlbG9uZ3NUb0V2ZW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGJpbmRQb3B1cFRvUG9pbnQgPSAob2JzOiBhbnkgPSBudWxsKSA9PiB7XG4gICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFsnUG9pbnQnLCAnT2JzZXJ2YXRpb24nXS5pbmNsdWRlcyhsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCkgJiZcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBvaW50LmlkXG4gICAgICApIHtcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5iaW5kUG9wdXAocG9wdXBDb250ZW50KG9icyksIHtcbiAgICAgICAgICBtaW5XaWR0aDogMjAwLFxuICAgICAgICB9KTtcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKGU6IGFueSkge1xuICAgICAgICAgIGlmIChmb2N1c2VkRXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFNlZW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGxldCBsYXN0U2VlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgbGV0IHNlY3RvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgICAgICBpZiAob2JzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtvYnMuc3RhcnRfdGltZX1cbiAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBmaXJzdFNlZW4sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtvYnMubGFzdF9zZWVuX3RpbWV9XG4gICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e29icy50aW1lX3pvbmV9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgbGFzdFNlZW4sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgPFNlY3RvclxuICAgICAgICAgICAgICAgICAgc2VjdG9yTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX25hbWV9XG4gICAgICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX2ljb25fbmFtZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzdcIlxuICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgIHNlY3RvcixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICQoJyNmaXJzdC1zZWVuLXBvcHVwJykuYXBwZW5kKGZpcnN0U2Vlbik7XG4gICAgICAgICAgICAgICQoJyNsYXN0LXNlZW4tcG9wdXAnKS5hcHBlbmQobGFzdFNlZW4pO1xuICAgICAgICAgICAgICAkKCcjc2VjdG9yJykuYXBwZW5kKHNlY3Rvcik7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBhdHRhY2hDbGlja0V2ZW50ID0gKHNlbGVjdG9yOiBzdHJpbmcsIG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ2NsaWNrJywgc2VsZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2goY2xvc2VGbG9hdGluZ0dyYXBoKCkpO1xuICAgICAgICAgICAgICBkaXNwYXRjaChvcGVuRmxvYXRpbmdHcmFwaCh0cnVlLCBvYnNlcnZhdGlvbiwgcG9pbnQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob2JzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgb2JzLmlkLCBvYnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgcG9pbnQuaWQsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub3BlblBvcHVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBjdXN0b21JY29uRm9yUG9pbnRzSWZQYXJ0T2ZQYXRoQW5kTW9uaXRvcmVkID0gKG1hcmtlckxvY2F0aW9uKSA9PiB7XG4gICAgaWYgKGNlbnRlcmVkRXZlbnQpIHtcbiAgICAgIGxldCBlZGdlc0lkczogbnVtYmVyW10gPSBbXTtcbiAgICAgIGNlbnRlcmVkRXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgICAgIGVkZ2VzSWRzLnB1c2gocGFydC5lZGdlX2lkKTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgcmVsZXZhbnRFZGdlcyA9IGVkZ2VzX2RhdGEuaXRlbXMuZmlsdGVyKChlZGdlKSA9PlxuICAgICAgICBlZGdlc0lkcy5pbmNsdWRlcyhlZGdlLmlkKSxcbiAgICAgICk7XG5cbiAgICAgIGxldCByZWxldmFudFBvaW50czogbnVtYmVyW10gPSBbXTtcbiAgICAgIHJlbGV2YW50RWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgICByZWxldmFudFBvaW50cy5wdXNoKGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVsZXZhbnRQb2ludHMuaW5jbHVkZXMocG9pbnQuaWQpKSB7XG4gICAgICAgIGNyZWF0ZU1hbmhvbGVQb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICAgIGNyZWF0ZUN1c3RvbUljb25Qb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZVNhbXBsaW5nSWNvbnMgPSAobWFya2VyTG9jYXRpb246IG51bWJlcltdKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRFdmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHNhbXBsZWRQb2ludElkcyA9IGZvY3VzZWRFdmVudC5zYW1wbGluZ3MubWFwKChzKSA9PiBzLnBvaW50X2lkKTtcbiAgICAgIGlmIChcbiAgICAgICAgZm9jdXNlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICAgIGZvY3VzZWRFdmVudC5zYW1wbGluZ3MubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIHNhbXBsZWRQb2ludElkcy5pbmNsdWRlcyhwb2ludC5pZClcbiAgICAgICkge1xuICAgICAgICBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludChcbiAgICAgICAgICBtYXJrZXJMb2NhdGlvbixcbiAgICAgICAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50KSAhPT0gbnVsbCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTG9naWMgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlckxvY2F0aW9uID0gW3BvaW50WydsYXRpdHVkZSddLCBwb2ludFsnbG9uZ2l0dWRlJ11dO1xuICAgIGN1c3RvbUljb25Gb3JQb2ludHNJZlBhcnRPZlBhdGhBbmRNb25pdG9yZWQobWFya2VyTG9jYXRpb24pO1xuICAgIGlmICghcG9pbnQuZXZlbnRzVmlld0hvdmVyZWQpIGNyZWF0ZU1hbmhvbGVQb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgaWYgKG1hcmtlckxvY2F0aW9uWzBdICE9PSBudWxsKSB7XG4gICAgICBjcmVhdGVTYW1wbGluZ0ljb25zKG1hcmtlckxvY2F0aW9uKTtcbiAgICAgIGlmIChwb2ludC5wYXJ0X29mX21vbml0b3JlZF9wYXRoICYmICFwb2ludC5oYXNfZGV2aWNlKSByZXR1cm47XG4gICAgICBpZiAoXG4gICAgICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpICE9PSBudWxsICYmXG4gICAgICAgIChjZW50ZXJlZEV2ZW50ID09PSBudWxsIHx8XG4gICAgICAgICAgKGNlbnRlcmVkRXZlbnQgIT09IG51bGwgJiYgcG9pbnRJc09ic2VydmF0aW9uKCkpIHx8XG4gICAgICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JylcbiAgICAgICkge1xuICAgICAgICBpZiAocG9pbnQuZXZlbnRzVmlld0hvdmVyZWQpIGNyZWF0ZU1hbmhvbGVQb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICAgIGNyZWF0ZUN1c3RvbUljb25Qb2ludChtYXJrZXJMb2NhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb2N1c2VkRXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IGhhc1ByaW1hcnlJY29uID0gbWF0Y2hJY29uVG9Qb2ludChwb2ludCkgIT09IG51bGw7XG5cbiAgICAgICAgaWYgKHBvaW50SXNPYnNlcnZhdGlvbigpKSB7XG4gICAgICAgICAgY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQobWFya2VyTG9jYXRpb24sIGhhc1ByaW1hcnlJY29uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY2VudGVyZWRFdmVudCAhPT0gbnVsbCAmJiBwb2ludEJlbG9uZ3NUb0V2ZW50KCkpIHtcbiAgICAgICAgbGV0IG9icyA9IGNlbnRlcmVkRXZlbnQub2JzZXJ2YXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkLFxuICAgICAgICApWzBdO1xuICAgICAgICBiaW5kUG9wdXBUb1BvaW50KG9icyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVuZGVyTG9naWMoKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgLy8gVU5CSU5EIFBPUFVQXG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdPYnNlcnZhdGlvbicpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG4gICAgfTtcbiAgfSwgW2NlbnRlcmVkRXZlbnRdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGlmIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgIT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -26,7 +26,7 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
26
26
|
return /*#__PURE__*/_react.default.createElement("div", null, points.length !== 0 && points.filter(function (point) {
|
|
27
27
|
return filterStatement(point);
|
|
28
28
|
}).map(function (point) {
|
|
29
|
-
return /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
|
|
29
|
+
return point.latitude && point.longitude && /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
|
|
30
30
|
map: map,
|
|
31
31
|
L: L,
|
|
32
32
|
point: point,
|
|
@@ -36,4 +36,4 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
exports.PointMarkers = PointMarkers;
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXJzLnRzeCJdLCJuYW1lcyI6WyJQb2ludE1hcmtlcnMiLCJwcm9wcyIsIkwiLCJwb2ludHMiLCJtYXAiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJldmVudCIsImZpbHRlclN0YXRlbWVudCIsInBvaW50IiwicGFydF9vZl9tb25pdG9yZWRfcGF0aCIsImhhc19kZXZpY2UiLCJoaWRlIiwiZ3JvdXAiLCJ0eXBlIiwibGVuZ3RoIiwiZmlsdGVyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBVU8sSUFBTUEsWUFBNkIsR0FBRyxTQUFoQ0EsWUFBZ0MsQ0FBQ0MsS0FBRCxFQUFXO0FBQ3RELE1BQVFDLENBQVIsR0FBb0VELEtBQXBFLENBQVFDLENBQVI7QUFBQSxNQUFXQyxNQUFYLEdBQW9FRixLQUFwRSxDQUFXRSxNQUFYO0FBQUEsTUFBbUJDLEdBQW5CLEdBQW9FSCxLQUFwRSxDQUFtQkcsR0FBbkI7QUFBQSw4QkFBb0VILEtBQXBFLENBQXdCSSx3QkFBeEI7QUFBQSxNQUF3QkEsd0JBQXhCLHNDQUFtRCxLQUFuRDtBQUFBLE1BQTBEQyxLQUExRCxHQUFvRUwsS0FBcEUsQ0FBMERLLEtBQTFEOztBQUNBLE1BQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRCxFQUFXO0FBQ2pDLFdBQ0csQ0FBQ0gsd0JBQXdCLEdBQ3RCRyxLQUFLLENBQUNDLHNCQURnQixHQUV0QkQsS0FBSyxDQUFDRSxVQUZULEtBR0MsQ0FBQ0YsS0FBSyxDQUFDRyxJQUhULElBSUFILEtBQUssQ0FBQ0ksS0FBTixDQUFZQyxJQUFaLEtBQXFCLGtDQUpyQixJQUtDTCxLQUFLLENBQUNDLHNCQUFOLElBQWdDSCxLQUFoQyxJQUF5Q0UsS0FBSyxDQUFDRSxVQU5sRDtBQVFELEdBVEQ7O0FBV0Esc0JBQ0UsMENBQ0dQLE1BQU0sQ0FBQ1csTUFBUCxLQUFrQixDQUFsQixJQUNDWCxNQUFNLENBQ0hZLE1BREgsQ0FDVSxVQUFDUCxLQUFEO0FBQUEsV0FBbUJELGVBQWUsQ0FBQ0MsS0FBRCxDQUFsQztBQUFBLEdBRFYsRUFFR0osR0FGSCxDQUdJLFVBQUNJLEtBQUQ7QUFBQSxXQUNFQSxLQUFLLENBQUNRLFFBQU4sSUFDQVIsS0FBSyxDQUFDUyxTQUROLGlCQUVFLDZCQUFDLG9CQUFEO0FBQWEsTUFBQSxHQUFHLEVBQUViLEdBQWxCO0FBQXVCLE1BQUEsQ0FBQyxFQUFFRixDQUExQjtBQUE2QixNQUFBLEtBQUssRUFBRU0sS0FBcEM7QUFBMkMsTUFBQSxHQUFHLEVBQUVBLEtBQUssQ0FBQ1U7QUFBdEQsTUFISjtBQUFBLEdBSEosQ0FGSixDQURGO0FBY0QsQ0EzQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBQb2ludE1hcmtlciBmcm9tICcuL1BvaW50TWFya2VyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgcG9pbnRzOiBhbnk7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogYm9vbGVhbjtcbiAgZXZlbnQ/OiBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgUG9pbnRNYXJrZXJzOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBMLCBwb2ludHMsIG1hcCwgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID0gZmFsc2UsIGV2ZW50IH0gPSBwcm9wcztcbiAgY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICgoaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzXG4gICAgICAgID8gcG9pbnQucGFydF9vZl9tb25pdG9yZWRfcGF0aFxuICAgICAgICA6IHBvaW50Lmhhc19kZXZpY2UpICYmXG4gICAgICAgICFwb2ludC5oaWRlKSB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JyB8fFxuICAgICAgKHBvaW50LnBhcnRfb2ZfbW9uaXRvcmVkX3BhdGggJiYgZXZlbnQgJiYgcG9pbnQuaGFzX2RldmljZSlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtwb2ludHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIHBvaW50c1xuICAgICAgICAgIC5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IGZpbHRlclN0YXRlbWVudChwb2ludCkpXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PlxuICAgICAgICAgICAgICBwb2ludC5sYXRpdHVkZSAmJlxuICAgICAgICAgICAgICBwb2ludC5sb25naXR1ZGUgJiYgKFxuICAgICAgICAgICAgICAgIDxQb2ludE1hcmtlciBtYXA9e21hcH0gTD17TH0gcG9pbnQ9e3BvaW50fSBrZXk9e3BvaW50LmlkfSAvPlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<mask id="mask0_731_5655" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="4" width="10" height="10">
|
|
3
|
+
<path d="M13.725 4.28253C13.5849 4.14209 13.3947 4.06316 13.1963 4.06316C12.9979 4.06316 12.8077 4.14209 12.6675 4.28253L9.00004 7.94253L5.33254 4.27503C5.19242 4.13459 5.00218 4.05566 4.80379 4.05566C4.6054 4.05566 4.41516 4.13459 4.27504 4.27503C3.98254 4.56753 3.98254 5.04003 4.27504 5.33253L7.94254 9.00003L4.27504 12.6675C3.98254 12.96 3.98254 13.4325 4.27504 13.725C4.56754 14.0175 5.04004 14.0175 5.33254 13.725L9.00004 10.0575L12.6675 13.725C12.96 14.0175 13.4325 14.0175 13.725 13.725C14.0175 13.4325 14.0175 12.96 13.725 12.6675L10.0575 9.00003L13.725 5.33253C14.01 5.04753 14.01 4.56753 13.725 4.28253Z" fill="black"/>
|
|
4
|
+
</mask>
|
|
5
|
+
<g mask="url(#mask0_731_5655)">
|
|
6
|
+
<rect width="18" height="18" fill="#858C94"/>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|