@kando-env/kando-ui 1.2.75-alpha.49 → 1.2.75-alpha.5

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.
Files changed (79) hide show
  1. package/lib/Widgets/EventsCarousel/EventsCarousel.js +3 -3
  2. package/lib/Widgets/EventsRow/EventsRow.js +3 -3
  3. package/lib/Widgets/Map/Map.js +5 -19
  4. package/lib/Widgets/Map/areas/AreaPolygons.js +6 -1
  5. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +5 -2
  6. package/lib/Widgets/Map/points/PointMarker.js +6 -21
  7. package/lib/Widgets/Map/points/PointMarkers.js +2 -2
  8. package/lib/assets/icons/index.js +0 -8
  9. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +2 -2
  10. package/lib/components/Header/KandoNavbar/KandoNavbar.js +1 -3
  11. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +1 -3
  12. package/lib/components/Sector/Sector.test.js +11 -4
  13. package/lib/components/SevereEvent/SevereEvent.js +7 -5
  14. package/lib/hooks/useApiWithDashboardQuery.js +4 -2
  15. package/lib/hooks/useUserTimeZone.js +2 -2
  16. package/lib/i18n/en.json +26 -43
  17. package/lib/i18n/fr.json +2 -4
  18. package/lib/i18n/he.json +6 -23
  19. package/lib/i18n/it.json +2 -4
  20. package/lib/index.js +1 -8
  21. package/lib/macros/getVersion.js +2 -2
  22. package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +3 -3
  23. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +3 -3
  24. package/lib/pages/EventsPage/events/EventsStyle.scss +0 -5
  25. package/lib/pages/EventsPage/events/event_info/EventDetails.js +19 -9
  26. package/lib/pages/EventsPage/events/event_info/sources/Source.js +2 -2
  27. package/lib/pages/EventsPage/events/events_list/EventItem.js +19 -9
  28. package/lib/pages/EventsPage/events/events_list/EventsList.js +11 -22
  29. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +1 -4
  30. package/lib/pages/EventsPage/events/events_list/Filter/FilterStyle.scss +1 -1
  31. package/lib/pages/ImportFileWizard/ValidationForm.js +12 -7
  32. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +1 -5
  33. package/lib/pages/SamplingsPage/NewSamplingAction.js +3 -4
  34. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +189 -0
  35. package/lib/pages/SamplingsPage/SamplingMobileModal.js +17 -1
  36. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +3 -10
  37. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +12 -9
  38. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +19 -26
  39. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +10 -15
  40. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +4 -14
  41. package/lib/pages/SamplingsPage/SamplingProperties/style.module.scss +1 -2
  42. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +2 -4
  43. package/lib/pages/SamplingsPage/SamplingsPage.js +2 -4
  44. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +5 -2
  45. package/lib/pages/SamplingsPage/samplingsPageUtils.js +34 -77
  46. package/lib/pages/SamplingsPage/style.module.scss +1 -1
  47. package/lib/pages/SamplingsPage/table.styles.scss +6 -8
  48. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +4 -5
  49. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +3 -5
  50. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +5 -21
  51. package/lib/pages/SitePage/SamplingParameters/dataParser.js +5 -16
  52. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +3 -3
  53. package/lib/pages/WbeDashboard/SummaryGraph.js +6 -15
  54. package/lib/store/areas/actions.js +2 -19
  55. package/lib/store/events/reducer.js +2 -4
  56. package/lib/store/permissions/permissionsSlice.js +1 -5
  57. package/lib/styles.scss +0 -7
  58. package/lib/ui-kit/Button/Button.test.js +11 -26
  59. package/lib/ui-kit/DropDown/DropDown.js +6 -12
  60. package/lib/ui-kit/DropDown/DropDown.test.js +41 -50
  61. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +2 -9
  62. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +3 -4
  63. package/lib/ui-kit/KandoTable/KandoTable.test.js +43 -46
  64. package/lib/utilities/i18n.js +1 -6
  65. package/lib/utilities/urls.js +5 -8
  66. package/package.json +2 -5
  67. package/lib/assets/icons/close-modal.svg +0 -8
  68. package/lib/components/DischargeHeatmap/mocks/handlers.js +0 -19
  69. package/lib/hooks/useUserTimeZone.test.js +0 -45
  70. package/lib/i18n/en_uk.json +0 -3760
  71. package/lib/pages/EventsPage/events/events_list/EventUtils.js +0 -23
  72. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +0 -43
  73. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +0 -39
  74. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +0 -172
  75. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +0 -74
  76. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +0 -48
  77. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +0 -114
  78. package/lib/test/mocks/browser.js +0 -23
  79. package/lib/test/test-utils.js +0 -61
@@ -224,9 +224,11 @@ var EventsList = function EventsList(_ref) {
224
224
  // dispatch(setHoveredEventPaths([]));
225
225
  // dispatch(setHoverEventIndicator(null));
226
226
 
227
- dispatch((0, _actions.setFocusedEvent)(event));
228
- setFilterPopupOpen(false);
229
- history.push("/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&eventId=").concat(event.id, "&valuesFromKQL=").concat(global_data.eventFilterParam, "&validEvent=").concat(validateEvent(event)));
227
+ if (validateEvent(event)) {
228
+ dispatch((0, _actions.setFocusedEvent)(event));
229
+ setFilterPopupOpen(false);
230
+ history.push("/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&eventId=").concat(event.id, "&valuesFromKQL=").concat(global_data.eventFilterParam));
231
+ }
230
232
  };
231
233
 
232
234
  var onMouseEnterEvent = function onMouseEnterEvent(event) {
@@ -283,21 +285,21 @@ var EventsList = function EventsList(_ref) {
283
285
  switch (sort) {
284
286
  case 1:
285
287
  KQL = "".concat((0, _kql.buildKQLQuery)(global_data.activeFilter, 'newest'));
286
- URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&eventId=").concat(getEventIdFromURL(), "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
288
+ URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
287
289
  history.push(URL);
288
290
  dispatch((0, _actions2.setEventFilterParam)(KQL));
289
291
  break;
290
292
 
291
293
  case 2:
292
294
  KQL = "".concat((0, _kql.buildKQLQuery)(global_data.activeFilter, 'oldest'));
293
- URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&eventId=").concat(getEventIdFromURL(), "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
295
+ URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
294
296
  history.push(URL);
295
297
  dispatch((0, _actions2.setEventFilterParam)(KQL));
296
298
  break;
297
299
 
298
300
  case 3:
299
301
  KQL = "".concat((0, _kql.buildKQLQuery)(global_data.activeFilter, 'severity'));
300
- URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&eventId=").concat(getEventIdFromURL(), "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
302
+ URL = "/".concat(nav_context_data.navContext.name, "/index?water_authority_id=").concat(global_data.waterAuthorityId, "&locale=").concat(nav_context_data.navContext.locale, "&valuesFromKQL=").concat(KQL);
301
303
  history.push(URL);
302
304
  dispatch((0, _actions2.setEventFilterParam)(KQL));
303
305
  break;
@@ -305,17 +307,6 @@ var EventsList = function EventsList(_ref) {
305
307
  }
306
308
  };
307
309
 
308
- var calcEventsRealAmount = function calcEventsRealAmount() {
309
- var eventsCount = 0;
310
-
311
- if (events_data.items.length !== 0) {
312
- eventsCount = events_data.items[0].events_real_count;
313
- if (eventsCount > 50) eventsCount = "".concat(_i18n.default.t('events_overview.more_than'), " 50");
314
- }
315
-
316
- return eventsCount;
317
- };
318
-
319
310
  (0, _react.useEffect)(function () {
320
311
  dispatch((0, _actions.fetchEvents)(waterAuthorityId, getKQLValuesFromURL() || 'DEFAULT'));
321
312
  }, [global_data.waterAuthorityId, global_data.eventFilterParam]);
@@ -356,9 +347,7 @@ var EventsList = function EventsList(_ref) {
356
347
  height: "10px",
357
348
  width: "12px",
358
349
  alt: "back"
359
- }), ' ', _i18n.default.t('area_screen.back')), /*#__PURE__*/_react.default.createElement("h4", null, _i18n.default.t('events_overview.events_list'), /*#__PURE__*/_react.default.createElement("span", {
360
- className: 'events-header__events_amount'
361
- }, "(", calcEventsRealAmount(), ")")), /*#__PURE__*/_react.default.createElement("div", {
350
+ }), ' ', _i18n.default.t('area_screen.back')), /*#__PURE__*/_react.default.createElement("h4", null, _i18n.default.t('events_overview.events_list'), " (", events_data.items.length, ")"), /*#__PURE__*/_react.default.createElement("div", {
362
351
  className: "filtering"
363
352
  }, events_data.items.length !== 0 && /*#__PURE__*/_react.default.createElement(_Sort.default, {
364
353
  triggerSort: triggerSort,
@@ -376,7 +365,7 @@ var EventsList = function EventsList(_ref) {
376
365
  width: "17px",
377
366
  height: "17px",
378
367
  fill: "#f6004f"
379
- })))), points_data.items.length !== 0 && !focusedEvent && /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
368
+ })))), points_data.items.length !== 0 && /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
380
369
  filterPopupOpen: filterPopupOpen,
381
370
  fetchType: 'EventFilter'
