@kando-env/kando-ui 1.2.75-alpha.76 → 1.2.75-alpha.78
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 +38 -161
- package/lib/Widgets/Map/MapUtils.js +103 -0
- package/lib/Widgets/Map/events/Event.js +69 -0
- package/lib/Widgets/Map/events/EventIndicator.js +21 -46
- package/lib/Widgets/Map/events/EventPath.js +16 -37
- package/lib/Widgets/Map/events/EventUtils.js +211 -0
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +3 -117
- package/lib/Widgets/Map/events/PointOfEvent.js +135 -0
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +55 -0
- package/lib/Widgets/Map/events/Snail.js +60 -0
- package/lib/Widgets/Map/points/PointMarker.js +10 -472
- package/lib/Widgets/Map/points/PointMarkers.js +24 -17
- package/lib/Widgets/Map/points/PointUtils.js +368 -0
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +1 -4
- package/lib/pages/EventsPage/events/events_list/EventsList.js +14 -7
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
- package/package.json +1 -1
- package/lib/Widgets/Map/events/EventIndicatorHover.js +0 -252
- package/lib/Widgets/Map/events/EventPathHover.js +0 -81
|
@@ -2,50 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.PointMarkers = void 0;
|
|
9
11
|
|
|
10
|
-
var _react =
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
13
|
|
|
12
14
|
var _PointMarker = _interopRequireDefault(require("./PointMarker"));
|
|
13
15
|
|
|
16
|
+
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); }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
14
20
|
var PointMarkers = function PointMarkers(props) {
|
|
15
|
-
var
|
|
16
|
-
points = props.points,
|
|
21
|
+
var points = props.points,
|
|
17
22
|
map = props.map,
|
|
18
23
|
_props$includeUnmonit = props.includeUnmonitoredPoints,
|
|
19
24
|
includeUnmonitoredPoints = _props$includeUnmonit === void 0 ? false : _props$includeUnmonit,
|
|
20
|
-
|
|
25
|
+
_props$rerender = props.rerender,
|
|
26
|
+
rerender = _props$rerender === void 0 ? false : _props$rerender;
|
|
21
27
|
|
|
22
28
|
var isPointBelongToGroupTypes = function isPointBelongToGroupTypes(point) {
|
|
23
|
-
return point.group.type === 'Groups::WastewaterTreatmentPlant' || point.group.type === 'Groups::Collectors' && point.has_device;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var isPointMonitoredAndPartOfPath = function isPointMonitoredAndPartOfPath(point) {
|
|
27
|
-
return point.part_of_monitored_path && point.has_device && event;
|
|
29
|
+
return point.group.type === 'Groups::WastewaterTreatmentPlant' || point.group.type === 'Groups::Factory' && point.has_device || point.group.type === 'Groups::Collectors' && point.has_device;
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
var includeUnmonitoredPointsLogic = function includeUnmonitoredPointsLogic(point) {
|
|
31
|
-
return
|
|
33
|
+
return includeUnmonitoredPoints ? point.part_of_monitored_path : true;
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
var filterStatement = function filterStatement(point) {
|
|
35
|
-
return includeUnmonitoredPointsLogic(point)
|
|
37
|
+
return includeUnmonitoredPointsLogic(point) && isPointBelongToGroupTypes(point);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var filteredPoints = function filteredPoints() {
|
|
41
|
+
return points.filter(function (point) {
|
|
42
|
+
return filterStatement(point);
|
|
43
|
+
});
|
|
36
44
|
};
|
|
37
45
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}).map(function (point) {
|
|
46
|
+
(0, _react.useEffect)(function () {}, [rerender]);
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement("div", null, points.length !== 0 && filteredPoints().map(function (point) {
|
|
41
48
|
return point.latitude && point.longitude && /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
|
|
42
49
|
map: map,
|
|
43
|
-
L: L,
|
|
44
50
|
point: point,
|
|
45
|
-
key: point.id
|
|
51
|
+
key: point.id,
|
|
52
|
+
rerender: rerender
|
|
46
53
|
});
|
|
47
54
|
}));
|
|
48
55
|
};
|
|
49
56
|
|
|
50
57
|
exports.PointMarkers = PointMarkers;
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXJzLnRzeCJdLCJuYW1lcyI6WyJQb2ludE1hcmtlcnMiLCJwcm9wcyIsInBvaW50cyIsIm1hcCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsInJlcmVuZGVyIiwiaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyIsInBvaW50IiwiZ3JvdXAiLCJ0eXBlIiwiaGFzX2RldmljZSIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljIiwicGFydF9vZl9tb25pdG9yZWRfcGF0aCIsImZpbHRlclN0YXRlbWVudCIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwibGVuZ3RoIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBU08sSUFBTUEsWUFBNkIsR0FBRyxTQUFoQ0EsWUFBZ0MsQ0FBQ0MsS0FBRCxFQUFXO0FBQ3RELE1BQ0VDLE1BREYsR0FLSUQsS0FMSixDQUNFQyxNQURGO0FBQUEsTUFFRUMsR0FGRixHQUtJRixLQUxKLENBRUVFLEdBRkY7QUFBQSw4QkFLSUYsS0FMSixDQUdFRyx3QkFIRjtBQUFBLE1BR0VBLHdCQUhGLHNDQUc2QixLQUg3QjtBQUFBLHdCQUtJSCxLQUxKLENBSUVJLFFBSkY7QUFBQSxNQUlFQSxRQUpGLGdDQUlhLEtBSmI7O0FBT0EsTUFBTUMseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUE0QixDQUFDQyxLQUFELEVBQW1CO0FBQ25ELFdBQ0VBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxJQUFaLEtBQXFCLGtDQUFyQixJQUNDRixLQUFLLENBQUNDLEtBQU4sQ0FBWUMsSUFBWixLQUFxQixpQkFBckIsSUFBMENGLEtBQUssQ0FBQ0csVUFEakQsSUFFQ0gsS0FBSyxDQUFDQyxLQUFOLENBQVlDLElBQVosS0FBcUIsb0JBQXJCLElBQTZDRixLQUFLLENBQUNHLFVBSHREO0FBS0QsR0FORDs7QUFRQSxNQUFNQyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQWdDLENBQUNKLEtBQUQsRUFBbUI7QUFDdkQsV0FBT0gsd0JBQXdCLEdBQUdHLEtBQUssQ0FBQ0ssc0JBQVQsR0FBa0MsSUFBakU7QUFDRCxHQUZEOztBQUlBLE1BQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ04sS0FBRCxFQUFXO0FBQ2pDLFdBQ0VJLDZCQUE2QixDQUFDSixLQUFELENBQTdCLElBQXdDRCx5QkFBeUIsQ0FBQ0MsS0FBRCxDQURuRTtBQUdELEdBSkQ7O0FBTUEsTUFBTU8sY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFNO0FBQzNCLFdBQU9aLE1BQU0sQ0FBQ2EsTUFBUCxDQUFjLFVBQUNSLEtBQUQ7QUFBQSxhQUFtQk0sZUFBZSxDQUFDTixLQUFELENBQWxDO0FBQUEsS0FBZCxDQUFQO0FBQ0QsR0FGRDs7QUFJQSx3QkFBVSxZQUFNLENBQUUsQ0FBbEIsRUFBb0IsQ0FBQ0YsUUFBRCxDQUFwQjtBQUVBLHNCQUNFLDBDQUNHSCxNQUFNLENBQUNjLE1BQVAsS0FBa0IsQ0FBbEIsSUFDQ0YsY0FBYyxHQUFHWCxHQUFqQixDQUNFLFVBQUNJLEtBQUQ7QUFBQSxXQUNFQSxLQUFLLENBQUNVLFFBQU4sSUFDQVYsS0FBSyxDQUFDVyxTQUROLGlCQUVFLDZCQUFDLG9CQUFEO0FBQ0UsTUFBQSxHQUFHLEVBQUVmLEdBRFA7QUFFRSxNQUFBLEtBQUssRUFBRUksS0FGVDtBQUdFLE1BQUEsR0FBRyxFQUFFQSxLQUFLLENBQUNZLEVBSGI7QUFJRSxNQUFBLFFBQVEsRUFBRWQ7QUFKWixNQUhKO0FBQUEsR0FERixDQUZKLENBREY7QUFpQkQsQ0FqRE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBQb2ludE1hcmtlciBmcm9tICcuL1BvaW50TWFya2VyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgbWFwOiBhbnk7XG4gIHBvaW50czogYW55O1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM6IGJvb2xlYW47XG4gIHJlcmVuZGVyOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IFBvaW50TWFya2VyczogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwb2ludHMsXG4gICAgbWFwLFxuICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IGZhbHNlLFxuICAgIHJlcmVuZGVyID0gZmFsc2UsXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JyB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknICYmIHBvaW50Lmhhc19kZXZpY2UpIHx8XG4gICAgICAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6Q29sbGVjdG9ycycgJiYgcG9pbnQuaGFzX2RldmljZSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID8gcG9pbnQucGFydF9vZl9tb25pdG9yZWRfcGF0aCA6IHRydWU7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljKHBvaW50KSAmJiBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzKHBvaW50KVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50cy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IGZpbHRlclN0YXRlbWVudChwb2ludCkpO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW3JlcmVuZGVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge3BvaW50cy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgZmlsdGVyZWRQb2ludHMoKS5tYXAoXG4gICAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+XG4gICAgICAgICAgICBwb2ludC5sYXRpdHVkZSAmJlxuICAgICAgICAgICAgcG9pbnQubG9uZ2l0dWRlICYmIChcbiAgICAgICAgICAgICAgPFBvaW50TWFya2VyXG4gICAgICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICAgICAgcG9pbnQ9e3BvaW50fVxuICAgICAgICAgICAgICAgIGtleT17cG9pbnQuaWR9XG4gICAgICAgICAgICAgICAgcmVyZW5kZXI9e3JlcmVuZGVyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.popupContent = exports.createSamplingIcons = exports.createObservationIconPoint = exports.createSamplingIconPoint = exports.markerBelongsToSource = exports.markerBelongsToSelectedSource = exports.belongsToSourceBackground = exports.selectedBackground = exports.combinedWWTPIcon = exports.combinedCollectorsIcon = exports.combinedPumpStationIcon = exports.combinedFactoryIcon = exports.standardBackground = exports.matchIconToPoint = exports.createManholePoint = exports.createBubblePoint = exports.isCollectorFocused = void 0;
|
|
9
|
+
|
|
10
|
+
var _lineChart = _interopRequireDefault(require("../../../assets/line-chart.svg"));
|
|
11
|
+
|
|
12
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
+
|
|
14
|
+
var _i18n = _interopRequireDefault(require("../../../utilities/i18n"));
|
|
15
|
+
|
|
16
|
+
var _blueCircle = _interopRequireDefault(require("../../../assets/point_icons/blue-circle.svg"));
|
|
17
|
+
|
|
18
|
+
var _samplingIcon = _interopRequireDefault(require("../../../assets/point_icons/sampling-icon.svg"));
|
|
19
|
+
|
|
20
|
+
var _pinkCircle = _interopRequireDefault(require("../../../assets/point_icons/pink-circle.svg"));
|
|
21
|
+
|
|
22
|
+
var _observationIcon = _interopRequireDefault(require("../../../assets/point_icons/observation-icon.svg"));
|
|
23
|
+
|
|
24
|
+
var _redPinRedShadow = _interopRequireDefault(require("../../../assets/point_icons/red-pin-red-shadow.png"));
|
|
25
|
+
|
|
26
|
+
var _whitePinRedShadow = _interopRequireDefault(require("../../../assets/point_icons/white-pin-red-shadow.png"));
|
|
27
|
+
|
|
28
|
+
var _whitePinBlackShadow = _interopRequireDefault(require("../../../assets/point_icons/white-pin-black-shadow.png"));
|
|
29
|
+
|
|
30
|
+
var _yellowCircle = _interopRequireDefault(require("../../../assets/point_icons/yellow-circle.svg"));
|
|
31
|
+
|
|
32
|
+
var _factoryIcon = _interopRequireDefault(require("../../../assets/point_icons/factory-icon.svg"));
|
|
33
|
+
|
|
34
|
+
var _greenCircle = _interopRequireDefault(require("../../../assets/point_icons/green-circle.svg"));
|
|
35
|
+
|
|
36
|
+
var _pumpStationIcon = _interopRequireDefault(require("../../../assets/point_icons/pump-station-icon.svg"));
|
|
37
|
+
|
|
38
|
+
var _pinWater = _interopRequireDefault(require("../../../assets/map/pin-water.svg"));
|
|
39
|
+
|
|
40
|
+
var _brightBlueCircle = _interopRequireDefault(require("../../../assets/point_icons/bright-blue-circle.svg"));
|
|
41
|
+
|
|
42
|
+
var _WWTPIcon = _interopRequireDefault(require("../../../assets/point_icons/WWTP-icon.svg"));
|
|
43
|
+
|
|
44
|
+
var _waterNoBackground = _interopRequireDefault(require("../../../assets/point_icons/water-no-background.svg"));
|
|
45
|
+
|
|
46
|
+
var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.png"));
|
|
47
|
+
|
|
48
|
+
var isCollectorFocused = function isCollectorFocused(point, event) {
|
|
49
|
+
var _event$observations;
|
|
50
|
+
|
|
51
|
+
return (event === null || event === void 0 ? void 0 : (_event$observations = event.observations) === null || _event$observations === void 0 ? void 0 : _event$observations.length) === 1 && point.id === event.observations[0].point_id;
|
|
52
|
+
}; // iconSize: [width, height],
|
|
53
|
+
// IconAnchor: [(-right)(+left), (-down)(+up)]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
exports.isCollectorFocused = isCollectorFocused;
|
|
57
|
+
|
|
58
|
+
var createBubblePoint = function createBubblePoint(markerLocation, point, map) {
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
matchIconToPoint(point) !== null && // @ts-ignore
|
|
61
|
+
matchIconToPoint(point).forEach(function (icon) {
|
|
62
|
+
var pointCustomIcon = _leaflet.default.marker(markerLocation, {
|
|
63
|
+
icon: icon,
|
|
64
|
+
riseOnHover: false
|
|
65
|
+
}).addTo(map);
|
|
66
|
+
|
|
67
|
+
pointCustomIcon.bindTooltip("".concat(point.group.name, " (").concat(point.id, ")"));
|
|
68
|
+
pointCustomIcon['kando_object_id'] = point.id;
|
|
69
|
+
pointCustomIcon['kando_object'] = 'Point';
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (point.relatedEventsAmount) {
|
|
73
|
+
var pointCustomIcon = _leaflet.default.marker(markerLocation, {
|
|
74
|
+
icon: _leaflet.default.divIcon({
|
|
75
|
+
className: "\n ".concat(point.relatedEventsAmount >= 100 ? 'circle-events-amount circle-events-amount--tridigit' : 'circle-events-amount', " \n ").concat(point.relatedEventsAmount > 2 ? 'alert-color' : '', "\n "),
|
|
76
|
+
html: "<p>".concat(point.relatedEventsAmount, "</p>"),
|
|
77
|
+
iconAnchor: [-5, 42]
|
|
78
|
+
}),
|
|
79
|
+
riseOnHover: false
|
|
80
|
+
}).addTo(map);
|
|
81
|
+
|
|
82
|
+
pointCustomIcon['kando_object_id'] = point.id;
|
|
83
|
+
pointCustomIcon['kando_object'] = 'IconNumber';
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
exports.createBubblePoint = createBubblePoint;
|
|
88
|
+
|
|
89
|
+
var createManholePoint = function createManholePoint(markerLocation, point, map) {
|
|
90
|
+
var pointIcon = _leaflet.default.icon({
|
|
91
|
+
iconUrl: _whitePoint.default,
|
|
92
|
+
iconSize: [9, 9],
|
|
93
|
+
iconAnchor: [4.5, 4.5]
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
var manholeIcon = _leaflet.default.marker(markerLocation, {
|
|
97
|
+
icon: pointIcon,
|
|
98
|
+
riseOnHover: true
|
|
99
|
+
}).addTo(map);
|
|
100
|
+
|
|
101
|
+
manholeIcon.bindTooltip("".concat(point.group.name, " (").concat(point.id, ")"));
|
|
102
|
+
manholeIcon['kando_object_id'] = point.id;
|
|
103
|
+
manholeIcon['kando_object'] = 'Point';
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
exports.createManholePoint = createManholePoint;
|
|
107
|
+
|
|
108
|
+
var matchIconToPoint = function matchIconToPoint(point, event) {
|
|
109
|
+
switch (point.group.type) {
|
|
110
|
+
case 'Groups::Factory':
|
|
111
|
+
if (combinedFactoryIcon.length === 2) {
|
|
112
|
+
if (markerBelongsToSelectedSource(event, point)) {
|
|
113
|
+
combinedFactoryIcon.unshift(selectedBackground());
|
|
114
|
+
} else if (markerBelongsToSource(event, point)) {
|
|
115
|
+
combinedFactoryIcon.unshift(belongsToSourceBackground());
|
|
116
|
+
} else {
|
|
117
|
+
combinedFactoryIcon.unshift(standardBackground());
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return combinedFactoryIcon;
|
|
122
|
+
|
|
123
|
+
case 'Groups::PumpStation':
|
|
124
|
+
if (combinedPumpStationIcon.length === 2) {
|
|
125
|
+
if (markerBelongsToSelectedSource(event, point)) {
|
|
126
|
+
combinedPumpStationIcon.unshift(selectedBackground());
|
|
127
|
+
} else if (markerBelongsToSource(event, point)) {
|
|
128
|
+
combinedPumpStationIcon.unshift(belongsToSourceBackground());
|
|
129
|
+
} else {
|
|
130
|
+
combinedPumpStationIcon.unshift(standardBackground());
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return combinedPumpStationIcon;
|
|
135
|
+
|
|
136
|
+
case 'Groups::WastewaterTreatmentPlant':
|
|
137
|
+
if (combinedWWTPIcon.length === 2) {
|
|
138
|
+
if (markerBelongsToSelectedSource(event, point)) {
|
|
139
|
+
combinedWWTPIcon.unshift(selectedBackground());
|
|
140
|
+
} else if (markerBelongsToSource(event, point)) {
|
|
141
|
+
combinedWWTPIcon.unshift(belongsToSourceBackground());
|
|
142
|
+
} else {
|
|
143
|
+
combinedWWTPIcon.unshift(standardBackground());
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return combinedWWTPIcon;
|
|
148
|
+
|
|
149
|
+
case 'Groups::Collectors':
|
|
150
|
+
if (isCollectorFocused(point, event)) {
|
|
151
|
+
return [_leaflet.default.icon({
|
|
152
|
+
iconUrl: _redPinRedShadow.default,
|
|
153
|
+
iconSize: [62, 62],
|
|
154
|
+
iconAnchor: [30, 52]
|
|
155
|
+
}), _leaflet.default.icon({
|
|
156
|
+
iconUrl: _waterNoBackground.default,
|
|
157
|
+
iconSize: [46, 46],
|
|
158
|
+
iconAnchor: [22, 44],
|
|
159
|
+
popupAnchor: [0, -30]
|
|
160
|
+
})];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return combinedCollectorsIcon;
|
|
164
|
+
|
|
165
|
+
default:
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
exports.matchIconToPoint = matchIconToPoint;
|
|
171
|
+
|
|
172
|
+
var standardBackground = function standardBackground() {
|
|
173
|
+
var secondary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
174
|
+
var third = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
175
|
+
return _leaflet.default.icon({
|
|
176
|
+
iconUrl: _whitePinBlackShadow.default,
|
|
177
|
+
iconSize: secondary ? [20, 20] : [43, 46],
|
|
178
|
+
iconAnchor: secondary && third ? [-2, 19] : secondary ? [-2, 44] : [20, 42],
|
|
179
|
+
popupAnchor: [0, -30]
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
exports.standardBackground = standardBackground;
|
|
184
|
+
var combinedFactoryIcon = [_leaflet.default.icon({
|
|
185
|
+
iconUrl: _yellowCircle.default,
|
|
186
|
+
iconSize: [25, 24],
|
|
187
|
+
iconAnchor: [10.7, 33.7],
|
|
188
|
+
popupAnchor: [0, -30]
|
|
189
|
+
}), _leaflet.default.icon({
|
|
190
|
+
iconUrl: _factoryIcon.default,
|
|
191
|
+
iconSize: [15, 15],
|
|
192
|
+
iconAnchor: [5, 30],
|
|
193
|
+
popupAnchor: [0, -30]
|
|
194
|
+
})];
|
|
195
|
+
exports.combinedFactoryIcon = combinedFactoryIcon;
|
|
196
|
+
var combinedPumpStationIcon = [_leaflet.default.icon({
|
|
197
|
+
iconUrl: _greenCircle.default,
|
|
198
|
+
iconSize: [25, 24],
|
|
199
|
+
iconAnchor: [10.7, 33.7],
|
|
200
|
+
popupAnchor: [0, -30]
|
|
201
|
+
}), _leaflet.default.icon({
|
|
202
|
+
iconUrl: _pumpStationIcon.default,
|
|
203
|
+
iconSize: [20, 20],
|
|
204
|
+
iconAnchor: [7, 32],
|
|
205
|
+
popupAnchor: [0, -30]
|
|
206
|
+
})];
|
|
207
|
+
exports.combinedPumpStationIcon = combinedPumpStationIcon;
|
|
208
|
+
var combinedCollectorsIcon = [_leaflet.default.icon({
|
|
209
|
+
iconUrl: _pinWater.default,
|
|
210
|
+
iconSize: [45, 45],
|
|
211
|
+
iconAnchor: [25, 50],
|
|
212
|
+
popupAnchor: [0, -30]
|
|
213
|
+
})];
|
|
214
|
+
exports.combinedCollectorsIcon = combinedCollectorsIcon;
|
|
215
|
+
var combinedWWTPIcon = [_leaflet.default.icon({
|
|
216
|
+
iconUrl: _brightBlueCircle.default,
|
|
217
|
+
iconSize: [25, 25],
|
|
218
|
+
iconAnchor: [10.7, 33.7],
|
|
219
|
+
popupAnchor: [0, -30]
|
|
220
|
+
}), _leaflet.default.icon({
|
|
221
|
+
iconUrl: _WWTPIcon.default,
|
|
222
|
+
iconSize: [20, 20],
|
|
223
|
+
iconAnchor: [8, 31],
|
|
224
|
+
popupAnchor: [0, -30]
|
|
225
|
+
})];
|
|
226
|
+
exports.combinedWWTPIcon = combinedWWTPIcon;
|
|
227
|
+
|
|
228
|
+
var selectedBackground = function selectedBackground() {
|
|
229
|
+
return _leaflet.default.icon({
|
|
230
|
+
iconUrl: _redPinRedShadow.default,
|
|
231
|
+
iconSize: [67, 70],
|
|
232
|
+
iconAnchor: [32, 54],
|
|
233
|
+
popupAnchor: [0, -30]
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
exports.selectedBackground = selectedBackground;
|
|
238
|
+
|
|
239
|
+
var belongsToSourceBackground = function belongsToSourceBackground() {
|
|
240
|
+
return _leaflet.default.icon({
|
|
241
|
+
iconUrl: _whitePinRedShadow.default,
|
|
242
|
+
iconSize: [67, 70],
|
|
243
|
+
iconAnchor: [32, 54],
|
|
244
|
+
popupAnchor: [0, -30]
|
|
245
|
+
});
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
exports.belongsToSourceBackground = belongsToSourceBackground;
|
|
249
|
+
|
|
250
|
+
var markerBelongsToSelectedSource = function markerBelongsToSelectedSource(event, point) {
|
|
251
|
+
var source;
|
|
252
|
+
|
|
253
|
+
if (event !== null && event !== undefined) {
|
|
254
|
+
source = event.sources.filter(function (source) {
|
|
255
|
+
return source.point_id === point.id;
|
|
256
|
+
})[0];
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return event !== null && source && event.selected_source === source.point_id;
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
exports.markerBelongsToSelectedSource = markerBelongsToSelectedSource;
|
|
263
|
+
|
|
264
|
+
var markerBelongsToSource = function markerBelongsToSource(event, point) {
|
|
265
|
+
if (event === undefined) return;
|
|
266
|
+
return event !== null && event.sources.filter(function (source) {
|
|
267
|
+
return source.point_id === point.id;
|
|
268
|
+
})[0];
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
exports.markerBelongsToSource = markerBelongsToSource;
|
|
272
|
+
|
|
273
|
+
var createSamplingIconPoint = function createSamplingIconPoint(markerLocation, secondaryIcon, map, point, event) {
|
|
274
|
+
// iconSize: [width, height],
|
|
275
|
+
// Icon Anchor: [(-right)(+left), (-down)(+up)]
|
|
276
|
+
var samplingIcon = [_leaflet.default.icon({
|
|
277
|
+
iconUrl: _blueCircle.default,
|
|
278
|
+
iconSize: secondaryIcon ? [10, 10] : [25, 24],
|
|
279
|
+
iconAnchor: secondaryIcon ? [-7, 15] : [10.7, 33.7],
|
|
280
|
+
popupAnchor: [0, -30]
|
|
281
|
+
}), _leaflet.default.icon({
|
|
282
|
+
iconUrl: _samplingIcon.default,
|
|
283
|
+
iconSize: secondaryIcon ? [7, 7] : [13, 15],
|
|
284
|
+
iconAnchor: secondaryIcon ? [-8, 13] : [5, 30],
|
|
285
|
+
popupAnchor: [0, -30]
|
|
286
|
+
})];
|
|
287
|
+
|
|
288
|
+
if (markerBelongsToSelectedSource(event, point) && !secondaryIcon) {
|
|
289
|
+
samplingIcon.unshift(selectedBackground());
|
|
290
|
+
} else if (markerBelongsToSource(event, point) && !secondaryIcon) {
|
|
291
|
+
samplingIcon.unshift(belongsToSourceBackground());
|
|
292
|
+
} else {
|
|
293
|
+
samplingIcon.unshift(standardBackground(secondaryIcon, true));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
samplingIcon.forEach(function (icon) {
|
|
297
|
+
var pointCustomIcon = _leaflet.default.marker(markerLocation, {
|
|
298
|
+
icon: icon,
|
|
299
|
+
riseOnHover: false
|
|
300
|
+
}).addTo(map);
|
|
301
|
+
|
|
302
|
+
pointCustomIcon.bindTooltip("".concat(point.group.name, " (").concat(point.id, ")"));
|
|
303
|
+
pointCustomIcon['kando_object_id'] = point.id;
|
|
304
|
+
pointCustomIcon['kando_object'] = 'Sampling';
|
|
305
|
+
});
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
exports.createSamplingIconPoint = createSamplingIconPoint;
|
|
309
|
+
|
|
310
|
+
var createObservationIconPoint = function createObservationIconPoint(markerLocation, secondaryIcon, map, point, event) {
|
|
311
|
+
// iconSize: [width, height],
|
|
312
|
+
// Icon Anchor: [(-right)(+left), (-down)(+up)]
|
|
313
|
+
var observationIcon = [_leaflet.default.icon({
|
|
314
|
+
iconUrl: _pinkCircle.default,
|
|
315
|
+
iconSize: secondaryIcon ? [10, 10] : [25, 24],
|
|
316
|
+
iconAnchor: secondaryIcon ? [-7, 40] : [10.7, 33.7],
|
|
317
|
+
popupAnchor: [0, -30]
|
|
318
|
+
}), _leaflet.default.icon({
|
|
319
|
+
iconUrl: _observationIcon.default,
|
|
320
|
+
iconSize: secondaryIcon ? [7, 7] : [13, 15],
|
|
321
|
+
iconAnchor: secondaryIcon ? [-8, 38] : [5, 30],
|
|
322
|
+
popupAnchor: [0, -30]
|
|
323
|
+
})];
|
|
324
|
+
|
|
325
|
+
if (markerBelongsToSelectedSource(event, point) && !secondaryIcon) {
|
|
326
|
+
observationIcon.unshift(selectedBackground());
|
|
327
|
+
} else if (markerBelongsToSource(event, point) && !secondaryIcon) {
|
|
328
|
+
observationIcon.unshift(belongsToSourceBackground());
|
|
329
|
+
} else {
|
|
330
|
+
observationIcon.unshift(standardBackground(secondaryIcon));
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
observationIcon.forEach(function (icon) {
|
|
334
|
+
var pointCustomIcon = _leaflet.default.marker(markerLocation, {
|
|
335
|
+
icon: icon,
|
|
336
|
+
riseOnHover: false
|
|
337
|
+
}).addTo(map);
|
|
338
|
+
|
|
339
|
+
pointCustomIcon.bindTooltip("".concat(point.group.name, " (").concat(point.id, ")"));
|
|
340
|
+
pointCustomIcon['kando_object_id'] = point.id;
|
|
341
|
+
pointCustomIcon['kando_object'] = 'Observation';
|
|
342
|
+
});
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
exports.createObservationIconPoint = createObservationIconPoint;
|
|
346
|
+
|
|
347
|
+
var createSamplingIcons = function createSamplingIcons(markerLocation, event, point, map) {
|
|
348
|
+
var sampledPointIds = event.samplings.map(function (s) {
|
|
349
|
+
return s.point_id;
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
if (event !== null && event.samplings.length !== 0 && sampledPointIds.includes(point.id)) {
|
|
353
|
+
createSamplingIconPoint(markerLocation, matchIconToPoint(point, event) !== null, map, point, event);
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
exports.createSamplingIcons = createSamplingIcons;
|
|
358
|
+
|
|
359
|
+
var popupContent = function popupContent(obs, point) {
|
|
360
|
+
if (obs === null) {
|
|
361
|
+
return "\n <div class=\"event-popup\">\n <div class=\"popup-graph-icon popup-graph-icon-".concat(point.id, "\">\n <img src=\"").concat(_lineChart.default, "\"/>\n </div>\n <div class=\"popup-content\">\n <h5 class=\"popup-content__site-name\"><b>").concat(point.group.name, "</b></h5>\n <hr/>\n \n <div id=\"sector\"></div>\n </div>\n </div>\n ");
|
|
362
|
+
} else {
|
|
363
|
+
return "\n <div class=\"event-popup\">\n <div class=\"popup-graph-icon popup-graph-icon-".concat(obs.id, "\">\n <img src=\"").concat(_lineChart.default, "\"/>\n </div>\n <div class=\"popup-content\">\n <h5 class=\"popup-content__site-name\"><b>").concat(point.group.name, "</b></h5>\n <div class=\"popup-content__severity\">\n <p class=\"popup-content__severity-p\">").concat(_i18n.default.t("events_overview.severity"), "</p>\n <span class=\"").concat('popup-content__severity--' + obs.severity, "\">\n <b class=\"popup-content__severity-b\">\n ").concat(_i18n.default.t("events_overview.severities.".concat(obs.severity)), "\n </b>\n </span>\n </div>\n \n <hr class=\"popup-content__hr\" />\n\n <div class=\"popup-content__discharge-time\">\n <div>\n <p class=\"popup-content__severity-p\">").concat(_i18n.default.t("events_overview.first_seen"), ":</p>\n <span><b id=\"first-seen-popup\"></b></span>\n </div>\n <div>\n <p class=\"popup-content__severity-p\">").concat(_i18n.default.t("events_overview.last_seen"), ":</p>\n <span><b id=\"last-seen-popup\"></b></span>\n </div> \n </div>\n </div>\n </div>\n ");
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
exports.popupContent = popupContent;
|
|
368
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRVdGlscy50cyJdLCJuYW1lcyI6WyJpc0NvbGxlY3RvckZvY3VzZWQiLCJwb2ludCIsImV2ZW50Iiwib2JzZXJ2YXRpb25zIiwibGVuZ3RoIiwiaWQiLCJwb2ludF9pZCIsImNyZWF0ZUJ1YmJsZVBvaW50IiwibWFya2VyTG9jYXRpb24iLCJtYXAiLCJtYXRjaEljb25Ub1BvaW50IiwiZm9yRWFjaCIsImljb24iLCJwb2ludEN1c3RvbUljb24iLCJMIiwibWFya2VyIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwiZ3JvdXAiLCJuYW1lIiwicmVsYXRlZEV2ZW50c0Ftb3VudCIsImRpdkljb24iLCJjbGFzc05hbWUiLCJodG1sIiwiaWNvbkFuY2hvciIsImNyZWF0ZU1hbmhvbGVQb2ludCIsInBvaW50SWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJtYW5ob2xlSWNvbiIsInR5cGUiLCJjb21iaW5lZEZhY3RvcnlJY29uIiwibWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UiLCJ1bnNoaWZ0Iiwic2VsZWN0ZWRCYWNrZ3JvdW5kIiwibWFya2VyQmVsb25nc1RvU291cmNlIiwiYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCIsInN0YW5kYXJkQmFja2dyb3VuZCIsImNvbWJpbmVkUHVtcFN0YXRpb25JY29uIiwiY29tYmluZWRXV1RQSWNvbiIsInJlZFBpblJlZFNoYWRvdyIsIndhdGVySWNvbk5vQmFja2dyb3VuZCIsInBvcHVwQW5jaG9yIiwiY29tYmluZWRDb2xsZWN0b3JzSWNvbiIsInNlY29uZGFyeSIsInRoaXJkIiwid2hpdGVQaW5CbGFja1NoYWRvdyIsInllbGxvd0NpcmNsZVVSTCIsInBsYW50SWNvblVSTCIsImdyZWVuQ2lyY2xlVVJMIiwicHVtcFN0YXRpb25JY29uVVJMIiwiY29sbGVjdG9ySWNvbiIsImJyaWdodEJsdWVDaXJjbGVVUkwiLCJXV1RQSWNvblVSTCIsIndoaXRlUGluUmVkU2hhZG93Iiwic291cmNlIiwidW5kZWZpbmVkIiwic291cmNlcyIsImZpbHRlciIsInNlbGVjdGVkX3NvdXJjZSIsImNyZWF0ZVNhbXBsaW5nSWNvblBvaW50Iiwic2Vjb25kYXJ5SWNvbiIsInNhbXBsaW5nSWNvbiIsImJsdWVDaXJjbGVVUkwiLCJzYW1wbGluZ0ljb25VUkwiLCJjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCIsIm9ic2VydmF0aW9uSWNvbiIsInBpbmtDaXJjbGVVUkwiLCJvYnNlcnZhdGlvbkljb25VUkwiLCJjcmVhdGVTYW1wbGluZ0ljb25zIiwic2FtcGxlZFBvaW50SWRzIiwic2FtcGxpbmdzIiwicyIsImluY2x1ZGVzIiwicG9wdXBDb250ZW50Iiwib2JzIiwiR3JhcGhJY29uIiwiaTE4biIsInQiLCJzZXZlcml0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQU9BOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQTs7QUFFTyxJQUFNQSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQXFCLENBQUNDLEtBQUQsRUFBZ0JDLEtBQWhCLEVBQWtDO0FBQUE7O0FBQ2xFLFNBQ0UsQ0FBQUEsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxtQ0FBQUEsS0FBSyxDQUFFQyxZQUFQLDRFQUFxQkMsTUFBckIsTUFBZ0MsQ0FBaEMsSUFDQUgsS0FBSyxDQUFDSSxFQUFOLEtBQWFILEtBQUssQ0FBQ0MsWUFBTixDQUFtQixDQUFuQixFQUFzQkcsUUFGckM7QUFJRCxDQUxNLEMsQ0FPUDtBQUNBOzs7OztBQUNPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FDL0JDLGNBRCtCLEVBRS9CUCxLQUYrQixFQUcvQlEsR0FIK0IsRUFJNUI7QUFDSDtBQUNBQyxFQUFBQSxnQkFBZ0IsQ0FBQ1QsS0FBRCxDQUFoQixLQUE0QixJQUE1QixJQUNFO0FBQ0FTLEVBQUFBLGdCQUFn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cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICcuLi8uLi8uLi9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuXG5leHBvcnQgY29uc3QgaXNDb2xsZWN0b3JGb2N1c2VkID0gKHBvaW50OiBJUG9pbnQsIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgcmV0dXJuIChcbiAgICBldmVudD8ub2JzZXJ2YXRpb25zPy5sZW5ndGggPT09IDEgJiZcbiAgICBwb2ludC5pZCA9PT0gZXZlbnQub2JzZXJ2YXRpb25zWzBdLnBvaW50X2lkXG4gICk7XG59O1xuXG4vLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuLy8gSWNvbkFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJ1YmJsZVBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbikgPT4ge1xuICAvLyBAdHMtaWdub3JlXG4gIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpICE9PSBudWxsICYmXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQpLmZvckVhY2goKGljb246IGFueSkgPT4ge1xuICAgICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgICB9KTtcblxuICBpZiAocG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCkge1xuICAgIGxldCBwb2ludEN1c3RvbUljb24gPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgY2xhc3NOYW1lOiBgXG4gICAgICAgICAgJHtcbiAgICAgICAgICAgIHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPj0gMTAwXG4gICAgICAgICAgICAgID8gJ2NpcmNsZS1ldmVudHMtYW1vdW50IGNpcmNsZS1ldmVudHMtYW1vdW50LS10cmlkaWdpdCdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlLWV2ZW50cy1hbW91bnQnXG4gICAgICAgICAgfSBcbiAgICAgICAgICAke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPiAyID8gJ2FsZXJ0LWNvbG9yJyA6ICcnfVxuICAgICAgICAgICAgYCxcbiAgICAgICAgaHRtbDogYDxwPiR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudH08L3A+YCxcbiAgICAgICAgaWNvbkFuY2hvcjogWy01LCA0Ml0sXG4gICAgICB9KSxcbiAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnSWNvbk51bWJlcic7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYW5ob2xlUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgcG9pbnQ6IElQb2ludCxcbiAgbWFwLFxuKSA9PiB7XG4gIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IHBvaW50SWNvbixcbiAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgfSkuYWRkVG8obWFwKTtcbiAgbWFuaG9sZUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBtYXRjaEljb25Ub1BvaW50ID0gKHBvaW50OiBJUG9pbnQsIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgc3dpdGNoIChwb2ludC5ncm91cC50eXBlKSB7XG4gICAgY2FzZSAnR3JvdXBzOjpGYWN0b3J5JzpcbiAgICAgIGlmIChjb21iaW5lZEZhY3RvcnlJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEZhY3RvcnlJY29uO1xuICAgIGNhc2UgJ0dyb3Vwczo6UHVtcFN0YXRpb24nOlxuICAgICAgaWYgKGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbjtcbiAgICBjYXNlICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc6XG4gICAgICBpZiAoY29tYmluZWRXV1RQSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRXV1RQSWNvbjtcblxuICAgIGNhc2UgJ0dyb3Vwczo6Q29sbGVjdG9ycyc6XG4gICAgICBpZiAoaXNDb2xsZWN0b3JGb2N1c2VkKHBvaW50LCBldmVudCkpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgICAgICAgaWNvblNpemU6IFs2MiwgNjJdLFxuICAgICAgICAgICAgaWNvbkFuY2hvcjogWzMwLCA1Ml0sXG4gICAgICAgICAgfSksXG5cbiAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgaWNvblVybDogd2F0ZXJJY29uTm9CYWNrZ3JvdW5kLFxuICAgICAgICAgICAgaWNvblNpemU6IFs0NiwgNDZdLFxuXG4gICAgICAgICAgICBpY29uQW5jaG9yOiBbMjIsIDQ0XSxcbiAgICAgICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbWJpbmVkQ29sbGVjdG9yc0ljb247XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzdGFuZGFyZEJhY2tncm91bmQgPSAoXG4gIHNlY29uZGFyeTogYm9vbGVhbiA9IGZhbHNlLFxuICB0aGlyZDogYm9vbGVhbiA9IGZhbHNlLFxuKSA9PiB7XG4gIHJldHVybiBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUGluQmxhY2tTaGFkb3csXG4gICAgaWNvblNpemU6IHNlY29uZGFyeSA/IFsyMCwgMjBdIDogWzQzLCA0Nl0sXG4gICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5ICYmIHRoaXJkID8gWy0yLCAxOV0gOiBzZWNvbmRhcnkgPyBbLTIsIDQ0XSA6IFsyMCwgNDJdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29tYmluZWRGYWN0b3J5SWNvbiA9IFtcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiB5ZWxsb3dDaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFsyNSwgMjRdLFxuICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuICBMLmljb24oe1xuICAgIGljb25Vcmw6IHBsYW50SWNvblVSTCxcbiAgICBpY29uU2l6ZTogWzE1LCAxNV0sXG4gICAgaWNvbkFuY2hvcjogWzUsIDMwXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkUHVtcFN0YXRpb25JY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGdyZWVuQ2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMjUsIDI0XSxcbiAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBwdW1wU3RhdGlvbkljb25VUkwsXG4gICAgaWNvblNpemU6IFsyMCwgMjBdLFxuICAgIGljb25BbmNob3I6IFs3LCAzMl0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZENvbGxlY3RvcnNJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGNvbGxlY3Rvckljb24sXG4gICAgaWNvblNpemU6IFs0NSwgNDVdLFxuXG4gICAgaWNvbkFuY2hvcjogWzI1LCA1MF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZFdXVFBJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGJyaWdodEJsdWVDaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFsyNSwgMjVdLFxuICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuICBMLmljb24oe1xuICAgIGljb25Vcmw6IFdXVFBJY29uVVJMLFxuICAgIGljb25TaXplOiBbMjAsIDIwXSxcbiAgICBpY29uQW5jaG9yOiBbOCwgMzFdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0ZWRCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICByZXR1cm4gTC5pY29uKHtcbiAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQaW5SZWRTaGFkb3csXG4gICAgaWNvblNpemU6IFs2NywgNzBdLFxuICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UgPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICBsZXQgc291cmNlO1xuXG4gIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgc291cmNlID0gZXZlbnQuc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZClbMF07XG4gIH1cblxuICByZXR1cm4gZXZlbnQgIT09IG51bGwgJiYgc291cmNlICYmIGV2ZW50LnNlbGVjdGVkX3NvdXJjZSA9PT0gc291cmNlLnBvaW50X2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NvdXJjZSA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIGlmIChldmVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiAoXG4gICAgZXZlbnQgIT09IG51bGwgJiZcbiAgICBldmVudC5zb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UucG9pbnRfaWQgPT09IHBvaW50LmlkKVswXVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gIG1hcCxcbiAgcG9pbnQ6IElQb2ludCxcbiAgZXZlbnQ6IElFdmVudCxcbikgPT4ge1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBsZXQgc2FtcGxpbmdJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBibHVlQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMTAsIDEwXSA6IFsyNSwgMjRdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgMTVdIDogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBzYW1wbGluZ0ljb25VUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFs3LCA3XSA6IFsxMywgMTVdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMTNdIDogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSB7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24sIHRydWUpKTtcbiAgfVxuXG4gIHNhbXBsaW5nSWNvbi5mb3JFYWNoKChpY29uKSA9PiB7XG4gICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgIGljb246IGljb24sXG4gICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgfSkuYWRkVG8obWFwKTtcbiAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYCR7cG9pbnQuZ3JvdXAubmFtZX0gKCR7cG9pbnQuaWR9KWApO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nJztcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgc2Vjb25kYXJ5SWNvbjogYm9vbGVhbixcbiAgbWFwLFxuICBwb2ludDogSVBvaW50LFxuICBldmVudDogSUV2ZW50LFxuKSA9PiB7XG4gIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gIGxldCBvYnNlcnZhdGlvbkljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHBpbmtDaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFsxMCwgMTBdIDogWzI1LCAyNF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCA0MF0gOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IG9ic2VydmF0aW9uSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzcsIDddIDogWzEzLCAxNV0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAzOF0gOiBbNSwgMzBdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIHtcbiAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbikpO1xuICB9XG5cbiAgb2JzZXJ2YXRpb25JY29uLmZvckVhY2goKGljb24pID0+IHtcbiAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogaWNvbixcbiAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChgJHtwb2ludC5ncm91cC5uYW1lfSAoJHtwb2ludC5pZH0pYCk7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb24nO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25zID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbikgPT4ge1xuICBsZXQgc2FtcGxlZFBvaW50SWRzID0gZXZlbnQuc2FtcGxpbmdzLm1hcCgocykgPT4gcy5wb2ludF9pZCk7XG4gIGlmIChcbiAgICBldmVudCAhPT0gbnVsbCAmJlxuICAgIGV2ZW50LnNhbXBsaW5ncy5sZW5ndGggIT09IDAgJiZcbiAgICBzYW1wbGVkUG9pbnRJZHMuaW5jbHVkZXMocG9pbnQuaWQpXG4gICkge1xuICAgIGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50KFxuICAgICAgbWFya2VyTG9jYXRpb24sXG4gICAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50LCBldmVudCkgIT09IG51bGwsXG4gICAgICBtYXAsXG4gICAgICBwb2ludCxcbiAgICAgIGV2ZW50LFxuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb3B1cENvbnRlbnQgPSAob2JzOiBhbnksIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgaWYgKG9icyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7cG9pbnQuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7cG9pbnQuZ3JvdXAubmFtZX08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWN0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke29icy5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtcbiAgICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwLWNvbnRlbnRfX3NldmVyaXR5LS0nICsgb2JzLnNldmVyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1iXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29icy5zZXZlcml0eX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19oclwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2Rpc2NoYXJnZS10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5maXJzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJmaXJzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJsYXN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gIH1cbn07XG4iXX0=
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -130,9 +130,6 @@ var EventsMapContainer = function EventsMapContainer(props) {
|
|
|
130
130
|
events: events_data.items,
|
|
131
131
|
focusedEvent: events_data.focusedEvent,
|
|
132
132
|
hoveredEvent: events_data.hoveredEvent,
|
|
133
|
-
focusedEventPaths: events_data.focusedEventPaths,
|
|
134
|
-
hoveredEventPaths: events_data.hoveredEventPaths,
|
|
135
|
-
hoveredEdgePaths: events_data.hoveredEdgePaths,
|
|
136
133
|
areaToCenterBy: areaToCenterBy,
|
|
137
134
|
hideEdges: true,
|
|
138
135
|
includeUnmonitoredPoints: true
|
|
@@ -153,4 +150,4 @@ var EventsMapContainer = function EventsMapContainer(props) {
|
|
|
153
150
|
};
|
|
154
151
|
|
|
155
152
|
exports.EventsMapContainer = EventsMapContainer;
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50c01hcENvbnRhaW5lciIsInByb3BzIiwiZGlzcGF0Y2giLCJSZWR1eFN0YXRlIiwic3RhdGUiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImV2ZW50c19kYXRhIiwiZWRnZXNfZGF0YSIsImlzVGltZUZpbHRlck5vdFNlbGVjdGVkIiwiZmlsdGVycyIsImFjdGl2ZUZpbHRlciIsImZpbHRlcl9pdGVtcyIsImxlbmd0aCIsImluZGV4IiwidHlwZSIsIm1hcHBlZEFyZWFzIiwiRXZlbnRzUGVyU2l0ZSIsIml0ZW1zIiwiTXVzdFNlZW5TaXRlcyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIm1hcHBlZFBvaW50cyIsIm1hcCIsInBvaW50IiwibmV3UG9pbnQiLCJpZCIsImdyb3VwIiwiaGlkZSIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJldmVudHNWaWV3SG92ZXJlZCIsIm1hcHBlZEVkZ2VzIiwiZmlsdGVyIiwiZWRnZSIsIk51bWJlciIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldF9wb2ludF9pZCIsImFyZWFUb0NlbnRlckJ5Iiwid2F0ZXJBdXRob3JpdHlJZCIsImZvY3VzZWRFdmVudFBhdGhzIiwiaG92ZXJlZEV2ZW50UGF0aHMiLCJob3ZlcmVkRWRnZVBhdGhzIiwiZmxvYXRpbmdHcmFwaCIsIm9wZW4iLCJkbmRHcmFwaEluaXRPcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUlPLElBQU1BLGtCQUFxRCxHQUFHLFNBQXhEQSxrQkFBd0QsQ0FDbkVDLEtBRG1FLEVBRWhFO0FBQUE7O0FBQ0gsTUFBTUMs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TSxFQUFFckMsV0FBRixhQUFFQSxXQUFGLHVCQUFFQSxXQUFXLENBQUVxQyxhQUFiLENBQTJCQyxJQURyQztBQUVFLE1BQUEsc0JBQXNCLEVBQUVDLCtCQUYxQjtBQUdFLE1BQUEsaUJBQWlCLEVBQUUsNkJBQU07QUFDdkIzQyxRQUFBQSxRQUFRLENBQUMsbUNBQUQsQ0FBUjtBQUNELE9BTEg7QUFNRSxNQUFBLHVCQUF1QixFQUFFSSxXQUFXLENBQUNxQyxhQU52QztBQU9FLE1BQUEsVUFBVSxFQUFFbkMsV0FBRixhQUFFQSxXQUFGLHVCQUFFQSxXQUFXLENBQUVhLFlBUDNCO0FBUUUsTUFBQSxPQUFPLEVBQUVmLFdBQUYsYUFBRUEsV0FBRixnREFBRUEsV0FBVyxDQUFFcUMsYUFBZixvRkFBRSxzQkFBNEJsQixLQUE5QiwyREFBRSx1QkFBbUNFO0FBUjlDO0FBRkgsR0FESCxDQWxCSixDQURGO0FBc0NELENBL0lNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIGFyZWFzTWFwcGVyLFxuICBDb3VudEV2ZW50c1BlclNpdGVJRCxcbiAgZ2V0QXJlYXNUb0NlbnRlckJ5LFxuICBnZXRGb2N1c2VkRXZlbnRNdXN0U2VlblNpdGVzLFxufSBmcm9tICdzcmMvcGFnZXMvRXZlbnRzUGFnZS9FdmVudHNNYXBDb250YWluZXIvRXZlbnRzTWFwQ29udGFpbmVySGVscGVycyc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXAnO1xuaW1wb3J0IEZsb2F0aW5nR3JhcGggZnJvbSAnc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvRmxvYXRpbmdHcmFwaC9GbG9hdGluZ0dyYXBoJztcbmltcG9ydCB7IGRuZEdyYXBoSW5pdE9wdGlvbnMgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvR3JhcGhVdGlscyc7XG5pbXBvcnQgeyBjbG9zZUZsb2F0aW5nR3JhcGggfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IERyYWdBbmREcm9wQXJlYSBmcm9tICcuLi9EcmFnQW5kRHJvcEFyZWEnO1xuaW50ZXJmYWNlIEV2ZW50c01hcENvbnRhaW5lclByb3BzIHtcbiAgc2hvd1NlY29uZE1hcDogYm9vbGVhbjtcbn1cbmV4cG9ydCBjb25zdCBFdmVudHNNYXBDb250YWluZXI6IFJlYWN0LkZDPEV2ZW50c01hcENvbnRhaW5lclByb3BzPiA9IChcbiAgcHJvcHMsXG4pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IHsgYXJlYXNfZGF0YSwgZ2xvYmFsX2RhdGEsIHBvaW50c19kYXRhLCBldmVudHNfZGF0YSwgZWRnZXNfZGF0YSB9ID1cbiAgICBSZWR1eFN0YXRlO1xuXG4gIGNvbnN0IGlzVGltZUZpbHRlck5vdFNlbGVjdGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IGdsb2JhbF9kYXRhPy5hY3RpdmVGaWx0ZXI/LmZpbHRlcl9pdGVtcztcblxuICAgIGlmICghZmlsdGVycyB8fCBmaWx0ZXJzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKGZpbHRlcnNbaW5kZXhdLnR5cGUgPT09ICdUaW1lRmlsdGVySXRlbScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LCBbZ2xvYmFsX2RhdGE/LmFjdGl2ZUZpbHRlcl0pO1xuXG4gIGNvbnN0IG1hcHBlZEFyZWFzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhcmVhc01hcHBlcihhcmVhc19kYXRhLCBpc1RpbWVGaWx0ZXJOb3RTZWxlY3RlZCksXG4gICAgW2FyZWFzX2RhdGEsIGlzVGltZUZpbHRlck5vdFNlbGVjdGVkXSxcbiAgKTtcblxuICBjb25zdCBFdmVudHNQZXJTaXRlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBDb3VudEV2ZW50c1BlclNpdGVJRChldmVudHNfZGF0YS5pdGVtcyksXG4gICAgW2V2ZW50c19kYXRhLml0ZW1zXSxcbiAgKTtcblxuICBjb25zdCBNdXN0U2VlblNpdGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgcmV0dXJuIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMoZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudCkge1xuICAgICAgcmV0dXJuIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMoZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9LCBbRXZlbnRzUGVyU2l0ZSwgZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50LCBldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBtYXBwZWRQb2ludHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50ID0geyAuLi5wb2ludCB9O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhRXZlbnRzUGVyU2l0ZVtwb2ludC5pZF0gfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJ1xuICAgICAgICApIHtcbiAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgICBpZiAoIU11c3RTZWVuU2l0ZXNbcG9pbnQuaWRdKSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UG9pbnQuaGlkZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhTXVzdFNlZW5TaXRlc1twb2ludC5pZF0gJiZcbiAgICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UG9pbnQuaGlkZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5ld1BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPSBFdmVudHNQZXJTaXRlW3BvaW50LmlkXSB8fCAwO1xuICAgICAgICBuZXdQb2ludC5ldmVudHNWaWV3SG92ZXJlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBuZXdQb2ludDtcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHBvaW50c19kYXRhLFxuICAgICAgRXZlbnRzUGVyU2l0ZSxcbiAgICAgIGV2ZW50c19kYXRhLml0ZW1zLFxuICAgICAgZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50LFxuICAgICAgZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50LFxuICAgIF0sXG4gICk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IG1hcHBlZEVkZ2VzID0gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+XG4gICAgICBOdW1iZXIoRXZlbnRzUGVyU2l0ZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0pID4gMCB8fFxuICAgICAgTnVtYmVyKEV2ZW50c1BlclNpdGVbZWRnZS50YXJnZXRfcG9pbnRfaWRdKSA+IDAsXG4gICk7XG5cbiAgY29uc3QgYXJlYVRvQ2VudGVyQnkgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldEFyZWFzVG9DZW50ZXJCeShnbG9iYWxfZGF0YSwgbWFwcGVkQXJlYXMpLFxuICAgIFtnbG9iYWxfZGF0YT8uYWN0aXZlRmlsdGVyLCBtYXBwZWRBcmVhc10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgZGlzcGF0Y2goZmV0Y2hQb2ludHMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hFZGdlcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEFyZWFzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICB9XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWFwXG4gICAgICB7Li4uUmVkdXhTdGF0ZX1cbiAgICAgIGFyZWFzPXttYXBwZWRBcmVhc31cbiAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgIHBvaW50cz17bWFwcGVkUG9pbnRzfVxuICAgICAgZWRnZXM9e2VkZ2VzX2RhdGEuaXRlbXN9XG4gICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgZm9jdXNlZEV2ZW50PXtldmVudHNfZGF0YS5mb2N1c2VkRXZlbnR9XG4gICAgICBob3ZlcmVkRXZlbnQ9e2V2ZW50c19kYXRhLmhvdmVyZWRFdmVudH1cbiAgICAgIGZvY3VzZWRFdmVudFBhdGhzPXtldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRQYXRoc31cbiAgICAgIGhvdmVyZWRFdmVudFBhdGhzPXtldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnRQYXRoc31cbiAgICAgIGhvdmVyZWRFZGdlUGF0aHM9e2V2ZW50c19kYXRhLmhvdmVyZWRFZGdlUGF0aHN9XG4gICAgICBhcmVhVG9DZW50ZXJCeT17YXJlYVRvQ2VudGVyQnl9XG4gICAgICBoaWRlRWRnZXM9e3RydWV9XG4gICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM9e3RydWV9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge1xuICAgICAgICA8RHJhZ0FuZERyb3BBcmVhIGZvY3VzZWRFdmVudFBhdGg9e2V2ZW50c19kYXRhPy5mb2N1c2VkRXZlbnRQYXRoc30+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIGZsb2F0aW5nR3JhcGg6IChcbiAgICAgICAgICAgICAgPEZsb2F0aW5nR3JhcGhcbiAgICAgICAgICAgICAgICBpc09wZW49e2dsb2JhbF9kYXRhPy5mbG9hdGluZ0dyYXBoLm9wZW59XG4gICAgICAgICAgICAgICAgY3VzdG9tSGlnaENoYXJ0T3B0aW9ucz17ZG5kR3JhcGhJbml0T3B0aW9uc31cbiAgICAgICAgICAgICAgICBjbG9zZUdyYXBoSGFuZGxlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goY2xvc2VGbG9hdGluZ0dyYXBoKCkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgZ2xvYmFsRGF0YUZsb2F0aW5nR3JhcGg9e2dsb2JhbF9kYXRhLmZsb2F0aW5nR3JhcGh9XG4gICAgICAgICAgICAgICAgZXZlbnRfZGF0YT17ZXZlbnRzX2RhdGE/LmZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgICAgICBncmFwaElkPXtnbG9iYWxfZGF0YT8uZmxvYXRpbmdHcmFwaD8ucG9pbnQ/LmlkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9fVxuICAgICAgICA8L0RyYWdBbmREcm9wQXJlYT5cbiAgICAgIH1cbiAgICA8L01hcD5cbiAgKTtcbn07XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL0V2ZW50c01hcENvbnRhaW5lci9FdmVudHNNYXBDb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50c01hcENvbnRhaW5lciIsInByb3BzIiwiZGlzcGF0Y2giLCJSZWR1eFN0YXRlIiwic3RhdGUiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImV2ZW50c19kYXRhIiwiZWRnZXNfZGF0YSIsImlzVGltZUZpbHRlck5vdFNlbGVjdGVkIiwiZmlsdGVycyIsImFjdGl2ZUZpbHRlciIsImZpbHRlcl9pdGVtcyIsImxlbmd0aCIsImluZGV4IiwidHlwZSIsIm1hcHBlZEFyZWFzIiwiRXZlbnRzUGVyU2l0ZSIsIml0ZW1zIiwiTXVzdFNlZW5TaXRlcyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIm1hcHBlZFBvaW50cyIsIm1hcCIsInBvaW50IiwibmV3UG9pbnQiLCJpZCIsImdyb3VwIiwiaGlkZSIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJldmVudHNWaWV3SG92ZXJlZCIsIm1hcHBlZEVkZ2VzIiwiZmlsdGVyIiwiZWRnZSIsIk51bWJlciIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldF9wb2ludF9pZCIsImFyZWFUb0NlbnRlckJ5Iiwid2F0ZXJBdXRob3JpdHlJZCIsImZvY3VzZWRFdmVudFBhdGhzIiwiZmxvYXRpbmdHcmFwaCIsIm9wZW4iLCJkbmRHcmFwaEluaXRPcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUlPLElBQU1BLGtCQUFxRCxHQUFHLFNBQXhEQSxrQkFBd0QsQ0FDbkVDLEtBRG1FLEVBRWhFO0FBQUE7O0FBQ0gsTUFBTUMsUUFBUSxHQUFHLDhCQUFqQjtBQUNBLE1BQU1DLFVBQVUsR0FBRyw2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TUUsTUFBQSx1QkFBdUIsRUFBRUksV0FBVyxDQUFDbUMsYUFOdkM7QUFPRSxNQUFBLFVBQVUsRUFBRWpDLFdBQUYsYUFBRUEsV0FBRix1QkFBRUEsV0FBVyxDQUFFYSxZQVAzQjtBQVFFLE1BQUEsT0FBTyxFQUFFZixXQUFGLGFBQUVBLFdBQUYsZ0RBQUVBLFdBQVcsQ0FBRW1DLGFBQWYsb0ZBQUUsc0JBQTRCaEIsS0FBOUIsMkRBQUUsdUJBQW1DRTtBQVI5QztBQUZILEdBREgsQ0FmSixDQURGO0FBbUNELENBNUlNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIGFyZWFzTWFwcGVyLFxuICBDb3VudEV2ZW50c1BlclNpdGVJRCxcbiAgZ2V0QXJlYXNUb0NlbnRlckJ5LFxuICBnZXRGb2N1c2VkRXZlbnRNdXN0U2VlblNpdGVzLFxufSBmcm9tICdzcmMvcGFnZXMvRXZlbnRzUGFnZS9FdmVudHNNYXBDb250YWluZXIvRXZlbnRzTWFwQ29udGFpbmVySGVscGVycyc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXAnO1xuaW1wb3J0IEZsb2F0aW5nR3JhcGggZnJvbSAnc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvRmxvYXRpbmdHcmFwaC9GbG9hdGluZ0dyYXBoJztcbmltcG9ydCB7IGRuZEdyYXBoSW5pdE9wdGlvbnMgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvR3JhcGhVdGlscyc7XG5pbXBvcnQgeyBjbG9zZUZsb2F0aW5nR3JhcGggfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IERyYWdBbmREcm9wQXJlYSBmcm9tICcuLi9EcmFnQW5kRHJvcEFyZWEnO1xuaW50ZXJmYWNlIEV2ZW50c01hcENvbnRhaW5lclByb3BzIHtcbiAgc2hvd1NlY29uZE1hcDogYm9vbGVhbjtcbn1cbmV4cG9ydCBjb25zdCBFdmVudHNNYXBDb250YWluZXI6IFJlYWN0LkZDPEV2ZW50c01hcENvbnRhaW5lclByb3BzPiA9IChcbiAgcHJvcHMsXG4pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IHsgYXJlYXNfZGF0YSwgZ2xvYmFsX2RhdGEsIHBvaW50c19kYXRhLCBldmVudHNfZGF0YSwgZWRnZXNfZGF0YSB9ID1cbiAgICBSZWR1eFN0YXRlO1xuXG4gIGNvbnN0IGlzVGltZUZpbHRlck5vdFNlbGVjdGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IGdsb2JhbF9kYXRhPy5hY3RpdmVGaWx0ZXI/LmZpbHRlcl9pdGVtcztcblxuICAgIGlmICghZmlsdGVycyB8fCBmaWx0ZXJzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKGZpbHRlcnNbaW5kZXhdLnR5cGUgPT09ICdUaW1lRmlsdGVySXRlbScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LCBbZ2xvYmFsX2RhdGE/LmFjdGl2ZUZpbHRlcl0pO1xuXG4gIGNvbnN0IG1hcHBlZEFyZWFzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhcmVhc01hcHBlcihhcmVhc19kYXRhLCBpc1RpbWVGaWx0ZXJOb3RTZWxlY3RlZCksXG4gICAgW2FyZWFzX2RhdGEsIGlzVGltZUZpbHRlck5vdFNlbGVjdGVkXSxcbiAgKTtcblxuICBjb25zdCBFdmVudHNQZXJTaXRlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBDb3VudEV2ZW50c1BlclNpdGVJRChldmVudHNfZGF0YS5pdGVtcyksXG4gICAgW2V2ZW50c19kYXRhLml0ZW1zXSxcbiAgKTtcblxuICBjb25zdCBNdXN0U2VlblNpdGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgcmV0dXJuIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMoZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50c19kYXRhLmhvdmVyZWRFdmVudCkge1xuICAgICAgcmV0dXJuIGdldEZvY3VzZWRFdmVudE11c3RTZWVuU2l0ZXMoZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9LCBbRXZlbnRzUGVyU2l0ZSwgZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50LCBldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBtYXBwZWRQb2ludHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50ID0geyAuLi5wb2ludCB9O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhRXZlbnRzUGVyU2l0ZVtwb2ludC5pZF0gfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJ1xuICAgICAgICApIHtcbiAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgICBpZiAoIU11c3RTZWVuU2l0ZXNbcG9pbnQuaWRdKSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UG9pbnQuaGlkZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNfZGF0YS5ob3ZlcmVkRXZlbnQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhTXVzdFNlZW5TaXRlc1twb2ludC5pZF0gJiZcbiAgICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBuZXdQb2ludC5oaWRlID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UG9pbnQuaGlkZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5ld1BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPSBFdmVudHNQZXJTaXRlW3BvaW50LmlkXSB8fCAwO1xuICAgICAgICBuZXdQb2ludC5ldmVudHNWaWV3SG92ZXJlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBuZXdQb2ludDtcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHBvaW50c19kYXRhLFxuICAgICAgRXZlbnRzUGVyU2l0ZSxcbiAgICAgIGV2ZW50c19kYXRhLml0ZW1zLFxuICAgICAgZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50LFxuICAgICAgZXZlbnRzX2RhdGEuaG92ZXJlZEV2ZW50LFxuICAgIF0sXG4gICk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IG1hcHBlZEVkZ2VzID0gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+XG4gICAgICBOdW1iZXIoRXZlbnRzUGVyU2l0ZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0pID4gMCB8fFxuICAgICAgTnVtYmVyKEV2ZW50c1BlclNpdGVbZWRnZS50YXJnZXRfcG9pbnRfaWRdKSA+IDAsXG4gICk7XG5cbiAgY29uc3QgYXJlYVRvQ2VudGVyQnkgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldEFyZWFzVG9DZW50ZXJCeShnbG9iYWxfZGF0YSwgbWFwcGVkQXJlYXMpLFxuICAgIFtnbG9iYWxfZGF0YT8uYWN0aXZlRmlsdGVyLCBtYXBwZWRBcmVhc10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgZGlzcGF0Y2goZmV0Y2hQb2ludHMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hFZGdlcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEFyZWFzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICB9XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWFwXG4gICAgICB7Li4uUmVkdXhTdGF0ZX1cbiAgICAgIGFyZWFzPXttYXBwZWRBcmVhc31cbiAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgIHBvaW50cz17bWFwcGVkUG9pbnRzfVxuICAgICAgZWRnZXM9e2VkZ2VzX2RhdGEuaXRlbXN9XG4gICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgZm9jdXNlZEV2ZW50PXtldmVudHNfZGF0YS5mb2N1c2VkRXZlbnR9XG4gICAgICBob3ZlcmVkRXZlbnQ9e2V2ZW50c19kYXRhLmhvdmVyZWRFdmVudH1cbiAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgIGhpZGVFZGdlcz17dHJ1ZX1cbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17dHJ1ZX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7XG4gICAgICAgIDxEcmFnQW5kRHJvcEFyZWEgZm9jdXNlZEV2ZW50UGF0aD17ZXZlbnRzX2RhdGE/LmZvY3VzZWRFdmVudFBhdGhzfT5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgZmxvYXRpbmdHcmFwaDogKFxuICAgICAgICAgICAgICA8RmxvYXRpbmdHcmFwaFxuICAgICAgICAgICAgICAgIGlzT3Blbj17Z2xvYmFsX2RhdGE/LmZsb2F0aW5nR3JhcGgub3Blbn1cbiAgICAgICAgICAgICAgICBjdXN0b21IaWdoQ2hhcnRPcHRpb25zPXtkbmRHcmFwaEluaXRPcHRpb25zfVxuICAgICAgICAgICAgICAgIGNsb3NlR3JhcGhIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaChjbG9zZUZsb2F0aW5nR3JhcGgoKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBnbG9iYWxEYXRhRmxvYXRpbmdHcmFwaD17Z2xvYmFsX2RhdGEuZmxvYXRpbmdHcmFwaH1cbiAgICAgICAgICAgICAgICBldmVudF9kYXRhPXtldmVudHNfZGF0YT8uZm9jdXNlZEV2ZW50fVxuICAgICAgICAgICAgICAgIGdyYXBoSWQ9e2dsb2JhbF9kYXRhPy5mbG9hdGluZ0dyYXBoPy5wb2ludD8uaWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgIH19XG4gICAgICAgIDwvRHJhZ0FuZERyb3BBcmVhPlxuICAgICAgfVxuICAgIDwvTWFwPlxuICApO1xufTtcbiJdfQ==
|