@kando-env/kando-ui 1.2.291 → 1.2.293

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.
@@ -27,6 +27,7 @@ var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.pn
27
27
  var _MapUtils = require("../MapUtils");
28
28
  var _PointIcon = require("./PointIcon");
29
29
  var _water_reuse = _interopRequireDefault(require("../../../assets/icons/water_reuse.svg"));
30
+ var _utils = require("pages/DashboardMap/utils");
30
31
  var isCollectorFocused = function isCollectorFocused(point, event) {
31
32
  var _event$observations;
32
33
  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;
@@ -50,7 +51,7 @@ var bubbleForWWTP = function bubbleForWWTP(args) {
50
51
  return pointCustomIcon;
51
52
  };
52
53
  exports.bubbleForWWTP = bubbleForWWTP;
53
- var createBubblePoint = function createBubblePoint(markerLocation, point, map, hovered, layerGroup, flow_rate_unit) {
54
+ var createBubblePoint = function createBubblePoint(markerLocation, point, map, hovered, layerGroup, flow_rate_unit, handleClick) {
54
55
  var subtitle = point.group.type === 'Groups::Factory' ? point.group.sector_name : '';
55
56
  var pointCustomIcon = _leaflet.default.marker(markerLocation, {
56
57
  icon: (0, _PointIcon.getPointIconByType)(point.group.type, point.name, subtitle, false, false),
@@ -64,11 +65,8 @@ var createBubblePoint = function createBubblePoint(markerLocation, point, map, h
64
65
  layerGroup.addLayer(pointCustomIcon);
65
66
  if (point.group.type === 'Groups::Factory') {
66
67
  bindPopupToMarker(point, pointCustomIcon, flow_rate_unit);
67
-
68
- //The following is being called for every point, we should do that on the layerGroup level which will happen once
69
- //It is noticed when there are thousands of points
70
- handleMarkerClick(map, point, pointCustomIcon);
71
68
  }
69
+ handleMarkerClick(map, point, pointCustomIcon, handleClick);
72
70
  if (point.relatedEventsAmount) {
73
71
  var _pointCustomIcon = _leaflet.default.marker(markerLocation, {
74
72
  icon: _leaflet.default.divIcon({
@@ -352,7 +350,7 @@ var translateFlowRate = function translateFlowRate(flow_rate_unit) {
352
350
  return _i18n.default.t("dashboard_v2.profile.flow_rate_unit_options.".concat(flow_rate_unit));
353
351
  };
354
352
  exports.translateFlowRate = translateFlowRate;
355
- var handleMarkerClick = function handleMarkerClick(map, point, pointCustomIcon) {
353
+ var handleMarkerClick = function handleMarkerClick(map, point, pointCustomIcon, handleClick) {
356
354
  map.on('zoomstart', function () {
357
355
  map.closePopup();
358
356
  });
@@ -362,6 +360,17 @@ var handleMarkerClick = function handleMarkerClick(map, point, pointCustomIcon)
362
360
  pointCustomIcon.on('popupopen', function () {
363
361
  setIcon(pointCustomIcon, true, point);
364
362
  });
363
+ if (handleClick !== null) {
364
+ pointCustomIcon.on('click', function () {
365
+ handleClick(pointCustomIcon.kando_object_id);
366
+ if (point.group.type === 'Groups::Factory') {
367
+ (0, _utils.sendAnalyticsEvent)('Map View - Factory clicked', 'map', {
368
+ point_id: point.id,
369
+ point_name: point.name
370
+ });
371
+ }
372
+ });
373
+ }
365
374
  };
366
375
  exports.handleMarkerClick = handleMarkerClick;
367
376
  var bindPopupToMarker = function bindPopupToMarker(point, layerGroup, flow_rate_unit) {
@@ -370,7 +379,7 @@ var bindPopupToMarker = function bindPopupToMarker(point, layerGroup, flow_rate_
370
379
  className: 'point-marker-popup',
371
380
  minWidth: '214px',
372
381
  maxWidth: '214px',
373
- closeButton: false
382
+ closeButton: true
374
383
  });
375
384
  };
376
385
  exports.bindPopupToMarker = bindPopupToMarker;
@@ -389,4 +398,4 @@ var addLayerGroup = function addLayerGroup(map, layerGroup) {
389
398
  }
390
399
  };
391
400
  exports.addLayerGroup = addLayerGroup;
392
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2kxOG4iLCJfYmx1ZUNpcmNsZSIsIl9zYW1wbGluZ0ljb24iLCJfcGlua0NpcmNsZSIsIl9vYnNlcnZhdGlvbkljb24iLCJfcmVkUGluUmVkU2hhZG93IiwiX3doaXRlUGluUmVkU2hhZG93IiwiX3doaXRlUGluQmxhY2tTaGFkb3ciLCJfeWVsbG93Q2lyY2xlIiwiX2ZhY3RvcnlJY29uIiwiX2dyZWVuQ2lyY2xlIiwiX3B1bXBTdGF0aW9uSWNvbiIsIl9waW5XYXRlciIsIl9icmlnaHRCbHVlQ2lyY2xlIiwiX1dXVFBJY29uIiwiX3dhdGVyTm9CYWNrZ3JvdW5kIiwiX3doaXRlUG9pbnQiLCJfTWFwVXRpbHMiLCJfUG9pbnRJY29uIiwiX3dhdGVyX3JldXNlIiwiaXNDb2xsZWN0b3JGb2N1c2VkIiwicG9pbnQiLCJldmVudCIsIl9ldmVudCRvYnNlcnZhdGlvbnMiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJpZCIsInBvaW50X2lkIiwiZXhwb3J0cyIsImJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmciLCJzdHJpbmciLCJjb25jYXQiLCJncm91cCIsIm5hbWUiLCJ0eXBlIiwic2VjdG9yX25hbWUiLCJ3YXRlcl9jb25zdW1wdGlvbl9wZXJfZGF5IiwiYnViYmxlRm9yV1dUUCIsImFyZ3MiLCJwb2ludEN1c3RvbUljb24iLCJMIiwibWFya2VyIiwibWFya2VyTG9jYXRpb24iLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwicmlzZU9uSG92ZXIiLCJjcmVhdGVCdWJibGVQb2ludCIsIm1hcCIsImhvdmVyZWQiLCJsYXllckdyb3VwIiwiZmxvd19yYXRlX3VuaXQiLCJzdWJ0aXRsZSIsImFkZExheWVyIiwiYmluZFBvcHVwVG9NYXJrZXIiLCJoYW5kbGVNYXJrZXJDbGljayIsInJlbGF0ZWRFdmVudHNBbW91bnQiLCJkaXZJY29uIiwiY2xhc3NOYW1lIiwiaHRtbCIsImljb25BbmNob3IiLCJldmVudHNDb3VudEljb24iLCJfem9vbSIsIm9wYWNpdHkiLCJjcmVhdGVNYW5ob2xlUG9pbnQiLCJwb2ludEljb24iLCJJY29uIiwiaWNvblVybCIsIndoaXRlUG9pbnQiLCJpY29uU2l6ZSIsIm1hbmhvbGVJY29uIiwiTWFya2VyIiwiYmluZFRvb2x0aXAiLCJtYXRjaEljb25Ub1BvaW50IiwiY29tYmluZWRGYWN0b3J5SWNvbiIsIm1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlIiwidW5zaGlmdCIsInNlbGVjdGVkQmFja2dyb3VuZCIsIm1hcmtlckJlbG9uZ3NUb1NvdXJjZSIsImJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQiLCJzdGFuZGFyZEJhY2tncm91bmQiLCJjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiIsImNvbWJpbmVkV1dUUEljb24iLCJyZWRQaW5SZWRTaGFkb3ciLCJ3YXRlckljb25Ob0JhY2tncm91bmQiLCJwb3B1cEFuY2hvciIsImNvbWJpbmVkQ29sbGVjdG9yc0ljb24iLCJzZWNvbmRhcnkiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJ0aGlyZCIsIndoaXRlUGluQmxhY2tTaGFkb3ciLCJ5ZWxsb3dDaXJjbGVVUkwiLCJwbGFudEljb25VUkwiLCJncmVlbkNpcmNsZVVSTCIsInB1bXBTdGF0aW9uSWNvblVSTCIsImNvbGxlY3Rvckljb24iLCJicmlnaHRCbHVlQ2lyY2xlVVJMIiwiV1dUUEljb25VUkwiLCJ3aGl0ZVBpblJlZFNoYWRvdyIsInNvdXJjZSIsInNvdXJjZXMiLCJmaWx0ZXIiLCJzZWxlY3RlZF9zb3VyY2UiLCJjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCIsInNlY29uZGFyeUljb24iLCJzYW1wbGluZ0ljb24iLCJibHVlQ2lyY2xlVVJMIiwic2FtcGxpbmdJY29uVVJMIiwidGhpcmRJY29uIiwiZm9yRWFjaCIsImluZGV4IiwiY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQiLCJvYnNlcnZhdGlvbkljb24iLCJwaW5rQ2lyY2xlVVJMIiwib2JzZXJ2YXRpb25JY29uVVJMIiwiY3JlYXRlU2FtcGxpbmdJY29ucyIsInNhbXBsZWRQb2ludElkcyIsInNhbXBsaW5ncyIsInMiLCJpbmNsdWRlcyIsInBvcHVwQ29udGVudCIsIm9icyIsIkdyYXBoSWNvbiIsImkxOG4iLCJ0Iiwic2V2ZXJpdHkiLCJzZXRJY29uIiwiZWxlbWVudCIsImNsaWNrZWQiLCJjYWxjdWxhdGVXYXRlckNvbnN1bXB0aW9uIiwid2F0ZXJDb25zdW1wdGlvbiIsInRvRml4ZWQiLCJ0cmFuc2xhdGVGbG93UmF0ZSIsIm9uIiwiY2xvc2VQb3B1cCIsImNvbnRlbnQiLCJ3YXRlclJldXNlSWNvbiIsImJpbmRQb3B1cCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJjbG9zZUJ1dHRvbiIsInJlbW92ZUxheWVyR3JvdXAiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiYWRkTGF5ZXJHcm91cCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGhJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICcuLi8uLi8uLi9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgZXZlbnRzQ291bnRJY29uIH0gZnJvbSAnLi4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnLi9Qb2ludEljb24nO1xuaW1wb3J0IHdhdGVyUmV1c2VJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pY29ucy93YXRlcl9yZXVzZS5zdmcnO1xuXG5leHBvcnQgY29uc3QgaXNDb2xsZWN0b3JGb2N1c2VkID0gKHBvaW50OiBJUG9pbnQsIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgcmV0dXJuIChcbiAgICBldmVudD8ub2JzZXJ2YXRpb25zPy5sZW5ndGggPT09IDEgJiZcbiAgICBwb2ludC5pZCA9PT0gZXZlbnQub2JzZXJ2YXRpb25zWzBdLnBvaW50X2lkXG4gICk7XG59O1xuXG5jb25zdCBidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgbGV0IHN0cmluZyA9IGAke3BvaW50Lmdyb3VwLm5hbWV9IGA7XG5cbiAgaWYgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknKSB7XG4gICAgc3RyaW5nICs9IGA8YnIvPlNlY3RvcjogJHtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1gO1xuICAgIHN0cmluZyArPSBgPGJyLz5XYXRlciBDb25zdW1wdGlvbjogJHtwb2ludC5ncm91cC53YXRlcl9jb25zdW1wdGlvbl9wZXJfZGF5fWA7XG4gIH0gZWxzZSB7XG4gICAgc3RyaW5nID0gYCR7cG9pbnQubmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBidWJibGVGb3JXV1RQID0gKGFyZ3MpID0+IHtcbiAgbGV0IHBvaW50Q3VzdG9tSWNvbjogTC5NYXJrZXIgPSBMLm1hcmtlcihhcmdzLm1hcmtlckxvY2F0aW9uLCB7XG4gICAgaWNvbjogZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgYXJncy5wb2ludC5ncm91cC50eXBlLFxuICAgICAgYXJncy5wb2ludC5uYW1lLFxuICAgICAgJycsXG4gICAgICBmYWxzZSxcbiAgICAgIGZhbHNlLFxuICAgICksXG4gICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICB9KTtcblxuICByZXR1cm4gcG9pbnRDdXN0b21JY29uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJ1YmJsZVBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbiAgaG92ZXJlZD8sXG4gIGxheWVyR3JvdXA/LFxuICBmbG93X3JhdGVfdW5pdD8sXG4pID0+IHtcbiAgY29uc3Qgc3VidGl0bGUgPVxuICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknID8gcG9pbnQuZ3JvdXAuc2VjdG9yX25hbWUgOiAnJztcbiAgbGV0IHBvaW50Q3VzdG9tSWNvbjogTC5NYXJrZXIgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICBwb2ludC5uYW1lLFxuICAgICAgc3VidGl0bGUsXG4gICAgICBmYWxzZSxcbiAgICAgIGZhbHNlLFxuICAgICksXG4gICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICB9KTtcbiAgLy8gQHRzLWlnbm9yZVxuICAvLyBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYnVpbGRNYW5ob2xlVG9vdGlwU3RyaW5nKHBvaW50KSk7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50SG92ZXJlZCc7XG5cbiAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICBpZiAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeScpIHtcbiAgICBiaW5kUG9wdXBUb01hcmtlcihwb2ludCwgcG9pbnRDdXN0b21JY29uLCBmbG93X3JhdGVfdW5pdCk7XG5cbiAgICAvL1RoZSBmb2xsb3dpbmcgaXMgYmVpbmcgY2FsbGVkIGZvciBldmVyeSBwb2ludCwgd2Ugc2hvdWxkIGRvIHRoYXQgb24gdGhlIGxheWVyR3JvdXAgbGV2ZWwgd2hpY2ggd2lsbCBoYXBwZW4gb25jZVxuICAgIC8vSXQgaXMgbm90aWNlZCB3aGVuIHRoZXJlIGFyZSB0aG91c2FuZHMgb2YgcG9pbnRzXG4gICAgaGFuZGxlTWFya2VyQ2xpY2sobWFwLCBwb2ludCwgcG9pbnRDdXN0b21JY29uKTtcbiAgfVxuXG4gIGlmIChwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50KSB7XG4gICAgbGV0IHBvaW50Q3VzdG9tSWNvbiA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICBjbGFzc05hbWU6IGBcbiAgICAgICAgICAke1xuICAgICAgICAgICAgcG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+PSAxMDBcbiAgICAgICAgICAgICAgPyAnY2lyY2xlLWV2ZW50cy1hbW91bnQgY2lyY2xlLWV2ZW50cy1hbW91bnQtLXRyaWRpZ2l0J1xuICAgICAgICAgICAgICA6ICdjaXJjbGUtZXZlbnRzLWFtb3VudCdcbiAgICAgICAgICB9IFxuICAgICAgICAgICR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+IDIgPyAnYWxlcnQtY29sb3InIDogJyd9XG4gICAgICAgICAgICBgLFxuICAgICAgICBodG1sOiBgPHA+JHtwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50fTwvcD5gLFxuICAgICAgICBpY29uQW5jaG9yOiBldmVudHNDb3VudEljb24obWFwLl96b29tKS5pY29uQW5jaG9yLFxuICAgICAgfSksXG4gICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICBvcGFjaXR5OiBob3ZlcmVkID8gMSA6IDAsXG4gICAgfSk7XG5cbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVyJztcbiAgICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVySG92ZXJlZCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYW5ob2xlUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgcG9pbnQ6IElQb2ludCxcbiAgbWFwLFxuICBob3ZlcmVkPyxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgbGV0IHBvaW50SWNvbiA9IG5ldyBMLkljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBuZXcgTC5NYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICBpY29uOiBwb2ludEljb24sXG4gICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gIH0pO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICBtYW5ob2xlSWNvblsna2FuZG9fcG9pbnRfdHlwZSddID0gJ01hbmhvbGUnO1xuICBpZiAoaG92ZXJlZCkgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50SG92ZXJlZCc7XG4gIGxheWVyR3JvdXAuYWRkTGF5ZXIobWFuaG9sZUljb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoSWNvblRvUG9pbnQgPSAocG9pbnQ6IElQb2ludCwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBzd2l0Y2ggKHBvaW50Lmdyb3VwLnR5cGUpIHtcbiAgICBjYXNlICdHcm91cHM6OkZhY3RvcnknOlxuICAgICAgaWYgKGNvbWJpbmVkRmFjdG9yeUljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbWJpbmVkRmFjdG9yeUljb247XG4gICAgY2FzZSAnR3JvdXBzOjpQdW1wU3RhdGlvbic6XG4gICAgICBpZiAoY29tYmluZWRQdW1wU3RhdGlvbkljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uO1xuICAgIGNhc2UgJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JzpcbiAgICAgIGlmIChjb21iaW5lZFdXVFBJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZFdXVFBJY29uO1xuXG4gICAgY2FzZSAnR3JvdXBzOjpDb2xsZWN0b3JzJzpcbiAgICAgIGlmIChpc0NvbGxlY3RvckZvY3VzZWQocG9pbnQsIGV2ZW50KSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIEwuaWNvbih7XG4gICAgICAgICAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgaWNvbkFuY2hvcjogWzMwLCA1Ml0sXG4gICAgICAgICAgfSksXG5cbiAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgaWNvblVybDogd2F0ZXJJY29uTm9CYWNrZ3JvdW5kLFxuICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcblxuICAgICAgICAgICAgaWNvbkFuY2hvcjogWzIyLCA0NF0sXG4gICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZENvbGxlY3RvcnNJY29uO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RhbmRhcmRCYWNrZ3JvdW5kID0gKFxuICBzZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgdGhpcmQ6IGJvb2xlYW4gPSBmYWxzZSxcbikgPT4ge1xuICByZXR1cm4gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBpbkJsYWNrU2hhZG93LFxuICAgIGljb25TaXplOiBzZWNvbmRhcnkgPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5ICYmIHRoaXJkID8gWy0yLCAxOV0gOiBzZWNvbmRhcnkgPyBbLTIsIDQ0XSA6IFsyMCwgNDJdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29tYmluZWRGYWN0b3J5SWNvbiA9IFtcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiB5ZWxsb3dDaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBwbGFudEljb25VUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbNSwgMzBdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG5dO1xuXG5leHBvcnQgY29uc3QgY29tYmluZWRQdW1wU3RhdGlvbkljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogZ3JlZW5DaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBwdW1wU3RhdGlvbkljb25VUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbNywgMzJdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG5dO1xuXG5leHBvcnQgY29uc3QgY29tYmluZWRDb2xsZWN0b3JzSWNvbiA9IFtcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBjb2xsZWN0b3JJY29uLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG5cbiAgICBpY29uQW5jaG9yOiBbMjUsIDUwXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkV1dUUEljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogYnJpZ2h0Qmx1ZUNpcmNsZVVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuICBMLmljb24oe1xuICAgIGljb25Vcmw6IFdXVFBJY29uVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzgsIDMxXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdGVkQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICByZXR1cm4gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBpblJlZFNoYWRvdyxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UgPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICBsZXQgc291cmNlO1xuXG4gIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgc291cmNlID0gZXZlbnQuc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZClbMF07XG4gIH1cblxuICByZXR1cm4gZXZlbnQgIT09IG51bGwgJiYgc291cmNlICYmIGV2ZW50LnNlbGVjdGVkX3NvdXJjZSA9PT0gc291cmNlLnBvaW50X2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NvdXJjZSA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIGlmIChldmVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiAoXG4gICAgZXZlbnQgIT09IG51bGwgJiZcbiAgICBldmVudC5zb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UucG9pbnRfaWQgPT09IHBvaW50LmlkKVswXVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gIG1hcCxcbiAgcG9pbnQ6IElQb2ludCxcbiAgZXZlbnQ6IElFdmVudCxcbiAgaG92ZXJlZD8sXG4gIGxheWVyR3JvdXA/LFxuKSA9PiB7XG4gIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gIGxldCBzYW1wbGluZ0ljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IGJsdWVDaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFswLCAwXSA6IFswLCAwXSxcbiAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTcsIDE1XSA6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogc2FtcGxpbmdJY29uVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAxM10gOiBbNSwgMzBdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGxldCB0aGlyZEljb24gPSBmYWxzZTtcbiAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICBzYW1wbGluZ0ljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICBzYW1wbGluZ0ljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2Uge1xuICAgIHRoaXJkSWNvbiA9IHRydWU7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24sIHRoaXJkSWNvbikpO1xuICB9XG5cbiAgc2FtcGxpbmdJY29uLmZvckVhY2goKGljb24sIGluZGV4KSA9PiB7XG4gICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgIGljb246IGljb24sXG4gICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgfSk7XG4gICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcocG9pbnQpKTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2luZGV4X29iamVjdCddID0gaW5kZXg7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19mZXdfbGF5ZXJfaWNvbiddID0gdHJ1ZTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX3NlY29uZGFyeSddID0gdGhpcmRJY29uID8gZmFsc2UgOiBzZWNvbmRhcnlJY29uO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fdGhpcmQnXSA9IHRoaXJkSWNvbjtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdTYW1wbGluZyc7XG4gICAgaWYgKGhvdmVyZWQpIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnU2FtcGxpbmdIb3ZlcmVkJztcbiAgICBsYXllckdyb3VwLmFkZExheWVyKHBvaW50Q3VzdG9tSWNvbik7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHNlY29uZGFyeUljb246IGJvb2xlYW4sXG4gIG1hcCxcbiAgcG9pbnQ6IElQb2ludCxcbiAgZXZlbnQ6IElFdmVudCxcbiAgaG92ZXJlZD8sXG4gIGxheWVyR3JvdXA/LFxuKSA9PiB7XG4gIC8vIGljb25TaXplOiBbd2lkdGgsIGhlaWdodF0sXG4gIC8vIEljb24gQW5jaG9yOiBbKC1yaWdodCkoK2xlZnQpLCAoLWRvd24pKCt1cCldXG4gIGxldCBvYnNlcnZhdGlvbkljb24gPSBbXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHBpbmtDaXJjbGVVUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFswLCAwXSA6IFswLCAwXSxcbiAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTcsIDQwXSA6IFsxMC43LCAzMy43XSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogb2JzZXJ2YXRpb25JY29uVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy04LCAzOF0gOiBbNSwgMzBdLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIHtcbiAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbikpO1xuICB9XG5cbiAgb2JzZXJ2YXRpb25JY29uLmZvckVhY2goKGljb24sIGluZGV4KSA9PiB7XG4gICAgbGV0IHBvaW50Q3VzdG9tSWNvbjogYW55ID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgIGljb246IGljb24sXG4gICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgfSk7XG4gICAgcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcocG9pbnQpKTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2luZGV4X29iamVjdCddID0gaW5kZXg7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19mZXdfbGF5ZXJfaWNvbiddID0gdHJ1ZTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX3NlY29uZGFyeSddID0gc2Vjb25kYXJ5SWNvbjtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX3RoaXJkJ10gPSBmYWxzZTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdPYnNlcnZhdGlvbic7XG4gICAgaWYgKGhvdmVyZWQpIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb25Ib3ZlcmVkJztcbiAgICBsYXllckdyb3VwLmFkZExheWVyKHBvaW50Q3VzdG9tSWNvbik7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVNhbXBsaW5nSWNvbnMgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgcG9pbnQ6IElQb2ludCxcbiAgbWFwLFxuICBob3ZlcmVkLFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICBsZXQgc2FtcGxlZFBvaW50SWRzID0gZXZlbnQuc2FtcGxpbmdzLm1hcCgocykgPT4gcy5wb2ludF9pZCk7XG4gIGlmIChcbiAgICBldmVudCAhPT0gbnVsbCAmJlxuICAgIGV2ZW50LnNhbXBsaW5ncy5sZW5ndGggIT09IDAgJiZcbiAgICBzYW1wbGVkUG9pbnRJZHMuaW5jbHVkZXMocG9pbnQuaWQpXG4gICkge1xuICAgIGNyZWF0ZVNhbXBsaW5nSWNvblBvaW50KFxuICAgICAgbWFya2VyTG9jYXRpb24sXG4gICAgICBtYXRjaEljb25Ub1BvaW50KHBvaW50LCBldmVudCkgIT09IG51bGwsXG4gICAgICBtYXAsXG4gICAgICBwb2ludCxcbiAgICAgIGV2ZW50LFxuICAgICAgaG92ZXJlZCxcbiAgICAgIGxheWVyR3JvdXAsXG4gICAgKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBvcHVwQ29udGVudCA9IChvYnM6IGFueSwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICBpZiAob2JzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ncmFwaC1pY29uIHBvcHVwLWdyYXBoLWljb24tJHtwb2ludC5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtwb2ludC5ncm91cC5uYW1lfTwvYj48L2g1PlxuICAgICAgICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInNlY3RvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7b2JzLmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7R3JhcGhJY29ufVwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zaXRlLW5hbWVcIj48Yj4ke1xuICAgICAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfTwvYj48L2g1PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXR5YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICl9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAncG9wdXAtY29udGVudF9fc2V2ZXJpdHktLScgKyBvYnMuc2V2ZXJpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLiR7b2JzLnNldmVyaXR5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2hyXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudF9fZGlzY2hhcmdlLXRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LmZpcnN0X3NlZW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48YiBpZD1cImZpcnN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5sYXN0X3NlZW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48YiBpZD1cImxhc3Qtc2Vlbi1wb3B1cFwiPjwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgfVxufTtcblxubGV0IHNldEljb24gPSAoZWxlbWVudCwgY2xpY2tlZCwgcG9pbnQpID0+IHtcbiAgZWxlbWVudC5zZXRJY29uKFxuICAgIGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICBwb2ludC5uYW1lLFxuICAgICAgcG9pbnQuZ3JvdXAuc2VjdG9yX25hbWUsXG4gICAgICBjbGlja2VkLFxuICAgICAgZmFsc2UsXG4gICAgKSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVXYXRlckNvbnN1bXB0aW9uID0gKGZsb3dfcmF0ZV91bml0LCB3YXRlckNvbnN1bXB0aW9uKSA9PiB7XG4gIHJldHVybiBmbG93X3JhdGVfdW5pdCA9PT0gJ20zZCdcbiAgICA/IHdhdGVyQ29uc3VtcHRpb24udG9GaXhlZCgwKVxuICAgIDogd2F0ZXJDb25zdW1wdGlvbiA+IDBcbiAgICA/ICh3YXRlckNvbnN1bXB0aW9uIC8gMzc4NS40MTE4KS50b0ZpeGVkKDMpXG4gICAgOiAwO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZUZsb3dSYXRlID0gKGZsb3dfcmF0ZV91bml0KSA9PiB7XG4gIHJldHVybiBpMThuLnQoXG4gICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmZsb3dfcmF0ZV91bml0X29wdGlvbnMuJHtmbG93X3JhdGVfdW5pdH1gLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU1hcmtlckNsaWNrID0gKG1hcCwgcG9pbnQsIHBvaW50Q3VzdG9tSWNvbikgPT4ge1xuICBtYXAub24oJ3pvb21zdGFydCcsIGZ1bmN0aW9uICgpIHtcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICB9KTtcblxuICBwb2ludEN1c3RvbUljb24ub24oJ3BvcHVwY2xvc2UnLCAoKSA9PiB7XG4gICAgc2V0SWNvbihwb2ludEN1c3RvbUljb24sIGZhbHNlLCBwb2ludCk7XG4gIH0pO1xuXG4gIHBvaW50Q3VzdG9tSWNvbi5vbigncG9wdXBvcGVuJywgKCkgPT4ge1xuICAgIHNldEljb24ocG9pbnRDdXN0b21JY29uLCB0cnVlLCBwb2ludCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJpbmRQb3B1cFRvTWFya2VyID0gKHBvaW50LCBsYXllckdyb3VwLCBmbG93X3JhdGVfdW5pdCkgPT4ge1xuICBsZXQgY29udGVudCA9IGBcbiAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnQnPlxuICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2hlYWRlcic+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50X19oZWFkZXJfX3RpdGxlc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9faGVhZGVyX190aXRsZXNfX3RpdGxlJz4ke1xuICAgICAgICAgICAgICAgICAgcG9pbnQubmFtZVxuICAgICAgICAgICAgICAgIH08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2hlYWRlcl9fdGl0bGVzX19zdWJ0aXRsZSc+JHtcbiAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lXG4gICAgICAgICAgICAgICAgfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHknPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX2ljb24nPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0nJHt3YXRlclJldXNlSWNvbn0nIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtX190aXRsZXMnPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtX190aXRsZXNfX3RpdGxlJz4ke2NhbGN1bGF0ZVdhdGVyQ29uc3VtcHRpb24oXG4gICAgICAgICAgICAgICAgICAgIGZsb3dfcmF0ZV91bml0LFxuICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC53YXRlcl9jb25zdW1wdGlvbl9wZXJfZGF5LFxuICAgICAgICAgICAgICAgICAgKX0gJHt0cmFuc2xhdGVGbG93UmF0ZShmbG93X3JhdGVfdW5pdCl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX3RpdGxlc19fc3VidGl0bGUnPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAnd2F0ZXJfZGlzY2hhcmdlJyxcbiAgICAgICAgICAgICAgICAgICl9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgYDtcblxuICBsYXllckdyb3VwLmJpbmRQb3B1cChjb250ZW50LCB7XG4gICAgY2xhc3NOYW1lOiAncG9pbnQtbWFya2VyLXBvcHVwJyxcbiAgICBtaW5XaWR0aDogJzIxNHB4JyxcbiAgICBtYXhXaWR0aDogJzIxNHB4JyxcbiAgICBjbG9zZUJ1dHRvbjogZmFsc2UsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUxheWVyR3JvdXAgPSAobWFwLCBsYXllckdyb3VwKSA9PiB7XG4gIGlmIChtYXAuaGFzTGF5ZXIobGF5ZXJHcm91cCkpIHtcbiAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJHcm91cCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRMYXllckdyb3VwID0gKG1hcCwgbGF5ZXJHcm91cCkgPT4ge1xuICBpZiAoIW1hcC5oYXNMYXllcihsYXllckdyb3VwKSkge1xuICAgIG1hcC5hZGRMYXllcihsYXllckdyb3VwKTtcbiAgfSBlbHNlIHtcbiAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgbGF5ZXJHcm91cCk7XG4gICAgYWRkTGF5ZXJHcm91cChtYXAsIGxheWVyR3JvdXApO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQyxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBRyxhQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBSyxnQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBTzNDLElBQUFNLGdCQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUF5RixJQUFBUyxhQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBVSxZQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBVyxZQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBWSxnQkFBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQUEsSUFBQWEsU0FBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQUEsSUFBQWMsaUJBQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFBLElBQUFlLFNBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBZ0Isa0JBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFTekYsSUFBQWlCLFdBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBa0IsU0FBQSxHQUFBbEIsT0FBQTtBQUNBLElBQUFtQixVQUFBLEdBQUFuQixPQUFBO0FBQWlELElBQUFvQixZQUFBLEdBQUFyQixzQkFBQSxDQUFBQyxPQUFBO0FBRzFDLElBQU1xQixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxLQUFhLEVBQUVDLEtBQWEsRUFBSztFQUFBLElBQUFDLG1CQUFBO0VBQ2xFLE9BQ0UsQ0FBQUQsS0FBSyxhQUFMQSxLQUFLLHdCQUFBQyxtQkFBQSxHQUFMRCxLQUFLLENBQUVFLFlBQVksY0FBQUQsbUJBQUEsdUJBQW5CQSxtQkFBQSxDQUFxQkUsTUFBTSxNQUFLLENBQUMsSUFDakNKLEtBQUssQ0FBQ0ssRUFBRSxLQUFLSixLQUFLLENBQUNFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQ0csUUFBUTtBQUUvQyxDQUFDO0FBQUNDLE9BQUEsQ0FBQVIsa0JBQUEsR0FBQUEsa0JBQUE7QUFFRixJQUFNUyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJUixLQUFhLEVBQUs7RUFDbkQsSUFBSVMsTUFBTSxNQUFBQyxNQUFBLENBQU1WLEtBQUssQ0FBQ1csS0FBSyxDQUFDQyxJQUFJLE1BQUc7RUFFbkMsSUFBSVosS0FBSyxDQUFDVyxLQUFLLENBQUNFLElBQUksS0FBSyxpQkFBaUIsRUFBRTtJQUMxQ0osTUFBTSxvQkFBQUMsTUFBQSxDQUFvQlYsS0FBSyxDQUFDVyxLQUFLLENBQUNHLFdBQVcsQ0FBRTtJQUNuREwsTUFBTSwrQkFBQUMsTUFBQSxDQUErQlYsS0FBSyxDQUFDVyxLQUFLLENBQUNJLHlCQUF5QixDQUFFO0VBQzlFLENBQUMsTUFBTTtJQUNMTixNQUFNLE1BQUFDLE1BQUEsQ0FBTVYsS0FBSyxDQUFDWSxJQUFJLENBQUU7RUFDMUI7RUFFQSxPQUFPSCxNQUFNO0FBQ2YsQ0FBQztBQUVNLElBQU1PLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsSUFBSSxFQUFLO0VBQ3JDLElBQUlDLGVBQXlCLEdBQUdDLGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0gsSUFBSSxDQUFDSSxjQUFjLEVBQUU7SUFDNURDLElBQUksRUFBRSxJQUFBQyw2QkFBa0IsRUFDdEJOLElBQUksQ0FBQ2pCLEtBQUssQ0FBQ1csS0FBSyxDQUFDRSxJQUFJLEVBQ3JCSSxJQUFJLENBQUNqQixLQUFLLENBQUNZLElBQUksRUFDZixFQUFFLEVBQ0YsS0FBSyxFQUNMLEtBQ0YsQ0FBQztJQUNEWSxXQUFXLEVBQUU7RUFDZixDQUFDLENBQUM7RUFFRixPQUFPTixlQUFlO0FBQ3hCLENBQUM7QUFBQ1gsT0FBQSxDQUFBUyxhQUFBLEdBQUFBLGFBQUE7QUFFSyxJQUFNUyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUM1QkosY0FBMkIsRUFDM0JyQixLQUFhLEVBQ2IwQixHQUFHLEVBQ0hDLE9BQVEsRUFDUkMsVUFBVyxFQUNYQyxjQUFlLEVBQ1o7RUFDSCxJQUFNQyxRQUFRLEdBQ1o5QixLQUFLLENBQUNXLEtBQUssQ0FBQ0UsSUFBSSxLQUFLLGlCQUFpQixHQUFHYixLQUFLLENBQUNXLEtBQUssQ0FBQ0csV0FBVyxHQUFHLEVBQUU7RUFDdkUsSUFBSUksZUFBeUIsR0FBR0MsZ0JBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxjQUFjLEVBQUU7SUFDdkRDLElBQUksRUFBRSxJQUFBQyw2QkFBa0IsRUFDdEJ2QixLQUFLLENBQUNXLEtBQUssQ0FBQ0UsSUFBSSxFQUNoQmIsS0FBSyxDQUFDWSxJQUFJLEVBQ1ZrQixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQ0YsQ0FBQztJQUNETixXQUFXLEVBQUU7RUFDZixDQUFDLENBQUM7RUFDRjtFQUNBO0VBQ0FOLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHbEIsS0FBSyxDQUFDSyxFQUFFO0VBQzdDYSxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTztFQUN6QyxJQUFJUyxPQUFPLEVBQUVULGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxjQUFjO0VBRTdEVSxVQUFVLENBQUNHLFFBQVEsQ0FBQ2IsZUFBZSxDQUFDO0VBQ3BDLElBQUlsQixLQUFLLENBQUNXLEtBQUssQ0FBQ0UsSUFBSSxLQUFLLGlCQUFpQixFQUFFO0lBQzFDbUIsaUJBQWlCLENBQUNoQyxLQUFLLEVBQUVrQixlQUFlLEVBQUVXLGNBQWMsQ0FBQzs7SUFFekQ7SUFDQTtJQUNBSSxpQkFBaUIsQ0FBQ1AsR0FBRyxFQUFFMUIsS0FBSyxFQUFFa0IsZUFBZSxDQUFDO0VBQ2hEO0VBRUEsSUFBSWxCLEtBQUssQ0FBQ2tDLG1CQUFtQixFQUFFO0lBQzdCLElBQUloQixnQkFBZSxHQUFHQyxnQkFBQyxDQUFDQyxNQUFNLENBQUNDLGNBQWMsRUFBRTtNQUM3Q0MsSUFBSSxFQUFFSCxnQkFBQyxDQUFDZ0IsT0FBTyxDQUFDO1FBQ2RDLFNBQVMsaUJBQUExQixNQUFBLENBRUxWLEtBQUssQ0FBQ2tDLG1CQUFtQixJQUFJLEdBQUcsR0FDNUIscURBQXFELEdBQ3JELHNCQUFzQixtQkFBQXhCLE1BQUEsQ0FFMUJWLEtBQUssQ0FBQ2tDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxhQUFhLEdBQUcsRUFBRSxtQkFDakQ7UUFDTEcsSUFBSSxRQUFBM0IsTUFBQSxDQUFRVixLQUFLLENBQUNrQyxtQkFBbUIsU0FBTTtRQUMzQ0ksVUFBVSxFQUFFLElBQUFDLHlCQUFlLEVBQUNiLEdBQUcsQ0FBQ2MsS0FBSyxDQUFDLENBQUNGO01BQ3pDLENBQUMsQ0FBQztNQUNGZCxXQUFXLEVBQUUsS0FBSztNQUNsQmlCLE9BQU8sRUFBRWQsT0FBTyxHQUFHLENBQUMsR0FBRztJQUN6QixDQUFDLENBQUM7SUFFRlQsZ0JBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHbEIsS0FBSyxDQUFDSyxFQUFFO0lBQzdDYSxnQkFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFlBQVk7SUFDOUMsSUFBSVMsT0FBTyxFQUFFVCxnQkFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG1CQUFtQjtFQUNwRTtBQUNGLENBQUM7QUFBQ1gsT0FBQSxDQUFBa0IsaUJBQUEsR0FBQUEsaUJBQUE7QUFFSyxJQUFNaUIsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FDN0JyQixjQUEyQixFQUMzQnJCLEtBQWEsRUFDYjBCLEdBQUcsRUFDSEMsT0FBUSxFQUNSQyxVQUFXLEVBQ1I7RUFDSCxJQUFJZSxTQUFTLEdBQUcsSUFBSXhCLGdCQUFDLENBQUN5QixJQUFJLENBQUM7SUFDekJDLE9BQU8sRUFBRUMsbUJBQVU7SUFDbkJDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEJULFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHO0VBQ3ZCLENBQUMsQ0FBQztFQUNGLElBQUlVLFdBQWdCLEdBQUcsSUFBSTdCLGdCQUFDLENBQUM4QixNQUFNLENBQUM1QixjQUFjLEVBQUU7SUFDbERDLElBQUksRUFBRXFCLFNBQVM7SUFDZm5CLFdBQVcsRUFBRTtFQUNmLENBQUMsQ0FBQztFQUNGd0IsV0FBVyxDQUFDRSxXQUFXLENBQUMxQyx5QkFBeUIsQ0FBQ1IsS0FBSyxDQUFDLENBQUM7RUFDekRnRCxXQUFXLENBQUMsaUJBQWlCLENBQUMsR0FBR2hELEtBQUssQ0FBQ0ssRUFBRTtFQUN6QzJDLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPO0VBQ3JDQSxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxTQUFTO0VBQzNDLElBQUlyQixPQUFPLEVBQUVxQixXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYztFQUN6RHBCLFVBQVUsQ0FBQ0csUUFBUSxDQUFDaUIsV0FBVyxDQUFDO0FBQ2xDLENBQUM7QUFBQ3pDLE9BQUEsQ0FBQW1DLGtCQUFBLEdBQUFBLGtCQUFBO0FBRUssSUFBTVMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSW5ELEtBQWEsRUFBRUMsS0FBYSxFQUFLO0VBQ2hFLFFBQVFELEtBQUssQ0FBQ1csS0FBSyxDQUFDRSxJQUFJO0lBQ3RCLEtBQUssaUJBQWlCO01BQ3BCLElBQUl1QyxtQkFBbUIsQ0FBQ2hELE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsSUFBSWlELDZCQUE2QixDQUFDcEQsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUMvQ29ELG1CQUFtQixDQUFDRSxPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDLE1BQU0sSUFBSUMscUJBQXFCLENBQUN2RCxLQUFLLEVBQUVELEtBQUssQ0FBQyxFQUFFO1VBQzlDb0QsbUJBQW1CLENBQUNFLE9BQU8sQ0FBQ0cseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsTUFBTTtVQUNMTCxtQkFBbUIsQ0FBQ0UsT0FBTyxDQUFDSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkQ7TUFDRjtNQUVBLE9BQU9OLG1CQUFtQjtJQUM1QixLQUFLLHFCQUFxQjtNQUN4QixJQUFJTyx1QkFBdUIsQ0FBQ3ZELE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDeEMsSUFBSWlELDZCQUE2QixDQUFDcEQsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUMvQzJELHVCQUF1QixDQUFDTCxPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDLE1BQU0sSUFBSUMscUJBQXFCLENBQUN2RCxLQUFLLEVBQUVELEtBQUssQ0FBQyxFQUFFO1VBQzlDMkQsdUJBQXVCLENBQUNMLE9BQU8sQ0FBQ0cseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsTUFBTTtVQUNMRSx1QkFBdUIsQ0FBQ0wsT0FBTyxDQUFDSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDdkQ7TUFDRjtNQUVBLE9BQU9DLHVCQUF1QjtJQUNoQyxLQUFLLGtDQUFrQztNQUNyQyxJQUFJQyxnQkFBZ0IsQ0FBQ3hELE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakMsSUFBSWlELDZCQUE2QixDQUFDcEQsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUMvQzRELGdCQUFnQixDQUFDTixPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDLE1BQU0sSUFBSUMscUJBQXFCLENBQUN2RCxLQUFLLEVBQUVELEtBQUssQ0FBQyxFQUFFO1VBQzlDNEQsZ0JBQWdCLENBQUNOLE9BQU8sQ0FBQ0cseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsTUFBTTtVQUNMRyxnQkFBZ0IsQ0FBQ04sT0FBTyxDQUFDSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDaEQ7TUFDRjtNQUVBLE9BQU9FLGdCQUFnQjtJQUV6QixLQUFLLG9CQUFvQjtNQUN2QixJQUFJN0Qsa0JBQWtCLENBQUNDLEtBQUssRUFBRUMsS0FBSyxDQUFDLEVBQUU7UUFDcEMsT0FBTyxDQUNMa0IsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO1VBQ0x1QixPQUFPLEVBQUVnQix3QkFBZTtVQUN4QmQsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztVQUNoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDckIsQ0FBQyxDQUFDLEVBRUZuQixnQkFBQyxDQUFDRyxJQUFJLENBQUM7VUFDTHVCLE9BQU8sRUFBRWlCLDBCQUFxQjtVQUM5QmYsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztVQUVoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztVQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDdEIsQ0FBQyxDQUFDLENBQ0g7TUFDSDtNQUVBLE9BQU9DLHNCQUFzQjtJQUUvQjtNQUNFLE9BQU8sSUFBSTtFQUNmO0FBQ0YsQ0FBQztBQUFDekQsT0FBQSxDQUFBNEMsZ0JBQUEsR0FBQUEsZ0JBQUE7QUFFSyxJQUFNTyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBRzFCO0VBQUEsSUFGSE8sU0FBa0IsR0FBQUMsU0FBQSxDQUFBOUQsTUFBQSxRQUFBOEQsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxLQUFLO0VBQUEsSUFDMUJFLEtBQWMsR0FBQUYsU0FBQSxDQUFBOUQsTUFBQSxRQUFBOEQsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxLQUFLO0VBRXRCLE9BQU8vQyxnQkFBQyxDQUFDRyxJQUFJLENBQUM7SUFDWnVCLE9BQU8sRUFBRXdCLDRCQUFtQjtJQUM1QnRCLFFBQVEsRUFBRWtCLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMzQixVQUFVLEVBQUUyQixTQUFTLElBQUlHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHSCxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDM0VGLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDeEQsT0FBQSxDQUFBbUQsa0JBQUEsR0FBQUEsa0JBQUE7QUFFSyxJQUFNTixtQkFBbUIsR0FBRyxDQUNqQ2pDLGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMdUIsT0FBTyxFQUFFeUIscUJBQWU7RUFDeEJ2QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3hCeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsRUFDRjVDLGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMdUIsT0FBTyxFQUFFMEIsb0JBQVk7RUFDckJ4QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ25CeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsQ0FDSDtBQUFDeEQsT0FBQSxDQUFBNkMsbUJBQUEsR0FBQUEsbUJBQUE7QUFFSyxJQUFNTyx1QkFBdUIsR0FBRyxDQUNyQ3hDLGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMdUIsT0FBTyxFQUFFMkIsb0JBQWM7RUFDdkJ6QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3hCeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsRUFDRjVDLGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMdUIsT0FBTyxFQUFFNEIsd0JBQWtCO0VBQzNCMUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUNoQlQsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUNuQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEIsQ0FBQyxDQUFDLENBQ0g7QUFBQ3hELE9BQUEsQ0FBQW9ELHVCQUFBLEdBQUFBLHVCQUFBO0FBRUssSUFBTUssc0JBQXNCLEdBQUcsQ0FDcEM3QyxnQkFBQyxDQUFDRyxJQUFJLENBQUM7RUFDTHVCLE9BQU8sRUFBRTZCLGlCQUFhO0VBQ3RCM0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUVoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztFQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEIsQ0FBQyxDQUFDLENBQ0g7QUFBQ3hELE9BQUEsQ0FBQXlELHNCQUFBLEdBQUFBLHNCQUFBO0FBRUssSUFBTUosZ0JBQWdCLEdBQUcsQ0FDOUJ6QyxnQkFBQyxDQUFDRyxJQUFJLENBQUM7RUFDTHVCLE9BQU8sRUFBRThCLHlCQUFtQjtFQUM1QjVCLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDaEJULFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7RUFDeEJ5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RCLENBQUMsQ0FBQyxFQUNGNUMsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0VBQ0x1QixPQUFPLEVBQUUrQixpQkFBVztFQUNwQjdCLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDaEJULFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7RUFDbkJ5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RCLENBQUMsQ0FBQyxDQUNIO0FBQUN4RCxPQUFBLENBQUFxRCxnQkFBQSxHQUFBQSxnQkFBQTtBQUVLLElBQU1MLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBUztFQUN0QyxPQUFPcEMsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0lBQ1p1QixPQUFPLEVBQUVnQix3QkFBZTtJQUN4QmQsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDeEQsT0FBQSxDQUFBZ0Qsa0JBQUEsR0FBQUEsa0JBQUE7QUFFSyxJQUFNRSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFBLEVBQVM7RUFDN0MsT0FBT3RDLGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNadUIsT0FBTyxFQUFFZ0MsMEJBQWlCO0lBQzFCOUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDeEQsT0FBQSxDQUFBa0QseUJBQUEsR0FBQUEseUJBQUE7QUFFSyxJQUFNSiw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQTZCQSxDQUFJcEQsS0FBYSxFQUFFRCxLQUFhLEVBQUs7RUFDN0UsSUFBSThFLE1BQU07RUFFVixJQUFJN0UsS0FBSyxLQUFLLElBQUksSUFBSUEsS0FBSyxLQUFLa0UsU0FBUyxFQUFFO0lBQ3pDVyxNQUFNLEdBQUc3RSxLQUFLLENBQUM4RSxPQUFPLENBQUNDLE1BQU0sQ0FBQyxVQUFDRixNQUFNO01BQUEsT0FBS0EsTUFBTSxDQUFDeEUsUUFBUSxLQUFLTixLQUFLLENBQUNLLEVBQUU7SUFBQSxFQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVFO0VBRUEsT0FBT0osS0FBSyxLQUFLLElBQUksSUFBSTZFLE1BQU0sSUFBSTdFLEtBQUssQ0FBQ2dGLGVBQWUsS0FBS0gsTUFBTSxDQUFDeEUsUUFBUTtBQUM5RSxDQUFDO0FBQUNDLE9BQUEsQ0FBQThDLDZCQUFBLEdBQUFBLDZCQUFBO0FBRUssSUFBTUcscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSXZELEtBQWEsRUFBRUQsS0FBYSxFQUFLO0VBQ3JFLElBQUlDLEtBQUssS0FBS2tFLFNBQVMsRUFBRTtFQUN6QixPQUNFbEUsS0FBSyxLQUFLLElBQUksSUFDZEEsS0FBSyxDQUFDOEUsT0FBTyxDQUFDQyxNQUFNLENBQUMsVUFBQ0YsTUFBTTtJQUFBLE9BQUtBLE1BQU0sQ0FBQ3hFLFFBQVEsS0FBS04sS0FBSyxDQUFDSyxFQUFFO0VBQUEsRUFBQyxDQUFDLENBQUMsQ0FBQztBQUVyRSxDQUFDO0FBQUNFLE9BQUEsQ0FBQWlELHFCQUFBLEdBQUFBLHFCQUFBO0FBRUssSUFBTTBCLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQ2xDN0QsY0FBMkIsRUFDM0I4RCxhQUFzQixFQUN0QnpELEdBQUcsRUFDSDFCLEtBQWEsRUFDYkMsS0FBYSxFQUNiMEIsT0FBUSxFQUNSQyxVQUFXLEVBQ1I7RUFDSDtFQUNBO0VBQ0EsSUFBSXdELFlBQVksR0FBRyxDQUNqQmpFLGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNMdUIsT0FBTyxFQUFFd0MsbUJBQWE7SUFDdEJ0QyxRQUFRLEVBQUVvQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDN0MsVUFBVSxFQUFFNkMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ25EcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN0QixDQUFDLENBQUMsRUFDRjVDLGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNMdUIsT0FBTyxFQUFFeUMscUJBQWU7SUFDeEJ2QyxRQUFRLEVBQUVvQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDN0MsVUFBVSxFQUFFNkMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzlDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN0QixDQUFDLENBQUMsQ0FDSDtFQUVELElBQUl3QixTQUFTLEdBQUcsS0FBSztFQUNyQixJQUFJbEMsNkJBQTZCLENBQUNwRCxLQUFLLEVBQUVELEtBQUssQ0FBQyxJQUFJLENBQUNtRixhQUFhLEVBQUU7SUFDakVDLFlBQVksQ0FBQzlCLE9BQU8sQ0FBQ0Msa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0VBQzVDLENBQUMsTUFBTSxJQUFJQyxxQkFBcUIsQ0FBQ3ZELEtBQUssRUFBRUQsS0FBSyxDQUFDLElBQUksQ0FBQ21GLGFBQWEsRUFBRTtJQUNoRUMsWUFBWSxDQUFDOUIsT0FBTyxDQUFDRyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7RUFDbkQsQ0FBQyxNQUFNO0lBQ0w4QixTQUFTLEdBQUcsSUFBSTtJQUNoQkgsWUFBWSxDQUFDOUIsT0FBTyxDQUFDSSxrQkFBa0IsQ0FBQ3lCLGFBQWEsRUFBRUksU0FBUyxDQUFDLENBQUM7RUFDcEU7RUFFQUgsWUFBWSxDQUFDSSxPQUFPLENBQUMsVUFBQ2xFLElBQUksRUFBRW1FLEtBQUssRUFBSztJQUNwQyxJQUFJdkUsZUFBb0IsR0FBR0MsZ0JBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxjQUFjLEVBQUU7TUFDbERDLElBQUksRUFBRUEsSUFBSTtNQUNWRSxXQUFXLEVBQUU7SUFDZixDQUFDLENBQUM7SUFDRk4sZUFBZSxDQUFDZ0MsV0FBVyxDQUFDMUMseUJBQXlCLENBQUNSLEtBQUssQ0FBQyxDQUFDO0lBQzdEa0IsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEdBQUd1RSxLQUFLO0lBQzdDdkUsZUFBZSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsSUFBSTtJQUM5Q0EsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUdxRSxTQUFTLEdBQUcsS0FBSyxHQUFHSixhQUFhO0lBQ3RFakUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxHQUFHcUUsU0FBUztJQUMxQ3JFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHbEIsS0FBSyxDQUFDSyxFQUFFO0lBQzdDYSxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsVUFBVTtJQUM1QyxJQUFJUyxPQUFPLEVBQUVULGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxpQkFBaUI7SUFDaEVVLFVBQVUsQ0FBQ0csUUFBUSxDQUFDYixlQUFlLENBQUM7RUFDdEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDWCxPQUFBLENBQUEyRSx1QkFBQSxHQUFBQSx1QkFBQTtBQUVLLElBQU1RLDBCQUEwQixHQUFHLFNBQTdCQSwwQkFBMEJBLENBQ3JDckUsY0FBMkIsRUFDM0I4RCxhQUFzQixFQUN0QnpELEdBQUcsRUFDSDFCLEtBQWEsRUFDYkMsS0FBYSxFQUNiMEIsT0FBUSxFQUNSQyxVQUFXLEVBQ1I7RUFDSDtFQUNBO0VBQ0EsSUFBSStELGVBQWUsR0FBRyxDQUNwQnhFLGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNMdUIsT0FBTyxFQUFFK0MsbUJBQWE7SUFDdEI3QyxRQUFRLEVBQUVvQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDN0MsVUFBVSxFQUFFNkMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ25EcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN0QixDQUFDLENBQUMsRUFDRjVDLGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNMdUIsT0FBTyxFQUFFZ0Qsd0JBQWtCO0lBQzNCOUMsUUFBUSxFQUFFb0MsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QzdDLFVBQVUsRUFBRTZDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM5Q3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDLENBQ0g7RUFFRCxJQUFJViw2QkFBNkIsQ0FBQ3BELEtBQUssRUFBRUQsS0FBSyxDQUFDLElBQUksQ0FBQ21GLGFBQWEsRUFBRTtJQUNqRVEsZUFBZSxDQUFDckMsT0FBTyxDQUFDQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7RUFDL0MsQ0FBQyxNQUFNLElBQUlDLHFCQUFxQixDQUFDdkQsS0FBSyxFQUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDbUYsYUFBYSxFQUFFO0lBQ2hFUSxlQUFlLENBQUNyQyxPQUFPLENBQUNHLHlCQUF5QixDQUFDLENBQUMsQ0FBQztFQUN0RCxDQUFDLE1BQU07SUFDTGtDLGVBQWUsQ0FBQ3JDLE9BQU8sQ0FBQ0ksa0JBQWtCLENBQUN5QixhQUFhLENBQUMsQ0FBQztFQUM1RDtFQUVBUSxlQUFlLENBQUNILE9BQU8sQ0FBQyxVQUFDbEUsSUFBSSxFQUFFbUUsS0FBSyxFQUFLO0lBQ3ZDLElBQUl2RSxlQUFvQixHQUFHQyxnQkFBQyxDQUFDQyxNQUFNLENBQUNDLGNBQWMsRUFBRTtNQUNsREMsSUFBSSxFQUFFQSxJQUFJO01BQ1ZFLFdBQVcsRUFBRTtJQUNmLENBQUMsQ0FBQztJQUNGTixlQUFlLENBQUNnQyxXQUFXLENBQUMxQyx5QkFBeUIsQ0FBQ1IsS0FBSyxDQUFDLENBQUM7SUFDN0RrQixlQUFlLENBQUMsb0JBQW9CLENBQUMsR0FBR3VFLEtBQUs7SUFDN0N2RSxlQUFlLENBQUMsc0JBQXNCLENBQUMsR0FBRyxJQUFJO0lBQzlDQSxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2lFLGFBQWE7SUFDbERqRSxlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSztJQUN0Q0EsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUdsQixLQUFLLENBQUNLLEVBQUU7SUFDN0NhLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxhQUFhO0lBQy9DLElBQUlTLE9BQU8sRUFBRVQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFvQjtJQUNuRVUsVUFBVSxDQUFDRyxRQUFRLENBQUNiLGVBQWUsQ0FBQztFQUN0QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNYLE9BQUEsQ0FBQW1GLDBCQUFBLEdBQUFBLDBCQUFBO0FBRUssSUFBTUksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FDOUJ6RSxjQUEyQixFQUMzQnBCLEtBQWEsRUFDYkQsS0FBYSxFQUNiMEIsR0FBRyxFQUNIQyxPQUFPLEVBQ1BDLFVBQVcsRUFDUjtFQUNILElBQUltRSxlQUFlLEdBQUc5RixLQUFLLENBQUMrRixTQUFTLENBQUN0RSxHQUFHLENBQUMsVUFBQ3VFLENBQUM7SUFBQSxPQUFLQSxDQUFDLENBQUMzRixRQUFRO0VBQUEsRUFBQztFQUM1RCxJQUNFTCxLQUFLLEtBQUssSUFBSSxJQUNkQSxLQUFLLENBQUMrRixTQUFTLENBQUM1RixNQUFNLEtBQUssQ0FBQyxJQUM1QjJGLGVBQWUsQ0FBQ0csUUFBUSxDQUFDbEcsS0FBSyxDQUFDSyxFQUFFLENBQUMsRUFDbEM7SUFDQTZFLHVCQUF1QixDQUNyQjdELGNBQWMsRUFDZDhCLGdCQUFnQixDQUFDbkQsS0FBSyxFQUFFQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQ3ZDeUIsR0FBRyxFQUNIMUIsS0FBSyxFQUNMQyxLQUFLLEVBQ0wwQixPQUFPLEVBQ1BDLFVBQ0YsQ0FBQztFQUNIO0FBQ0YsQ0FBQztBQUFDckIsT0FBQSxDQUFBdUYsbUJBQUEsR0FBQUEsbUJBQUE7QUFFSyxJQUFNSyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUMsR0FBUSxFQUFFcEcsS0FBYSxFQUFLO0VBQ3ZELElBQUlvRyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ2hCLG9IQUFBMUYsTUFBQSxDQUU0RFYsS0FBSyxDQUFDSyxFQUFFLDBDQUFBSyxNQUFBLENBQ3hDMkYsa0JBQVMsaUpBQUEzRixNQUFBLENBR3FCVixLQUFLLENBQUNXLEtBQUssQ0FBQ0MsSUFBSTtFQU81RSxDQUFDLE1BQU07SUFDTCxvSEFBQUYsTUFBQSxDQUU0RDBGLEdBQUcsQ0FBQy9GLEVBQUUsMENBQUFLLE1BQUEsQ0FDdEMyRixrQkFBUyxpSkFBQTNGLE1BQUEsQ0FJbkJWLEtBQUssQ0FBQ1csS0FBSyxDQUFDQyxJQUFJLDZJQUFBRixNQUFBLENBR3lCNEYsYUFBSSxDQUFDQyxDQUFDLDJCQUU3QyxDQUFDLGtEQUFBN0YsTUFBQSxDQUVDLDJCQUEyQixHQUFHMEYsR0FBRyxDQUFDSSxRQUFRLGdIQUFBOUYsTUFBQSxDQUdsQzRGLGFBQUksQ0FBQ0MsQ0FBQywrQkFBQTdGLE1BQUEsQ0FDd0IwRixHQUFHLENBQUNJLFFBQVEsQ0FDNUMsQ0FBQyw0VkFBQTlGLE1BQUEsQ0FTa0M0RixhQUFJLENBQUNDLENBQUMsNkJBRTdDLENBQUMseU5BQUE3RixNQUFBLENBSXNDNEYsYUFBSSxDQUFDQyxDQUFDLDRCQUU3QyxDQUFDO0VBTzNCO0FBQ0YsQ0FBQztBQUFDaEcsT0FBQSxDQUFBNEYsWUFBQSxHQUFBQSxZQUFBO0FBRUYsSUFBSU0sT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUlDLE9BQU8sRUFBRUMsT0FBTyxFQUFFM0csS0FBSyxFQUFLO0VBQ3pDMEcsT0FBTyxDQUFDRCxPQUFPLENBQ2IsSUFBQWxGLDZCQUFrQixFQUNoQnZCLEtBQUssQ0FBQ1csS0FBSyxDQUFDRSxJQUFJLEVBQ2hCYixLQUFLLENBQUNZLElBQUksRUFDVlosS0FBSyxDQUFDVyxLQUFLLENBQUNHLFdBQVcsRUFDdkI2RixPQUFPLEVBQ1AsS0FDRixDQUNGLENBQUM7QUFDSCxDQUFDO0FBRU0sSUFBTUMseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSS9FLGNBQWMsRUFBRWdGLGdCQUFnQixFQUFLO0VBQzdFLE9BQU9oRixjQUFjLEtBQUssS0FBSyxHQUMzQmdGLGdCQUFnQixDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzNCRCxnQkFBZ0IsR0FBRyxDQUFDLEdBQ3BCLENBQUNBLGdCQUFnQixHQUFHLFNBQVMsRUFBRUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUN6QyxDQUFDO0FBQ1AsQ0FBQztBQUFDdkcsT0FBQSxDQUFBcUcseUJBQUEsR0FBQUEseUJBQUE7QUFFSyxJQUFNRyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJbEYsY0FBYyxFQUFLO0VBQ25ELE9BQU95RSxhQUFJLENBQUNDLENBQUMsZ0RBQUE3RixNQUFBLENBQ29DbUIsY0FBYyxDQUMvRCxDQUFDO0FBQ0gsQ0FBQztBQUFDdEIsT0FBQSxDQUFBd0csaUJBQUEsR0FBQUEsaUJBQUE7QUFFSyxJQUFNOUUsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSVAsR0FBRyxFQUFFMUIsS0FBSyxFQUFFa0IsZUFBZSxFQUFLO0VBQ2hFUSxHQUFHLENBQUNzRixFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVk7SUFDOUJ0RixHQUFHLENBQUN1RixVQUFVLENBQUMsQ0FBQztFQUNsQixDQUFDLENBQUM7RUFFRi9GLGVBQWUsQ0FBQzhGLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBTTtJQUNyQ1AsT0FBTyxDQUFDdkYsZUFBZSxFQUFFLEtBQUssRUFBRWxCLEtBQUssQ0FBQztFQUN4QyxDQUFDLENBQUM7RUFFRmtCLGVBQWUsQ0FBQzhGLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUNwQ1AsT0FBTyxDQUFDdkYsZUFBZSxFQUFFLElBQUksRUFBRWxCLEtBQUssQ0FBQztFQUN2QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNPLE9BQUEsQ0FBQTBCLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssSUFBTUQsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSWhDLEtBQUssRUFBRTRCLFVBQVUsRUFBRUMsY0FBYyxFQUFLO0VBQ3RFLElBQUlxRixPQUFPLCtNQUFBeEcsTUFBQSxDQUtLVixLQUFLLENBQUNZLElBQUksa0ZBQUFGLE1BQUEsQ0FHVlYsS0FBSyxDQUFDVyxLQUFLLENBQUNHLFdBQVcscVBBQUFKLE1BQUEsQ0FRVHlHLG9CQUFjLDJLQUFBekcsTUFBQSxDQUcyQmtHLHlCQUF5QixDQUM5RS9FLGNBQWMsRUFDZDdCLEtBQUssQ0FBQ1csS0FBSyxDQUFDSSx5QkFDZCxDQUFDLE9BQUFMLE1BQUEsQ0FBSXFHLGlCQUFpQixDQUFDbEYsY0FBYyxDQUFDLHdGQUFBbkIsTUFBQSxDQUNvQjRGLGFBQUksQ0FBQ0MsQ0FBQyxDQUM5RCxpQkFDRixDQUFDLHlGQUtkO0VBRUgzRSxVQUFVLENBQUN3RixTQUFTLENBQUNGLE9BQU8sRUFBRTtJQUM1QjlFLFNBQVMsRUFBRSxvQkFBb0I7SUFDL0JpRixRQUFRLEVBQUUsT0FBTztJQUNqQkMsUUFBUSxFQUFFLE9BQU87SUFDakJDLFdBQVcsRUFBRTtFQUNmLENBQUMsQ0FBQztBQUNKLENBQUM7QUFBQ2hILE9BQUEsQ0FBQXlCLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssSUFBTXdGLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUk5RixHQUFHLEVBQUVFLFVBQVUsRUFBSztFQUNuRCxJQUFJRixHQUFHLENBQUMrRixRQUFRLENBQUM3RixVQUFVLENBQUMsRUFBRTtJQUM1QkYsR0FBRyxDQUFDZ0csV0FBVyxDQUFDOUYsVUFBVSxDQUFDO0VBQzdCO0FBQ0YsQ0FBQztBQUFDckIsT0FBQSxDQUFBaUgsZ0JBQUEsR0FBQUEsZ0JBQUE7QUFFSyxJQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlqRyxHQUFHLEVBQUVFLFVBQVUsRUFBSztFQUNoRCxJQUFJLENBQUNGLEdBQUcsQ0FBQytGLFFBQVEsQ0FBQzdGLFVBQVUsQ0FBQyxFQUFFO0lBQzdCRixHQUFHLENBQUNLLFFBQVEsQ0FBQ0gsVUFBVSxDQUFDO0VBQzFCLENBQUMsTUFBTTtJQUNMNEYsZ0JBQWdCLENBQUM5RixHQUFHLEVBQUVFLFVBQVUsQ0FBQztJQUNqQytGLGFBQWEsQ0FBQ2pHLEdBQUcsRUFBRUUsVUFBVSxDQUFDO0VBQ2hDO0FBQ0YsQ0FBQztBQUFDckIsT0FBQSxDQUFBb0gsYUFBQSxHQUFBQSxhQUFBIn0=
401
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2kxOG4iLCJfYmx1ZUNpcmNsZSIsIl9zYW1wbGluZ0ljb24iLCJfcGlua0NpcmNsZSIsIl9vYnNlcnZhdGlvbkljb24iLCJfcmVkUGluUmVkU2hhZG93IiwiX3doaXRlUGluUmVkU2hhZG93IiwiX3doaXRlUGluQmxhY2tTaGFkb3ciLCJfeWVsbG93Q2lyY2xlIiwiX2ZhY3RvcnlJY29uIiwiX2dyZWVuQ2lyY2xlIiwiX3B1bXBTdGF0aW9uSWNvbiIsIl9waW5XYXRlciIsIl9icmlnaHRCbHVlQ2lyY2xlIiwiX1dXVFBJY29uIiwiX3dhdGVyTm9CYWNrZ3JvdW5kIiwiX3doaXRlUG9pbnQiLCJfTWFwVXRpbHMiLCJfUG9pbnRJY29uIiwiX3dhdGVyX3JldXNlIiwiX3V0aWxzIiwiaXNDb2xsZWN0b3JGb2N1c2VkIiwicG9pbnQiLCJldmVudCIsIl9ldmVudCRvYnNlcnZhdGlvbnMiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJpZCIsInBvaW50X2lkIiwiZXhwb3J0cyIsImJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmciLCJzdHJpbmciLCJjb25jYXQiLCJncm91cCIsIm5hbWUiLCJ0eXBlIiwic2VjdG9yX25hbWUiLCJ3YXRlcl9jb25zdW1wdGlvbl9wZXJfZGF5IiwiYnViYmxlRm9yV1dUUCIsImFyZ3MiLCJwb2ludEN1c3RvbUljb24iLCJMIiwibWFya2VyIiwibWFya2VyTG9jYXRpb24iLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwicmlzZU9uSG92ZXIiLCJjcmVhdGVCdWJibGVQb2ludCIsIm1hcCIsImhvdmVyZWQiLCJsYXllckdyb3VwIiwiZmxvd19yYXRlX3VuaXQiLCJoYW5kbGVDbGljayIsInN1YnRpdGxlIiwiYWRkTGF5ZXIiLCJiaW5kUG9wdXBUb01hcmtlciIsImhhbmRsZU1hcmtlckNsaWNrIiwicmVsYXRlZEV2ZW50c0Ftb3VudCIsImRpdkljb24iLCJjbGFzc05hbWUiLCJodG1sIiwiaWNvbkFuY2hvciIsImV2ZW50c0NvdW50SWNvbiIsIl96b29tIiwib3BhY2l0eSIsImNyZWF0ZU1hbmhvbGVQb2ludCIsInBvaW50SWNvbiIsIkljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwibWFuaG9sZUljb24iLCJNYXJrZXIiLCJiaW5kVG9vbHRpcCIsIm1hdGNoSWNvblRvUG9pbnQiLCJjb21iaW5lZEZhY3RvcnlJY29uIiwibWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UiLCJ1bnNoaWZ0Iiwic2VsZWN0ZWRCYWNrZ3JvdW5kIiwibWFya2VyQmVsb25nc1RvU291cmNlIiwiYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCIsInN0YW5kYXJkQmFja2dyb3VuZCIsImNvbWJpbmVkUHVtcFN0YXRpb25JY29uIiwiY29tYmluZWRXV1RQSWNvbiIsInJlZFBpblJlZFNoYWRvdyIsIndhdGVySWNvbk5vQmFja2dyb3VuZCIsInBvcHVwQW5jaG9yIiwiY29tYmluZWRDb2xsZWN0b3JzSWNvbiIsInNlY29uZGFyeSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsInRoaXJkIiwid2hpdGVQaW5CbGFja1NoYWRvdyIsInllbGxvd0NpcmNsZVVSTCIsInBsYW50SWNvblVSTCIsImdyZWVuQ2lyY2xlVVJMIiwicHVtcFN0YXRpb25JY29uVVJMIiwiY29sbGVjdG9ySWNvbiIsImJyaWdodEJsdWVDaXJjbGVVUkwiLCJXV1RQSWNvblVSTCIsIndoaXRlUGluUmVkU2hhZG93Iiwic291cmNlIiwic291cmNlcyIsImZpbHRlciIsInNlbGVjdGVkX3NvdXJjZSIsImNyZWF0ZVNhbXBsaW5nSWNvblBvaW50Iiwic2Vjb25kYXJ5SWNvbiIsInNhbXBsaW5nSWNvbiIsImJsdWVDaXJjbGVVUkwiLCJzYW1wbGluZ0ljb25VUkwiLCJ0aGlyZEljb24iLCJmb3JFYWNoIiwiaW5kZXgiLCJjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCIsIm9ic2VydmF0aW9uSWNvbiIsInBpbmtDaXJjbGVVUkwiLCJvYnNlcnZhdGlvbkljb25VUkwiLCJjcmVhdGVTYW1wbGluZ0ljb25zIiwic2FtcGxlZFBvaW50SWRzIiwic2FtcGxpbmdzIiwicyIsImluY2x1ZGVzIiwicG9wdXBDb250ZW50Iiwib2JzIiwiR3JhcGhJY29uIiwiaTE4biIsInQiLCJzZXZlcml0eSIsInNldEljb24iLCJlbGVtZW50IiwiY2xpY2tlZCIsImNhbGN1bGF0ZVdhdGVyQ29uc3VtcHRpb24iLCJ3YXRlckNvbnN1bXB0aW9uIiwidG9GaXhlZCIsInRyYW5zbGF0ZUZsb3dSYXRlIiwib24iLCJjbG9zZVBvcHVwIiwia2FuZG9fb2JqZWN0X2lkIiwic2VuZEFuYWx5dGljc0V2ZW50IiwicG9pbnRfbmFtZSIsImNvbnRlbnQiLCJ3YXRlclJldXNlSWNvbiIsImJpbmRQb3B1cCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJjbG9zZUJ1dHRvbiIsInJlbW92ZUxheWVyR3JvdXAiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiYWRkTGF5ZXJHcm91cCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGhJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICcuLi8uLi8uLi9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgZXZlbnRzQ291bnRJY29uIH0gZnJvbSAnLi4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnLi9Qb2ludEljb24nO1xuaW1wb3J0IHdhdGVyUmV1c2VJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pY29ucy93YXRlcl9yZXVzZS5zdmcnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3RvckZvY3VzZWQgPSAocG9pbnQ6IElQb2ludCwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGV2ZW50Py5vYnNlcnZhdGlvbnM/Lmxlbmd0aCA9PT0gMSAmJlxuICAgIHBvaW50LmlkID09PSBldmVudC5vYnNlcnZhdGlvbnNbMF0ucG9pbnRfaWRcbiAgKTtcbn07XG5cbmNvbnN0IGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICBsZXQgc3RyaW5nID0gYCR7cG9pbnQuZ3JvdXAubmFtZX0gYDtcblxuICBpZiAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeScpIHtcbiAgICBzdHJpbmcgKz0gYDxici8+U2VjdG9yOiAke3BvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfWA7XG4gICAgc3RyaW5nICs9IGA8YnIvPldhdGVyIENvbnN1bXB0aW9uOiAke3BvaW50Lmdyb3VwLndhdGVyX2NvbnN1bXB0aW9uX3Blcl9kYXl9YDtcbiAgfSBlbHNlIHtcbiAgICBzdHJpbmcgPSBgJHtwb2ludC5uYW1lfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUZvcldXVFAgPSAoYXJncykgPT4ge1xuICBsZXQgcG9pbnRDdXN0b21JY29uOiBMLk1hcmtlciA9IEwubWFya2VyKGFyZ3MubWFya2VyTG9jYXRpb24sIHtcbiAgICBpY29uOiBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICBhcmdzLnBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICBhcmdzLnBvaW50Lm5hbWUsXG4gICAgICAnJyxcbiAgICAgIGZhbHNlLFxuICAgICAgZmFsc2UsXG4gICAgKSxcbiAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gIH0pO1xuXG4gIHJldHVybiBwb2ludEN1c3RvbUljb247XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQnViYmxlUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgcG9pbnQ6IElQb2ludCxcbiAgbWFwLFxuICBob3ZlcmVkPyxcbiAgbGF5ZXJHcm91cD8sXG4gIGZsb3dfcmF0ZV91bml0PyxcbiAgaGFuZGxlQ2xpY2s/LFxuKSA9PiB7XG4gIGNvbnN0IHN1YnRpdGxlID1cbiAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5JyA/IHBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lIDogJyc7XG4gIGxldCBwb2ludEN1c3RvbUljb246IEwuTWFya2VyID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICBpY29uOiBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICBwb2ludC5ncm91cC50eXBlLFxuICAgICAgcG9pbnQubmFtZSxcbiAgICAgIHN1YnRpdGxlLFxuICAgICAgZmFsc2UsXG4gICAgICBmYWxzZSxcbiAgICApLFxuICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgfSk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgLy8gcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGJ1aWxkTWFuaG9sZVRvb3RpcFN0cmluZyhwb2ludCkpO1xuICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludEhvdmVyZWQnO1xuXG4gIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9pbnRDdXN0b21JY29uKTtcbiAgaWYgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknKSB7XG4gICAgYmluZFBvcHVwVG9NYXJrZXIocG9pbnQsIHBvaW50Q3VzdG9tSWNvbiwgZmxvd19yYXRlX3VuaXQpO1xuICB9XG5cbiAgaGFuZGxlTWFya2VyQ2xpY2sobWFwLCBwb2ludCwgcG9pbnRDdXN0b21JY29uLCBoYW5kbGVDbGljayk7XG5cbiAgaWYgKHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQpIHtcbiAgICBsZXQgcG9pbnRDdXN0b21JY29uID0gTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgIGNsYXNzTmFtZTogYFxuICAgICAgICAgICR7XG4gICAgICAgICAgICBwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50ID49IDEwMFxuICAgICAgICAgICAgICA/ICdjaXJjbGUtZXZlbnRzLWFtb3VudCBjaXJjbGUtZXZlbnRzLWFtb3VudC0tdHJpZGlnaXQnXG4gICAgICAgICAgICAgIDogJ2NpcmNsZS1ldmVudHMtYW1vdW50J1xuICAgICAgICAgIH0gXG4gICAgICAgICAgJHtwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50ID4gMiA/ICdhbGVydC1jb2xvcicgOiAnJ31cbiAgICAgICAgICAgIGAsXG4gICAgICAgIGh0bWw6IGA8cD4ke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnR9PC9wPmAsXG4gICAgICAgIGljb25BbmNob3I6IGV2ZW50c0NvdW50SWNvbihtYXAuX3pvb20pLmljb25BbmNob3IsXG4gICAgICB9KSxcbiAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgIG9wYWNpdHk6IGhvdmVyZWQgPyAxIDogMCxcbiAgICB9KTtcblxuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ0ljb25OdW1iZXInO1xuICAgIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ0ljb25OdW1iZXJIb3ZlcmVkJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hbmhvbGVQb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBwb2ludDogSVBvaW50LFxuICBtYXAsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gbmV3IEwuSWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQb2ludCxcbiAgICBpY29uU2l6ZTogWzksIDldLFxuICAgIGljb25BbmNob3I6IFs0LjUsIDQuNV0sXG4gIH0pO1xuICBsZXQgbWFuaG9sZUljb246IGFueSA9IG5ldyBMLk1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IHBvaW50SWNvbixcbiAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgfSk7XG4gIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcocG9pbnQpKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gIG1hbmhvbGVJY29uWydrYW5kb19wb2ludF90eXBlJ10gPSAnTWFuaG9sZSc7XG4gIGlmIChob3ZlcmVkKSBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnRIb3ZlcmVkJztcbiAgbGF5ZXJHcm91cC5hZGRMYXllcihtYW5ob2xlSWNvbik7XG59O1xuXG5leHBvcnQgY29uc3QgbWF0Y2hJY29uVG9Qb2ludCA9IChwb2ludDogSVBvaW50LCBldmVudDogSUV2ZW50KSA9PiB7XG4gIHN3aXRjaCAocG9pbnQuZ3JvdXAudHlwZSkge1xuICAgIGNhc2UgJ0dyb3Vwczo6RmFjdG9yeSc6XG4gICAgICBpZiAoY29tYmluZWRGYWN0b3J5SWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tYmluZWRGYWN0b3J5SWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRGYWN0b3J5SWNvbjtcbiAgICBjYXNlICdHcm91cHM6OlB1bXBTdGF0aW9uJzpcbiAgICAgIGlmIChjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRQdW1wU3RhdGlvbkljb247XG4gICAgY2FzZSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnOlxuICAgICAgaWYgKGNvbWJpbmVkV1dUUEljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbWJpbmVkV1dUUEljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbWJpbmVkV1dUUEljb247XG5cbiAgICBjYXNlICdHcm91cHM6OkNvbGxlY3RvcnMnOlxuICAgICAgaWYgKGlzQ29sbGVjdG9yRm9jdXNlZChwb2ludCwgZXZlbnQpKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgIGljb25Vcmw6IHJlZFBpblJlZFNoYWRvdyxcbiAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICBpY29uQW5jaG9yOiBbMzAsIDUyXSxcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIEwuaWNvbih7XG4gICAgICAgICAgICBpY29uVXJsOiB3YXRlckljb25Ob0JhY2tncm91bmQsXG4gICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuXG4gICAgICAgICAgICBpY29uQW5jaG9yOiBbMjIsIDQ0XSxcbiAgICAgICAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbWJpbmVkQ29sbGVjdG9yc0ljb247XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzdGFuZGFyZEJhY2tncm91bmQgPSAoXG4gIHNlY29uZGFyeTogYm9vbGVhbiA9IGZhbHNlLFxuICB0aGlyZDogYm9vbGVhbiA9IGZhbHNlLFxuKSA9PiB7XG4gIHJldHVybiBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUGluQmxhY2tTaGFkb3csXG4gICAgaWNvblNpemU6IHNlY29uZGFyeSA/IFswLCAwXSA6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnkgJiYgdGhpcmQgPyBbLTIsIDE5XSA6IHNlY29uZGFyeSA/IFstMiwgNDRdIDogWzIwLCA0Ml0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZEZhY3RvcnlJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IHllbGxvd0NpcmNsZVVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuICBMLmljb24oe1xuICAgIGljb25Vcmw6IHBsYW50SWNvblVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFs1LCAzMF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbiA9IFtcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBncmVlbkNpcmNsZVVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFsxMC43LCAzMy43XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuICBMLmljb24oe1xuICAgIGljb25Vcmw6IHB1bXBTdGF0aW9uSWNvblVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFs3LCAzMl0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZENvbGxlY3RvcnNJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGNvbGxlY3Rvckljb24sXG4gICAgaWNvblNpemU6IFswLCAwXSxcblxuICAgIGljb25BbmNob3I6IFsyNSwgNTBdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG5dO1xuXG5leHBvcnQgY29uc3QgY29tYmluZWRXV1RQSWNvbiA9IFtcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBicmlnaHRCbHVlQ2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogV1dUUEljb25VUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbOCwgMzFdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0ZWRCYWNrZ3JvdW5kID0gKCkgPT4ge1xuICByZXR1cm4gTC5pY29uKHtcbiAgICBpY29uVXJsOiByZWRQaW5SZWRTaGFkb3csXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMzIsIDU0XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQgPSAoKSA9PiB7XG4gIHJldHVybiBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUGluUmVkU2hhZG93LFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzMyLCA1NF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIGxldCBzb3VyY2U7XG5cbiAgaWYgKGV2ZW50ICE9PSBudWxsICYmIGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBzb3VyY2UgPSBldmVudC5zb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UucG9pbnRfaWQgPT09IHBvaW50LmlkKVswXTtcbiAgfVxuXG4gIHJldHVybiBldmVudCAhPT0gbnVsbCAmJiBzb3VyY2UgJiYgZXZlbnQuc2VsZWN0ZWRfc291cmNlID09PSBzb3VyY2UucG9pbnRfaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgbWFya2VyQmVsb25nc1RvU291cmNlID0gKGV2ZW50OiBJRXZlbnQsIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgaWYgKGV2ZW50ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgcmV0dXJuIChcbiAgICBldmVudCAhPT0gbnVsbCAmJlxuICAgIGV2ZW50LnNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgc2Vjb25kYXJ5SWNvbjogYm9vbGVhbixcbiAgbWFwLFxuICBwb2ludDogSVBvaW50LFxuICBldmVudDogSUV2ZW50LFxuICBob3ZlcmVkPyxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgbGV0IHNhbXBsaW5nSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogYmx1ZUNpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgMTVdIDogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBzYW1wbGluZ0ljb25VUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFswLCAwXSA6IFswLCAwXSxcbiAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTgsIDEzXSA6IFs1LCAzMF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgbGV0IHRoaXJkSWNvbiA9IGZhbHNlO1xuICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcmRJY29uID0gdHJ1ZTtcbiAgICBzYW1wbGluZ0ljb24udW5zaGlmdChzdGFuZGFyZEJhY2tncm91bmQoc2Vjb25kYXJ5SWNvbiwgdGhpcmRJY29uKSk7XG4gIH1cblxuICBzYW1wbGluZ0ljb24uZm9yRWFjaCgoaWNvbiwgaW5kZXgpID0+IHtcbiAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogaWNvbixcbiAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYnVpbGRNYW5ob2xlVG9vbHRpcFN0cmluZyhwb2ludCkpO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9faW5kZXhfb2JqZWN0J10gPSBpbmRleDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2Zld19sYXllcl9pY29uJ10gPSB0cnVlO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fc2Vjb25kYXJ5J10gPSB0aGlyZEljb24gPyBmYWxzZSA6IHNlY29uZGFyeUljb247XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb190aGlyZCddID0gdGhpcmRJY29uO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nJztcbiAgICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdTYW1wbGluZ0hvdmVyZWQnO1xuICAgIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9pbnRDdXN0b21JY29uKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgc2Vjb25kYXJ5SWNvbjogYm9vbGVhbixcbiAgbWFwLFxuICBwb2ludDogSVBvaW50LFxuICBldmVudDogSUV2ZW50LFxuICBob3ZlcmVkPyxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgLy8gaWNvblNpemU6IFt3aWR0aCwgaGVpZ2h0XSxcbiAgLy8gSWNvbiBBbmNob3I6IFsoLXJpZ2h0KSgrbGVmdCksICgtZG93bikoK3VwKV1cbiAgbGV0IG9ic2VydmF0aW9uSWNvbiA9IFtcbiAgICBMLmljb24oe1xuICAgICAgaWNvblVybDogcGlua0NpcmNsZVVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstNywgNDBdIDogWzEwLjcsIDMzLjddLFxuICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgIH0pLFxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBvYnNlcnZhdGlvbkljb25VUkwsXG4gICAgICBpY29uU2l6ZTogc2Vjb25kYXJ5SWNvbiA/IFswLCAwXSA6IFswLCAwXSxcbiAgICAgIGljb25BbmNob3I6IHNlY29uZGFyeUljb24gPyBbLTgsIDM4XSA6IFs1LCAzMF0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gIF07XG5cbiAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkgJiYgIXNlY29uZGFyeUljb24pIHtcbiAgICBvYnNlcnZhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2Uge1xuICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZChzZWNvbmRhcnlJY29uKSk7XG4gIH1cblxuICBvYnNlcnZhdGlvbkljb24uZm9yRWFjaCgoaWNvbiwgaW5kZXgpID0+IHtcbiAgICBsZXQgcG9pbnRDdXN0b21JY29uOiBhbnkgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogaWNvbixcbiAgICAgIHJpc2VPbkhvdmVyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBwb2ludEN1c3RvbUljb24uYmluZFRvb2x0aXAoYnVpbGRNYW5ob2xlVG9vbHRpcFN0cmluZyhwb2ludCkpO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9faW5kZXhfb2JqZWN0J10gPSBpbmRleDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2Zld19sYXllcl9pY29uJ10gPSB0cnVlO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fc2Vjb25kYXJ5J10gPSBzZWNvbmRhcnlJY29uO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fdGhpcmQnXSA9IGZhbHNlO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ09ic2VydmF0aW9uJztcbiAgICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdPYnNlcnZhdGlvbkhvdmVyZWQnO1xuICAgIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9pbnRDdXN0b21JY29uKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2FtcGxpbmdJY29ucyA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBldmVudDogSUV2ZW50LFxuICBwb2ludDogSVBvaW50LFxuICBtYXAsXG4gIGhvdmVyZWQsXG4gIGxheWVyR3JvdXA/LFxuKSA9PiB7XG4gIGxldCBzYW1wbGVkUG9pbnRJZHMgPSBldmVudC5zYW1wbGluZ3MubWFwKChzKSA9PiBzLnBvaW50X2lkKTtcbiAgaWYgKFxuICAgIGV2ZW50ICE9PSBudWxsICYmXG4gICAgZXZlbnQuc2FtcGxpbmdzLmxlbmd0aCAhPT0gMCAmJlxuICAgIHNhbXBsZWRQb2ludElkcy5pbmNsdWRlcyhwb2ludC5pZClcbiAgKSB7XG4gICAgY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQoXG4gICAgICBtYXJrZXJMb2NhdGlvbixcbiAgICAgIG1hdGNoSWNvblRvUG9pbnQocG9pbnQsIGV2ZW50KSAhPT0gbnVsbCxcbiAgICAgIG1hcCxcbiAgICAgIHBvaW50LFxuICAgICAgZXZlbnQsXG4gICAgICBob3ZlcmVkLFxuICAgICAgbGF5ZXJHcm91cCxcbiAgICApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcG9wdXBDb250ZW50ID0gKG9iczogYW55LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIGlmIChvYnMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke3BvaW50LmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7R3JhcGhJY29ufVwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zaXRlLW5hbWVcIj48Yj4ke3BvaW50Lmdyb3VwLm5hbWV9PC9iPjwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwic2VjdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ncmFwaC1pY29uIHBvcHVwLWdyYXBoLWljb24tJHtvYnMuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7XG4gICAgICAgICAgICAgICAgICAgICAgcG9pbnQuZ3JvdXAubmFtZVxuICAgICAgICAgICAgICAgICAgICB9PC9iPjwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdHlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwb3B1cC1jb250ZW50X19zZXZlcml0eS0tJyArIG9icy5zZXZlcml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktYlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuJHtvYnMuc2V2ZXJpdHl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwicG9wdXAtY29udGVudF9faHJcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50X19kaXNjaGFyZ2UtdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuZmlyc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwiZmlyc3Qtc2Vlbi1wb3B1cFwiPjwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1wXCI+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3Lmxhc3Rfc2VlbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxiIGlkPVwibGFzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgO1xuICB9XG59O1xuXG5sZXQgc2V0SWNvbiA9IChlbGVtZW50LCBjbGlja2VkLCBwb2ludCkgPT4ge1xuICBlbGVtZW50LnNldEljb24oXG4gICAgZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSxcbiAgICAgIHBvaW50Lm5hbWUsXG4gICAgICBwb2ludC5ncm91cC5zZWN0b3JfbmFtZSxcbiAgICAgIGNsaWNrZWQsXG4gICAgICBmYWxzZSxcbiAgICApLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdhdGVyQ29uc3VtcHRpb24gPSAoZmxvd19yYXRlX3VuaXQsIHdhdGVyQ29uc3VtcHRpb24pID0+IHtcbiAgcmV0dXJuIGZsb3dfcmF0ZV91bml0ID09PSAnbTNkJ1xuICAgID8gd2F0ZXJDb25zdW1wdGlvbi50b0ZpeGVkKDApXG4gICAgOiB3YXRlckNvbnN1bXB0aW9uID4gMFxuICAgID8gKHdhdGVyQ29uc3VtcHRpb24gLyAzNzg1LjQxMTgpLnRvRml4ZWQoMylcbiAgICA6IDA7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRlRmxvd1JhdGUgPSAoZmxvd19yYXRlX3VuaXQpID0+IHtcbiAgcmV0dXJuIGkxOG4udChcbiAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuZmxvd19yYXRlX3VuaXRfb3B0aW9ucy4ke2Zsb3dfcmF0ZV91bml0fWAsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTWFya2VyQ2xpY2sgPSAobWFwLCBwb2ludCwgcG9pbnRDdXN0b21JY29uLCBoYW5kbGVDbGljaykgPT4ge1xuICBtYXAub24oJ3pvb21zdGFydCcsIGZ1bmN0aW9uICgpIHtcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICB9KTtcblxuICBwb2ludEN1c3RvbUljb24ub24oJ3BvcHVwY2xvc2UnLCAoKSA9PiB7XG4gICAgc2V0SWNvbihwb2ludEN1c3RvbUljb24sIGZhbHNlLCBwb2ludCk7XG4gIH0pO1xuXG4gIHBvaW50Q3VzdG9tSWNvbi5vbigncG9wdXBvcGVuJywgKCkgPT4ge1xuICAgIHNldEljb24ocG9pbnRDdXN0b21JY29uLCB0cnVlLCBwb2ludCk7XG4gIH0pO1xuXG4gIGlmIChoYW5kbGVDbGljayAhPT0gbnVsbCkge1xuICAgIHBvaW50Q3VzdG9tSWNvbi5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICBoYW5kbGVDbGljayhwb2ludEN1c3RvbUljb24ua2FuZG9fb2JqZWN0X2lkKTtcblxuICAgICAgaWYgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknKSB7XG4gICAgICAgIHNlbmRBbmFseXRpY3NFdmVudCgnTWFwIFZpZXcgLSBGYWN0b3J5IGNsaWNrZWQnLCAnbWFwJywge1xuICAgICAgICAgIHBvaW50X2lkOiBwb2ludC5pZCxcbiAgICAgICAgICBwb2ludF9uYW1lOiBwb2ludC5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGJpbmRQb3B1cFRvTWFya2VyID0gKHBvaW50LCBsYXllckdyb3VwLCBmbG93X3JhdGVfdW5pdCkgPT4ge1xuICBsZXQgY29udGVudCA9IGBcbiAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnQnPlxuICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2hlYWRlcic+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50X19oZWFkZXJfX3RpdGxlc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9faGVhZGVyX190aXRsZXNfX3RpdGxlJz4ke1xuICAgICAgICAgICAgICAgICAgcG9pbnQubmFtZVxuICAgICAgICAgICAgICAgIH08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2hlYWRlcl9fdGl0bGVzX19zdWJ0aXRsZSc+JHtcbiAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lXG4gICAgICAgICAgICAgICAgfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHknPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX2ljb24nPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0nJHt3YXRlclJldXNlSWNvbn0nIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtX190aXRsZXMnPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtX190aXRsZXNfX3RpdGxlJz4ke2NhbGN1bGF0ZVdhdGVyQ29uc3VtcHRpb24oXG4gICAgICAgICAgICAgICAgICAgIGZsb3dfcmF0ZV91bml0LFxuICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC53YXRlcl9jb25zdW1wdGlvbl9wZXJfZGF5LFxuICAgICAgICAgICAgICAgICAgKX0gJHt0cmFuc2xhdGVGbG93UmF0ZShmbG93X3JhdGVfdW5pdCl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX3RpdGxlc19fc3VidGl0bGUnPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAnd2F0ZXJfZGlzY2hhcmdlJyxcbiAgICAgICAgICAgICAgICAgICl9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgYDtcblxuICBsYXllckdyb3VwLmJpbmRQb3B1cChjb250ZW50LCB7XG4gICAgY2xhc3NOYW1lOiAncG9pbnQtbWFya2VyLXBvcHVwJyxcbiAgICBtaW5XaWR0aDogJzIxNHB4JyxcbiAgICBtYXhXaWR0aDogJzIxNHB4JyxcbiAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTGF5ZXJHcm91cCA9IChtYXAsIGxheWVyR3JvdXApID0+IHtcbiAgaWYgKG1hcC5oYXNMYXllcihsYXllckdyb3VwKSkge1xuICAgIG1hcC5yZW1vdmVMYXllcihsYXllckdyb3VwKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGFkZExheWVyR3JvdXAgPSAobWFwLCBsYXllckdyb3VwKSA9PiB7XG4gIGlmICghbWFwLmhhc0xheWVyKGxheWVyR3JvdXApKSB7XG4gICAgbWFwLmFkZExheWVyKGxheWVyR3JvdXApO1xuICB9IGVsc2Uge1xuICAgIHJlbW92ZUxheWVyR3JvdXAobWFwLCBsYXllckdyb3VwKTtcbiAgICBhZGRMYXllckdyb3VwKG1hcCwgbGF5ZXJHcm91cCk7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQTJDLElBQUFFLFdB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
@@ -21,7 +21,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
  var DischargeHeatmapContainer = function DischargeHeatmapContainer(_ref) {
22
22
  var pointId = _ref.pointId,
23
23
  _ref$isShowingTitles = _ref.isShowingTitles,
24
- isShowingTitles = _ref$isShowingTitles === void 0 ? true : _ref$isShowingTitles;
24
+ isShowingTitles = _ref$isShowingTitles === void 0 ? true : _ref$isShowingTitles,
25
+ _ref$isEvents = _ref.isEvents,
26
+ isEvents = _ref$isEvents === void 0 ? false : _ref$isEvents,
27
+ onDataLoad = _ref.onDataLoad;
25
28
  var listByWeekStart = function listByWeekStart(isStartOnSunday, list) {
26
29
  if (isStartOnSunday) {
27
30
  return list;
@@ -53,7 +56,7 @@ var DischargeHeatmapContainer = function DischargeHeatmapContainer(_ref) {
53
56
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54
57
  state = _useState2[0],
55
58
  setState = _useState2[1];
56
- var _useApiWithDashboardQ = (0, _useApiWithDashboardQuery.useApiWithDashboardQuery)("/points/".concat(pointId, "/discharge_pattern_overtime.json")),
59
+ var _useApiWithDashboardQ = (0, _useApiWithDashboardQuery.useApiWithDashboardQuery)("/points/".concat(pointId, "/discharge_pattern_overtime.json").concat(isEvents ? '?harshness_type=events' : '')),
57
60
  _useApiWithDashboardQ2 = (0, _slicedToArray2.default)(_useApiWithDashboardQ, 3),
58
61
  response = _useApiWithDashboardQ2[0],
59
62
  isLoading = _useApiWithDashboardQ2[1],
@@ -70,6 +73,7 @@ var DischargeHeatmapContainer = function DischargeHeatmapContainer(_ref) {
70
73
  data: response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.data.filter(Boolean)
71
74
  });
72
75
  }
76
+ onDataLoad && onDataLoad(response);
73
77
  }, [response]);
74
78
  return /*#__PURE__*/_react.default.createElement(_DischargeHeatmap.default, {
75
79
  weekDays: state.weekDays,
@@ -84,4 +88,4 @@ var DischargeHeatmapContainer = function DischargeHeatmapContainer(_ref) {
84
88
  };
85
89
  var _default = DischargeHeatmapContainer;
86
90
  exports.default = _default;
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0Rpc2NoYXJnZUhlYXRtYXAiLCJfdGl0bGVzIiwiX0NvbnRlbnRMb2FkZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkRpc2NoYXJnZUhlYXRtYXBDb250YWluZXIiLCJfcmVmIiwicG9pbnRJZCIsIl9yZWYkaXNTaG93aW5nVGl0bGVzIiwiaXNTaG93aW5nVGl0bGVzIiwibGlzdEJ5V2Vla1N0YXJ0IiwiaXNTdGFydE9uU3VuZGF5IiwibGlzdCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzbGljZSIsIndlZWtEYXlzTGlzdCIsImkxOG4iLCJ0IiwiYWJicldlZWtEYXlzTGlzdCIsImNhbGNPcmRlcmVkV2Vla0RheXMiLCJpc1dlZWtTdGFydE9uU3VuZGF5IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwid2Vla0RheXMiLCJhYmJyV2Vla0RheXMiLCJtYXAiLCJzaG9ydCIsImluZGV4IiwiZnVsbCIsImluaXRpYWxTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzdGF0ZSIsInNldFN0YXRlIiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlIiwiaXNMb2FkaW5nIiwiZXJyb3IiLCJ0aXRsZXMiLCJoZWFkX3RpdGxlIiwic3ViX3RpdGxlIiwidXNlRWZmZWN0IiwiX3Jlc3BvbnNlJGRhdGEiLCJfcmVzcG9uc2UkZGF0YTIiLCJpc193ZWVrX3N0YXJ0X29uX3N1bmRheSIsImZpbHRlciIsIkJvb2xlYW4iLCJjcmVhdGVFbGVtZW50IiwiX29iamVjdFNwcmVhZDIiLCJsb2FkZXIiLCJSb3dMb2FkZXIiLCJtYXJnaW4iLCJiZ0NvbG9yIiwiZmdDb2xvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Rpc2NoYXJnZUhlYXRtYXAvRGlzY2hhcmdlSGVhdG1hcENvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkgfSBmcm9tICdzcmMvaG9va3MvdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5JztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBEaXNjaGFyZ2VIZWF0bWFwIGZyb20gJy4vRGlzY2hhcmdlSGVhdG1hcCc7XG5pbXBvcnQgJy4vc3R5bGVzLnNjc3MnO1xuaW1wb3J0IHsgaGVhZF90aXRsZSwgc3ViX3RpdGxlIH0gZnJvbSAnLi90aXRsZXMnO1xuaW1wb3J0IHsgSVdlZWtEYXkgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFJvd0xvYWRlciB9IGZyb20gJy4uL0NvbnRlbnRMb2FkZXInO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgcG9pbnRJZDogbnVtYmVyIHwgbnVsbDtcbiAgaXNXZWVrU3RhcnRPblN1bmRheT86IGJvb2xlYW47XG4gIGlzU2hvd2luZ1RpdGxlcz86IGJvb2xlYW47XG59O1xuY29uc3QgRGlzY2hhcmdlSGVhdG1hcENvbnRhaW5lciA9ICh7XG4gIHBvaW50SWQsXG4gIGlzU2hvd2luZ1RpdGxlcyA9IHRydWUsXG59OiBJUHJvcHMpID0+IHtcbiAgY29uc3QgbGlzdEJ5V2Vla1N0YXJ0ID0gKGlzU3RhcnRPblN1bmRheSwgbGlzdCkgPT4ge1xuICAgIGlmIChpc1N0YXJ0T25TdW5kYXkpIHtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIHJldHVybiBbLi4ubGlzdC5zbGljZSgxKSwgbGlzdFswXV07XG4gIH07XG5cbiAgY29uc3Qgd2Vla0RheXNMaXN0OiBzdHJpbmdbXSA9IGkxOG4udCgnZGF0ZS5kYXlfbmFtZXMnKTtcbiAgY29uc3QgYWJicldlZWtEYXlzTGlzdDogc3RyaW5nW10gPSBpMThuLnQoJ2RhdGUuYWJicl9kYXlfbmFtZXMnKTtcblxuICAvLyBXZSdyZSBhZGRpbmcgYW4gb2Zmc2V0IG9mIDEgZGF5IHRvIHRoZSB3ZWVrcyB0aGF0IHN0YXJ0IG9uIFN1bmRheVxuICAvLyBpbiBvcmRlciB0byByZWZsZWN0IGNvcnJlY3RseSB0aGUgZmFjdCB0aGF0IHRoZSBkYXRhIHJldHVybmVkIGZyb20gdGhlIHNlcnZlclxuICAvLyBhbHdheXMgc3RhcnRzIGZyb20gdGhlIGZpcnN0IGRheSBvZiB3ZWVrIChJc3JhZWwgPT4gU3VuZGF5LCBvdGhlciBjb3VudHJpZXMgPT4gTW9uZGF5KS5cbiAgY29uc3QgY2FsY09yZGVyZWRXZWVrRGF5cyA9IChpc1dlZWtTdGFydE9uU3VuZGF5ID0gZmFsc2UpID0+IHtcbiAgICBsZXQgd2Vla0RheXMgPSBsaXN0QnlXZWVrU3RhcnQoaXNXZWVrU3RhcnRPblN1bmRheSwgd2Vla0RheXNMaXN0KTtcbiAgICBsZXQgYWJicldlZWtEYXlzID0gbGlzdEJ5V2Vla1N0YXJ0KGlzV2Vla1N0YXJ0T25TdW5kYXksIGFiYnJXZWVrRGF5c0xpc3QpO1xuXG4gICAgcmV0dXJuIGFiYnJXZWVrRGF5c0xpc3QubWFwKChzaG9ydCwgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNob3J0OiBhYmJyV2Vla0RheXNbaW5kZXhdLFxuICAgICAgICBmdWxsOiB3ZWVrRGF5c1tpbmRleF0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGluaXRpYWxTdGF0ZToge1xuICAgIHdlZWtEYXlzOiBJV2Vla0RheVtdO1xuICAgIGRhdGE6IGFueVtdO1xuICB9ID0ge1xuICAgIHdlZWtEYXlzOiBbXSxcbiAgICBkYXRhOiBbXSxcbiAgfTtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xuICBjb25zdCBbcmVzcG9uc2UsIGlzTG9hZGluZywgZXJyb3JdID0gdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5PGFueT4oXG4gICAgYC9wb2ludHMvJHtwb2ludElkfS9kaXNjaGFyZ2VfcGF0dGVybl9vdmVydGltZS5qc29uYCxcbiAgKTtcblxuICBjb25zdCB0aXRsZXMgPSAhaXNTaG93aW5nVGl0bGVzID8ge30gOiB7IGhlYWRfdGl0bGUsIHN1Yl90aXRsZSB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHdlZWtEYXlzOiBjYWxjT3JkZXJlZFdlZWtEYXlzKHJlc3BvbnNlPy5kYXRhPy5pc193ZWVrX3N0YXJ0X29uX3N1bmRheSksXG4gICAgICAgIGRhdGE6IHJlc3BvbnNlPy5kYXRhPy5kYXRhLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3Jlc3BvbnNlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGlzY2hhcmdlSGVhdG1hcCB3ZWVrRGF5cz17c3RhdGUud2Vla0RheXN9IGRhdGE9e3N0YXRlLmRhdGF9PlxuICAgICAge3tcbiAgICAgICAgLi4udGl0bGVzLFxuICAgICAgICBsb2FkZXI6IGlzTG9hZGluZyAmJiAhZXJyb3IgJiYgKFxuICAgICAgICAgIDxSb3dMb2FkZXIgbWFyZ2luPVwiMjZweCAwIDBcIiBiZ0NvbG9yPVwiI2YyZjJmMlwiIGZnQ29sb3I9XCIjZmZmXCIgLz5cbiAgICAgICAgKSxcbiAgICAgIH19XG4gICAgPC9EaXNjaGFyZ2VIZWF0bWFwPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRGlzY2hhcmdlSGVhdG1hcENvbnRhaW5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyx5QkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sY0FBQSxHQUFBTixPQUFBO0FBQTZDLFNBQUFPLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVCx3QkFBQWEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMs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
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0Rpc2NoYXJnZUhlYXRtYXAiLCJfdGl0bGVzIiwiX0NvbnRlbnRMb2FkZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkRpc2NoYXJnZUhlYXRtYXBDb250YWluZXIiLCJfcmVmIiwicG9pbnRJZCIsIl9yZWYkaXNTaG93aW5nVGl0bGVzIiwiaXNTaG93aW5nVGl0bGVzIiwiX3JlZiRpc0V2ZW50cyIsImlzRXZlbnRzIiwib25EYXRhTG9hZCIsImxpc3RCeVdlZWtTdGFydCIsImlzU3RhcnRPblN1bmRheSIsImxpc3QiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJ3ZWVrRGF5c0xpc3QiLCJpMThuIiwidCIsImFiYnJXZWVrRGF5c0xpc3QiLCJjYWxjT3JkZXJlZFdlZWtEYXlzIiwiaXNXZWVrU3RhcnRPblN1bmRheSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIndlZWtEYXlzIiwiYWJicldlZWtEYXlzIiwibWFwIiwic2hvcnQiLCJpbmRleCIsImZ1bGwiLCJpbml0aWFsU3RhdGUiLCJkYXRhIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhdGUiLCJzZXRTdGF0ZSIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUSIsInVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUTIiLCJyZXNwb25zZSIsImlzTG9hZGluZyIsImVycm9yIiwidGl0bGVzIiwiaGVhZF90aXRsZSIsInN1Yl90aXRsZSIsInVzZUVmZmVjdCIsIl9yZXNwb25zZSRkYXRhIiwiX3Jlc3BvbnNlJGRhdGEyIiwiaXNfd2Vla19zdGFydF9vbl9zdW5kYXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiY3JlYXRlRWxlbWVudCIsIl9vYmplY3RTcHJlYWQyIiwibG9hZGVyIiwiUm93TG9hZGVyIiwibWFyZ2luIiwiYmdDb2xvciIsImZnQ29sb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9EaXNjaGFyZ2VIZWF0bWFwL0Rpc2NoYXJnZUhlYXRtYXBDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IH0gZnJvbSAnc3JjL2hvb2tzL3VzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgRGlzY2hhcmdlSGVhdG1hcCBmcm9tICcuL0Rpc2NoYXJnZUhlYXRtYXAnO1xuaW1wb3J0ICcuL3N0eWxlcy5zY3NzJztcbmltcG9ydCB7IGhlYWRfdGl0bGUsIHN1Yl90aXRsZSB9IGZyb20gJy4vdGl0bGVzJztcbmltcG9ydCB7IElXZWVrRGF5IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBSb3dMb2FkZXIgfSBmcm9tICcuLi9Db250ZW50TG9hZGVyJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIHBvaW50SWQ6IG51bWJlciB8IG51bGw7XG4gIGlzV2Vla1N0YXJ0T25TdW5kYXk/OiBib29sZWFuO1xuICBpc1Nob3dpbmdUaXRsZXM/OiBib29sZWFuO1xuICBpc0V2ZW50cz86IGJvb2xlYW47XG4gIG9uRGF0YUxvYWQ/OiAoZGF0YTogYW55KSA9PiB2b2lkO1xufTtcbmNvbnN0IERpc2NoYXJnZUhlYXRtYXBDb250YWluZXIgPSAoe1xuICBwb2ludElkLFxuICBpc1Nob3dpbmdUaXRsZXMgPSB0cnVlLFxuICBpc0V2ZW50cyA9IGZhbHNlLFxuICBvbkRhdGFMb2FkLFxufTogSVByb3BzKSA9PiB7XG4gIGNvbnN0IGxpc3RCeVdlZWtTdGFydCA9IChpc1N0YXJ0T25TdW5kYXksIGxpc3QpID0+IHtcbiAgICBpZiAoaXNTdGFydE9uU3VuZGF5KSB7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmxpc3Quc2xpY2UoMSksIGxpc3RbMF1dO1xuICB9O1xuXG4gIGNvbnN0IHdlZWtEYXlzTGlzdDogc3RyaW5nW10gPSBpMThuLnQoJ2RhdGUuZGF5X25hbWVzJyk7XG4gIGNvbnN0IGFiYnJXZWVrRGF5c0xpc3Q6IHN0cmluZ1tdID0gaTE4bi50KCdkYXRlLmFiYnJfZGF5X25hbWVzJyk7XG5cbiAgLy8gV2UncmUgYWRkaW5nIGFuIG9mZnNldCBvZiAxIGRheSB0byB0aGUgd2Vla3MgdGhhdCBzdGFydCBvbiBTdW5kYXlcbiAgLy8gaW4gb3JkZXIgdG8gcmVmbGVjdCBjb3JyZWN0bHkgdGhlIGZhY3QgdGhhdCB0aGUgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXJcbiAgLy8gYWx3YXlzIHN0YXJ0cyBmcm9tIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAoSXNyYWVsID0+IFN1bmRheSwgb3RoZXIgY291bnRyaWVzID0+IE1vbmRheSkuXG4gIGNvbnN0IGNhbGNPcmRlcmVkV2Vla0RheXMgPSAoaXNXZWVrU3RhcnRPblN1bmRheSA9IGZhbHNlKSA9PiB7XG4gICAgbGV0IHdlZWtEYXlzID0gbGlzdEJ5V2Vla1N0YXJ0KGlzV2Vla1N0YXJ0T25TdW5kYXksIHdlZWtEYXlzTGlzdCk7XG4gICAgbGV0IGFiYnJXZWVrRGF5cyA9IGxpc3RCeVdlZWtTdGFydChpc1dlZWtTdGFydE9uU3VuZGF5LCBhYmJyV2Vla0RheXNMaXN0KTtcblxuICAgIHJldHVybiBhYmJyV2Vla0RheXNMaXN0Lm1hcCgoc2hvcnQsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzaG9ydDogYWJicldlZWtEYXlzW2luZGV4XSxcbiAgICAgICAgZnVsbDogd2Vla0RheXNbaW5kZXhdLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBpbml0aWFsU3RhdGU6IHtcbiAgICB3ZWVrRGF5czogSVdlZWtEYXlbXTtcbiAgICBkYXRhOiBhbnlbXTtcbiAgfSA9IHtcbiAgICB3ZWVrRGF5czogW10sXG4gICAgZGF0YTogW10sXG4gIH07XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgY29uc3QgW3Jlc3BvbnNlLCBpc0xvYWRpbmcsIGVycm9yXSA9IHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeTxhbnk+KFxuICAgIGAvcG9pbnRzLyR7cG9pbnRJZH0vZGlzY2hhcmdlX3BhdHRlcm5fb3ZlcnRpbWUuanNvbiR7XG4gICAgICBpc0V2ZW50cyA/ICc/aGFyc2huZXNzX3R5cGU9ZXZlbnRzJyA6ICcnXG4gICAgfWAsXG4gICk7XG5cbiAgY29uc3QgdGl0bGVzID0gIWlzU2hvd2luZ1RpdGxlcyA/IHt9IDogeyBoZWFkX3RpdGxlLCBzdWJfdGl0bGUgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICB3ZWVrRGF5czogY2FsY09yZGVyZWRXZWVrRGF5cyhyZXNwb25zZT8uZGF0YT8uaXNfd2Vla19zdGFydF9vbl9zdW5kYXkpLFxuICAgICAgICBkYXRhOiByZXNwb25zZT8uZGF0YT8uZGF0YS5maWx0ZXIoQm9vbGVhbiksXG4gICAgICB9KTtcbiAgICB9XG4gICAgb25EYXRhTG9hZCAmJiBvbkRhdGFMb2FkKHJlc3BvbnNlKTtcbiAgfSwgW3Jlc3BvbnNlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGlzY2hhcmdlSGVhdG1hcCB3ZWVrRGF5cz17c3RhdGUud2Vla0RheXN9IGRhdGE9e3N0YXRlLmRhdGF9PlxuICAgICAge3tcbiAgICAgICAgLi4udGl0bGVzLFxuICAgICAgICBsb2FkZXI6IGlzTG9hZGluZyAmJiAhZXJyb3IgJiYgKFxuICAgICAgICAgIDxSb3dMb2FkZXIgbWFyZ2luPVwiMjZweCAwIDBcIiBiZ0NvbG9yPVwiI2YyZjJmMlwiIGZnQ29sb3I9XCIjZmZmXCIgLz5cbiAgICAgICAgKSxcbiAgICAgIH19XG4gICAgPC9EaXNjaGFyZ2VIZWF0bWFwPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRGlzY2hhcmdlSGVhdG1hcENvbnRhaW5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyx5QkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sY0FBQSxHQUFBTixPQUFBO0FBQTZDLFNBQUFPLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVCx3QkFBQWEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUks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
package/lib/i18n/en.json CHANGED
@@ -3938,9 +3938,6 @@
3938
3938
  "no_data": "No data available for this water Authority"
3939
3939
  },
3940
3940
  "wwtpPage": {
3941
- "see_children": "See children",
3942
- "trend_modal_title": "Organic Load Over Time",
3943
- "organic_event": "Organic Events Score",
3944
3941
  "view_sub_areas": "View Sub Areas",
3945
3942
  "view_inlets": "View Inlets",
3946
3943
  "view_factories": "View Factories",
@@ -3952,6 +3949,8 @@
3952
3949
  "inlets_info_data": "Inlets info data",
3953
3950
  "inlets_plural": "Inlets ({{count}})",
3954
3951
  "potential_savings": "Potential Savings",
3952
+ "no_result_1": "Your sewer network is not fully configured yet to show more insights.",
3953
+ "no_result_2": "Contact your support representative to learn more.",
3955
3954
  "actual_savings": "Actual Saving of",
3956
3955
  "contaminates": "Event Types",
3957
3956
  "no_inlets": "Your sewer network is not fully configured yet to show more insights.",
package/lib/i18n/he.json CHANGED
@@ -3820,22 +3820,20 @@
3820
3820
  }
3821
3821
  },
3822
3822
  "wwtpPage": {
3823
- "see_children": "See children",
3824
- "organic_load": "Organic Load",
3825
- "organic_load_info_data": "Organic Load explanation",
3826
- "impact": "Impact",
3827
- "impact_info_data": "Impact info data",
3828
- "inlets": "Inlets",
3829
- "inlets_info_data": "Inlets info data",
3830
- "inlets_plural": "Inlets ({{count}})",
3831
- "potential_savings": "Potential Savings",
3832
- "actual_savings": "Actual Savings",
3833
- "contaminates": "Contaminates",
3834
- "prediction": "Next 7 Days Prediction",
3835
- "discharge": "discharge",
3836
- "upcoming_title": "על מנת לצפות בתובנה זאת עליך לשדרג",
3837
- "upcoming_prediction": "צפיה בתחזית זיהום שבוע קדימה מאפשרת לך לטייב את האופרציה במט”ש",
3838
- "upcoming_contact": "צור קשר עם איש הקשר שלך בקנדו"
3823
+ "view_sub_areas": "הצג אזורי משנה",
3824
+ "view_inlets": "הצג כניסות",
3825
+ "view_factories": "הצג מפעלים",
3826
+ "organic_load": "עומס אורגני",
3827
+ "organic_load_info_data": "מידע על עומס אורגני",
3828
+ "impact": "השפעה",
3829
+ "impact_info_data": "מידע על השפעה",
3830
+ "inlets": "כניסות",
3831
+ "inlets_info_data": "מידע על כניסות",
3832
+ "inlets_plural": "כניסות ({{count}})",
3833
+ "potential_savings": "חסכונות פוטנציאליים",
3834
+ "actual_savings": "חסכונות בפועל",
3835
+ "no_result_1": "רשת הביוב שלך עדיין לא מוגדרת במלואה כדי להציג תובנות נוספות.",
3836
+ "no_result_2": "צור קשר עם נציג התמיכה שלך כדי ללמוד עוד."
3839
3837
  }
3840
3838
  }
3841
3839
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.291";
3
+ var packageJsonVersion = "1.2.293";
4
4
  if (typeof packageJsonVersion === 'string') {
5
5
  // eslint-disable-next-line no-console
6
6
  console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
@@ -11,10 +11,49 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _theme = require("../../styles/theme/theme");
12
12
  var _scoreToData = require("../../utilities/scoreToData");
13
13
  var _utils = require("./utils");
14
+ var focusMap = function focusMap(object, map) {
15
+ var latlngs = [];
16
+ if (object.shape_data !== undefined) {
17
+ object.shape_data.forEach(function (latlng) {
18
+ latlngs.push(latlng);
19
+ });
20
+ // object.setAreas(object.focusedArea.factories);
21
+ } else {
22
+ if (object.sub_areas !== undefined && object.sub_areas.length > 0) {
23
+ object.sub_areas.forEach(function (sub_area) {
24
+ sub_area.shape_data.forEach(function (latlng) {
25
+ latlngs.push(latlng);
26
+ });
27
+ });
28
+ // object.setAreas(object.focusedArea.sub_areas);
29
+ } else {
30
+ latlngs.push([object.latitude, object.longitude]);
31
+ }
32
+ }
33
+ map.fitBounds(latlngs);
34
+ };
14
35
  var AreaCard = function AreaCard(props) {
15
- var object = props.object;
16
- return /*#__PURE__*/_react.default.createElement(_utils.CardContainer, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, {
17
- className: "m-3 p-3 listItemCard",
36
+ var object = props.object,
37
+ _onClick = props.onClick,
38
+ selected = props.selected,
39
+ itemRef = props.itemRef;
40
+ var clickHandler = function clickHandler(args) {
41
+ var object = args.object,
42
+ mapRef = args.mapRef;
43
+ focusMap(object, mapRef);
44
+ (0, _utils.sendAnalyticsEvent)('Map view - Area clicked', 'left panel', {
45
+ area_id: object.area_id,
46
+ area_name: object.area_name
47
+ });
48
+ };
49
+ return /*#__PURE__*/_react.default.createElement(_utils.CardContainer, {
50
+ onClick: function onClick() {
51
+ _onClick(object);
52
+ clickHandler(props);
53
+ },
54
+ ref: itemRef
55
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, {
56
+ className: "m-3 p-3 listItemCard ".concat(selected ? 'activeCard' : ''),
18
57
  id: object.area_id,
19
58
  style: {
20
59
  border: '1px solid rgba(0,0,0,0)',
@@ -22,9 +61,7 @@ var AreaCard = function AreaCard(props) {
22
61
  backgroundColor: _theme.theme.WWTPMap.card.bg,
23
62
  borderLeft: "3px solid ".concat((0, _scoreToData.scoreToColor)(object.area_score))
24
63
  }
25
- }, /*#__PURE__*/_react.default.createElement("div", {
26
- key: object.area_id
27
- }, /*#__PURE__*/_react.default.createElement(Header, {
64
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Header, {
28
65
  className: 'pb-2'
29
66
  }, /*#__PURE__*/_react.default.createElement("p", null, object.area_name), /*#__PURE__*/_react.default.createElement(SeverityBadge, {
30
67
  className: 'p-1 rounded-pill',
@@ -52,4 +89,4 @@ var SeverityBadge = _styledComponents.default.div.withConfig({
52
89
  return props.color;
53
90
  });
54
91
  exports.SeverityBadge = SeverityBadge;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RCb290c3RyYXAiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl90aGVtZSIsIl9zY29yZVRvRGF0YSIsIl91dGlscyIsIkFyZWFDYXJkIiwicHJvcHMiLCJvYmplY3QiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkNhcmRDb250YWluZXIiLCJDYXJkIiwiY2xhc3NOYW1lIiwiaWQiLCJhcmVhX2lkIiwic3R5bGUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsIldXVFBNYXAiLCJjYXJkIiwiYmciLCJib3JkZXJMZWZ0IiwiY29uY2F0Iiwic2NvcmVUb0NvbG9yIiwiYXJlYV9zY29yZSIsImtleSIsIkhlYWRlciIsImFyZWFfbmFtZSIsIlNldmVyaXR5QmFkZ2UiLCJjb2xvciIsInNjb3JlVG9MYWJlbCIsIkJvZHkiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0FyZWFDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXJkIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHNjb3JlVG9Db2xvciwgc2NvcmVUb0xhYmVsIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IENhcmRDb250YWluZXIgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIG9iamVjdDogYW55O1xufTtcbmV4cG9ydCBjb25zdCBBcmVhQ2FyZDogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG9iamVjdCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8Q2FyZENvbnRhaW5lcj5cbiAgICAgIDxDYXJkXG4gICAgICAgIGNsYXNzTmFtZT1cIm0tMyBwLTMgbGlzdEl0ZW1DYXJkXCJcbiAgICAgICAgaWQ9e29iamVjdC5hcmVhX2lkfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDApJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICcuM2VtJyxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLldXVFBNYXAuY2FyZC5iZyxcbiAgICAgICAgICBib3JkZXJMZWZ0OiBgM3B4IHNvbGlkICR7c2NvcmVUb0NvbG9yKG9iamVjdC5hcmVhX3Njb3JlKX1gLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGtleT17b2JqZWN0LmFyZWFfaWR9PlxuICAgICAgICAgIDxIZWFkZXIgY2xhc3NOYW1lPXsncGItMid9PlxuICAgICAgICAgICAgPHA+e29iamVjdC5hcmVhX25hbWV9PC9wPlxuICAgICAgICAgICAgPFNldmVyaXR5QmFkZ2VcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXsncC0xIHJvdW5kZWQtcGlsbCd9XG4gICAgICAgICAgICAgIGNvbG9yPXtzY29yZVRvQ29sb3Iob2JqZWN0LmFyZWFfc2NvcmUpfVxuICAgICAgICAgICAgICBiZz17c2NvcmVUb0NvbG9yKG9iamVjdC5hcmVhX3Njb3JlKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3Njb3JlVG9MYWJlbChvYmplY3QuYXJlYV9zY29yZSl9XG4gICAgICAgICAgICA8L1NldmVyaXR5QmFkZ2U+XG4gICAgICAgICAgPC9IZWFkZXI+XG4gICAgICAgICAgPEJvZHkgY2xhc3NOYW1lPXsncC0zIGJnLXdoaXRlJ30+XG4gICAgICAgICAgICA8cD57b2JqZWN0LmFyZWFfaWR9PC9wPlxuICAgICAgICAgIDwvQm9keT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgPC9DYXJkQ29udGFpbmVyPlxuICApO1xufTtcblxuY29uc3QgSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuYDtcblxuY29uc3QgQm9keSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6IDlweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBTZXZlcml0eUJhZGdlID0gc3R5bGVkLmRpdmBcbiAgYmFja2dyb3VuZDogJHsocHJvcHMpID0+IHByb3BzLmJnfTM5O1xuICBjb2xvcjogJHsocHJvcHMpID0+IHByb3BzLmNvbG9yfTtcbiAgbWluLXdpZHRoOiA0ZW07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFLTyxJQUFNTSxRQUEwQixHQUFHLFNBQTdCQSxRQUEwQkEsQ0FBSUMsS0FBSyxFQUFLO0VBQ25ELElBQVFDLE1BQU0sR0FBS0QsS0FBSyxDQUFoQkMsTUFBTTtFQUVkLG9CQUNFUCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxDQUFDTCxNQUFBLENBQUFNLGFBQWEscUJBQ1pWLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLENBQUNYLGVBQUEsQ0FBQWEsSUFBSTtJQUNIQyxTQUFTLEVBQUMsc0JBQXNCO0lBQ2hDQyxFQUFFLEVBQUVOLE1BQU0sQ0FBQ08sT0FBUTtJQUNuQkMsS0FBSyxFQUFFO01BQ0xDLE1BQU0sRUFBRSx5QkFBeUI7TUFDakNDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxlQUFlLEVBQUVDLFlBQUssQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLENBQUNDLEVBQUU7TUFDdENDLFVBQVUsZUFBQUMsTUFBQSxDQUFlLElBQUFDLHlCQUFZLEVBQUNsQixNQUFNLENBQUNtQixVQUFVLENBQUM7SUFDMUQ7RUFBRSxnQkFFRjFCLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBO0lBQUtrQixHQUFHLEVBQUVwQixNQUFNLENBQUNPO0VBQVEsZ0JBQ3ZCZCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbUIsTUFBTTtJQUFDaEIsU0FBUyxFQUFFO0VBQU8sZ0JBQ3hCWixNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxZQUFJRixNQUFNLENBQUNzQixTQUFhLENBQUMsZUFDekI3QixNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxDQUFDcUIsYUFBYTtJQUNabEIsU0FBUyxFQUFFLGtCQUFtQjtJQUM5Qm1CLEtBQUssRUFBRSxJQUFBTix5QkFBWSxFQUFDbEIsTUFBTSxDQUFDbUIsVUFBVSxDQUFFO0lBQ3ZDSixFQUFFLEVBQUUsSUFBQUcseUJBQVksRUFBQ2xCLE1BQU0sQ0FBQ21CLFVBQVU7RUFBRSxHQUVuQyxJQUFBTSx5QkFBWSxFQUFDekIsTUFBTSxDQUFDbUIsVUFBVSxDQUNsQixDQUNULENBQUMsZUFDVDFCLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLENBQUN3QixJQUFJO0lBQUNyQixTQUFTLEVBQUU7RUFBZSxnQkFDOUJaLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLFlBQUlGLE1BQU0sQ0FBQ08sT0FBVyxDQUNsQixDQUNILENBQ0QsQ0FDTyxDQUFDO0FBRXBCLENBQUM7QUFBQ29CLE9BQUEsQ0FBQTdCLFFBQUEsR0FBQUEsUUFBQTtBQUVGLElBQU11QixNQUFNLEdBQUdPLHlCQUFNLENBQUNDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5RUFReEI7QUFFRCxJQUFNTixJQUFJLEdBQUdFLHlCQUFNLENBQUNDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwQkFFdEI7QUFFTSxJQUFNVCxhQUFhLEdBQUdLLHlCQUFNLENBQUNDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4R0FDdkIsVUFBQ2pDLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNnQixFQUFFO0FBQUEsR0FDeEIsVUFBQ2hCLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUN5QixLQUFLO0FBQUEsRUFLaEM7QUFBQ0csT0FBQSxDQUFBSixhQUFBLEdBQUFBLGFBQUEifQ==
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RCb290c3RyYXAiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl90aGVtZSIsIl9zY29yZVRvRGF0YSIsIl91dGlscyIsImZvY3VzTWFwIiwib2JqZWN0IiwibWFwIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJ1bmRlZmluZWQiLCJmb3JFYWNoIiwibGF0bG5nIiwicHVzaCIsInN1Yl9hcmVhcyIsImxlbmd0aCIsInN1Yl9hcmVhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmaXRCb3VuZHMiLCJBcmVhQ2FyZCIsInByb3BzIiwib25DbGljayIsInNlbGVjdGVkIiwiaXRlbVJlZiIsImNsaWNrSGFuZGxlciIsImFyZ3MiLCJtYXBSZWYiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJhcmVhX2lkIiwiYXJlYV9uYW1lIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJDYXJkQ29udGFpbmVyIiwicmVmIiwiQ2FyZCIsImNsYXNzTmFtZSIsImNvbmNhdCIsImlkIiwic3R5bGUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsIldXVFBNYXAiLCJjYXJkIiwiYmciLCJib3JkZXJMZWZ0Iiwic2NvcmVUb0NvbG9yIiwiYXJlYV9zY29yZSIsIkhlYWRlciIsIlNldmVyaXR5QmFkZ2UiLCJjb2xvciIsInNjb3JlVG9MYWJlbCIsIkJvZHkiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0FyZWFDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXJkIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHNjb3JlVG9Db2xvciwgc2NvcmVUb0xhYmVsIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IENhcmRDb250YWluZXIsIHNlbmRBbmFseXRpY3NFdmVudCB9IGZyb20gJy4vdXRpbHMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgb2JqZWN0OiBhbnk7XG4gIG1hcFJlZjogYW55O1xuICBvbkNsaWNrOiBhbnk7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBpdGVtUmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmNvbnN0IGZvY3VzTWFwID0gKG9iamVjdCwgbWFwKSA9PiB7XG4gIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcblxuICBpZiAob2JqZWN0LnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgIG9iamVjdC5zaGFwZV9kYXRhLmZvckVhY2goKGxhdGxuZykgPT4ge1xuICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgfSk7XG4gICAgLy8gb2JqZWN0LnNldEFyZWFzKG9iamVjdC5mb2N1c2VkQXJlYS5mYWN0b3JpZXMpO1xuICB9IGVsc2Uge1xuICAgIGlmIChvYmplY3Quc3ViX2FyZWFzICE9PSB1bmRlZmluZWQgJiYgb2JqZWN0LnN1Yl9hcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICBvYmplY3Quc3ViX2FyZWFzLmZvckVhY2goKHN1Yl9hcmVhKSA9PiB7XG4gICAgICAgIHN1Yl9hcmVhLnNoYXBlX2RhdGEuZm9yRWFjaCgobGF0bG5nKSA9PiB7XG4gICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICAvLyBvYmplY3Quc2V0QXJlYXMob2JqZWN0LmZvY3VzZWRBcmVhLnN1Yl9hcmVhcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhdGxuZ3MucHVzaChbb2JqZWN0LmxhdGl0dWRlLCBvYmplY3QubG9uZ2l0dWRlXSk7XG4gICAgfVxuICB9XG4gIG1hcC5maXRCb3VuZHMobGF0bG5ncyk7XG59O1xuXG5leHBvcnQgY29uc3QgQXJlYUNhcmQ6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBvYmplY3QsIG9uQ2xpY2ssIHNlbGVjdGVkLCBpdGVtUmVmIH0gPSBwcm9wcztcblxuICBjb25zdCBjbGlja0hhbmRsZXIgPSAoYXJnczogSVByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBvYmplY3QsIG1hcFJlZiB9ID0gYXJncztcbiAgICBmb2N1c01hcChvYmplY3QsIG1hcFJlZik7XG4gICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgdmlldyAtIEFyZWEgY2xpY2tlZCcsICdsZWZ0IHBhbmVsJywge1xuICAgICAgYXJlYV9pZDogb2JqZWN0LmFyZWFfaWQsXG4gICAgICBhcmVhX25hbWU6IG9iamVjdC5hcmVhX25hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Q2FyZENvbnRhaW5lclxuICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICBvbkNsaWNrKG9iamVjdCk7XG4gICAgICAgIGNsaWNrSGFuZGxlcihwcm9wcyk7XG4gICAgICB9fVxuICAgICAgcmVmPXtpdGVtUmVmfVxuICAgID5cbiAgICAgIDxDYXJkXG4gICAgICAgIGNsYXNzTmFtZT17YG0tMyBwLTMgbGlzdEl0ZW1DYXJkICR7c2VsZWN0ZWQgPyAnYWN0aXZlQ2FyZCcgOiAnJ31gfVxuICAgICAgICBpZD17b2JqZWN0LmFyZWFfaWR9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsMCknLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogJy4zZW0nLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuV1dUUE1hcC5jYXJkLmJnLFxuICAgICAgICAgIGJvcmRlckxlZnQ6IGAzcHggc29saWQgJHtzY29yZVRvQ29sb3Iob2JqZWN0LmFyZWFfc2NvcmUpfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPEhlYWRlciBjbGFzc05hbWU9eydwYi0yJ30+XG4gICAgICAgICAgICA8cD57b2JqZWN0LmFyZWFfbmFtZX08L3A+XG4gICAgICAgICAgICA8U2V2ZXJpdHlCYWRnZVxuICAgICAgICAgICAgICBjbGFzc05hbWU9eydwLTEgcm91bmRlZC1waWxsJ31cbiAgICAgICAgICAgICAgY29sb3I9e3Njb3JlVG9Db2xvcihvYmplY3QuYXJlYV9zY29yZSl9XG4gICAgICAgICAgICAgIGJnPXtzY29yZVRvQ29sb3Iob2JqZWN0LmFyZWFfc2NvcmUpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7c2NvcmVUb0xhYmVsKG9iamVjdC5hcmVhX3Njb3JlKX1cbiAgICAgICAgICAgIDwvU2V2ZXJpdHlCYWRnZT5cbiAgICAgICAgICA8L0hlYWRlcj5cbiAgICAgICAgICA8Qm9keSBjbGFzc05hbWU9eydwLTMgYmctd2hpdGUnfT5cbiAgICAgICAgICAgIDxwPntvYmplY3QuYXJlYV9pZH08L3A+XG4gICAgICAgICAgPC9Cb2R5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ2FyZD5cbiAgICA8L0NhcmRDb250YWluZXI+XG4gICk7XG59O1xuXG5jb25zdCBIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5gO1xuXG5jb25zdCBCb2R5ID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFNldmVyaXR5QmFkZ2UgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kOiAkeyhwcm9wcykgPT4gcHJvcHMuYmd9Mzk7XG4gIGNvbG9yOiAkeyhwcm9wcykgPT4gcHJvcHMuY29sb3J9O1xuICBtaW4td2lkdGg6IDRlbTtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLGVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQVVBLElBQU1NLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFNLEVBQUVDLEdBQUcsRUFBSztFQUNoQyxJQUFJQyxPQUFZLEdBQUcsRUFBRTtFQUVyQixJQUFJRixNQUFNLENBQUNHLFVBQVUsS0FBS0MsU0FBUyxFQUFFO0lBQ25DSixNQUFNLENBQUNHLFVBQVUsQ0FBQ0UsT0FBTyxDQUFDLFVBQUNDLE1BQU0sRUFBSztNQUNwQ0osT0FBTyxDQUFDSyxJQUFJLENBQUNELE1BQU0sQ0FBQztJQUN0QixDQUFDLENBQUM7SUFDRjtFQUNGLENBQUMsTUFBTTtJQUNMLElBQUlOLE1BQU0sQ0FBQ1EsU0FBUyxLQUFLSixTQUFTLElBQUlKLE1BQU0sQ0FBQ1EsU0FBUyxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ2pFVCxNQUFNLENBQUNRLFNBQVMsQ0FBQ0gsT0FBTyxDQUFDLFVBQUNLLFFBQVEsRUFBSztRQUNyQ0EsUUFBUSxDQUFDUCxVQUFVLENBQUNFLE9BQU8sQ0FBQyxVQUFDQyxNQUFNLEVBQUs7VUFDdENKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDRCxNQUFNLENBQUM7UUFDdEIsQ0FBQyxDQUFDO01BQ0osQ0FBQyxDQUFDO01BQ0Y7SUFDRixDQUFDLE1BQU07TUFDTEosT0FBTyxDQUFDSyxJQUFJLENBQUMsQ0FBQ1As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