382
371
  })), /*#__PURE__*/_react.default.createElement("div", {
@@ -414,4 +403,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
414
403
  var _default = connector(EventsList);
415
404
 
416
405
  exports.default = _default;
417
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJtZXNzYWdlcyIsIm1lc3NhZ2UiLCJldmVudF9pZCIsImV2ZW50X2lkcyIsImV4Y2VwdGlvbkFsZXJ0Iiwic2V0RXhjZXB0aW9uQWxlcnQiLCJsYXN0VmlzaXRlZCIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsImdldCIsImdldEV2ZW50SWRGcm9tVVJMIiwibG9hZGVyIiwibGVuZ3RoIiwibmV3QXJlYXMiLCJoYW5kbGVFeHBhbnNpb25Ub2dnbGUiLCJhcHBseURlZmF1bHRGaWx0ZXIiLCJwdXNoIiwibmF2Q29udGV4dCIsIm5hbWUiLCJsb2NhbGUiLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXZlbnRGaWx0ZXJQYXJhbSIsIm9uTW91c2VFbnRlckV2ZW50IiwicmVtb3ZlTGF5ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJpbmNsdWRlcyIsInNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyIsImUiLCJwYXJzZUludCIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsImNhbGNFdmVudHNSZWFsQW1vdW50IiwiZXZlbnRzQ291bnQiLCJldmVudHNfcmVhbF9jb3VudCIsIm1vcmVJbmZvIiwiYWN0aXZlIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJmYUFycm93TGVmdCIsIkxlZnRBcnJvd0ljb24iLCJOb0V2ZW50c0ltYWdlIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBL0JBO0FBaUNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQ0VDLFdBREYsR0FPSUQsS0FQSixDQUNFQyxXQURGO0FBQUEsTUFFRUMsV0FGRixHQU9JRixLQVBKLENBRUVFLFdBRkY7QUFBQSxNQUdFQyxVQUhGLEdBT0lILEtBUEosQ0FHRUcsVUFIRjtBQUFBLE1BSUVDLFdBSkYsR0FPSUosS0FQSixDQUlFSSxXQUpGO0FBQUEsTUFL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YUQ7O0FBb2FBLElBQU0yRSxTQUFTLEdBQUcseUJBQVFwRyxlQUFSLENBQWxCOztlQUNlb0csU0FBUyxDQUFDNUYsVUFBRCxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXRjL25vLWNvbW1lbnRlZC1vdXQtY29kZSAqL1xuaW1wb3J0IHtcbiAgZmFBcnJvd0xlZnQsXG4gIGZhQ2FyZXRMZWZ0LFxuICBmYUNhcmV0UmlnaHQsXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExpbmssIHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTGVmdEFycm93SWNvbiBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEZpbHRlckljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Z1bm5lbC5zdmcnO1xuaW1wb3J0IE5vRXZlbnRzSW1hZ2UgZnJvbSAnc3JjL2Fzc2V0cy9ub19ldmVudHMuc3ZnJztcbmltcG9ydCB7IFNldmVyZUV2ZW50IH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU2V2ZXJlRXZlbnQvU2V2ZXJlRXZlbnQnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgdXNlTGFzdFZpc2l0ZWQgfSBmcm9tICdzcmMvcHJvdmlkZXJzL1VybEhpc3RvcnknO1xuaW1wb3J0IHtcbiAgZmV0Y2hFdmVudHMsXG4gIHNldEZvY3VzZWRFdmVudCxcbiAgc2V0SG92ZXJlZEVkZ2VQYXRocyxcbiAgc2V0SG92ZXJlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRXZlbnRQYXRocyxcbn0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRFdmVudEZpbHRlclBhcmFtLCBzaWRlTmF2RXhwYW5kZWQgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnkgfSBmcm9tICdzcmMvdXRpbGl0aWVzL2txbCc7XG5pbXBvcnQgJy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IEV2ZW50SW5mbyBmcm9tICcuLi9ldmVudF9pbmZvL0V2ZW50SW5mbyc7XG5pbXBvcnQgTW9yZUluZm8gZnJvbSAnLi4vTW9yZUluZm8nO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tICcuL0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuaW1wb3J0IFNvcnQgZnJvbSAnLi9Tb3J0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3Qge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBJUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgc2lkZW5hdkV4cGFuZGVkOiBib29sZWFuO1xufTtcblxuY29uc3QgRXZlbnRzTGlzdDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGFyZWFzX2RhdGEsXG4gIHBvaW50c19kYXRhLFxuICBlZGdlc19kYXRhLFxuICBnbG9iYWxfZGF0YSxcbiAgc2lkZW5hdkV4cGFuZGVkLFxuICBldmVudHNfZGF0YSxcbiAgbmF2X2NvbnRleHRfZGF0YSxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7XG4gICAgaXRlbXMsXG4gICAgaXNGZXRjaGluZyxcbiAgICBmb2N1c2VkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50LFxuICAgIGhvdmVyZWRFdmVudFBhdGhzLFxuICAgIGhvdmVyZWRFZGdlUGF0aHMsXG4gIH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgeyB3YXRlckF1dGhvcml0eUlkLCBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBbZmlsdGVyUG9wdXBPcGVuLCBzZXRGaWx0ZXJQb3B1cE9wZW5dID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtleGNlcHRpb25BbGVydCwgc2V0RXhjZXB0aW9uQWxlcnRdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2VzOiB7IG1lc3NhZ2U6IGFueTsgZXZlbnRfaWQ6IG51bWJlciB9W107XG4gICAgZXZlbnRfaWRzOiBudW1iZXJbXTtcbiAgfT4oeyBtZXNzYWdlczogW3sgbWVzc2FnZTogJycsIGV2ZW50X2lkOiAwIH1dLCBldmVudF9pZHM6IFtdIH0pO1xuICBjb25zdCBsYXN0VmlzaXRlZCA9IHVzZUxhc3RWaXNpdGVkKCk7XG5cbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTFZhbHVlc0Zyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgbG9hZGVyID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIChpc0ZldGNoaW5nICYmIGl0ZW1zLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgIGFyZWFzX2RhdGEubmV3QXJlYXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nIHx8XG4gICAgICBlZGdlc19kYXRhLmlzRmV0Y2hpbmdcbiAgICApIHtcbiAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2xvYWRlcid9PjwvZGl2PjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvblRvZ2dsZSA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzaWRlTmF2RXhwYW5kZWQoIXNpZGVuYXZFeHBhbmRlZCkpO1xuICB9O1xuXG4gIGNvbnN0IGFwcGx5RGVmYXVsdEZpbHRlciA9ICgpID0+IHtcbiAgICBoaXN0b3J5LnB1c2goXG4gICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9YCxcbiAgICApO1xuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oJycpKTtcbiAgfTtcblxuICBjb25zdCB2YWxpZGF0ZUV2ZW50ID0gKGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgICAvLyBjaGVjayB0aGF0IGFsbCBvYnNlcnZhdGlvbnMnIGVkZ2VzIGV4aXN0cy4gSWYgdGhleSBhcmUgbm90IGV4aXN0cyBpdCdzIGluZGljYXRlcyB0aGF0IHRoZWlyIHBvaW50cyBhcmVcbiAgICAvLyBub3QgaW4gdGhlIGhpZXJhcmNoeSBvciBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnMuZm9yRWFjaCgob2JzZXJ2YXRpb246IGFueSkgPT4ge1xuICAgICAgLy8gaWYgb2JzZXJ2YXRpb24gaXMgcm9vdCAoZXguIFdXVFApIHRoZXJlIGlzIG5vIGVkZ2UgdGhhdCBpdHMgYSBzb3VyY2UuIHNvIHdlIGNhbiBza2lwIHRoaXMgY2hlY2tcbiAgICAgIGlmICghb2JzZXJ2YXRpb24ucG9pbnRfaXNfcm9vdCkge1xuICAgICAgICBsZXQgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IG9ic2VydmF0aW9uLnBvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICBgJHtvYnNlcnZhdGlvbi5wb2ludF9uYW1lfSAoJHtvYnNlcnZhdGlvbi5wb2ludF9pZH0pIGAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIGxldCBpbmRleCA9IGV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLmZpbmRJbmRleChcbiAgICAgICAgKG1zZykgPT4gbXNnLmV2ZW50X2lkID09PSBldmVudC5pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgc2V0RXhjZXB0aW9uQWxlcnQoe1xuICAgICAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRfZGF0YV9taXNzaW5nJyl9PC9wPlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBldmVudF9pZDogZXZlbnQuaWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZXZlbnRfaWRzOiBbLi4uZXhjZXB0aW9uQWxlcnQuZXZlbnRfaWRzLCBldmVudC5pZF0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHNhbWUgY2hlY2sgYXMgYWJvdmUgYnV0IHRoaXMgdGltZSBmb3IgdGhlIGV2ZW50IHBhdGguIElmIGVkZ2UgZG9lc24ndCBleGlzdCwgaXQncyBpbmRpY2F0ZXMgdGhhdCBvbmUgb2YgdGhlXG4gICAgLy8gcG9pbnRzIGRvd25zdHJlYW0gZG9lc24ndCBoYXZlIGxhdC9sbmcuXG4gICAgbGV0IGludmFsaWRQYXRoTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICBsZXQgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gcGF0aC5lZGdlX2lkKTtcbiAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgZWRnZSAke3BhdGguZWRnZV9pZH0gY2FuIG5vdCBiZSBmb3VuZGApO1xuICAgICAgICBsZXQgb2JzZXJ2YXRpb24gPSBldmVudC5vYnNlcnZhdGlvbnMuZmluZChcbiAgICAgICAgICAob2JzZXJ2YXRpb24pID0+IG9ic2VydmF0aW9uLmlkID09PSBwYXRoLmxhc3Rfb2JzZXJ2YXRpb25faWQsXG4gICAgICAgICk7XG4gICAgICAgIGxldCBsYXN0T2JzZXJ2YXRpb25Qb2ludCA9ICdOb3QgZm91bmQnO1xuICAgICAgICBpZiAob2JzZXJ2YXRpb24pIHtcbiAgICAgICAgICBsYXN0T2JzZXJ2YXRpb25Qb2ludCA9IG9ic2VydmF0aW9uLnBvaW50X25hbWU7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignbGFzdE9ic2VydmF0aW9uUG9pbnQnLCBsYXN0T2JzZXJ2YXRpb25Qb2ludCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbnZhbGlkUGF0aE1lc3NhZ2VzLnB1c2goYCR7bGFzdE9ic2VydmF0aW9uUG9pbnR9IGApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGludmFsaWRQYXRoTWVzc2FnZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgICAgLi4uZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF92ZXJpZnlfY29vcmRpbmF0ZXMnKX08L3A+XG4gICAgICAgICAgICAgICAgPHNwYW4+e2ludmFsaWRQYXRoTWVzc2FnZXN9PC9zcGFuPlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBldmVudF9pZDogZXZlbnQuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZXZlbnRfaWRzOiBbLi4uZXhjZXB0aW9uQWxlcnQuZXZlbnRfaWRzLCBldmVudC5pZF0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVFdmVudEl0ZW1DbGljayA9IChldmVudDogSUV2ZW50LCByZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICBvbk1vdXNlTGVhdmVFdmVudCgpO1xuICAgIC8vIGlmIChob3ZlcmVkRXZlbnRQYXRocyAmJiBtYXApIHtcbiAgICAvLyAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgIC8vICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoW10pKTtcbiAgICAvLyBkaXNwYXRjaChzZXRIb3ZlckV2ZW50SW5kaWNhdG9yKG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnQoZXZlbnQpKTtcbiAgICBzZXRGaWx0ZXJQb3B1cE9wZW4oZmFsc2UpO1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7XG4gICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgIH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mZXZlbnRJZD0ke1xuICAgICAgICBldmVudC5pZFxuICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7XG4gICAgICAgIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1cbiAgICAgIH0mdmFsaWRFdmVudD0ke3ZhbGlkYXRlRXZlbnQoZXZlbnQpfWAsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICghZm9jdXNlZEV2ZW50ICYmICFob3ZlcmVkRXZlbnQgJiYgdmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChldmVudCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlTGVhdmVFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhvdmVyZWRFZGdlUGF0aHMpIHtcbiAgICAgICAgaG92ZXJlZEVkZ2VQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgY29uc3Qga2FuZG9fb2JqZWN0ID0gbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3Q7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrYW5kb19vYmplY3Q/LmluY2x1ZGVzKCdFdmVudEJvZHknKSB8fFxuICAgICAgICAgIFtcbiAgICAgICAgICAgICdFdmVudFRhaWwnLFxuICAgICAgICAgICAgJ1NhbXBsaW5nUG9pbnQnLFxuICAgICAgICAgICAgJ0RlY29yYXRvcicsXG4gICAgICAgICAgICAnSG92ZXJlZEVkZ2UnLFxuICAgICAgICAgICAgJ0hvdmVyZWRFZGdlRnJvbnQnLFxuICAgICAgICAgIF0uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgfTtcblxuICBjb25zdCBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gbnVsbCAmJlxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gJ251bGwnICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBsZXQgZXZlbnQgPSBldmVudHNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAoZTogSUV2ZW50KSA9PiBlLmlkID09PSBwYXJzZUludChnZXRFdmVudElkRnJvbVVSTCgpISksXG4gICAgICApO1xuICAgICAgaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyaWdnZXJTb3J0ID0gKHNvcnQ6IG51bWJlcikgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIgIT09IG51bGwpIHtcbiAgICAgIGxldCBLUUw7XG4gICAgICBsZXQgVVJMO1xuICAgICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ25ld2VzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ29sZGVzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ3NldmVyaXR5Jyl9YDtcbiAgICAgICAgICBVUkwgPSBgLyR7XG4gICAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZVxuICAgICAgICAgIH0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7XG4gICAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgICAgfSZldmVudElkPSR7Z2V0RXZlbnRJZEZyb21VUkwoKX0mbG9jYWxlPSR7XG4gICAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlXG4gICAgICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7S1FMfWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2FsY0V2ZW50c1JlYWxBbW91bnQgPSAoKSA9PiB7XG4gICAgbGV0IGV2ZW50c0NvdW50OiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICAgIGlmIChldmVudHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDApIHtcbiAgICAgIGV2ZW50c0NvdW50ID0gZXZlbnRzX2RhdGEuaXRlbXNbMF0uZXZlbnRzX3JlYWxfY291bnQ7XG4gICAgICBpZiAoZXZlbnRzQ291bnQgPiA1MClcbiAgICAgICAgZXZlbnRzQ291bnQgPSBgJHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5tb3JlX3RoYW4nKX0gNTBgO1xuICAgIH1cblxuICAgIHJldHVybiBldmVudHNDb3VudDtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoRXZlbnRzKHdhdGVyQXV0aG9yaXR5SWQsIGdldEtRTFZhbHVlc0Zyb21VUkwoKSB8fCAnREVGQVVMVCcpKTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMoKX1cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZXZlbnRzLWhlYWRlcl9fZXZlbnRzX2Ftb3VudCd9PlxuICAgICAgICAgICAgKHtjYWxjRXZlbnRzUmVhbEFtb3VudCgpfSlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyaW5nXCI+XG4gICAgICAgICAge2V2ZW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgICA8U29ydFxuICAgICAgICAgICAgICB0cmlnZ2VyU29ydD17dHJpZ2dlclNvcnR9XG4gICAgICAgICAgICAgIGV2ZW50cz17ZXZlbnRzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGV2ZW50c0ZldGNoaW5nPXtldmVudHNfZGF0YS5pc0ZldGNoaW5nfVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXI9e2dsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEZpbHRlclBvcHVwT3BlbighZmlsdGVyUG9wdXBPcGVuKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZpbHRlckljb24gd2lkdGg9XCIxN3B4XCIgaGVpZ2h0PVwiMTdweFwiIGZpbGw9XCIjZjYwMDRmXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7cG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmICFmb2N1c2VkRXZlbnQgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17ZmlsdGVyUG9wdXBPcGVufVxuICAgICAgICAgICAgZmV0Y2hUeXBlPXsnRXZlbnRGaWx0ZXInfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUV2ZW50PXt2YWxpZGF0ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25BbGVydD17ZXhjZXB0aW9uQWxlcnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRzTGlzdCk7XG4iXX0=
406
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJtZXNzYWdlcyIsIm1lc3NhZ2UiLCJldmVudF9pZCIsImV2ZW50X2lkcyIsImV4Y2VwdGlvbkFsZXJ0Iiwic2V0RXhjZXB0aW9uQWxlcnQiLCJsYXN0VmlzaXRlZCIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsImdldCIsImdldEV2ZW50SWRGcm9tVVJMIiwibG9hZGVyIiwibGVuZ3RoIiwibmV3QXJlYXMiLCJoYW5kbGVFeHBhbnNpb25Ub2dnbGUiLCJhcHBseURlZmF1bHRGaWx0ZXIiLCJwdXNoIiwibmF2Q29udGV4dCIsIm5hbWUiLCJsb2NhbGUiLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXZlbnRGaWx0ZXJQYXJhbSIsIm9uTW91c2VFbnRlckV2ZW50IiwicmVtb3ZlTGF5ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJpbmNsdWRlcyIsInNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyIsImUiLCJwYXJzZUludCIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsIm1vcmVJbmZvIiwiYWN0aXZlIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJmYUFycm93TGVmdCIsIkxlZnRBcnJvd0ljb24iLCJOb0V2ZW50c0ltYWdlIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBL0JBO0FBaUNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQ0VDLFdBREYsR0FPSUQsS0FQSixDQUNFQyxXQURGO0FBQUEsTUFFRUMsV0FGRixHQU9JRixLQVBKLENBRUVFLFdBRkY7QUFBQSxNQUdFQyxVQUhGLEdBT0lILEtBUEosQ0FHRUcsVUFIRjtBQUFBLE1BSUVDLFdBSkYsR0FPSUosS0FQSixDQUlFSSxXQUpGO0FBQUEsTUFLRUMsVUFMRixHQU9JTCxLQVBKLENBS0VLLFVBTEY7QUFBQSxNQU1FQyxnQkFORixHQU9JTixLQVBK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Q0FBQ1AsV0FBVyxDQUFDTyxVQUZkLElBR0MsQ0FBQ1IsVUFBVSxDQUFDUSxVQUhiLGlCQUlHO0FBQUksSUFBQSxTQUFTLEVBQUM7QUFBZCxLQUNHRCxLQUFLLENBQUNPLEdBQU4sQ0FBVSxVQUFDNEIsS0FBRDtBQUFBLHdCQUNUO0FBQUksTUFBQSxHQUFHLEVBQUVBLEtBQUssQ0FBQ2UsRUFBZjtBQUFtQixNQUFBLFNBQVMsRUFBQyxPQUE3QjtBQUFxQyx1QkFBZWYsS0FBSyxDQUFDZTtBQUExRCxvQkFDRSw2QkFBQyx3QkFBRDtBQUNFLE1BQUEsS0FBSyxFQUFFZixLQURUO0FBRUUsTUFBQSxXQUFXLEVBQUV5QixvQkFGZjtBQUdFLE1BQUEsaUJBQWlCLEVBQUVJLGlCQUhyQjtBQUlFLE1BQUEsaUJBQWlCLEVBQUVGLGlCQUpyQjtBQUtFLE1BQUEsYUFBYSxFQUFFNUIsYUFMakI7QUFNRSxNQUFBLGNBQWMsRUFBRXBCO0FBTmxCLE1BREYsQ0FEUztBQUFBLEdBQVYsQ0FESCxDQXRCTixDQXRGRixDQURGO0FBK0hELENBOVhEOztBQWdZQSxJQUFNd0UsU0FBUyxHQUFHLHlCQUFRakcsZUFBUixDQUFsQjs7ZUFDZWlHLFNBQVMsQ0FBQ3pGLFVBQUQsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGUgKi9cbmltcG9ydCB7XG4gIGZhQXJyb3dMZWZ0LFxuICBmYUNhcmV0TGVmdCxcbiAgZmFDYXJldFJpZ2h0LFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBMaW5rLCB1c2VIaXN0b3J5LCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExlZnRBcnJvd0ljb24gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBGaWx0ZXJJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9mdW5uZWwuc3ZnJztcbmltcG9ydCBOb0V2ZW50c0ltYWdlIGZyb20gJ3NyYy9hc3NldHMvbm9fZXZlbnRzLnN2Zyc7XG5pbXBvcnQgeyBTZXZlcmVFdmVudCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NldmVyZUV2ZW50L1NldmVyZUV2ZW50JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IHVzZUxhc3RWaXNpdGVkIH0gZnJvbSAnc3JjL3Byb3ZpZGVycy9VcmxIaXN0b3J5JztcbmltcG9ydCB7XG4gIGZldGNoRXZlbnRzLFxuICBzZXRGb2N1c2VkRXZlbnQsXG4gIHNldEhvdmVyZWRFZGdlUGF0aHMsXG4gIHNldEhvdmVyZWRFdmVudCxcbiAgc2V0SG92ZXJlZEV2ZW50UGF0aHMsXG59IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0RXZlbnRGaWx0ZXJQYXJhbSwgc2lkZU5hdkV4cGFuZGVkIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBidWlsZEtRTFF1ZXJ5IH0gZnJvbSAnc3JjL3V0aWxpdGllcy9rcWwnO1xuaW1wb3J0ICcuLi9FdmVudHNTdHlsZS5zY3NzJztcbmltcG9ydCBFdmVudEluZm8gZnJvbSAnLi4vZXZlbnRfaW5mby9FdmVudEluZm8nO1xuaW1wb3J0IE1vcmVJbmZvIGZyb20gJy4uL01vcmVJbmZvJztcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSAnLi9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyJztcbmltcG9ydCBTb3J0IGZyb20gJy4vU29ydCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIHNpZGVuYXZFeHBhbmRlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEV2ZW50c0xpc3Q6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBhcmVhc19kYXRhLFxuICBwb2ludHNfZGF0YSxcbiAgZWRnZXNfZGF0YSxcbiAgZ2xvYmFsX2RhdGEsXG4gIHNpZGVuYXZFeHBhbmRlZCxcbiAgZXZlbnRzX2RhdGEsXG4gIG5hdl9jb250ZXh0X2RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGlzRmV0Y2hpbmcsXG4gICAgZm9jdXNlZEV2ZW50LFxuICAgIGhvdmVyZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnRQYXRocyxcbiAgICBob3ZlcmVkRWRnZVBhdGhzLFxuICB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IHsgd2F0ZXJBdXRob3JpdHlJZCwgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgW2ZpbHRlclBvcHVwT3Blbiwgc2V0RmlsdGVyUG9wdXBPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbZXhjZXB0aW9uQWxlcnQsIHNldEV4Y2VwdGlvbkFsZXJ0XSA9IHVzZVN0YXRlPHtcbiAgICBtZXNzYWdlczogeyBtZXNzYWdlOiBhbnk7IGV2ZW50X2lkOiBudW1iZXIgfVtdO1xuICAgIGV2ZW50X2lkczogbnVtYmVyW107XG4gIH0+KHsgbWVzc2FnZXM6IFt7IG1lc3NhZ2U6ICcnLCBldmVudF9pZDogMCB9XSwgZXZlbnRfaWRzOiBbXSB9KTtcbiAgY29uc3QgbGFzdFZpc2l0ZWQgPSB1c2VMYXN0VmlzaXRlZCgpO1xuXG4gIGNvbnN0IHVzZVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHVzZUxvY2F0aW9uKCkuc2VhcmNoKTtcbiAgfTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeSgpO1xuICBjb25zdCBnZXRLUUxWYWx1ZXNGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3ZhbHVlc0Zyb21LUUwnKTtcbiAgfTtcbiAgY29uc3QgZ2V0RXZlbnRJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnZXZlbnRJZCcpO1xuICB9O1xuXG4gIGNvbnN0IGxvYWRlciA9ICgpID0+IHtcbiAgICBpZiAoXG4gICAgICAoaXNGZXRjaGluZyAmJiBpdGVtcy5sZW5ndGggPT09IDApIHx8XG4gICAgICBhcmVhc19kYXRhLm5ld0FyZWFzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eydsb2FkZXInfT48L2Rpdj47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25Ub2dnbGUgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKCFzaWRlbmF2RXhwYW5kZWQpKTtcbiAgfTtcblxuICBjb25zdCBhcHBseURlZmF1bHRGaWx0ZXIgPSAoKSA9PiB7XG4gICAgaGlzdG9yeS5wdXNoKFxuICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPWAsXG4gICAgKTtcbiAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKCcnKSk7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVFdmVudCA9IChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgLy8gY2hlY2sgdGhhdCBhbGwgb2JzZXJ2YXRpb25zJyBlZGdlcyBleGlzdHMuIElmIHRoZXkgYXJlIG5vdCBleGlzdHMgaXQncyBpbmRpY2F0ZXMgdGhhdCB0aGVpciBwb2ludHMgYXJlXG4gICAgLy8gbm90IGluIHRoZSBoaWVyYXJjaHkgb3IgZG9lc24ndCBoYXZlIGxhdC9sbmcuXG4gICAgbGV0IGludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQub2JzZXJ2YXRpb25zLmZvckVhY2goKG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICAgIC8vIGlmIG9ic2VydmF0aW9uIGlzIHJvb3QgKGV4LiBXV1RQKSB0aGVyZSBpcyBubyBlZGdlIHRoYXQgaXRzIGEgc291cmNlLiBzbyB3ZSBjYW4gc2tpcCB0aGlzIGNoZWNrXG4gICAgICBpZiAoIW9ic2VydmF0aW9uLnBvaW50X2lzX3Jvb3QpIHtcbiAgICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBvYnNlcnZhdGlvbi5wb2ludF9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgYCR7b2JzZXJ2YXRpb24ucG9pbnRfbmFtZX0gKCR7b2JzZXJ2YXRpb24ucG9pbnRfaWR9KSBgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBsZXQgaW5kZXggPSBleGNlcHRpb25BbGVydC5tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAgIChtc2cpID0+IG1zZy5ldmVudF9pZCA9PT0gZXZlbnQuaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgICAgLi4uZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X2RhdGFfbWlzc2luZycpfTwvcD5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50LmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGV2ZW50X2lkczogWy4uLmV4Y2VwdGlvbkFsZXJ0LmV2ZW50X2lkcywgZXZlbnQuaWRdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBzYW1lIGNoZWNrIGFzIGFib3ZlIGJ1dCB0aGlzIHRpbWUgZm9yIHRoZSBldmVudCBwYXRoLiBJZiBlZGdlIGRvZXNuJ3QgZXhpc3QsIGl0J3MgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRoZVxuICAgIC8vIHBvaW50cyBkb3duc3RyZWFtIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkUGF0aE1lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5wYXRoLmZvckVhY2goKHBhdGg6IGFueSkgPT4ge1xuICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhdGguZWRnZV9pZCk7XG4gICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGVkZ2UgJHtwYXRoLmVkZ2VfaWR9IGNhbiBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgbGV0IG9ic2VydmF0aW9uID0gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgKG9ic2VydmF0aW9uKSA9PiBvYnNlcnZhdGlvbi5pZCA9PT0gcGF0aC5sYXN0X29ic2VydmF0aW9uX2lkLFxuICAgICAgICApO1xuICAgICAgICBsZXQgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSAnTm90IGZvdW5kJztcbiAgICAgICAgaWYgKG9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSBvYnNlcnZhdGlvbi5wb2ludF9uYW1lO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2xhc3RPYnNlcnZhdGlvblBvaW50JywgbGFzdE9ic2VydmF0aW9uUG9pbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW52YWxpZFBhdGhNZXNzYWdlcy5wdXNoKGAke2xhc3RPYnNlcnZhdGlvblBvaW50fSBgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkUGF0aE1lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgc2V0RXhjZXB0aW9uQWxlcnQoe1xuICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRfdmVyaWZ5X2Nvb3JkaW5hdGVzJyl9PC9wPlxuICAgICAgICAgICAgICAgIDxzcGFuPntpbnZhbGlkUGF0aE1lc3NhZ2VzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50LmlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGV2ZW50X2lkczogWy4uLmV4Y2VwdGlvbkFsZXJ0LmV2ZW50X2lkcywgZXZlbnQuaWRdLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXZlbnRJdGVtQ2xpY2sgPSAoZXZlbnQ6IElFdmVudCwgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgaWYgKHZhbGlkYXRlRXZlbnQoZXZlbnQpKSB7XG4gICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnQoZXZlbnQpKTtcbiAgICAgIHNldEZpbHRlclBvcHVwT3BlbihmYWxzZSk7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mZXZlbnRJZD0ke2V2ZW50LmlkfSZ2YWx1ZXNGcm9tS1FMPSR7Z2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25Nb3VzZUVudGVyRXZlbnQgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoIWZvY3VzZWRFdmVudCAmJiAhaG92ZXJlZEV2ZW50ICYmIHZhbGlkYXRlRXZlbnQoZXZlbnQpKSB7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnQoZXZlbnQpKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25Nb3VzZUxlYXZlRXZlbnQgPSAoKSA9PiB7XG4gICAgaWYgKGhvdmVyZWRFdmVudCAmJiBob3ZlcmVkRXZlbnRQYXRocyAmJiBtYXApIHtcbiAgICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChob3ZlcmVkRWRnZVBhdGhzKSB7XG4gICAgICAgIGhvdmVyZWRFZGdlUGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgIGNvbnN0IGthbmRvX29iamVjdCA9IGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0O1xuICAgICAgICBpZiAoXG4gICAgICAgICAga2FuZG9fb2JqZWN0Py5pbmNsdWRlcygnRXZlbnRCb2R5JykgfHxcbiAgICAgICAgICBbXG4gICAgICAgICAgICAnRXZlbnRUYWlsJyxcbiAgICAgICAgICAgICdTYW1wbGluZ1BvaW50JyxcbiAgICAgICAgICAgICdEZWNvcmF0b3InLFxuICAgICAgICAgICAgJ0hvdmVyZWRFZGdlJyxcbiAgICAgICAgICAgICdIb3ZlcmVkRWRnZUZyb250JyxcbiAgICAgICAgICBdLmluY2x1ZGVzKGthbmRvX29iamVjdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoW10pKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtdKSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09IG51bGwgJiZcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09ICdudWxsJyAmJlxuICAgICAgZm9jdXNlZEV2ZW50ID09PSBudWxsICYmXG4gICAgICBpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICFpc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgIWVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKGU6IElFdmVudCkgPT4gZS5pZCA9PT0gcGFyc2VJbnQoZ2V0RXZlbnRJZEZyb21VUkwoKSEpLFxuICAgICAgKTtcbiAgICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudChldmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmlnZ2VyU29ydCA9IChzb3J0OiBudW1iZXIpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyICE9PSBudWxsKSB7XG4gICAgICBsZXQgS1FMO1xuICAgICAgbGV0IFVSTDtcbiAgICAgIHN3aXRjaCAoc29ydCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICduZXdlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ29sZGVzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPSR7S1FMfWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudHMod2F0ZXJBdXRob3JpdHlJZCwgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJykpO1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydzaWRlbmF2ICcgKyAoc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnc2lkZW5hdi0tY29sbGFwc2VkJyl9PlxuICAgICAge3NldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcygpfVxuICAgICAge2dsb2JhbF9kYXRhLm1vcmVJbmZvICE9PSB1bmRlZmluZWQgJiYgZ2xvYmFsX2RhdGEubW9yZUluZm8uYWN0aXZlICYmIChcbiAgICAgICAgPE1vcmVJbmZvIC8+XG4gICAgICApfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgJ2V2ZW50LWluZm8gJyArXG4gICAgICAgICAgKCFob3ZlcmVkRXZlbnQgJiYgZm9jdXNlZEV2ZW50ICE9PSBudWxsXG4gICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICA6ICdldmVudC1pbmZvLS1jb2xsYXBzZWQnKVxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHshaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiAoXG4gICAgICAgICAgPEV2ZW50SW5mb1xuICAgICAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgIHJlT3BlbkZpbHRlcj17KCkgPT4gc2V0RmlsdGVyUG9wdXBPcGVuKHRydWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwidG9nZ2xlLWV4cGFuc2lvbi1idXR0b25cIlxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmF2LWV4cGFuc2lvbi1pY29uXCI+XG4gICAgICAgICAgPEZvbnRBd2Vzb21lSWNvblxuICAgICAgICAgICAgaWNvbj17c2lkZW5hdkV4cGFuZGVkID8gZmFDYXJldExlZnQgOiBmYUNhcmV0UmlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsndG9nZ2xlLWV4cGFuc2lvbi1idXR0b24tbW9iaWxlJ31cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFBcnJvd0xlZnR9IC8+XG4gICAgICAgICAgPHNwYW4+IHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5iYWNrX3RvX2RldGFpbHMnKX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtaGVhZGVyXCI+XG4gICAgICAgIHtsYXN0VmlzaXRlZCAmJiAhaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYmFja1wiIHRvPXtsYXN0VmlzaXRlZH0+XG4gICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBzcmM9e0xlZnRBcnJvd0ljb259XG4gICAgICAgICAgICAgIGhlaWdodD1cIjEwcHhcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEycHhcIlxuICAgICAgICAgICAgICBhbHQ9XCJiYWNrXCJcbiAgICAgICAgICAgIC8+eycgJ31cbiAgICAgICAgICAgIHtpMThuLnQoJ2FyZWFfc2NyZWVuLmJhY2snKX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICl9XG4gICAgICAgIDxoND5cbiAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRzX2xpc3QnKX0gKHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGh9KVxuICAgICAgICA8L2g0PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmluZ1wiPlxuICAgICAgICAgIHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgICAgPFNvcnRcbiAgICAgICAgICAgICAgdHJpZ2dlclNvcnQ9e3RyaWdnZXJTb3J0fVxuICAgICAgICAgICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgICAgICAgICBldmVudHNGZXRjaGluZz17ZXZlbnRzX2RhdGEuaXNGZXRjaGluZ31cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyPXtnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRGaWx0ZXJQb3B1cE9wZW4oIWZpbHRlclBvcHVwT3Blbil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGaWx0ZXJJY29uIHdpZHRoPVwiMTdweFwiIGhlaWdodD1cIjE3cHhcIiBmaWxsPVwiI2Y2MDA0ZlwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3BvaW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgPEZpbHRlckNvbnRhaW5lclxuICAgICAgICAgICAgZmlsdGVyUG9wdXBPcGVuPXtmaWx0ZXJQb3B1cE9wZW59XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydFdmVudEZpbHRlcid9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtY29udGFpbmVyIHNjcm9sbGJhciBcIj5cbiAgICAgICAge2xvYWRlcigpfVxuICAgICAgICB7IWlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudHNfX2JsYW5rc2xhdGUnfT5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e05vRXZlbnRzSW1hZ2V9IGFsdD1cIk5vRXZlbnRzSWNvblwiIC8+XG4gICAgICAgICAgICAgIDxoMj57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuaGVhZGVyJyl9PC9oMj5cbiAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmJvZHknKX08L3A+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnYXBwbHlfZGVmYXVsdF9maWx0ZXJfYnV0dG9uJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhcHBseURlZmF1bHRGaWx0ZXIoKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5idXR0b24nKX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAge2l0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImV2ZW50cyBcIj5cbiAgICAgICAgICAgICAge2l0ZW1zLm1hcCgoZXZlbnQ6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e2V2ZW50LmlkfSBjbGFzc05hbWU9XCJldmVudFwiIGRhdGEtZXZlbnQtaWQ9e2V2ZW50LmlkfT5cbiAgICAgICAgICAgICAgICAgIDxTZXZlcmVFdmVudFxuICAgICAgICAgICAgICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUNsaWNrPXtoYW5kbGVFdmVudEl0ZW1DbGlja31cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyRXZlbnQ9e29uTW91c2VFbnRlckV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmVFdmVudD17b25Nb3VzZUxlYXZlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRXZlbnQ9e3ZhbGlkYXRlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkFsZXJ0PXtleGNlcHRpb25BbGVydH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudHNMaXN0KTtcbiJdfQ==
@@ -136,9 +136,6 @@ var FilterItem = function FilterItem(props) {
136
136
  case 'SamplingFilterItem':
137
137
  return _i18n.default.t("events_overview.filter.samplings_options.".concat(option));
138
138
 
139
- case 'SamplingModeFilterItem':
140
- return _i18n.default.t("events_overview.filter.sampling_mode.".concat(option));
141
-
142
139
  case 'LabFilterItem':
143
140
  return displayNameForObjectTypedOptions(filterItem, option, forOuterDisplay);
144
141
 
@@ -229,4 +226,4 @@ var FilterItem = function FilterItem(props) {
229
226
 
230
227
  var _default = FilterItem;
231
228
  exports.default = _default;
232
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVySXRlbS50c3giXSwibmFtZXMiOlsiRmlsdGVySXRlbSIsInByb3BzIiwiZmlsdGVyX2l0ZW0iLCJwYXJzZVNlbGVjdGVkSXRlbXMiLCJhY3RpdmVGaWx0ZXJDb3B5Iiwic2V0QWN0aXZlRmlsdGVyQ29weSIsImF2YWlsYWJsZUZpbHRlckl0ZW1zIiwic2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAiLCJzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsImhhbmRsZUZpbHRlckl0ZW1DbGljayIsImZpbHRlckl0ZW0iLCJzaG93IiwiZmlsdGVySXRlbUlkIiwiaWQiLCJyZW1vdmVGaWx0ZXJJdGVtIiwidW5kZWZpbmVkIiwiaW5kZXgiLCJmaWx0ZXJfaXRlbXMiLCJpbmRleE9mIiwiZmluZCIsIml0ZW0iLCJzcGxpY2UiLCJhY3RpdmVGaWx0ZXJEdXBsaWNhdGUiLCJPYmplY3QiLCJhc3NpZ24iLCJoYW5kbGVDaGFuZ2UiLCJzZWxlY3RlZCIsImFjdGl2ZUZpbHRlciIsInNlbGVjdGVkT3B0aW9ucyIsImxlbmd0aCIsImZvckVhY2giLCJzZWxlY3Rpb24iLCJwdXNoIiwib3JpZ2luYWwiLCJzZWxlY3RlZF9vcHRpb25zIiwiaGFuZGxlU2luZ2xlU2VsZWN0aW9uIiwiY3VycmVudFRhcmdldCIsImN1c3RvbVZhbHVlIiwic2VsZWN0ZWRWYWx1ZSIsImNoaWxkcmVuIiwidmFsdWUiLCJzdHJpcERhbWFnZVR5cGUiLCJzdHJpbmciLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJjYW1lbFRvU25ha2VDYXNlIiwic3RyIiwic2xpY2UiLCJsZXR0ZXIiLCJkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyIsIm9wdGlvbiIsImZvck91dGVyRGlzcGxheSIsImF2YWlsYWJsZV9vcHRpb25zIiwiZiIsIm5hbWUiLCJ0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwiLCJ0eXBlIiwiaTE4biIsInQiLCJ0cmFuc2xhdGVGaWx0ZXJJdGVtVHlwZSIsImZpbHRlckl0ZW1UeXBlIiwiZ2V0U2VsZWN0aW9ucyIsInNlbGVjdGlvbnMiLCJtYXAiLCJtYXRjaEZpbHRlckl0ZW0iLCJhdmFpbGFibGVGaWx0ZXJJdGVtIiwib3B0aW9ucyIsImZhVGltZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQWtCQSxJQUFNQSxVQUE0QixHQUFHLFNBQS9CQSxVQUErQixDQUFDQyxLQUFELEVBQVc7QUFDOUMsTUFDRUMsV0FERixHQVFJRCxLQVJKLENBQ0VDLFdBREY7QUFBQSxNQUVFQyxrQkFGRixHQVFJRixLQVJKLENBRUVFLGtCQUZGO0FBQUEsTUFHRUMsZ0JBSEYsR0FRSUgsS0FSSixDQUdFRyxnQkFIRjtBQUFBLE1BSUVDLG1CQUpGLEdBUUlKLEtBUkosQ0FJRUksbUJBSkY7QUFBQSxNQUtFQyxvQkFMRixHQVFJTCxLQVJKLENBS0VLLG9CQUxGO0FBQUEsTUFNRUMsMEJBTkYsR0FRSU4sS0FSSixDQU1FTSwwQkFORjtBQUFBLE1BT0VDLDZCQVBGLEdBUUlQLEtBUkosQ0FPRU8sNkJBUEY7O0FBU0EsTUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFDQyxVQUFELEVBQXFCO0FBQ2pELFFBQ0UsQ0FBQ0gsMEJBQTBCLENBQUNJLElBQTVCLElBQ0FKLDBCQUEwQixDQUFDSyxZQUEzQixLQUE0Q0YsVUFBVSxDQUFDRyxFQUZ6RCxFQUdFO0FBQ0FMLE1BQUFBLDZCQUE2QixDQUFDO0FBQzVCSSxRQUFBQSxZQUFZLEVBQUVGLFVBQVUsQ0FBQ0csRUFERztBQUU1QkYsUUFBQUEsSUFBSSxFQUFFO0FBRnNCLE9BQUQsQ0FBN0I7QUFJRDtBQUNGLEdBVkQ7O0FBWUEsTUFBTUcsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDSixVQUFELEVBQTZC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O0FBa0NELENBeFBEOztlQTBQZXpCLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgRm9ybUV2ZW50LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRmlsdGVyIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlcic7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IE9wdGlvbnNEcm9wRG93biBmcm9tICcuL09wdGlvbnNEcm9wRG93bic7XG5pbXBvcnQgeyBmb3JtYXRUaW1lU2VsZWN0aW9uIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvVGltZVJhbmdlU2VsZWN0b3IvVGltZVJhbmdlSGVscGVyJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGZpbHRlcl9pdGVtOiBJRmlsdGVySXRlbTtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBGdW5jdGlvbjtcbiAgYWN0aXZlRmlsdGVyQ29weTogYW55O1xuICBzZXRBY3RpdmVGaWx0ZXJDb3B5OiBSZWFjdC5EaXNwYXRjaDxhbnk+O1xuICBhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55O1xuICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xuICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xufTtcblxudHlwZSBJQ3VzdG9tVmFsdWUgPSB7XG4gIGN1c3RvbVZhbHVlOiBzdHJpbmc7XG59O1xuXG50eXBlIElTZWxlY3Rpb25FdmVudCA9IElDdXN0b21WYWx1ZSB8IEZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PjtcblxuY29uc3QgRmlsdGVySXRlbTogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZmlsdGVyX2l0ZW0sXG4gICAgcGFyc2VTZWxlY3RlZEl0ZW1zLFxuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weSxcbiAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcyxcbiAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBoYW5kbGVGaWx0ZXJJdGVtQ2xpY2sgPSAoZmlsdGVySXRlbTogYW55KSA9PiB7XG4gICAgaWYgKFxuICAgICAgIXNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLnNob3cgJiZcbiAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCAhPT0gZmlsdGVySXRlbS5pZFxuICAgICkge1xuICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoe1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlckl0ZW0uaWQsXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlRmlsdGVySXRlbSA9IChmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSkgPT4ge1xuICAgIGlmIChhY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBpbmRleCA9IGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmluZGV4T2YoXG4gICAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAgICAgKGl0ZW06IElGaWx0ZXJJdGVtKSA9PiBpdGVtLmlkID09PSBmaWx0ZXJJdGVtLmlkLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGxldCBhY3RpdmVGaWx0ZXJEdXBsaWNhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyRHVwbGljYXRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKFxuICAgIHNlbGVjdGVkOiBhbnksXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgYWN0aXZlRmlsdGVyOiBJRmlsdGVyLFxuICApID0+IHtcbiAgICBsZXQgc2VsZWN0ZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHNlbGVjdGVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgc2VsZWN0ZWQuZm9yRWFjaCgoc2VsZWN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0aW9uLm9yaWdpbmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlckl0ZW0uc2VsZWN0ZWRfb3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucztcbiAgICBsZXQgYWN0aXZlRmlsdGVyQ29weSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGl2ZUZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTaW5nbGVTZWxlY3Rpb24gPSAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHsgY3VycmVudFRhcmdldCA9ICcnLCBjdXN0b21WYWx1ZSA9ICcnIH06IElTZWxlY3Rpb25FdmVudCxcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBhY3RpdmVGaWx0ZXI6IElGaWx0ZXIsXG4gICkgPT4ge1xuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGN1c3RvbVZhbHVlIHx8IGN1cnJlbnRUYXJnZXQuY2hpbGRyZW5bMF0udmFsdWU7XG4gICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0ZWRWYWx1ZSk7XG4gICAgZmlsdGVySXRlbS5zZWxlY3RlZF9vcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xuXG4gICAgbGV0IGFjdGl2ZUZpbHRlckNvcHkgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyQ29weSk7XG4gIH07XG5cbiAgY29uc3Qgc3RyaXBEYW1hZ2VUeXBlID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHN0cmluZy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1snICcvJl0vZywgJy0nKTtcbiAgfTtcblxuICBjb25zdCBjYW1lbFRvU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICAgIHN0clswXS50b0xvd2VyQ2FzZSgpICtcbiAgICBzdHJcbiAgICAgIC5zbGljZSgxLCBzdHIubGVuZ3RoKVxuICAgICAgLnJlcGxhY2UoL1tBLVpdL2csIChsZXR0ZXIpID0+IGBfJHtsZXR0ZXIudG9Mb3dlckNhc2UoKX1gKTtcbiAgY29uc3QgZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBhbnksXG4gICAgZm9yT3V0ZXJEaXNwbGF5OiBib29sZWFuLFxuICApID0+IHtcbiAgICBsZXQgaXRlbTtcbiAgICBpZiAoZm9yT3V0ZXJEaXNwbGF5ICYmIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGl0ZW0gPSBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zLmZpbmQoKGYpID0+IGYuaWQgPT09IG9wdGlvbik7XG4gICAgICBpdGVtICE9PSB1bmRlZmluZWQgJiYgKGl0ZW0gPSBpdGVtLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtID0gb3B0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBjb25zdCB0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBzdHJpbmcsXG4gICAgZm9yT3V0ZXJEaXNwbGF5ID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHN3aXRjaCAoZmlsdGVySXRlbS50eXBlKSB7XG4gICAgICBjYXNlICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdBcmVhRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdTZWN0b3JGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ1NldmVyaXR5RmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnRGFtYWdlVHlwZUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KFxuICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuZGFtYWdlX3R5cGVzLiR7c3RyaXBEYW1hZ2VUeXBlKG9wdGlvbil9YCxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ1RpbWVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWVTZWxlY3Rpb24ob3B0aW9uKTtcbiAgICAgIGNhc2UgJ1N0YXR1c0ZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnN0YXR1cy4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1NhbXBsaW5nRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5maWx0ZXIuc2FtcGxpbmdzX29wdGlvbnMuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdTYW1wbGluZ01vZGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGluZ19tb2RlLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnTGFiRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdTYW1wbGluZ1N0YXR1c0ZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhbXBsaW5nc19zdGF0dXMuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdTYW1wbGluZ0lkRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdTaXRlRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlID0gKGZpbHRlckl0ZW1UeXBlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaTE4bi50KFxuICAgICAgYGV2ZW50c19vdmVydmlldy5maWx0ZXIuZmlsdGVyX3R5cGVzLiR7Y2FtZWxUb1NuYWtlQ2FzZShmaWx0ZXJJdGVtVHlwZSl9YCxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGdldFNlbGVjdGlvbnMgPSAoc2VsZWN0ZWRfb3B0aW9uczogYW55KSA9PiB7XG4gICAgbGV0IHNlbGVjdGlvbnM6IGFueVtdID0gW107XG4gICAgaWYgKHNlbGVjdGVkX29wdGlvbnMubGVuZ3RoID4gMSkge1xuICAgICAgcGFyc2VTZWxlY3RlZEl0ZW1zKGZpbHRlcl9pdGVtKVxuICAgICAgICAuc2xpY2UoMCwgMSlcbiAgICAgICAgLm1hcCgoc2VsZWN0aW9uOiBzdHJpbmcpID0+XG4gICAgICAgICAgc2VsZWN0aW9ucy5wdXNoKFxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtX19jb250ZW50X19zZWxlY3Rpb25zX19zZWxlY3Rpb24nfVxuICAgICAgICAgICAgICBrZXk9e3NlbGVjdGlvbn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3RyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbChmaWx0ZXJfaXRlbSwgc2VsZWN0aW9uLCB0cnVlKX1cbiAgICAgICAgICAgIDwvbGk+LFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICBzZWxlY3Rpb25zLnB1c2goXG4gICAgICAgIDxzcGFuIGtleT17J01PUkUnfT57YCAoJHtzZWxlY3RlZF9vcHRpb25zLmxlbmd0aH0pYH08L3NwYW4+LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VTZWxlY3RlZEl0ZW1zKGZpbHRlcl9pdGVtKS5tYXAoKHNlbGVjdGlvbjogc3RyaW5nKSA9PlxuICAgICAgICBzZWxlY3Rpb25zLnB1c2goXG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbV9fY29udGVudF9fc2VsZWN0aW9uc19fc2VsZWN0aW9uJ31cbiAgICAgICAgICAgIGtleT17c2VsZWN0aW9ufVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwoZmlsdGVyX2l0ZW0sIHNlbGVjdGlvbiwgdHJ1ZSl9XG4gICAgICAgICAgPC9saT4sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3Rpb25zO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZpbHRlcl9pdGVtLnNlbGVjdGVkX29wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCh7XG4gICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVyX2l0ZW0uaWQsXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyX2l0ZW0uYXZhaWxhYmxlX29wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIGxldCBtYXRjaEZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgICAoYXZhaWxhYmxlRmlsdGVySXRlbTogYW55KSA9PlxuICAgICAgICAgIGF2YWlsYWJsZUZpbHRlckl0ZW0udHlwZSA9PT0gZmlsdGVyX2l0ZW0udHlwZSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChtYXRjaEZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJfaXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IG1hdGNoRmlsdGVySXRlbS5vcHRpb25zO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2ZpbHRlcl9pdGVtXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtX19jb250ZW50J31cbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRmlsdGVySXRlbUNsaWNrKGZpbHRlcl9pdGVtKX1cbiAgICAgID5cbiAgICAgICAgPHNwYW4+e3RyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlKGZpbHRlcl9pdGVtLnR5cGUpfTwvc3Bhbj5cbiAgICAgICAgPHVsIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtX19jb250ZW50X19zZWxlY3Rpb25zJ30+XG4gICAgICAgICAge2dldFNlbGVjdGlvbnMocGFyc2VTZWxlY3RlZEl0ZW1zKGZpbHRlcl9pdGVtKSkubWFwKFxuICAgICAgICAgICAgKHNlbGVjdGlvbjogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YSBvbkNsaWNrPXsoKSA9PiByZW1vdmVGaWx0ZXJJdGVtKGZpbHRlcl9pdGVtKX0+XG4gICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFUaW1lc30gLz5cbiAgICAgIDwvYT5cbiAgICAgIHtzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cC5maWx0ZXJJdGVtSWQgPT09IGZpbHRlcl9pdGVtLmlkICYmXG4gICAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwICYmIChcbiAgICAgICAgICA8T3B0aW9uc0Ryb3BEb3duXG4gICAgICAgICAgICBwYXJzZVNlbGVjdGVkSXRlbXM9e3BhcnNlU2VsZWN0ZWRJdGVtc31cbiAgICAgICAgICAgIGZpbHRlckl0ZW09e2ZpbHRlcl9pdGVtfVxuICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weT17YWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwPXtzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cH1cbiAgICAgICAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwPXtzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cH1cbiAgICAgICAgICAgIGhhbmRsZVNpbmdsZVNlbGVjdGlvbj17aGFuZGxlU2luZ2xlU2VsZWN0aW9ufVxuICAgICAgICAgICAgdHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsPXt0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWx9XG4gICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBGaWx0ZXJJdGVtO1xuIl19
229
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVySXRlbS50c3giXSwibmFtZXMiOlsiRmlsdGVySXRlbSIsInByb3BzIiwiZmlsdGVyX2l0ZW0iLCJwYXJzZVNlbGVjdGVkSXRlbXMiLCJhY3RpdmVGaWx0ZXJDb3B5Iiwic2V0QWN0aXZlRmlsdGVyQ29weSIsImF2YWlsYWJsZUZpbHRlckl0ZW1zIiwic2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAiLCJzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsImhhbmRsZUZpbHRlckl0ZW1DbGljayIsImZpbHRlckl0ZW0iLCJzaG93IiwiZmlsdGVySXRlbUlkIiwiaWQiLCJyZW1vdmVGaWx0ZXJJdGVtIiwidW5kZWZpbmVkIiwiaW5kZXgiLCJmaWx0ZXJfaXRlbXMiLCJpbmRleE9mIiwiZmluZCIsIml0ZW0iLCJzcGxpY2UiLCJhY3RpdmVGaWx0ZXJEdXBsaWNhdGUiLCJPYmplY3QiLCJhc3NpZ24iLCJoYW5kbGVDaGFuZ2UiLCJzZWxlY3RlZCIsImFjdGl2ZUZpbHRlciIsInNlbGVjdGVkT3B0aW9ucyIsImxlbmd0aCIsImZvckVhY2giLCJzZWxlY3Rpb24iLCJwdXNoIiwib3JpZ2luYWwiLCJzZWxlY3RlZF9vcHRpb25zIiwiaGFuZGxlU2luZ2xlU2VsZWN0aW9uIiwiY3VycmVudFRhcmdldCIsImN1c3RvbVZhbHVlIiwic2VsZWN0ZWRWYWx1ZSIsImNoaWxkcmVuIiwidmFsdWUiLCJzdHJpcERhbWFnZVR5cGUiLCJzdHJpbmciLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJjYW1lbFRvU25ha2VDYXNlIiwic3RyIiwic2xpY2UiLCJsZXR0ZXIiLCJkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyIsIm9wdGlvbiIsImZvck91dGVyRGlzcGxheSIsImF2YWlsYWJsZV9vcHRpb25zIiwiZiIsIm5hbWUiLCJ0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwiLCJ0eXBlIiwiaTE4biIsInQiLCJ0cmFuc2xhdGVGaWx0ZXJJdGVtVHlwZSIsImZpbHRlckl0ZW1UeXBlIiwiZ2V0U2VsZWN0aW9ucyIsInNlbGVjdGlvbnMiLCJtYXAiLCJtYXRjaEZpbHRlckl0ZW0iLCJhdmFpbGFibGVGaWx0ZXJJdGVtIiwib3B0aW9ucyIsImZhVGltZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQWtCQSxJQUFNQSxVQUE0QixHQUFHLFNBQS9CQSxVQUErQixDQUFDQyxLQUFELEVBQVc7QUFDOUMsTUFDRUMsV0FERixHQVFJRCxLQVJKLENBQ0VDLFdBREY7QUFBQSxNQUVFQyxrQkFGRixHQVFJRixLQVJKLENBRUVFLGtCQUZGO0FBQUEsTUFHRUMsZ0JBSEYsR0FRSUgsS0FSSixDQUdFRyxnQkFIRjtBQUFBLE1BSUVDLG1CQUpGLEdBUUlKLEtBUkosQ0FJRUksbUJBSkY7QUFBQSxNQUtFQyxvQkFMRixHQVFJTCxLQVJKLENBS0VLLG9CQUxGO0FBQUEsTUFNRUMsMEJBTkYsR0FRSU4sS0FSSixDQU1FTSwwQkFORjtBQUFBLE1BT0VDLDZCQVBGLEdBUUlQLEtBUkosQ0FPRU8sNkJBUEY7O0FBU0EsTUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFDQyxVQUFELEVBQXFCO0FBQ2pELFFBQ0UsQ0FBQ0gsMEJBQTBCLENBQUNJLElBQTVCLElBQ0FKLDBCQUEwQixDQUFDSyxZQUEzQixLQUE0Q0YsVUFBVSxDQUFDRyxFQUZ6RCxFQUdFO0FBQ0FMLE1BQUFBLDZCQUE2QixDQUFDO0FBQzVCSSxRQUFBQSxZQUFZLEVBQUVGLFVBQVUsQ0FBQ0csRUFERztBQUU1QkYsUUFBQUEsSUFBSSxFQUFFO0FBRnNCLE9BQUQsQ0FBN0I7QUFJRDtBQUNGLEdBVkQ7O0FBWUEsTUFBTUcsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDSixVQUFELEVBQTZC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ZXMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCBSZWFjdCwgeyBGb3JtRXZlbnQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElGaWx0ZXIgfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVyJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCAnLi4vLi4vRXZlbnRzU3R5bGUuc2Nzcyc7XG5pbXBvcnQgT3B0aW9uc0Ryb3BEb3duIGZyb20gJy4vT3B0aW9uc0Ryb3BEb3duJztcbmltcG9ydCB7IGZvcm1hdFRpbWVTZWxlY3Rpb24gfSBmcm9tICdzcmMvY29tcG9uZW50cy9UaW1lUmFuZ2VTZWxlY3Rvci9UaW1lUmFuZ2VIZWxwZXInO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZmlsdGVyX2l0ZW06IElGaWx0ZXJJdGVtO1xuICBwYXJzZVNlbGVjdGVkSXRlbXM6IEZ1bmN0aW9uO1xuICBhY3RpdmVGaWx0ZXJDb3B5OiBhbnk7XG4gIHNldEFjdGl2ZUZpbHRlckNvcHk6IFJlYWN0LkRpc3BhdGNoPGFueT47XG4gIGF2YWlsYWJsZUZpbHRlckl0ZW1zOiBhbnk7XG4gIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwOiBhbnk7XG4gIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwOiBhbnk7XG59O1xuXG50eXBlIElDdXN0b21WYWx1ZSA9IHtcbiAgY3VzdG9tVmFsdWU6IHN0cmluZztcbn07XG5cbnR5cGUgSVNlbGVjdGlvbkV2ZW50ID0gSUN1c3RvbVZhbHVlIHwgRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG5jb25zdCBGaWx0ZXJJdGVtOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBmaWx0ZXJfaXRlbSxcbiAgICBwYXJzZVNlbGVjdGVkSXRlbXMsXG4gICAgYWN0aXZlRmlsdGVyQ29weSxcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5LFxuICAgIGF2YWlsYWJsZUZpbHRlckl0ZW1zLFxuICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLFxuICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGhhbmRsZUZpbHRlckl0ZW1DbGljayA9IChmaWx0ZXJJdGVtOiBhbnkpID0+IHtcbiAgICBpZiAoXG4gICAgICAhc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAuc2hvdyAmJlxuICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAuZmlsdGVySXRlbUlkICE9PSBmaWx0ZXJJdGVtLmlkXG4gICAgKSB7XG4gICAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCh7XG4gICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVySXRlbS5pZCxcbiAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZW1vdmVGaWx0ZXJJdGVtID0gKGZpbHRlckl0ZW06IElGaWx0ZXJJdGVtKSA9PiB7XG4gICAgaWYgKGFjdGl2ZUZpbHRlckNvcHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IGluZGV4ID0gYWN0aXZlRmlsdGVyQ29weS5maWx0ZXJfaXRlbXMuaW5kZXhPZihcbiAgICAgICAgYWN0aXZlRmlsdGVyQ29weS5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgICAoaXRlbTogSUZpbHRlckl0ZW0pID0+IGl0ZW0uaWQgPT09IGZpbHRlckl0ZW0uaWQsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgYWN0aXZlRmlsdGVyQ29weS5maWx0ZXJfaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgbGV0IGFjdGl2ZUZpbHRlckR1cGxpY2F0ZSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJEdXBsaWNhdGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoXG4gICAgc2VsZWN0ZWQ6IGFueSxcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBhY3RpdmVGaWx0ZXI6IElGaWx0ZXIsXG4gICkgPT4ge1xuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoICE9PSAwKSB7XG4gICAgICBzZWxlY3RlZC5mb3JFYWNoKChzZWxlY3Rpb246IGFueSkgPT4ge1xuICAgICAgICBzZWxlY3RlZE9wdGlvbnMucHVzaChzZWxlY3Rpb24ub3JpZ2luYWwpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmlsdGVySXRlbS5zZWxlY3RlZF9vcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xuICAgIGxldCBhY3RpdmVGaWx0ZXJDb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwgYWN0aXZlRmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGFjdGl2ZUZpbHRlckNvcHkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNpbmdsZVNlbGVjdGlvbiA9IChcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgeyBjdXJyZW50VGFyZ2V0ID0gJycsIGN1c3RvbVZhbHVlID0gJycgfTogSVNlbGVjdGlvbkV2ZW50LFxuICAgIGZpbHRlckl0ZW06IElGaWx0ZXJJdGVtLFxuICAgIGFjdGl2ZUZpbHRlcjogSUZpbHRlcixcbiAgKSA9PiB7XG4gICAgbGV0IHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gY3VzdG9tVmFsdWUgfHwgY3VycmVudFRhcmdldC5jaGlsZHJlblswXS52YWx1ZTtcbiAgICBzZWxlY3RlZE9wdGlvbnMucHVzaChzZWxlY3RlZFZhbHVlKTtcbiAgICBmaWx0ZXJJdGVtLnNlbGVjdGVkX29wdGlvbnMgPSBzZWxlY3RlZE9wdGlvbnM7XG5cbiAgICBsZXQgYWN0aXZlRmlsdGVyQ29weSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGl2ZUZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgfTtcblxuICBjb25zdCBzdHJpcERhbWFnZVR5cGUgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gc3RyaW5nLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWycgJy8mXS9nLCAnLScpO1xuICB9O1xuXG4gIGNvbnN0IGNhbWVsVG9TbmFrZUNhc2UgPSAoc3RyOiBzdHJpbmcpID0+XG4gICAgc3RyWzBdLnRvTG93ZXJDYXNlKCkgK1xuICAgIHN0clxuICAgICAgLnNsaWNlKDEsIHN0ci5sZW5ndGgpXG4gICAgICAucmVwbGFjZSgvW0EtWl0vZywgKGxldHRlcikgPT4gYF8ke2xldHRlci50b0xvd2VyQ2FzZSgpfWApO1xuICBjb25zdCBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyA9IChcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBvcHRpb246IGFueSxcbiAgICBmb3JPdXRlckRpc3BsYXk6IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIGxldCBpdGVtO1xuICAgIGlmIChmb3JPdXRlckRpc3BsYXkgJiYgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgaXRlbSA9IGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMuZmluZCgoZikgPT4gZi5pZCA9PT0gb3B0aW9uKTtcbiAgICAgIGl0ZW0gIT09IHVuZGVmaW5lZCAmJiAoaXRlbSA9IGl0ZW0ubmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW0gPSBvcHRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH07XG4gIGNvbnN0IHRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbCA9IChcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBvcHRpb246IHN0cmluZyxcbiAgICBmb3JPdXRlckRpc3BsYXkgPSBmYWxzZSxcbiAgKSA9PiB7XG4gICAgc3dpdGNoIChmaWx0ZXJJdGVtLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0ludGVyZXN0UG9pbnRGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ0FyZWFGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ1NlY3RvckZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2V2ZXJpdHlGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdEYW1hZ2VUeXBlRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoXG4gICAgICAgICAgYGV2ZW50c19vdmVydmlldy5kYW1hZ2VfdHlwZXMuJHtzdHJpcERhbWFnZVR5cGUob3B0aW9uKX1gLFxuICAgICAgICApO1xuICAgICAgY2FzZSAnVGltZUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZm9ybWF0VGltZVNlbGVjdGlvbihvcHRpb24pO1xuICAgICAgY2FzZSAnU3RhdHVzRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5maWx0ZXIuc3RhdHVzLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGluZ3Nfb3B0aW9ucy4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ0xhYkZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdTdGF0dXNGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGluZ3Nfc3RhdHVzLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdJZEZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2l0ZUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmFuc2xhdGVGaWx0ZXJJdGVtVHlwZSA9IChmaWx0ZXJJdGVtVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGkxOG4udChcbiAgICAgIGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmZpbHRlcl90eXBlcy4ke2NhbWVsVG9TbmFrZUNhc2UoZmlsdGVySXRlbVR5cGUpfWAsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBnZXRTZWxlY3Rpb25zID0gKHNlbGVjdGVkX29wdGlvbnM6IGFueSkgPT4ge1xuICAgIGxldCBzZWxlY3Rpb25zOiBhbnlbXSA9IFtdO1xuICAgIGlmIChzZWxlY3RlZF9vcHRpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcyhmaWx0ZXJfaXRlbSlcbiAgICAgICAgLnNsaWNlKDAsIDEpXG4gICAgICAgIC5tYXAoKHNlbGVjdGlvbjogc3RyaW5nKSA9PlxuICAgICAgICAgIHNlbGVjdGlvbnMucHVzaChcbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbV9fY29udGVudF9fc2VsZWN0aW9uc19fc2VsZWN0aW9uJ31cbiAgICAgICAgICAgICAga2V5PXtzZWxlY3Rpb259XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwoZmlsdGVyX2l0ZW0sIHNlbGVjdGlvbiwgdHJ1ZSl9XG4gICAgICAgICAgICA8L2xpPixcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgc2VsZWN0aW9ucy5wdXNoKFxuICAgICAgICA8c3BhbiBrZXk9eydNT1JFJ30+e2AgKCR7c2VsZWN0ZWRfb3B0aW9ucy5sZW5ndGh9KWB9PC9zcGFuPixcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcyhmaWx0ZXJfaXRlbSkubWFwKChzZWxlY3Rpb246IHN0cmluZykgPT5cbiAgICAgICAgc2VsZWN0aW9ucy5wdXNoKFxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnRfX3NlbGVjdGlvbnNfX3NlbGVjdGlvbid9XG4gICAgICAgICAgICBrZXk9e3NlbGVjdGlvbn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsKGZpbHRlcl9pdGVtLCBzZWxlY3Rpb24sIHRydWUpfVxuICAgICAgICAgIDwvbGk+LFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9ucztcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmaWx0ZXJfaXRlbS5zZWxlY3RlZF9vcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoe1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlcl9pdGVtLmlkLFxuICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcl9pdGVtLmF2YWlsYWJsZV9vcHRpb25zID09PSBudWxsKSB7XG4gICAgICBsZXQgbWF0Y2hGaWx0ZXJJdGVtID0gYXZhaWxhYmxlRmlsdGVySXRlbXMuZmluZChcbiAgICAgICAgKGF2YWlsYWJsZUZpbHRlckl0ZW06IGFueSkgPT5cbiAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtLnR5cGUgPT09IGZpbHRlcl9pdGVtLnR5cGUsXG4gICAgICApO1xuXG4gICAgICBpZiAobWF0Y2hGaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVyX2l0ZW0uYXZhaWxhYmxlX29wdGlvbnMgPSBtYXRjaEZpbHRlckl0ZW0ub3B0aW9ucztcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtmaWx0ZXJfaXRlbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbV9fY29udGVudCd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUZpbHRlckl0ZW1DbGljayhmaWx0ZXJfaXRlbSl9XG4gICAgICA+XG4gICAgICAgIDxzcGFuPnt0cmFuc2xhdGVGaWx0ZXJJdGVtVHlwZShmaWx0ZXJfaXRlbS50eXBlKX08L3NwYW4+XG4gICAgICAgIDx1bCBjbGFzc05hbWU9eydmaWx0ZXJfaXRlbV9fY29udGVudF9fc2VsZWN0aW9ucyd9PlxuICAgICAgICAgIHtnZXRTZWxlY3Rpb25zKHBhcnNlU2VsZWN0ZWRJdGVtcyhmaWx0ZXJfaXRlbSkpLm1hcChcbiAgICAgICAgICAgIChzZWxlY3Rpb246IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGEgb25DbGljaz17KCkgPT4gcmVtb3ZlRmlsdGVySXRlbShmaWx0ZXJfaXRlbSl9PlxuICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhVGltZXN9IC8+XG4gICAgICA8L2E+XG4gICAgICB7c2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAuZmlsdGVySXRlbUlkID09PSBmaWx0ZXJfaXRlbS5pZCAmJlxuICAgICAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCAmJiAoXG4gICAgICAgICAgPE9wdGlvbnNEcm9wRG93blxuICAgICAgICAgICAgcGFyc2VTZWxlY3RlZEl0ZW1zPXtwYXJzZVNlbGVjdGVkSXRlbXN9XG4gICAgICAgICAgICBmaWx0ZXJJdGVtPXtmaWx0ZXJfaXRlbX1cbiAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cD17c2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXB9XG4gICAgICAgICAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cD17c2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXB9XG4gICAgICAgICAgICBoYW5kbGVTaW5nbGVTZWxlY3Rpb249e2hhbmRsZVNpbmdsZVNlbGVjdGlvbn1cbiAgICAgICAgICAgIHRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbD17dHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsfVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsdGVySXRlbTtcbiJdfQ==
@@ -275,7 +275,7 @@
275
275
  position: absolute;
276
276
  bottom: 0;
277
277
  transform: translateY(100%);
278
- margin-inline-start: -12px;
278
+ left: 0;
279
279
  z-index: 9;
280
280
 
281
281
  .filter-items-options-popup {
@@ -27,6 +27,8 @@ var _axios = _interopRequireDefault(require("axios"));
27
27
 
28
28
  var _ImportButtomButtons = _interopRequireDefault(require("./ImportButtomButtons"));
29
29
 
30
+ var _reactToastify = require("react-toastify");
31
+
30
32
  var ValidationForm = function ValidationForm(_ref) {
31
33
  var _uploadingFile$file;
32
34
 
@@ -50,7 +52,7 @@ var ValidationForm = function ValidationForm(_ref) {
50
52
  }));
51
53
  };
52
54
 
53
- var HandleCancel = function HandleCancel() {
55
+ var HandleCancle = function HandleCancle() {
54
56
  history.goBack();
55
57
  dispatch((0, _actionsCreator.resetImportGisState)());
56
58
  };
@@ -65,10 +67,13 @@ var ValidationForm = function ValidationForm(_ref) {
65
67
  dispatch((0, _actionsCreator.setValidationRespones)(res.data));
66
68
  }
67
69
  }).catch(function (error) {
68
- dispatch((0, _actionsCreator.setValidationRespones)({
69
- warnings: {},
70
- errors: [_i18n.default.t('import_file_wizard.invalid_file')]
71
- }));
70
+ if (error.response) {
71
+ dispatch((0, _actionsCreator.setIsFethcing)(false));
72
+
73
+ _reactToastify.toast.error(_i18n.default.t('errors.request_error'), {
74
+ position: 'top-center'
75
+ });
76
+ }
72
77
  });
73
78
  };
74
79
 
@@ -105,7 +110,7 @@ var ValidationForm = function ValidationForm(_ref) {
105
110
  label: _i18n.default.t('import_file_wizard.next_button')
106
111
  },
107
112
  back: {
108
- handler: HandleCancel,
113
+ handler: HandleCancle,
109
114
  disable: false,
110
115
  label: _i18n.default.t('import_file_wizard.cancel_button')
111
116
  }
@@ -114,4 +119,4 @@ var ValidationForm = function ValidationForm(_ref) {
114
119
 
115
120
  var _default = ValidationForm;
116
121
  exports.default = _default;
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9JbXBvcnRGaWxlV2l6YXJkL1ZhbGlkYXRpb25Gb3JtLnRzeCJdLCJuYW1lcyI6WyJWYWxpZGF0aW9uRm9ybSIsImFjY2VwdFR5cGUiLCJ2YWxpZGF0aW9uVVJMIiwiY2hpbGRyZW4iLCJkaXNwYXRjaCIsImhpc3RvcnkiLCJzdGF0ZSIsImltcG9ydEdpcyIsInVwbG9hZGluZ0ZpbGUiLCJpc1ZhbGlkIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJldmVudCIsImZpbGUiLCJ0YXJnZXQiLCJmaWxlcyIsImlzU2luZ2xlSW5wdXQiLCJIYW5kbGVDYW5jZWwiLCJnb0JhY2siLCJoYW5kbGVTdWJtaXQiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYXhpb3MiLCJwb3N0IiwidGhlbiIsInJlcyIsImRhdGEiLCJjYXRjaCIsImVycm9yIiwid2FybmluZ3MiLCJlcnJvcnMiLCJpMThuIiwidCIsInN0eWxlcyIsInZhbGlkYXRpb25Gb3JtV3JhcHBlciIsInVwbG9hZFdyYXBwZXIiLCJ1cGxvYWRUeHRGaWVsZFdyYXBwZXIiLCJ0eXBlIiwibmFtZSIsInVwbG9hZEZpbGVCdG4iLCJ1cGxvYWRGaWxlQnRuU2Vjb25kZXJ5IiwiaGFuZGxlciIsImRpc2FibGUiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixPQUE2QztBQUFBOztBQUFBLE1BQTFDQyxVQUEwQyxRQUExQ0EsVUFBMEM7QUFBQSxNQUE5QkMsYUFBOEIsUUFBOUJBLGFBQThCO0FBQUEsTUFBZkMsUUFBZSxRQUFmQSxRQUFlO0FBQ2xFLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7QUFDQSxNQUFNQyxPQUFPLEdBQUcsaUNBQWhCO0FBQ0E7O0FBQ0EscUJBQW1DLDZCQUNqQyxVQUFDQyxLQUFE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SCxDQXRCRixDQUZGLGVBa0NFLDZCQUFDLDRCQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUU7QUFDSlMsTUFBQUEsT0FBTyxFQUFFdkIsWUFETDtBQUVKd0IsTUFBQUEsT0FBTyxFQUFFLENBQUNqQyxPQUZOO0FBR0prQyxNQUFBQSxLQUFLLEVBQUVaLGNBQUtDLENBQUwsQ0FBTyxnQ0FBUDtBQUhILEtBRFI7QUFNRSxJQUFBLElBQUksRUFBRTtBQUNKUyxNQUFBQSxPQUFPLEVBQUV6QixZQURMO0FBRUowQixNQUFBQSxPQUFPLEVBQUUsS0FGTDtBQUdKQyxNQUFBQSxLQUFLLEVBQUVaLGNBQUtDLENBQUwsQ0FBTyxrQ0FBUDtBQUhIO0FBTlIsSUFsQ0YsQ0FERjtBQWlERCxDQXpGRDs7ZUEwRmVoQyxjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vYmlsZUlucHV0IH0gZnJvbSAnc3JjL3VpLWtpdC9Nb2JpbGVJbnB1dC9Nb2JpbGVJbnB1dCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VJbml0aWFsaXplSGVhZGVycyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUluaXRpYWxpemVIZWFkZXJzJztcbmltcG9ydCB7XG4gIHJlc2V0SW1wb3J0R2lzU3RhdGUsXG4gIHNldEZpbGUsXG4gIHNldFZhbGlkYXRpb25SZXNwb25lcyxcbiAgc2V0SXNGZXRoY2luZyxcbn0gZnJvbSAnc3JjL3N0b3JlL0ltcG9ydEdpcy9hY3Rpb25zQ3JlYXRvcic7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc3R5bGUubW9kdWxlLnNjc3MnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgSW1wb3J0QnV0dG9tQnV0dG9ucyBmcm9tICcuL0ltcG9ydEJ1dHRvbUJ1dHRvbnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5cbmNvbnN0IFZhbGlkYXRpb25Gb3JtID0gKHsgYWNjZXB0VHlwZSwgdmFsaWRhdGlvblVSTCwgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIHVzZUluaXRpYWxpemVIZWFkZXJzKCk7XG4gIGNvbnN0IHsgdXBsb2FkaW5nRmlsZSwgaXNWYWxpZCB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUuaW1wb3J0R2lzLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBzZXRGaWxlKHsgZmlsZTogZXZlbnQudGFyZ2V0LmZpbGVzWzBdLCBpc1NpbmdsZUlucHV0OiAhY2hpbGRyZW4gfSksXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBIYW5kbGVDYW5jZWwgPSAoKSA9PiB7XG4gICAgaGlzdG9yeS5nb0JhY2soKTtcbiAgICBkaXNwYXRjaChyZXNldEltcG9ydEdpc1N0YXRlKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9ICgpID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIHVwbG9hZGluZ0ZpbGUuZmlsZSk7XG4gICAgZGlzcGF0Y2goc2V0SXNGZXRoY2luZyh0cnVlKSk7XG4gICAgYXhpb3NcbiAgICAgIC5wb3N0KHZhbGlkYXRpb25VUkwsIGZvcm1EYXRhKVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhKSB7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0VmFsaWRhdGlvblJlc3BvbmVzKHJlcy5kYXRhKSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoKFxuICAgICAgICAgIHNldFZhbGlkYXRpb25SZXNwb25lcyh7XG4gICAgICAgICAgICB3YXJuaW5nczoge30sXG4gICAgICAgICAgICBlcnJvcnM6IFtpMThuLnQoJ2ltcG9ydF9maWxlX3dpemFyZC5pbnZhbGlkX2ZpbGUnKV0sXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudmFsaWRhdGlvbkZvcm1XcmFwcGVyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudXBsb2FkV3JhcHBlcn0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudXBsb2FkVHh0RmllbGRXcmFwcGVyfT5cbiAgICAgICAgICA8TW9iaWxlSW5wdXRcbiAgICAgICAgICAgIGlzSW52YWxpZD17ZmFsc2V9XG4gICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eygpID0+IHt9fVxuICAgICAgICAgICAgaW5wdXRUaXRsZT17aTE4bi50KCdpbXBvcnRfZmlsZV93aXphcmQuZmlsZV9pbnB1dF9sYWJlbCcpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2kxOG4udCgnaW1wb3J0X2ZpbGVfd2l6YXJkLmZpbGVfaW5wdXRfcGxhY2Vob2xkZXInLCB7XG4gICAgICAgICAgICAgIHR5cGU6IGFjY2VwdFR5cGUsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHZhbHVlPXt1cGxvYWRpbmdGaWxlLmZpbGU/Lm5hbWUgfHwgJyd9XG4gICAgICAgICAgICBtYW5kYXRvcnk9e3RydWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBhY2NlcHQ9e2AuJHthY2NlcHRUeXBlfWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUlucHV0Q2hhbmdlfVxuICAgICAgICAgIGhpZGRlbj17dHJ1ZX1cbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtzdHlsZXMudXBsb2FkRmlsZUJ0bn0gJHtcbiAgICAgICAgICAgIGlzVmFsaWQgPyBzdHlsZXMudXBsb2FkRmlsZUJ0blNlY29uZGVyeSA6ICcnXG4gICAgICAgICAgfWB9XG4gICAgICAgICAgaHRtbEZvcj1cImZpbGVJbnB1dFwiXG4gICAgICAgID5cbiAgICAgICAgICB7aTE4bi50KCdpbXBvcnRfZmlsZV93aXphcmQuZmlsZV9pbnB1dF9idXR0b24nKX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8SW1wb3J0QnV0dG9tQnV0dG9uc1xuICAgICAgICBuZXh0PXt7XG4gICAgICAgICAgaGFuZGxlcjogaGFuZGxlU3VibWl0LFxuICAgICAgICAgIGRpc2FibGU6ICFpc1ZhbGlkLFxuICAgICAgICAgIGxhYmVsOiBpMThuLnQoJ2ltcG9ydF9maWxlX3dpemFyZC5uZXh0X2J1dHRvbicpLFxuICAgICAgICB9fVxuICAgICAgICBiYWNrPXt7XG4gICAgICAgICAgaGFuZGxlcjogSGFuZGxlQ2FuY2VsLFxuICAgICAgICAgIGRpc2FibGU6IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBpMThuLnQoJ2ltcG9ydF9maWxlX3dpemFyZC5jYW5jZWxfYnV0dG9uJyksXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbmV4cG9ydCBkZWZhdWx0IFZhbGlkYXRpb25Gb3JtO1xuIl19
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9JbXBvcnRGaWxlV2l6YXJkL1ZhbGlkYXRpb25Gb3JtLnRzeCJdLCJuYW1lcyI6WyJWYWxpZGF0aW9uRm9ybSIsImFjY2VwdFR5cGUiLCJ2YWxpZGF0aW9uVVJMIiwiY2hpbGRyZW4iLCJkaXNwYXRjaCIsImhpc3RvcnkiLCJzdGF0ZSIsImltcG9ydEdpcyIsInVwbG9hZGluZ0ZpbGUiLCJpc1ZhbGlkIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJldmVudCIsImZpbGUiLCJ0YXJnZXQiLCJmaWxlcyIsImlzU2luZ2xlSW5wdXQiLCJIYW5kbGVDYW5jbGUiLCJnb0JhY2siLCJoYW5kbGVTdWJtaXQiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYXhpb3MiLCJwb3N0IiwidGhlbiIsInJlcyIsImRhdGEiLCJjYXRjaCIsImVycm9yIiwicmVzcG9uc2UiLCJ0b2FzdCIsImkxOG4iLCJ0IiwicG9zaXRpb24iLCJzdHlsZXMiLCJ2YWxpZGF0aW9uRm9ybVdyYXBwZXIiLCJ1cGxvYWRXcmFwcGVyIiwidXBsb2FkVHh0RmllbGRXcmFwcGVyIiwidHlwZSIsIm5hbWUiLCJ1cGxvYWRGaWxlQnRuIiwidXBsb2FkRmlsZUJ0blNlY29uZGVyeSIsImhhbmRsZXIiLCJkaXNhYmxlIiwibGFiZWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBLElBQU1BLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsT0FBNkM7QUFBQTs7QUFBQSxNQUExQ0MsVUFBMEMsUUFBMUNBLFVBQTBDO0FBQUEsTUFBOUJDLGFBQThCLFFBQTlCQSxhQUE4QjtBQUFBLE1BQWZDLFFBQWUsUUFBZkEsUUFBZTtBQUNsRSxNQUFNQyxRQUFRLEdBQUcsOEJBQWpCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHLGlDQUFoQjtBQUNBOztBQUNBLHFCQUFtQyw2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O0FBSUUsSUFBQSxPQUFPLEVBQUM7QUFKVixLQU1HVixjQUFLQyxDQUFMLENBQU8sc0NBQVAsQ0FOSCxDQXRCRixDQUZGLGVBa0NFLDZCQUFDLDRCQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUU7QUFDSlUsTUFBQUEsT0FBTyxFQUFFeEIsWUFETDtBQUVKeUIsTUFBQUEsT0FBTyxFQUFFLENBQUNsQyxPQUZOO0FBR0ptQyxNQUFBQSxLQUFLLEVBQUViLGNBQUtDLENBQUwsQ0FBTyxnQ0FBUDtBQUhILEtBRFI7QUFNRSxJQUFBLElBQUksRUFBRTtBQUNKVSxNQUFBQSxPQUFPLEVBQUUxQixZQURMO0FBRUoyQixNQUFBQSxPQUFPLEVBQUUsS0FGTDtBQUdKQyxNQUFBQSxLQUFLLEVBQUViLGNBQUtDLENBQUwsQ0FBTyxrQ0FBUDtBQUhIO0FBTlIsSUFsQ0YsQ0FERjtBQWlERCxDQXpGRDs7ZUEwRmVoQyxjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vYmlsZUlucHV0IH0gZnJvbSAnc3JjL3VpLWtpdC9Nb2JpbGVJbnB1dC9Nb2JpbGVJbnB1dCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VJbml0aWFsaXplSGVhZGVycyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUluaXRpYWxpemVIZWFkZXJzJztcbmltcG9ydCB7XG4gIHJlc2V0SW1wb3J0R2lzU3RhdGUsXG4gIHNldEZpbGUsXG4gIHNldFZhbGlkYXRpb25SZXNwb25lcyxcbiAgc2V0SXNGZXRoY2luZyxcbn0gZnJvbSAnc3JjL3N0b3JlL0ltcG9ydEdpcy9hY3Rpb25zQ3JlYXRvcic7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc3R5bGUubW9kdWxlLnNjc3MnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgSW1wb3J0QnV0dG9tQnV0dG9ucyBmcm9tICcuL0ltcG9ydEJ1dHRvbUJ1dHRvbnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5JztcblxuY29uc3QgVmFsaWRhdGlvbkZvcm0gPSAoeyBhY2NlcHRUeXBlLCB2YWxpZGF0aW9uVVJMLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcbiAgdXNlSW5pdGlhbGl6ZUhlYWRlcnMoKTtcbiAgY29uc3QgeyB1cGxvYWRpbmdGaWxlLCBpc1ZhbGlkIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5pbXBvcnRHaXMsXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlSW5wdXRDaGFuZ2UgPSAoZXZlbnQpID0+IHtcbiAgICBkaXNwYXRjaChcbiAgICAgIHNldEZpbGUoeyBmaWxlOiBldmVudC50YXJnZXQuZmlsZXNbMF0sIGlzU2luZ2xlSW5wdXQ6ICFjaGlsZHJlbiB9KSxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEhhbmRsZUNhbmNsZSA9ICgpID0+IHtcbiAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIGRpc3BhdGNoKHJlc2V0SW1wb3J0R2lzU3RhdGUoKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgdXBsb2FkaW5nRmlsZS5maWxlKTtcbiAgICBkaXNwYXRjaChzZXRJc0ZldGhjaW5nKHRydWUpKTtcbiAgICBheGlvc1xuICAgICAgLnBvc3QodmFsaWRhdGlvblVSTCwgZm9ybURhdGEpXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEpIHtcbiAgICAgICAgICBkaXNwYXRjaChzZXRWYWxpZGF0aW9uUmVzcG9uZXMocmVzLmRhdGEpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnJlc3BvbnNlKSB7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0SXNGZXRoY2luZyhmYWxzZSkpO1xuICAgICAgICAgIHRvYXN0LmVycm9yKGkxOG4udCgnZXJyb3JzLnJlcXVlc3RfZXJyb3InKSwge1xuICAgICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnZhbGlkYXRpb25Gb3JtV3JhcHBlcn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnVwbG9hZFdyYXBwZXJ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnVwbG9hZFR4dEZpZWxkV3JhcHBlcn0+XG4gICAgICAgICAgPE1vYmlsZUlucHV0XG4gICAgICAgICAgICBpc0ludmFsaWQ9e2ZhbHNlfVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoKSA9PiB7fX1cbiAgICAgICAgICAgIGlucHV0VGl0bGU9e2kxOG4udCgnaW1wb3J0X2ZpbGVfd2l6YXJkLmZpbGVfaW5wdXRfbGFiZWwnKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpMThuLnQoJ2ltcG9ydF9maWxlX3dpemFyZC5maWxlX2lucHV0X3BsYWNlaG9sZGVyJywge1xuICAgICAgICAgICAgICB0eXBlOiBhY2NlcHRUeXBlLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICB2YWx1ZT17dXBsb2FkaW5nRmlsZS5maWxlPy5uYW1lIHx8ICcnfVxuICAgICAgICAgICAgbWFuZGF0b3J5PXt0cnVlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgYWNjZXB0PXtgLiR7YWNjZXB0VHlwZX1gfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgaWQ9XCJmaWxlSW5wdXRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVJbnB1dENoYW5nZX1cbiAgICAgICAgICBoaWRkZW49e3RydWV9XG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzLnVwbG9hZEZpbGVCdG59ICR7XG4gICAgICAgICAgICBpc1ZhbGlkID8gc3R5bGVzLnVwbG9hZEZpbGVCdG5TZWNvbmRlcnkgOiAnJ1xuICAgICAgICAgIH1gfVxuICAgICAgICAgIGh0bWxGb3I9XCJmaWxlSW5wdXRcIlxuICAgICAgICA+XG4gICAgICAgICAge2kxOG4udCgnaW1wb3J0X2ZpbGVfd2l6YXJkLmZpbGVfaW5wdXRfYnV0dG9uJyl9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPEltcG9ydEJ1dHRvbUJ1dHRvbnNcbiAgICAgICAgbmV4dD17e1xuICAgICAgICAgIGhhbmRsZXI6IGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgICBkaXNhYmxlOiAhaXNWYWxpZCxcbiAgICAgICAgICBsYWJlbDogaTE4bi50KCdpbXBvcnRfZmlsZV93aXphcmQubmV4dF9idXR0b24nKSxcbiAgICAgICAgfX1cbiAgICAgICAgYmFjaz17e1xuICAgICAgICAgIGhhbmRsZXI6IEhhbmRsZUNhbmNsZSxcbiAgICAgICAgICBkaXNhYmxlOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogaTE4bi50KCdpbXBvcnRfZmlsZV93aXphcmQuY2FuY2VsX2J1dHRvbicpLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBWYWxpZGF0aW9uRm9ybTtcbiJdfQ==
@@ -161,10 +161,6 @@ var parseNotificationAdvancedSelection = function parseNotificationAdvancedSelec
161
161
  });
162
162
  selection.set = set;
163
163
  }
164
-
165
- if (selection && selection.set !== undefined && selection.set === null) {
166
- selection.set = [];
167
- }
168
164
  });
169
165
  return notification;
170
166
  };
@@ -241,4 +237,4 @@ var formatNotification = function formatNotification(newNotification) {
241
237
  };
242
238
 
243
239
  exports.formatNotification = formatNotification;
244
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1V0aWxzLnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmaWNhdGlvblR5cGUiLCJvcHRpb24iLCJub3RpZmljYXRpb24iLCJzZXROZXdOb3RpZmljYXRpb24iLCJ2YWx1ZSIsImF2YWlsYWJsZV90eXBlcyIsImZpbmQiLCJ0eXBlIiwicHJldlN0YXRlIiwiaGFuZGxlU2V2ZXJpdGllcyIsImUiLCJ0YXJnZXQiLCJzZXZlcml0eSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsImZvckVhY2giLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhbmRsZVNlbmRWaWEiLCJzZXRNb2RhbERldGFpbHMiLCJhY3Rpb25zIiwib3BlbiIsImluc3RhbmNlIiwiaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlIiwiY2hlY2tlZCIsInBhcnNlZFZhbHVlIiwicHVtcF9vbmx5IiwidmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zIiwic2VsZWN0aW9uIiwicG9pbnQiLCJpZCIsImRlbGV0ZUF0dHJpYnV0ZXMiLCJmb3JtYXRTZW5kVmlhIiwiZm9ybWF0dGVkVmFsdWUiLCJmbGF0IiwicGFyc2VTZXZlcml0aWVzIiwiZm9ybWF0Tm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uQ29weSIsInBhcnNlIiwibm90aWZpY2F0aW9uVG9TYXZlIiwidXNlciIsImFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlcyIsIm5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAiLCJub3ciLCJEYXRlIiwiZ2V0VGltZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QixDQUNwQ0MsTUFEb0MsRUFFcENDLFlBRm9DLEVBR3BDQyxrQkFIb0MsRUFJakM7QUFDSCxNQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csZUFBYixDQUE4QkMsSUFBOUIsQ0FDWixVQUFDQyxJQUFEO0FBQUEsV0FBVUEsSUFBSSxLQUFLTixNQUFNLENBQUNHLEtBQTFCO0FBQUEsR0FEWSxDQUFkO0FBR0EsTUFBSUEsS0FBSixFQUNFRCxrQkFBa0IsQ0FBQyxVQUFDSyxTQUFEO0FBQUEsdUVBQ2RBLFNBRGM7QUFFakJELE1BQUFBLElBQUksRUFBRUg7QUFGVztBQUFBLEdBQUQsQ0FBbEI7QUFJSCxDQWJNOzs7O0FBZUEsSUFBTUssZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUM5QkMsQ0FEOEIsRUFFOUJQLGtCQUY4QixFQUczQjtBQUNILE1BQU1DLEtBQUssR0FBR00sQ0FBQyxDQUFDQyxNQUFGLENBQVNQLEtBQXZCO0FBRUFELEVBQUFBLGtCQUFrQixDQUFDLFVBQUNLLFNBQUQ7QUFBQSx1RUFDZEEsU0FEYztBQUVqQkksTUFBQUEsUUFBUSxFQUFFUjtBQUZPO0FBQUEsR0FBRCxDQUFsQjtBQUlELENBVk07Ozs7QUFXQSxJQUFNUyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCLENBQ3BDSCxDQURvQyxFQUtqQztBQUFBLE1BSEhULE1BR0csdUVBSFcsRUFHWDtBQUFBLE1BRkhhLGVBRUc7QUFBQSxNQURIWCxrQkFDRztBQUNILE1BQU1DLEtBQUssbUNBQVFVLGVBQWUsQ0FBQ0MsaUJBQXhCLENBQVg7QUFDQUMsRUFBQUEscUJBQXFCLENBQ25CWixLQURtQixF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QUFHO0FBQ3ZCQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsd0JBQXdCLGtDQUNuQkosZ0JBRG1CO0FBRHBCO0FBRGlCLEdBQXpCO0FBUUEsTUFBTUsseUJBQXlCLEdBQUc7QUFDaENGLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSx3QkFBd0IsRUFBRTtBQUR0QjtBQUQwQixHQUFsQztBQU1BLE1BQU1FLEdBQUcsR0FBRyxJQUFJQyxJQUFKLEVBQVo7QUFDQUYsRUFBQUEseUJBQXlCLENBQUNGLElBQTFCLENBQStCQyx3QkFBL0IsV0FBMkRFLEdBQUcsQ0FBQ0UsT0FBSixFQUEzRCxLQUNFTixrQkFBa0IsQ0FBQ0MsSUFBbkIsQ0FBd0JDLHdCQUQxQjtBQUdBLFNBQU9DLHlCQUFQO0FBQ0QsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uVHlwZSA9IChcbiAgb3B0aW9uLFxuICBub3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IG5vdGlmaWNhdGlvbi5hdmFpbGFibGVfdHlwZXMhLmZpbmQoXG4gICAgKHR5cGUpID0+IHR5cGUgPT09IG9wdGlvbi52YWx1ZSxcbiAgKTtcbiAgaWYgKHZhbHVlKVxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdHlwZTogdmFsdWUsXG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNldmVyaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+LFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcblxuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgc2V2ZXJpdHk6IHZhbHVlLFxuICB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldChcbiAgICB2YWx1ZSxcbiAgICAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIGUsXG4gICAgb3B0aW9uLFxuICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTb3VyY2VzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5wb2ludHMgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAncG9pbnRzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVRhZ3MgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLnRhZ3MgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAndGFncycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5zb3JzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5zZW5zb3JzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3NlbnNvcnMnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VsZWN0aW9uQW5kU2V0ID0gKFxuICB2YWx1ZSxcbiAgZmllbGQ6IHN0cmluZyxcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBpZiAoZSAhPT0gdW5kZWZpbmVkICYmIGUudGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICBvcHRpb24uc2V0LmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9uLnZhbHVlKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IG9wdGlvbi5zZWxlY3Rpb25fdHlwZTtcbiAgICBpZiAodmFsdWUuc2V0ID09PSBudWxsKSB7XG4gICAgICB2YWx1ZS5zZXQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUuc2V0ID0gc2V0O1xuICAgIH1cblxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VuZFZpYSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICBzZXRNb2RhbERldGFpbHMsXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5hY3Rpb25zIH07XG4gIGNvbnN0IGZpZWxkID0gZS50YXJnZXQudmFsdWU7XG4gIHZhbHVlW2ZpZWxkXSA9ICF2YWx1ZVtmaWVsZF07XG5cbiAgaWYgKGZpZWxkID09PSAnc21zJyB8fCBmaWVsZCA9PT0gJ3RlbGVncmFtJykge1xuICAgIHNldE1vZGFsRGV0YWlscyh7IG9wZW46IHRydWUsIGluc3RhbmNlOiBmaWVsZCB9KTtcbiAgfVxuXG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBhY3Rpb25zOiB2YWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gIGxldCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gJzEnIDogJzAnO1xuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgcHVtcF9vbmx5OiBwYXJzZWRWYWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0ID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdmFsdWUgIT09IHVuZGVmaW5lZFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24gPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIElmIHRoZXJlJ2xsIGJlIGEgZnV0dXJlIHJlcXVpcmVtZW50IHRvIGFkZCBhbm90aGVyIEFkdmFuY2VkU2VsZWN0aW9uIGZpZWxkcywgcGxlYXNlIGFkZCB0aGVtIHJpZ2h0IGJlbG93XG5cbiAgbGV0IHBvaW50cyA9IG5vdGlmaWNhdGlvbi5wb2ludHM7XG4gIGxldCB3YXRlckF1dGhvcml0aWVzID0gbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzO1xuICBsZXQgdGFncyA9IG5vdGlmaWNhdGlvbi50YWdzO1xuICBsZXQgc2Vuc29ycyA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuXG4gIGNvbnN0IGFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zID0gW3BvaW50cywgd2F0ZXJBdXRob3JpdGllcywgdGFncywgc2Vuc29yc107XG5cbiAgYWxsX2FkdmFuY2VkX3NlbGVjdGlvbnMuZm9yRWFjaCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QoXG4gICAgICAgIHNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkICYmIHNlbGVjdGlvbi5zZXQgIT09IG51bGwgJiYgc2VsZWN0aW9uLnNldFswXSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICAgIHNlbGVjdGlvbi5zZXQuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkocG9pbnQuaWQpKTtcbiAgICAgIH0pO1xuXG4gICAgICBzZWxlY3Rpb24uc2V0ID0gc2V0O1xuICAgIH1cblxuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnNldCAhPT0gdW5kZWZpbmVkICYmIHNlbGVjdGlvbi5zZXQgPT09IG51bGwpIHtcbiAgICAgIHNlbGVjdGlvbi5zZXQgPSBbXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQXR0cmlidXRlcyA9IChub3RpZmljYXRpb24sIG5ld05vdGlmaWNhdGlvbikgPT4ge1xuICAvLyBNYWtlIHN1cmUgdG8gcmVtb3ZlIHVubmVjZXNzYXJ5IGF0dHJpYnV0ZXMgZm9yIHNvbWUgQWxlcnRDb25maWdzXG5cbiAgZGVsZXRlIG5vdGlmaWNhdGlvbi5hdmFpbGFibGVfdHlwZXM7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnNldmVyaXR5O1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdQb2xsdXRpb25BbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi5wdW1wX29ubHk7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSA9PT0gJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnBvaW50cztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24udGFncztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnNlbnNvcnM7XG5cbiAgbm90aWZpY2F0aW9uWydhbGVydF90eXBlJ10gPSBub3RpZmljYXRpb24udHlwZTtcbiAgbm90aWZpY2F0aW9uWydfZGVzdHJveSddID0gMDtcblxuICByZXR1cm4gbm90aWZpY2F0aW9uO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFNlbmRWaWEgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBmb3JtYXR0ZWRWYWx1ZTogYW55ID0gW107XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1sndGVsZWdyYW0nXSlcbiAgICBmb3JtYXR0ZWRWYWx1ZS5wdXNoKFsnU2VuZFRlbGVncmFtQWN0aW9uJywgJzAnXSk7XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1snZW1haWwnXSlcbiAgICBmb3JtYXR0ZWRWYWx1ZS5wdXNoKFsnU2VuZEVtYWlsQWN0aW9uJywgJzAnXSk7XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1snc21zJ10pIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kU21zQWN0aW9uJywgJzAnXSk7XG4gIG5vdGlmaWNhdGlvbi5hY3Rpb25zID0gZm9ybWF0dGVkVmFsdWUuZmxhdCgpO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VTZXZlcml0aWVzID0gKG5vdGlmaWNhdGlvbikgPT4ge1xuICBsZXQgdmFsdWU7XG4gIHN3aXRjaCAobm90aWZpY2F0aW9uLnNldmVyaXR5KSB7XG4gICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgIHZhbHVlID0gJzAnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaGlnaCc6XG4gICAgICB2YWx1ZSA9ICcxJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2V4dHJlbWUnOlxuICAgICAgdmFsdWUgPSAnMic7XG4gIH1cbiAgbm90aWZpY2F0aW9uLnNldmVyaXR5ID0gdmFsdWU7XG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Tm90aWZpY2F0aW9uID0gKG5ld05vdGlmaWNhdGlvbikgPT4ge1xuICBsZXQgbm90aWZpY2F0aW9uQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3Tm90aWZpY2F0aW9uKSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZm9ybWF0U2VuZFZpYShub3RpZmljYXRpb25Db3B5KTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IGRlbGV0ZUF0dHJpYnV0ZXMobm90aWZpY2F0aW9uQ29weSwgbmV3Tm90aWZpY2F0aW9uKTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IHBhcnNlU2V2ZXJpdGllcyhub3RpZmljYXRpb25Db3B5KTtcblxuICBsZXQgbm90aWZpY2F0aW9uVG9TYXZlID0ge1xuICAgIHVzZXI6IHtcbiAgICAgIGFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlczoge1xuICAgICAgICAuLi5ub3RpZmljYXRpb25Db3B5LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXNbYCR7bm93LmdldFRpbWUoKX1gXSA9XG4gICAgbm90aWZpY2F0aW9uVG9TYXZlLnVzZXIuYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzO1xuXG4gIHJldHVybiBub3RpZmljYXRpb25XaXRoVGltZVN0YW1wO1xufTtcbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1V0aWxzLnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmaWNhdGlvblR5cGUiLCJvcHRpb24iLCJub3RpZmljYXRpb24iLCJzZXROZXdOb3RpZmljYXRpb24iLCJ2YWx1ZSIsImF2YWlsYWJsZV90eXBlcyIsImZpbmQiLCJ0eXBlIiwicHJldlN0YXRlIiwiaGFuZGxlU2V2ZXJpdGllcyIsImUiLCJ0YXJnZXQiLCJzZXZlcml0eSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsImZvckVhY2giLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhbmRsZVNlbmRWaWEiLCJzZXRNb2RhbERldGFpbHMiLCJhY3Rpb25zIiwib3BlbiIsImluc3RhbmNlIiwiaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlIiwiY2hlY2tlZCIsInBhcnNlZFZhbHVlIiwicHVtcF9vbmx5IiwidmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zIiwic2VsZWN0aW9uIiwicG9pbnQiLCJpZCIsImRlbGV0ZUF0dHJpYnV0ZXMiLCJmb3JtYXRTZW5kVmlhIiwiZm9ybWF0dGVkVmFsdWUiLCJmbGF0IiwicGFyc2VTZXZlcml0aWVzIiwiZm9ybWF0Tm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uQ29weSIsInBhcnNlIiwibm90aWZpY2F0aW9uVG9TYXZlIiwidXNlciIsImFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlcyIsIm5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAiLCJub3ciLCJEYXRlIiwiZ2V0VGltZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QixDQUNwQ0MsTUFEb0MsRUFFcENDLFlBRm9DLEVBR3BDQyxrQkFIb0MsRUFJakM7QUFDSCxNQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csZUFBYixDQUE4QkMsSUFBOUIsQ0FDWixVQUFDQyxJQUFEO0FBQUEsV0FBVUEsSUFBSSxLQUFLTixNQUFNLENBQUNHLEtBQTFCO0FBQUEsR0FEWSxDQUFkO0FBR0EsTUFBSUEsS0FBSixFQUNFRCxrQkFBa0IsQ0FBQyxVQUFDSyxTQUFEO0FBQUEsdUVBQ2RBLFNBRGM7QUFFakJELE1BQUFBLElBQUksRUFBRUg7QUFGVztBQUFBLEdBQUQsQ0FBbEI7QUFJSCxDQWJNOzs7O0FBZUEsSUFBTUssZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUM5QkMsQ0FEOEIsRUFFOUJQLGtCQUY4QixFQUczQjtBQUNILE1BQU1DLEtBQUssR0FBR00sQ0FBQyxDQUFDQyxNQUFGLENBQVNQLEtBQXZCO0FBRUFELEVBQUFBLGtCQUFrQixDQUFDLFVBQUNLLFNBQUQ7QUFBQSx1RUFDZEEsU0FEYztBQUVqQkksTUFBQUEsUUFBUSxFQUFFUjtBQUZPO0FBQUEsR0FBRCxDQUFsQjtBQUlELENBVk07Ozs7QUFXQSxJQUFNUyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCLENBQ3BDSCxDQURvQyxFQUtqQztBQUFBLE1BSEhULE1BR0csdUVBSFcsRUFHWDtBQUFBLE1BRkhhLGVBRUc7QUFBQSxNQURIWCxrQkFDRztBQUNILE1BQU1DLEtBQUssbUNBQVFVLGVBQWUsQ0FBQ0MsaUJBQXhCLENBQVg7QUFDQUMsRUFBQUEscUJBQXFCLENBQ25CWixLQURtQixF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RTtBQUR0QjtBQUQwQixHQUFsQztBQU1BLE1BQU1FLEdBQUcsR0FBRyxJQUFJQyxJQUFKLEVBQVo7QUFDQUYsRUFBQUEseUJBQXlCLENBQUNGLElBQTFCLENBQStCQyx3QkFBL0IsV0FBMkRFLEdBQUcsQ0FBQ0UsT0FBSixFQUEzRCxLQUNFTixrQkFBa0IsQ0FBQ0MsSUFBbkIsQ0FBd0JDLHdCQUQxQjtBQUdBLFNBQU9DLHlCQUFQO0FBQ0QsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uVHlwZSA9IChcbiAgb3B0aW9uLFxuICBub3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IG5vdGlmaWNhdGlvbi5hdmFpbGFibGVfdHlwZXMhLmZpbmQoXG4gICAgKHR5cGUpID0+IHR5cGUgPT09IG9wdGlvbi52YWx1ZSxcbiAgKTtcbiAgaWYgKHZhbHVlKVxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdHlwZTogdmFsdWUsXG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNldmVyaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+LFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcblxuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgc2V2ZXJpdHk6IHZhbHVlLFxuICB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldChcbiAgICB2YWx1ZSxcbiAgICAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIGUsXG4gICAgb3B0aW9uLFxuICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTb3VyY2VzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5wb2ludHMgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAncG9pbnRzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVRhZ3MgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLnRhZ3MgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAndGFncycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5zb3JzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5zZW5zb3JzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3NlbnNvcnMnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VsZWN0aW9uQW5kU2V0ID0gKFxuICB2YWx1ZSxcbiAgZmllbGQ6IHN0cmluZyxcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBpZiAoZSAhPT0gdW5kZWZpbmVkICYmIGUudGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICBvcHRpb24uc2V0LmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9uLnZhbHVlKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IG9wdGlvbi5zZWxlY3Rpb25fdHlwZTtcbiAgICBpZiAodmFsdWUuc2V0ID09PSBudWxsKSB7XG4gICAgICB2YWx1ZS5zZXQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUuc2V0ID0gc2V0O1xuICAgIH1cblxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VuZFZpYSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICBzZXRNb2RhbERldGFpbHMsXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5hY3Rpb25zIH07XG4gIGNvbnN0IGZpZWxkID0gZS50YXJnZXQudmFsdWU7XG4gIHZhbHVlW2ZpZWxkXSA9ICF2YWx1ZVtmaWVsZF07XG5cbiAgaWYgKGZpZWxkID09PSAnc21zJyB8fCBmaWVsZCA9PT0gJ3RlbGVncmFtJykge1xuICAgIHNldE1vZGFsRGV0YWlscyh7IG9wZW46IHRydWUsIGluc3RhbmNlOiBmaWVsZCB9KTtcbiAgfVxuXG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBhY3Rpb25zOiB2YWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gIGxldCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gJzEnIDogJzAnO1xuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgcHVtcF9vbmx5OiBwYXJzZWRWYWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0ID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdmFsdWUgIT09IHVuZGVmaW5lZFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24gPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIElmIHRoZXJlJ2xsIGJlIGEgZnV0dXJlIHJlcXVpcmVtZW50IHRvIGFkZCBhbm90aGVyIEFkdmFuY2VkU2VsZWN0aW9uIGZpZWxkcywgcGxlYXNlIGFkZCB0aGVtIHJpZ2h0IGJlbG93XG5cbiAgbGV0IHBvaW50cyA9IG5vdGlmaWNhdGlvbi5wb2ludHM7XG4gIGxldCB3YXRlckF1dGhvcml0aWVzID0gbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzO1xuICBsZXQgdGFncyA9IG5vdGlmaWNhdGlvbi50YWdzO1xuICBsZXQgc2Vuc29ycyA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuXG4gIGNvbnN0IGFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zID0gW3BvaW50cywgd2F0ZXJBdXRob3JpdGllcywgdGFncywgc2Vuc29yc107XG5cbiAgYWxsX2FkdmFuY2VkX3NlbGVjdGlvbnMuZm9yRWFjaCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QoXG4gICAgICAgIHNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkICYmIHNlbGVjdGlvbi5zZXQgIT09IG51bGwgJiYgc2VsZWN0aW9uLnNldFswXSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICAgIHNlbGVjdGlvbi5zZXQuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkocG9pbnQuaWQpKTtcbiAgICAgIH0pO1xuXG4gICAgICBzZWxlY3Rpb24uc2V0ID0gc2V0O1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVBdHRyaWJ1dGVzID0gKG5vdGlmaWNhdGlvbiwgbmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0byByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlcyBmb3Igc29tZSBBbGVydENvbmZpZ3NcblxuICBkZWxldGUgbm90aWZpY2F0aW9uLmF2YWlsYWJsZV90eXBlcztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnUG9sbHV0aW9uQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2V2ZXJpdHk7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnB1bXBfb25seTtcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi50YWdzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBub3RpZmljYXRpb25bJ2FsZXJ0X3R5cGUnXSA9IG5vdGlmaWNhdGlvbi50eXBlO1xuICBub3RpZmljYXRpb25bJ19kZXN0cm95J10gPSAwO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0U2VuZFZpYSA9IChub3RpZmljYXRpb24pID0+IHtcbiAgbGV0IGZvcm1hdHRlZFZhbHVlOiBhbnkgPSBbXTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWyd0ZWxlZ3JhbSddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kVGVsZWdyYW1BY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydlbWFpbCddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kRW1haWxBY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydzbXMnXSkgZm9ybWF0dGVkVmFsdWUucHVzaChbJ1NlbmRTbXNBY3Rpb24nLCAnMCddKTtcbiAgbm90aWZpY2F0aW9uLmFjdGlvbnMgPSBmb3JtYXR0ZWRWYWx1ZS5mbGF0KCk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNldmVyaXRpZXMgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCB2YWx1ZTtcbiAgc3dpdGNoIChub3RpZmljYXRpb24uc2V2ZXJpdHkpIHtcbiAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgdmFsdWUgPSAnMCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdoaWdoJzpcbiAgICAgIHZhbHVlID0gJzEnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXh0cmVtZSc6XG4gICAgICB2YWx1ZSA9ICcyJztcbiAgfVxuICBub3RpZmljYXRpb24uc2V2ZXJpdHkgPSB2YWx1ZTtcbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXROb3RpZmljYXRpb24gPSAobmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBub3RpZmljYXRpb25Db3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdOb3RpZmljYXRpb24pKTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24obm90aWZpY2F0aW9uQ29weSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBmb3JtYXRTZW5kVmlhKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZGVsZXRlQXR0cmlidXRlcyhub3RpZmljYXRpb25Db3B5LCBuZXdOb3RpZmljYXRpb24pO1xuICBub3RpZmljYXRpb25Db3B5ID0gcGFyc2VTZXZlcml0aWVzKG5vdGlmaWNhdGlvbkNvcHkpO1xuXG4gIGxldCBub3RpZmljYXRpb25Ub1NhdmUgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7XG4gICAgICAgIC4uLm5vdGlmaWNhdGlvbkNvcHksXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcCA9IHtcbiAgICB1c2VyOiB7XG4gICAgICBhbGVydF9jb25maWdzX2F0dHJpYnV0ZXM6IHt9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgbm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcC51c2VyLmFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlc1tgJHtub3cuZ2V0VGltZSgpfWBdID1cbiAgICBub3RpZmljYXRpb25Ub1NhdmUudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXM7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXA7XG59O1xuIl19