@kando-env/kando-ui 1.2.466-alpha.7 → 1.2.466-alpha.8

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 (719) hide show
  1. package/lib/Router.js +76 -37
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +35 -24
  3. package/lib/Widgets/EventsRow/EventsRow.js +39 -26
  4. package/lib/Widgets/Map/GraphUtils.js +6 -4
  5. package/lib/Widgets/Map/Map.js +138 -99
  6. package/lib/Widgets/Map/MapUtils.js +101 -83
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +84 -57
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +25 -23
  9. package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +5 -5
  11. package/lib/Widgets/Map/edges/Edge.js +74 -50
  12. package/lib/Widgets/Map/edges/Edges.js +24 -19
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +45 -24
  14. package/lib/Widgets/Map/events/Event.js +14 -15
  15. package/lib/Widgets/Map/events/EventIndicator.js +63 -66
  16. package/lib/Widgets/Map/events/EventPath.js +34 -33
  17. package/lib/Widgets/Map/events/EventUtils.js +78 -54
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +19 -17
  19. package/lib/Widgets/Map/events/PointOfEvent.js +36 -27
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +39 -29
  21. package/lib/Widgets/Map/events/Snail.js +11 -10
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +79 -77
  23. package/lib/Widgets/Map/map/FloatingGraph.js +21 -24
  24. package/lib/Widgets/Map/map/GraphDateButton.js +20 -27
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +14 -14
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -17
  27. package/lib/Widgets/Map/points/PointIcon.js +22 -23
  28. package/lib/Widgets/Map/points/PointMarker.js +88 -68
  29. package/lib/Widgets/Map/points/PointMarkers.js +36 -30
  30. package/lib/Widgets/Map/points/PointUtils.js +90 -76
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +43 -25
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -11
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +14 -11
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +6 -4
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +60 -28
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +4 -3
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +6 -4
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +9 -12
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +65 -33
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +20 -15
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +20 -15
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +10 -9
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +11 -13
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +6 -4
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +3 -2
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +6 -4
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +34 -23
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +32 -20
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +5 -7
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -7
  53. package/lib/Widgets/MostPolluting/assets/index.js +12 -12
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +14 -20
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +31 -36
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +54 -49
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +40 -44
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -28
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +49 -53
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +6 -4
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +6 -8
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +39 -30
  64. package/lib/Widgets/PotentialImpactSummary/index.js +28 -20
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +54 -48
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +13 -8
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +8 -10
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +18 -23
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +31 -34
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -28
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +38 -35
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +14 -10
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +7 -4
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +21 -24
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +14 -12
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +25 -25
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +21 -26
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +36 -23
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +31 -30
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +5 -3
  84. package/lib/assets/icons/TopNavbar/index.js +7 -7
  85. package/lib/assets/icons/TrendSvg.js +7 -7
  86. package/lib/assets/icons/index.js +16 -16
  87. package/lib/assets/icons/kandoStepper/index.js +7 -7
  88. package/lib/assets/icons/siteTypes/index.js +2 -2
  89. package/lib/components/ApplyButton/ApplyButton.js +11 -10
  90. package/lib/components/ApplyButton/index.js +4 -3
  91. package/lib/components/Backdrop/Backdrop.js +5 -7
  92. package/lib/components/ContentLoader/ContentLoader.js +10 -12
  93. package/lib/components/ContentLoader/index.js +2 -2
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -12
  95. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +9 -5
  96. package/lib/components/CustomInputs/DoubleTabs/styles.js +16 -21
  97. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +20 -12
  98. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -7
  99. package/lib/components/CustomInputs/Search/Search.js +60 -37
  100. package/lib/components/CustomInputs/Search/index.js +4 -3
  101. package/lib/components/CustomInputs/Select/Select.js +55 -38
  102. package/lib/components/CustomInputs/Select/Select.stories.js +10 -6
  103. package/lib/components/DamageType/DamageType.js +60 -35
  104. package/lib/components/DamageType/index.js +4 -3
  105. package/lib/components/DataLoaderError/DataLoaderError.js +7 -9
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +13 -11
  107. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +73 -72
  108. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -25
  109. package/lib/components/DischargeHeatmap/HighchartsOptions.js +16 -12
  110. package/lib/components/DischargeHeatmap/index.js +4 -3
  111. package/lib/components/DischargeHeatmap/mocks/handlers.js +4 -3
  112. package/lib/components/DischargeHeatmap/popupText.js +12 -11
  113. package/lib/components/DischargeHeatmap/titles.js +6 -4
  114. package/lib/components/DischargeHeatmap/types.js +1 -1
  115. package/lib/components/ErrorBoundary.js +42 -27
  116. package/lib/components/Events/Events.js +48 -29
  117. package/lib/components/Events/index.js +4 -3
  118. package/lib/components/Graph/Graph.js +95 -74
  119. package/lib/components/Graph/index.js +4 -3
  120. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +24 -19
  121. package/lib/components/Header/Breadcrumbs/index.js +4 -3
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.js +28 -18
  123. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +9 -5
  124. package/lib/components/Header/DoubleTabs/styles.js +8 -5
  125. package/lib/components/Header/Header.js +3 -3
  126. package/lib/components/Header/Header.stories.js +9 -5
  127. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +36 -24
  128. package/lib/components/Header/InfoBar/InfoBar.js +102 -69
  129. package/lib/components/Header/InfoBar/Search/Control.js +10 -11
  130. package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -8
  131. package/lib/components/Header/InfoBar/Search/Search.js +24 -17
  132. package/lib/components/Header/InfoBar/Search/SearchContainer.js +35 -21
  133. package/lib/components/Header/InfoBar/Search/index.js +4 -3
  134. package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -36
  135. package/lib/components/Header/InfoBar/TimeFilter.js +17 -13
  136. package/lib/components/Header/InfoBar/types.js +1 -1
  137. package/lib/components/Header/KandoNavbar/KandoNavbar.js +93 -66
  138. package/lib/components/Header/KandoNavbar/index.js +4 -3
  139. package/lib/components/Header/Slideshow/Slideshow.js +91 -67
  140. package/lib/components/Header/Slideshow/index.js +4 -3
  141. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +5 -7
  142. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +24 -22
  143. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +17 -17
  144. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +42 -36
  145. package/lib/components/Header/Toolbar/Toolbar.js +76 -56
  146. package/lib/components/InfoBar/InfoBar.js +24 -10
  147. package/lib/components/InfoBar/InfoBar.stories.js +9 -5
  148. package/lib/components/KandoModal/KandoModal.js +40 -24
  149. package/lib/components/KandoModal/index.js +4 -3
  150. package/lib/components/Link.js +8 -9
  151. package/lib/components/Links/CustomRedirect/CustomRedirect.js +7 -10
  152. package/lib/components/Links/StyledLink/StyledLink.js +20 -17
  153. package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -12
  154. package/lib/components/LiveEvents/CarouselSlide.js +10 -11
  155. package/lib/components/LiveEvents/LiveEvents.js +6 -7
  156. package/lib/components/LiveEvents/index.js +4 -3
  157. package/lib/components/LoaderByPercent/LoaderByPercent.js +30 -37
  158. package/lib/components/Map/Map.js +25 -20
  159. package/lib/components/Map/index.js +4 -3
  160. package/lib/components/Modal/Modal.js +10 -10
  161. package/lib/components/NarrowHeader.js +32 -18
  162. package/lib/components/PointInfo/PointInfo.js +19 -20
  163. package/lib/components/PointInfo/index.js +4 -3
  164. package/lib/components/PopupModal/PopupModal.js +17 -13
  165. package/lib/components/PopupModal/PopupModal.stories.js +24 -17
  166. package/lib/components/Sector/Sector.js +40 -34
  167. package/lib/components/Sector/Sector.test.js +24 -24
  168. package/lib/components/Sector/SectorIconsNew.js +19 -26
  169. package/lib/components/Sector/index.js +4 -3
  170. package/lib/components/Sector/sectorIcons.js +5 -4
  171. package/lib/components/SevereEvent/Eta/Eta.js +54 -49
  172. package/lib/components/SevereEvent/Eta/styles.js +8 -11
  173. package/lib/components/SevereEvent/SevereEvent.js +35 -27
  174. package/lib/components/Spinner/Spinner.js +8 -8
  175. package/lib/components/Spinner/Spinner.stories.js +11 -6
  176. package/lib/components/Spinner/index.js +4 -3
  177. package/lib/components/Spinner/styles.js +16 -21
  178. package/lib/components/Tabs/Tabs.js +31 -18
  179. package/lib/components/Tabs/Tabs.stories.js +10 -6
  180. package/lib/components/Tabs/assets/index.js +6 -6
  181. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +18 -13
  182. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +45 -32
  183. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +34 -20
  184. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +4 -3
  185. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +22 -17
  186. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +14 -13
  187. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +4 -3
  188. package/lib/components/TimeRangeSelector/TimeRangeList.js +27 -24
  189. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +27 -17
  190. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -26
  191. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +10 -6
  192. package/lib/components/TimeRangeSelector/constants.js +5 -3
  193. package/lib/components/TimeRangeSelector/index.js +4 -3
  194. package/lib/components/Toggle/Toggle.js +18 -11
  195. package/lib/components/Toggle/index.js +4 -3
  196. package/lib/components/TrendGraph/TrendGraph.js +42 -24
  197. package/lib/components/TrendGraph/index.js +4 -3
  198. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +33 -26
  199. package/lib/components/TrendGraphNVL/index.js +4 -3
  200. package/lib/development-environment/index.js +13 -9
  201. package/lib/development-environment/mock/browser.js +5 -2
  202. package/lib/development-environment/mock/get.js +10 -8
  203. package/lib/development-environment/mock/handlers.js +3 -2
  204. package/lib/development-environment/mock/mockBus.js +5 -4
  205. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +3 -2
  206. package/lib/development-environment/mock/mockObjects/areaInformation.js +3 -2
  207. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +3 -2
  208. package/lib/development-environment/mock/mockObjects/areaSitesData.js +3 -2
  209. package/lib/development-environment/mock/mockObjects/areasJson.js +3 -2
  210. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +3 -2
  211. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +3 -2
  212. package/lib/development-environment/mock/mockObjects/data-menuData.js +3 -2
  213. package/lib/development-environment/mock/mockObjects/data-search.js +3 -2
  214. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +3 -2
  215. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +3 -2
  216. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +3 -2
  217. package/lib/development-environment/mock/mockObjects/eventsJson.js +3 -2
  218. package/lib/development-environment/mock/mockObjects/metascore.js +3 -2
  219. package/lib/development-environment/mock/mockObjects/permissionsJson.js +3 -2
  220. package/lib/development-environment/mock/mockObjects/pointsJson.js +3 -2
  221. package/lib/development-environment/mock/mockObjects/site-info.js +3 -2
  222. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +3 -2
  223. package/lib/development-environment/togly/ToglyDashboard.js +23 -13
  224. package/lib/development-environment/togly/ToglyItem.js +31 -24
  225. package/lib/development-environment/togly/flags.js +1 -1
  226. package/lib/development-environment/togly/init.js +4 -4
  227. package/lib/development-environment/togly/macro.js +9 -13
  228. package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
  229. package/lib/development-environment/togly/useLocalStorage.js +18 -13
  230. package/lib/hooks/useApi.js +56 -20
  231. package/lib/hooks/useApiWithDashboardQuery.js +43 -23
  232. package/lib/hooks/useClickOutside.js +5 -4
  233. package/lib/hooks/useInitializeHeaders.js +6 -6
  234. package/lib/hooks/useKandoFetch.js +31 -17
  235. package/lib/hooks/useMap.js +37 -25
  236. package/lib/hooks/useNavContext.js +26 -22
  237. package/lib/hooks/useQueryURL.js +3 -2
  238. package/lib/hooks/useRemoveExistingLayers.js +8 -7
  239. package/lib/hooks/useUpdateEventBodyTail.js +19 -14
  240. package/lib/hooks/useUserTimeZone.js +31 -34
  241. package/lib/hooks/useUserTimeZone.test.js +23 -19
  242. package/lib/hooks/useWindowSize.js +14 -7
  243. package/lib/index.js +13 -11
  244. package/lib/macros/getVersion.js +2 -2
  245. package/lib/models/IAction.js +1 -1
  246. package/lib/models/IAppState.js +1 -1
  247. package/lib/pages/AreaPage/AreaPage.js +68 -34
  248. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -15
  249. package/lib/pages/AreaPage/Dashboard/Dashboard.js +27 -25
  250. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +23 -14
  251. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +5 -5
  252. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  253. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +10 -10
  254. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +6 -4
  255. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  256. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +3 -2
  257. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +8 -5
  258. package/lib/pages/AssessmentPage/AssessmentPage.js +46 -38
  259. package/lib/pages/CannyWidget/Feedback.js +16 -14
  260. package/lib/pages/CovidPage/CovidPage.js +16 -9
  261. package/lib/pages/CovidPage/components/Body.js +30 -26
  262. package/lib/pages/CovidPage/components/Map.js +40 -28
  263. package/lib/pages/CovidPage/components/Sidebar.js +16 -15
  264. package/lib/pages/CovidPage/components/Summary.js +29 -20
  265. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +33 -26
  266. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +4 -3
  267. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +76 -52
  268. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +4 -3
  269. package/lib/pages/CovidPage/components/areas/Area.js +36 -24
  270. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +46 -45
  271. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +36 -32
  272. package/lib/pages/CovidPage/components/areas/AreasList.js +42 -29
  273. package/lib/pages/CovidPage/components/areas/Sort.js +17 -12
  274. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  275. package/lib/pages/DashboardMap/AreaCard.js +27 -27
  276. package/lib/pages/DashboardMap/AssessmentIcon.js +7 -8
  277. package/lib/pages/DashboardMap/Capacity.js +77 -28
  278. package/lib/pages/DashboardMap/FactoryCard.js +24 -28
  279. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -6
  280. package/lib/pages/DashboardMap/List.js +65 -55
  281. package/lib/pages/DashboardMap/ListContext.js +19 -14
  282. package/lib/pages/DashboardMap/Loader.js +3 -3
  283. package/lib/pages/DashboardMap/SeverityBadge.js +24 -16
  284. package/lib/pages/DashboardMap/WWTPMap.js +71 -57
  285. package/lib/pages/DashboardMap/WaterDischarge.js +9 -9
  286. package/lib/pages/DashboardMap/Widget.js +67 -48
  287. package/lib/pages/DashboardMap/index.js +4 -3
  288. package/lib/pages/DashboardMap/utils.js +60 -41
  289. package/lib/pages/EventsPage/Body/Body.js +12 -15
  290. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +20 -17
  291. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -16
  292. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +9 -10
  293. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +10 -13
  294. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +31 -22
  295. package/lib/pages/EventsPage/DragAndDropArea/index.js +4 -3
  296. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +38 -30
  297. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +23 -14
  298. package/lib/pages/EventsPage/EventsPage.js +17 -10
  299. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +40 -26
  300. package/lib/pages/EventsPage/events/MoreInfo.js +19 -18
  301. package/lib/pages/EventsPage/events/Sidebar.js +11 -14
  302. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +10 -9
  303. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +24 -19
  304. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +4 -3
  305. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +38 -31
  306. package/lib/pages/EventsPage/events/event_info/EventDetails.js +32 -34
  307. package/lib/pages/EventsPage/events/event_info/EventInfo.js +60 -50
  308. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +5 -5
  309. package/lib/pages/EventsPage/events/event_info/EventSection.js +21 -18
  310. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +39 -44
  311. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +50 -39
  312. package/lib/pages/EventsPage/events/event_info/Header/Header.js +7 -8
  313. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +34 -29
  314. package/lib/pages/EventsPage/events/event_info/Header/index.js +4 -3
  315. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +7 -6
  316. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +39 -30
  317. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +9 -6
  318. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +15 -14
  319. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +12 -9
  320. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +4 -3
  321. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +24 -23
  322. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +22 -13
  323. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +6 -7
  324. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +4 -3
  325. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +12 -13
  326. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +28 -22
  327. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +4 -3
  328. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +10 -13
  329. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +9 -8
  330. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +4 -3
  331. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +9 -9
  332. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +5 -4
  333. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +11 -13
  334. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +5 -7
  335. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +14 -11
  336. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +6 -7
  337. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +8 -9
  338. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +8 -9
  339. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +7 -8
  340. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +12 -13
  341. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +19 -18
  342. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +7 -7
  343. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +8 -9
  344. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +18 -19
  345. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +7 -6
  346. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +12 -13
  347. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +19 -23
  348. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +11 -12
  349. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +7 -8
  350. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +4 -3
  351. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +6 -4
  352. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +40 -25
  353. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +39 -30
  354. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +12 -13
  355. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +20 -17
  356. package/lib/pages/EventsPage/events/event_info/sources/Source.js +31 -27
  357. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +27 -22
  358. package/lib/pages/EventsPage/events/event_info/styles.js +15 -21
  359. package/lib/pages/EventsPage/events/events_list/EventItem.js +21 -18
  360. package/lib/pages/EventsPage/events/events_list/EventUtils.js +11 -11
  361. package/lib/pages/EventsPage/events/events_list/EventsList.js +136 -111
  362. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +58 -41
  363. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +135 -90
  364. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +73 -54
  365. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +44 -39
  366. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +41 -32
  367. package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +21 -19
  368. package/lib/pages/EventsPage/events/events_list/Sort.js +19 -14
  369. package/lib/pages/ImportFileWizard/FileUploadRespones.js +22 -14
  370. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +8 -9
  371. package/lib/pages/ImportFileWizard/ImportFile.js +25 -21
  372. package/lib/pages/ImportFileWizard/ResponseBody.js +36 -26
  373. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -23
  374. package/lib/pages/ImportFileWizard/ValidationResponse.js +25 -23
  375. package/lib/pages/ImportFileWizard/importFileUtils.js +5 -4
  376. package/lib/pages/ImportFileWizard/index.js +4 -3
  377. package/lib/pages/ImportGisPage/ImportGisContainer.js +27 -22
  378. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +44 -38
  379. package/lib/pages/ImportGisPage/importGisUtils.js +52 -43
  380. package/lib/pages/ImportGisProcess/index.js +18 -14
  381. package/lib/pages/ImportSiteProcess/index.js +18 -14
  382. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +13 -7
  383. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +20 -18
  384. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +4 -4
  385. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +60 -28
  386. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +12 -8
  387. package/lib/pages/NotificationsPage/Notification/Notification.js +13 -17
  388. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  389. package/lib/pages/NotificationsPage/Notifications.mock.js +3 -2
  390. package/lib/pages/NotificationsPage/Notifications.stories.js +10 -6
  391. package/lib/pages/NotificationsPage/NotificationsPage.js +38 -19
  392. package/lib/pages/NotificationsPage/assets/index.js +10 -10
  393. package/lib/pages/NotificationsPageV2/NotificationsPage.js +101 -72
  394. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +65 -95
  395. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +15 -13
  396. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +17 -19
  397. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +22 -18
  398. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +22 -18
  399. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +23 -19
  400. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +71 -82
  401. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +23 -19
  402. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -71
  403. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +94 -80
  404. package/lib/pages/NotificationsPageV2/notificationUtils.js +39 -40
  405. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  406. package/lib/pages/OldSitePage/OldSitePage.js +132 -56
  407. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +10 -6
  408. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
  409. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +7 -9
  410. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +19 -16
  411. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
  412. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +19 -12
  413. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +11 -14
  414. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
  415. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +16 -18
  416. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +64 -51
  417. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
  418. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +54 -29
  419. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +7 -4
  420. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
  421. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  422. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +12 -10
  423. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +23 -27
  424. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +30 -28
  425. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  426. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +8 -5
  427. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +12 -16
  428. package/lib/pages/OperationsPage/LeftPanel.js +55 -35
  429. package/lib/pages/OperationsPage/Map/Map.js +12 -12
  430. package/lib/pages/OperationsPage/Map/useMap.js +64 -52
  431. package/lib/pages/OperationsPage/OperationsContainerPage.js +59 -32
  432. package/lib/pages/OperationsPage/OperationsFilePage.js +12 -10
  433. package/lib/pages/OperationsPage/OperationsUtilityPage.js +6 -5
  434. package/lib/pages/OperationsPage/RightPanel.js +25 -22
  435. package/lib/pages/OperationsPage/index.js +4 -4
  436. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +60 -27
  437. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +25 -19
  438. package/lib/pages/PollutionRiskAssessment/FilterButton.js +10 -11
  439. package/lib/pages/PollutionRiskAssessment/Map.js +42 -38
  440. package/lib/pages/PollutionRiskAssessment/SearchButton.js +10 -11
  441. package/lib/pages/PollutionRiskAssessment/SearchField.js +40 -26
  442. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +16 -16
  443. package/lib/pages/PollutionRiskAssessment/UseCases.js +34 -32
  444. package/lib/pages/PollutionRiskAssessment/index.js +136 -76
  445. package/lib/pages/PollutionRiskAssessment/useMap.js +50 -34
  446. package/lib/pages/PollutionRiskAssessment/utils.js +7 -7
  447. package/lib/pages/ProfilePage/Container.js +4 -3
  448. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +40 -23
  449. package/lib/pages/ProfilePage/ProfilePage.js +205 -106
  450. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +34 -25
  451. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +20 -20
  452. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +30 -27
  453. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +119 -57
  454. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +23 -18
  455. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +13 -14
  456. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +45 -40
  457. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +24 -25
  458. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +19 -18
  459. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +18 -15
  460. package/lib/pages/SamplingsPage/DesktopActions/index.js +4 -3
  461. package/lib/pages/SamplingsPage/NavigationDropdown.js +31 -43
  462. package/lib/pages/SamplingsPage/NewSamplingAction.js +102 -75
  463. package/lib/pages/SamplingsPage/SamplingMobileModal.js +98 -124
  464. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +25 -23
  465. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +25 -36
  466. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +61 -36
  467. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +21 -16
  468. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -10
  469. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +193 -108
  470. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +54 -47
  471. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +39 -42
  472. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +39 -42
  473. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +28 -21
  474. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +6 -4
  475. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +7 -11
  476. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +53 -51
  477. package/lib/pages/SamplingsPage/SamplingsMobileList.js +31 -22
  478. package/lib/pages/SamplingsPage/SamplingsPage.js +33 -25
  479. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +58 -49
  480. package/lib/pages/SamplingsPage/index.js +3 -2
  481. package/lib/pages/SamplingsPage/samplingsPageUtils.js +83 -52
  482. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -7
  483. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +16 -16
  484. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +16 -12
  485. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  486. package/lib/pages/SitePage/PollutionContributor/index.js +4 -3
  487. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
  488. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +15 -15
  489. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -10
  490. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +24 -27
  491. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +16 -12
  492. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +33 -37
  493. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
  494. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +25 -15
  495. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +11 -14
  496. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
  497. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +16 -18
  498. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +71 -58
  499. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
  500. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +27 -15
  501. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +9 -5
  502. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
  503. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -10
  504. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +40 -30
  505. package/lib/pages/SitePage/SamplingParameters/body/index.js +4 -3
  506. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +12 -11
  507. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +12 -10
  508. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +54 -54
  509. package/lib/pages/SitePage/SamplingParameters/dataParser.js +41 -32
  510. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
  511. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  512. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +8 -5
  513. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +12 -16
  514. package/lib/pages/SitePage/SiteInformation/EmptyState.js +10 -13
  515. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  516. package/lib/pages/SitePage/SitePage.js +76 -36
  517. package/lib/pages/UploadLabResult/index.js +16 -15
  518. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +37 -27
  519. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +13 -8
  520. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +15 -11
  521. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +9 -5
  522. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +50 -47
  523. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +8 -11
  524. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +5 -4
  525. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +9 -6
  526. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +10 -11
  527. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  528. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +13 -16
  529. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +8 -8
  530. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +4 -3
  531. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +30 -20
  532. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +40 -28
  533. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -15
  534. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +14 -7
  535. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +31 -26
  536. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -9
  537. package/lib/pages/WbeDashboard/GraphWrapper.js +35 -28
  538. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -16
  539. package/lib/pages/WbeDashboard/SearchInput.js +21 -15
  540. package/lib/pages/WbeDashboard/SummaryGraph.js +77 -50
  541. package/lib/pages/WbeDashboard/SummaryGraphModal.js +18 -20
  542. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  543. package/lib/pages/WbeDashboard/WbeDashboardPage.js +210 -147
  544. package/lib/pages/WbeDashboard/WbeSummaryBar.js +48 -39
  545. package/lib/pages/WwtpPage/DashboardCard.js +21 -25
  546. package/lib/pages/WwtpPage/DischargePatternCard.js +25 -14
  547. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +11 -11
  548. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +22 -22
  549. package/lib/pages/WwtpPage/InletsCard/index.js +4 -3
  550. package/lib/pages/WwtpPage/Map.js +6 -6
  551. package/lib/pages/WwtpPage/OrganicCard.js +5 -4
  552. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +5 -4
  553. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +7 -8
  554. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +11 -11
  555. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +17 -20
  556. package/lib/pages/WwtpPage/PotentialSaving/index.js +4 -3
  557. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  558. package/lib/pages/WwtpPage/PredictionCard.js +5 -4
  559. package/lib/pages/WwtpPage/TrendCard.js +22 -20
  560. package/lib/pages/WwtpPage/UpgradeBox.js +5 -4
  561. package/lib/pages/WwtpPage/WwtpPage.js +8 -9
  562. package/lib/pages/WwtpPage/WwtpPageContainer.js +19 -23
  563. package/lib/pages/WwtpPage/index.js +4 -3
  564. package/lib/providers/Slideshow/SlideshowContext.js +10 -11
  565. package/lib/providers/Slideshow/SlideshowProvider.js +40 -22
  566. package/lib/providers/Slideshow/SlideshowRunner.js +21 -18
  567. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -7
  568. package/lib/providers/UrlHistory/UrlHistoryProvider.js +13 -12
  569. package/lib/providers/UrlHistory/index.js +4 -4
  570. package/lib/providers/UrlHistory/useLastVisited.js +6 -5
  571. package/lib/react-app-env.d.js +1 -1
  572. package/lib/store/ImportGis/action.js +1 -1
  573. package/lib/store/ImportGis/actionTypes.js +5 -4
  574. package/lib/store/ImportGis/actionsCreator.js +5 -7
  575. package/lib/store/ImportGis/models/gisImports.js +1 -1
  576. package/lib/store/ImportGis/reducer.js +7 -9
  577. package/lib/store/WBE/actionTypes.js +3 -2
  578. package/lib/store/WBE/actions.js +1 -1
  579. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  580. package/lib/store/WBE/models/IWBE.js +1 -1
  581. package/lib/store/WBE/models/IWBEState.js +1 -1
  582. package/lib/store/WBE/reducer.js +8 -10
  583. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +15 -24
  584. package/lib/store/WWTPDashboard/types.js +1 -1
  585. package/lib/store/areas/actionTypes.js +7 -4
  586. package/lib/store/areas/actions.js +13 -7
  587. package/lib/store/areas/models/IArea.js +1 -1
  588. package/lib/store/areas/models/IAreasState.js +1 -1
  589. package/lib/store/areas/reducer.js +6 -8
  590. package/lib/store/context/actionTypes.js +5 -3
  591. package/lib/store/context/actions.js +3 -3
  592. package/lib/store/context/contextMiddlewares.js +18 -15
  593. package/lib/store/context/models/INavContext.js +1 -1
  594. package/lib/store/context/models/INavContextState.js +1 -1
  595. package/lib/store/context/reducer.js +8 -10
  596. package/lib/store/dashboard/dashboardSlice.js +11 -18
  597. package/lib/store/dashboard/periodType.js +1 -1
  598. package/lib/store/edges/actionTypes.js +9 -5
  599. package/lib/store/edges/actions.js +8 -4
  600. package/lib/store/edges/models/IEdge.js +1 -1
  601. package/lib/store/edges/models/IEdgesState.js +1 -1
  602. package/lib/store/edges/reducer.js +17 -13
  603. package/lib/store/events/actionTypes.js +33 -17
  604. package/lib/store/events/actions.js +7 -3
  605. package/lib/store/events/models/IEvent.js +1 -1
  606. package/lib/store/events/models/IEventsState.js +1 -1
  607. package/lib/store/events/models/ISource.js +1 -1
  608. package/lib/store/events/reducer.js +39 -28
  609. package/lib/store/filters/IFilter.js +1 -1
  610. package/lib/store/filters/IFilterItem.js +1 -1
  611. package/lib/store/global/actionTypes.js +21 -11
  612. package/lib/store/global/actions.js +6 -8
  613. package/lib/store/global/models/IGlobalState.js +1 -1
  614. package/lib/store/global/reducer.js +7 -9
  615. package/lib/store/permissions/permissionsSlice.js +9 -12
  616. package/lib/store/points/actionTypes.js +5 -3
  617. package/lib/store/points/actions.js +10 -6
  618. package/lib/store/points/models/IGeoPoint.js +1 -1
  619. package/lib/store/points/models/IGroup.js +1 -1
  620. package/lib/store/points/models/IIssue.js +1 -1
  621. package/lib/store/points/models/IPoint.js +1 -1
  622. package/lib/store/points/models/IPointsState.js +1 -1
  623. package/lib/store/points/reducer.js +5 -7
  624. package/lib/store/rootActionTypes.js +3 -2
  625. package/lib/store/rootActions.js +1 -1
  626. package/lib/store/rootReducer.js +10 -12
  627. package/lib/store/rootStore.js +6 -6
  628. package/lib/store/samplings/action.js +1 -1
  629. package/lib/store/samplings/actionTypes.js +5 -4
  630. package/lib/store/samplings/actionsCreator.js +1 -1
  631. package/lib/store/samplings/models/Samplings.js +1 -1
  632. package/lib/store/samplings/reducer.js +10 -10
  633. package/lib/styles/StylesLayout.js +6 -7
  634. package/lib/styles/theme/theme.js +26 -23
  635. package/lib/test/mocks/browser.js +5 -2
  636. package/lib/test/test-utils.js +9 -12
  637. package/lib/ui-kit/Alert/KandoAlert.js +6 -8
  638. package/lib/ui-kit/Button/Button.js +83 -129
  639. package/lib/ui-kit/Button/Button.test.js +33 -27
  640. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  641. package/lib/ui-kit/Checkbox/Checkbox.js +27 -34
  642. package/lib/ui-kit/ContentCard/ContentCard.js +20 -16
  643. package/lib/ui-kit/Dashboard/Dashboard.js +28 -29
  644. package/lib/ui-kit/Dashboard/index.js +4 -3
  645. package/lib/ui-kit/DropDown/DropDown.js +22 -23
  646. package/lib/ui-kit/DropDown/DropDown.test.js +13 -13
  647. package/lib/ui-kit/DropDown/DropDownItem.js +25 -26
  648. package/lib/ui-kit/DropDown/DropdownToggle.js +10 -13
  649. package/lib/ui-kit/EmptyState/EmptyState.js +6 -7
  650. package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +81 -69
  651. package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +167 -89
  652. package/lib/ui-kit/HierarchyGraph/LeafSign.js +7 -7
  653. package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +19 -17
  654. package/lib/ui-kit/HierarchyGraph/NodeIcon.js +8 -9
  655. package/lib/ui-kit/HierarchyGraph/NodeLayout.js +25 -22
  656. package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +10 -11
  657. package/lib/ui-kit/HierarchyGraph/ScoreNode.js +9 -10
  658. package/lib/ui-kit/HierarchyGraph/index.js +4 -3
  659. package/lib/ui-kit/HierarchyGraph/utils.js +67 -57
  660. package/lib/ui-kit/IconAction/IconAction.js +8 -9
  661. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +64 -47
  662. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +49 -58
  663. package/lib/ui-kit/InletsPie/InletsPie.js +16 -17
  664. package/lib/ui-kit/InletsPie/index.js +4 -3
  665. package/lib/ui-kit/InletsPie/options.js +9 -7
  666. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +38 -29
  667. package/lib/ui-kit/KandoFilter/KandoFilter.js +11 -10
  668. package/lib/ui-kit/KandoList/KandoList.js +12 -13
  669. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  670. package/lib/ui-kit/KandoTable/KandoTable.js +41 -48
  671. package/lib/ui-kit/KandoTable/KandoTable.test.js +27 -21
  672. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  673. package/lib/ui-kit/Layout/Layout.js +7 -8
  674. package/lib/ui-kit/MobileInput/MobileInput.js +50 -56
  675. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +17 -14
  676. package/lib/ui-kit/ModalConfirmation/index.js +3 -2
  677. package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -9
  678. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +9 -8
  679. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +22 -26
  680. package/lib/ui-kit/OrganicEvents/TextInfo.js +13 -17
  681. package/lib/ui-kit/OrganicEvents/index.js +4 -3
  682. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +11 -12
  683. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +21 -17
  684. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -3
  685. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +24 -21
  686. package/lib/ui-kit/ScoreGauge/constant.js +4 -3
  687. package/lib/ui-kit/ScoreGauge/index.js +4 -3
  688. package/lib/ui-kit/TimeLineChart/TrendChart.js +28 -25
  689. package/lib/ui-kit/TimeLineChart/index.js +4 -3
  690. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +11 -10
  691. package/lib/ui-kit/Tooltip/Tooltip.js +9 -15
  692. package/lib/ui-kit/index.js +8 -8
  693. package/lib/ui-kit/kandoStepper/KandoStepper.js +14 -13
  694. package/lib/ui-kit/siteName/SiteName.js +11 -13
  695. package/lib/utilities/ActionUtility.js +7 -7
  696. package/lib/utilities/Alert.js +20 -23
  697. package/lib/utilities/Analytics.js +19 -19
  698. package/lib/utilities/Array.js +5 -4
  699. package/lib/utilities/Enum.js +51 -15
  700. package/lib/utilities/ErrorBoundary.js +42 -27
  701. package/lib/utilities/File.js +73 -45
  702. package/lib/utilities/GetDir.js +10 -10
  703. package/lib/utilities/KandoDate.js +15 -7
  704. package/lib/utilities/KandoModal.js +28 -16
  705. package/lib/utilities/LocalStorage.js +7 -5
  706. package/lib/utilities/ThousandsToK.js +2 -2
  707. package/lib/utilities/TimeFormat.js +23 -22
  708. package/lib/utilities/Truncate.js +27 -17
  709. package/lib/utilities/edgesMath.js +16 -15
  710. package/lib/utilities/i18n.js +6 -5
  711. package/lib/utilities/kql.js +12 -10
  712. package/lib/utilities/map/icons.js +18 -18
  713. package/lib/utilities/polylinedecorator.js +113 -88
  714. package/lib/utilities/scoreToData.js +26 -20
  715. package/lib/utilities/scoreToData.test.js +5 -5
  716. package/lib/utilities/time.js +10 -9
  717. package/lib/utilities/uploadToS3.js +12 -12
  718. package/lib/utilities/urls.js +14 -17
  719. package/package.json +1 -1
@@ -1,68 +1,78 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.validateValueIsNotAnObject = exports.parseSeverities = exports.parseNotificationAdvancedSelection = exports.handleWaterAuthorities = exports.handleTags = exports.handleSources = exports.handleSeverities = exports.handleSensors = exports.handleSendVia = exports.handleSelectionAndSet = exports.handleNotificationType = exports.handleNotificationSample = exports.handleDirectImpact = exports.formatSendVia = exports.formatNotification = exports.deleteAttributes = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
- const handleNotificationType = (option, notification, setNewNotification) => {
10
- const value = notification.available_types.find(type => type === option.value);
11
- if (value) setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
12
- type: value
13
- }));
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
+ var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
+ var handleNotificationType = function handleNotificationType(option, notification, setNewNotification) {
12
+ var value = notification.available_types.find(function (type) {
13
+ return type === option.value;
14
+ });
15
+ if (value) setNewNotification(function (prevState) {
16
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
17
+ type: value
18
+ });
19
+ });
14
20
  };
15
21
  exports.handleNotificationType = handleNotificationType;
16
- const handleSeverities = (e, setNewNotification) => {
17
- const value = e.target.value;
18
- setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
19
- severity: value
20
- }));
22
+ var handleSeverities = function handleSeverities(e, setNewNotification) {
23
+ var value = e.target.value;
24
+ setNewNotification(function (prevState) {
25
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
26
+ severity: value
27
+ });
28
+ });
21
29
  };
22
30
  exports.handleSeverities = handleSeverities;
23
- const handleDirectImpact = (e, setNewNotification, notification) => {
31
+ var handleDirectImpact = function handleDirectImpact(e, setNewNotification, notification) {
24
32
  if (notification.type !== 'RollingEventAlertConfig') return;
25
- const value = e.target.checked ? '0' : '1';
26
- setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
27
- direct_impact_only: value
28
- }));
33
+ var value = e.target.checked ? '0' : '1';
34
+ setNewNotification(function (prevState) {
35
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
36
+ direct_impact_only: value
37
+ });
38
+ });
29
39
  };
30
40
  exports.handleDirectImpact = handleDirectImpact;
31
- const handleWaterAuthorities = function (e) {
32
- let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
33
- let newNotification = arguments.length > 2 ? arguments[2] : undefined;
34
- let setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
35
- const value = (0, _objectSpread2.default)({}, newNotification.water_authorities);
41
+ var handleWaterAuthorities = function handleWaterAuthorities(e) {
42
+ var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
43
+ var newNotification = arguments.length > 2 ? arguments[2] : undefined;
44
+ var setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
45
+ var value = (0, _objectSpread3.default)({}, newNotification.water_authorities);
36
46
  handleSelectionAndSet(value, 'water_authorities', e, option, setNewNotification);
37
47
  };
38
48
  exports.handleWaterAuthorities = handleWaterAuthorities;
39
- const handleSources = function (e) {
40
- let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
41
- let newNotification = arguments.length > 2 ? arguments[2] : undefined;
42
- let setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
43
- const value = (0, _objectSpread2.default)({}, newNotification.points);
49
+ var handleSources = function handleSources(e) {
50
+ var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
51
+ var newNotification = arguments.length > 2 ? arguments[2] : undefined;
52
+ var setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
53
+ var value = (0, _objectSpread3.default)({}, newNotification.points);
44
54
  handleSelectionAndSet(value, 'points', e, option, setNewNotification);
45
55
  };
46
56
  exports.handleSources = handleSources;
47
- const handleTags = function (e) {
48
- let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
49
- let newNotification = arguments.length > 2 ? arguments[2] : undefined;
50
- let setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
51
- const value = (0, _objectSpread2.default)({}, newNotification.tags);
57
+ var handleTags = function handleTags(e) {
58
+ var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
59
+ var newNotification = arguments.length > 2 ? arguments[2] : undefined;
60
+ var setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
61
+ var value = (0, _objectSpread3.default)({}, newNotification.tags);
52
62
  handleSelectionAndSet(value, 'tags', e, option, setNewNotification);
53
63
  };
54
64
  exports.handleTags = handleTags;
55
- const handleSensors = function (e) {
56
- let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
57
- let newNotification = arguments.length > 2 ? arguments[2] : undefined;
58
- let setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
59
- const value = (0, _objectSpread2.default)({}, newNotification.sensors);
65
+ var handleSensors = function handleSensors(e) {
66
+ var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
67
+ var newNotification = arguments.length > 2 ? arguments[2] : undefined;
68
+ var setNewNotification = arguments.length > 3 ? arguments[3] : undefined;
69
+ var value = (0, _objectSpread3.default)({}, newNotification.sensors);
60
70
  handleSelectionAndSet(value, 'sensors', e, option, setNewNotification);
61
71
  };
62
72
  exports.handleSensors = handleSensors;
63
- const handleSelectionAndSet = function (value, field, e) {
64
- let option = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
65
- let setNewNotification = arguments.length > 4 ? arguments[4] : undefined;
73
+ var handleSelectionAndSet = function handleSelectionAndSet(value, field, e) {
74
+ var option = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
75
+ var setNewNotification = arguments.length > 4 ? arguments[4] : undefined;
66
76
  if (e !== undefined && e.target !== undefined) {
67
77
  value.selection_type = e.target.value;
68
78
  } else {
@@ -72,20 +82,20 @@ const handleSelectionAndSet = function (value, field, e) {
72
82
  value.set = new Array();
73
83
  } else {
74
84
  var _option$set;
75
- const set = [];
76
- (_option$set = option.set) === null || _option$set === void 0 ? void 0 : _option$set.forEach(option => {
85
+ var set = [];
86
+ (_option$set = option.set) === null || _option$set === void 0 ? void 0 : _option$set.forEach(function (option) {
77
87
  set.push(JSON.stringify(option.value));
78
88
  });
79
89
  value.set = set;
80
90
  }
81
- setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
82
- [field]: value
83
- }));
91
+ setNewNotification(function (prevState) {
92
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, (0, _defineProperty2.default)({}, field, value));
93
+ });
84
94
  };
85
95
  exports.handleSelectionAndSet = handleSelectionAndSet;
86
- const handleSendVia = (e, newNotification, setNewNotification, setModalDetails) => {
87
- const value = (0, _objectSpread2.default)({}, newNotification.actions);
88
- const field = e.target.value;
96
+ var handleSendVia = function handleSendVia(e, newNotification, setNewNotification, setModalDetails) {
97
+ var value = (0, _objectSpread3.default)({}, newNotification.actions);
98
+ var field = e.target.value;
89
99
  value[field] = !value[field];
90
100
  if (field === 'sms' || field === 'telegram') {
91
101
  setModalDetails({
@@ -93,35 +103,39 @@ const handleSendVia = (e, newNotification, setNewNotification, setModalDetails)
93
103
  instance: field
94
104
  });
95
105
  }
96
- setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
97
- actions: value
98
- }));
106
+ setNewNotification(function (prevState) {
107
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
108
+ actions: value
109
+ });
110
+ });
99
111
  };
100
112
  exports.handleSendVia = handleSendVia;
101
- const handleNotificationSample = (e, setNewNotification) => {
102
- const value = e.target.checked;
103
- let parsedValue = value ? '1' : '0';
104
- setNewNotification(prevState => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
105
- pump_only: parsedValue
106
- }));
113
+ var handleNotificationSample = function handleNotificationSample(e, setNewNotification) {
114
+ var value = e.target.checked;
115
+ var parsedValue = value ? '1' : '0';
116
+ setNewNotification(function (prevState) {
117
+ return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
118
+ pump_only: parsedValue
119
+ });
120
+ });
107
121
  };
108
122
  exports.handleNotificationSample = handleNotificationSample;
109
- const validateValueIsNotAnObject = value => {
110
- return typeof value === 'object' && !Array.isArray(value) && value !== null && value !== undefined;
123
+ var validateValueIsNotAnObject = function validateValueIsNotAnObject(value) {
124
+ return (0, _typeof2.default)(value) === 'object' && !Array.isArray(value) && value !== null && value !== undefined;
111
125
  };
112
126
  exports.validateValueIsNotAnObject = validateValueIsNotAnObject;
113
- const parseNotificationAdvancedSelection = notification => {
127
+ var parseNotificationAdvancedSelection = function parseNotificationAdvancedSelection(notification) {
114
128
  // If there'll be a future requirement to add another AdvancedSelection fields, please add them right below
115
129
 
116
- let points = notification.points;
117
- let waterAuthorities = notification.water_authorities;
118
- let tags = notification.tags;
119
- let sensors = notification.sensors;
120
- const all_advanced_selections = [points, waterAuthorities, tags, sensors];
121
- all_advanced_selections.forEach(selection => {
130
+ var points = notification.points;
131
+ var waterAuthorities = notification.water_authorities;
132
+ var tags = notification.tags;
133
+ var sensors = notification.sensors;
134
+ var all_advanced_selections = [points, waterAuthorities, tags, sensors];
135
+ all_advanced_selections.forEach(function (selection) {
122
136
  if (validateValueIsNotAnObject(selection !== undefined && selection.set !== null && selection.set[0])) {
123
- const set = [];
124
- selection.set.forEach(point => {
137
+ var set = [];
138
+ selection.set.forEach(function (point) {
125
139
  set.push(JSON.stringify(point.id));
126
140
  });
127
141
  selection.set = set;
@@ -133,7 +147,7 @@ const parseNotificationAdvancedSelection = notification => {
133
147
  return notification;
134
148
  };
135
149
  exports.parseNotificationAdvancedSelection = parseNotificationAdvancedSelection;
136
- const deleteAttributes = (notification, newNotification) => {
150
+ var deleteAttributes = function deleteAttributes(notification, newNotification) {
137
151
  // Make sure to remove unnecessary attributes for some AlertConfigs
138
152
 
139
153
  delete notification.available_types;
@@ -147,8 +161,8 @@ const deleteAttributes = (notification, newNotification) => {
147
161
  return notification;
148
162
  };
149
163
  exports.deleteAttributes = deleteAttributes;
150
- const formatSendVia = notification => {
151
- let formattedValue = [];
164
+ var formatSendVia = function formatSendVia(notification) {
165
+ var formattedValue = [];
152
166
  if (notification.actions['telegram']) formattedValue.push(['SendTelegramAction', '0']);
153
167
  if (notification.actions['email']) formattedValue.push(['SendEmailAction', '0']);
154
168
  // if (notification.actions['sms']) formattedValue.push(['SendSmsAction', '0']);
@@ -156,8 +170,8 @@ const formatSendVia = notification => {
156
170
  return notification;
157
171
  };
158
172
  exports.formatSendVia = formatSendVia;
159
- const parseSeverities = notification => {
160
- let value;
173
+ var parseSeverities = function parseSeverities(notification) {
174
+ var value;
161
175
  switch (notification.severity) {
162
176
  case 'medium':
163
177
  value = '0';
@@ -172,8 +186,8 @@ const parseSeverities = notification => {
172
186
  return notification;
173
187
  };
174
188
  exports.parseSeverities = parseSeverities;
175
- const formatNotification = newNotification => {
176
- let notificationCopy = JSON.parse(JSON.stringify(newNotification));
189
+ var formatNotification = function formatNotification(newNotification) {
190
+ var notificationCopy = JSON.parse(JSON.stringify(newNotification));
177
191
  notificationCopy = parseNotificationAdvancedSelection(notificationCopy);
178
192
  notificationCopy = formatSendVia(notificationCopy);
179
193
  notificationCopy = deleteAttributes(notificationCopy, newNotification);
@@ -181,19 +195,19 @@ const formatNotification = newNotification => {
181
195
  if (notificationCopy.alert_type !== 'RollingEventAlertConfig') {
182
196
  delete notificationCopy.direct_impact_only;
183
197
  }
184
- let notificationToSave = {
198
+ var notificationToSave = {
185
199
  user: {
186
- alert_configs_attributes: (0, _objectSpread2.default)({}, notificationCopy)
200
+ alert_configs_attributes: (0, _objectSpread3.default)({}, notificationCopy)
187
201
  }
188
202
  };
189
- const notificationWithTimeStamp = {
203
+ var notificationWithTimeStamp = {
190
204
  user: {
191
205
  alert_configs_attributes: {}
192
206
  }
193
207
  };
194
- const now = new Date();
208
+ var now = new Date();
195
209
  notificationWithTimeStamp.user.alert_configs_attributes["".concat(now.getTime())] = notificationToSave.user.alert_configs_attributes;
196
210
  return notificationWithTimeStamp;
197
211
  };
198
212
  exports.formatNotification = formatNotification;
199
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJoYW5kbGVOb3RpZmljYXRpb25UeXBlIiwib3B0aW9uIiwibm90aWZpY2F0aW9uIiwic2V0TmV3Tm90aWZpY2F0aW9uIiwidmFsdWUiLCJhdmFpbGFibGVfdHlwZXMiLCJmaW5kIiwidHlwZSIsInByZXZTdGF0ZSIsIl9vYmplY3RTcHJlYWQyIiwiZGVmYXVsdCIsImV4cG9ydHMiLCJoYW5kbGVTZXZlcml0aWVzIiwiZSIsInRhcmdldCIsInNldmVyaXR5IiwiaGFuZGxlRGlyZWN0SW1wYWN0IiwiY2hlY2tlZCIsImRpcmVjdF9pbXBhY3Rfb25seSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsIkFycmF5IiwiX29wdGlvbiRzZXQiLCJmb3JFYWNoIiwicHVzaCIsIkpTT04iLCJzdHJpbmdpZnkiLCJoYW5kbGVTZW5kVmlhIiwic2V0TW9kYWxEZXRhaWxzIiwiYWN0aW9ucyIsIm9wZW4iLCJpbnN0YW5jZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsInBhcnNlZFZhbHVlIiwicHVtcF9vbmx5IiwidmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QiLCJpc0FycmF5IiwicGFyc2VOb3RpZmljYXRpb25BZHZhbmNlZFNlbGVjdGlvbiIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucyIsInNlbGVjdGlvbiIsInBvaW50IiwiaWQiLCJkZWxldGVBdHRyaWJ1dGVzIiwiZm9ybWF0U2VuZFZpYSIsImZvcm1hdHRlZFZhbHVlIiwiZmxhdCIsInBhcnNlU2V2ZXJpdGllcyIsImZvcm1hdE5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbkNvcHkiLCJwYXJzZSIsImFsZXJ0X3R5cGUiLCJub3RpZmljYXRpb25Ub1NhdmUiLCJ1c2VyIiwiYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzIiwibm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcCIsIm5vdyIsIkRhdGUiLCJjb25jYXQiLCJnZXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvY29tcG9uZW50cy9Ob3RpZmljYXRpb25zVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblR5cGUgPSAoXG4gIG9wdGlvbixcbiAgbm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBub3RpZmljYXRpb24uYXZhaWxhYmxlX3R5cGVzIS5maW5kKFxuICAgICh0eXBlKSA9PiB0eXBlID09PSBvcHRpb24udmFsdWUsXG4gICk7XG4gIGlmICh2YWx1ZSlcbiAgICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHR5cGU6IHZhbHVlLFxuICAgIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZXZlcml0aWVzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIHNldmVyaXR5OiB2YWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZURpcmVjdEltcGFjdCA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgbm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGlmIChub3RpZmljYXRpb24udHlwZSAhPT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJykgcmV0dXJuO1xuICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQgPyAnMCcgOiAnMSc7XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIGRpcmVjdF9pbXBhY3Rfb25seTogdmFsdWUsXG4gIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVXYXRlckF1dGhvcml0aWVzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQoXG4gICAgdmFsdWUsXG4gICAgJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICBlLFxuICAgIG9wdGlvbixcbiAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU291cmNlcyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24ucG9pbnRzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3BvaW50cycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVUYWdzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi50YWdzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3RhZ3MnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2Vuc29ycyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24uc2Vuc29ycyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQodmFsdWUsICdzZW5zb3JzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNlbGVjdGlvbkFuZFNldCA9IChcbiAgdmFsdWUsXG4gIGZpZWxkOiBzdHJpbmcsXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgaWYgKGUgIT09IHVuZGVmaW5lZCAmJiBlLnRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsdWUuc2VsZWN0aW9uX3R5cGUgPSBlLnRhcmdldC52YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IG9wdGlvbi5zZWxlY3Rpb25fdHlwZTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9PT0gJ2FsbCcpIHtcbiAgICB2YWx1ZS5zZXQgPSBuZXcgQXJyYXkoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzZXQ6IHN0cmluZ1tdID0gW107XG4gICAgb3B0aW9uLnNldD8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBzZXQucHVzaChKU09OLnN0cmluZ2lmeShvcHRpb24udmFsdWUpKTtcbiAgICB9KTtcbiAgICB2YWx1ZS5zZXQgPSBzZXQ7XG4gIH1cblxuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgW2ZpZWxkXTogdmFsdWUsXG4gIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5kVmlhID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4gIHNldE1vZGFsRGV0YWlscyxcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLmFjdGlvbnMgfTtcbiAgY29uc3QgZmllbGQgPSBlLnRhcmdldC52YWx1ZTtcbiAgdmFsdWVbZmllbGRdID0gIXZhbHVlW2ZpZWxkXTtcblxuICBpZiAoZmllbGQgPT09ICdzbXMnIHx8IGZpZWxkID09PSAndGVsZWdyYW0nKSB7XG4gICAgc2V0TW9kYWxEZXRhaWxzKHsgb3BlbjogdHJ1ZSwgaW5zdGFuY2U6IGZpZWxkIH0pO1xuICB9XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIGFjdGlvbnM6IHZhbHVlLFxuICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQuY2hlY2tlZDtcbiAgbGV0IHBhcnNlZFZhbHVlID0gdmFsdWUgPyAnMScgOiAnMCc7XG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBwdW1wX29ubHk6IHBhcnNlZFZhbHVlLFxuICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QgPSAodmFsdWUpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VOb3RpZmljYXRpb25BZHZhbmNlZFNlbGVjdGlvbiA9IChub3RpZmljYXRpb24pID0+IHtcbiAgLy8gSWYgdGhlcmUnbGwgYmUgYSBmdXR1cmUgcmVxdWlyZW1lbnQgdG8gYWRkIGFub3RoZXIgQWR2YW5jZWRTZWxlY3Rpb24gZmllbGRzLCBwbGVhc2UgYWRkIHRoZW0gcmlnaHQgYmVsb3dcblxuICBsZXQgcG9pbnRzID0gbm90aWZpY2F0aW9uLnBvaW50cztcbiAgbGV0IHdhdGVyQXV0aG9yaXRpZXMgPSBub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXM7XG4gIGxldCB0YWdzID0gbm90aWZpY2F0aW9uLnRhZ3M7XG4gIGxldCBzZW5zb3JzID0gbm90aWZpY2F0aW9uLnNlbnNvcnM7XG5cbiAgY29uc3QgYWxsX2FkdmFuY2VkX3NlbGVjdGlvbnMgPSBbcG9pbnRzLCB3YXRlckF1dGhvcml0aWVzLCB0YWdzLCBzZW5zb3JzXTtcblxuICBhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucy5mb3JFYWNoKChzZWxlY3Rpb24pID0+IHtcbiAgICBpZiAoXG4gICAgICB2YWxpZGF0ZVZhbHVlSXNOb3RBbk9iamVjdChcbiAgICAgICAgc2VsZWN0aW9uICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0aW9uLnNldCAhPT0gbnVsbCAmJiBzZWxlY3Rpb24uc2V0WzBdLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3Qgc2V0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgc2VsZWN0aW9uLnNldC5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICBzZXQucHVzaChKU09OLnN0cmluZ2lmeShwb2ludC5pZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbGVjdGlvbi5zZXQgPSBzZXQ7XG4gICAgfVxuXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uc2V0ICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0aW9uLnNldCA9PT0gbnVsbCkge1xuICAgICAgc2VsZWN0aW9uLnNldCA9IFtdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVBdHRyaWJ1dGVzID0gKG5vdGlmaWNhdGlvbiwgbmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0byByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlcyBmb3Igc29tZSBBbGVydENvbmZpZ3NcblxuICBkZWxldGUgbm90aWZpY2F0aW9uLmF2YWlsYWJsZV90eXBlcztcbiAgaWYgKFxuICAgIG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnUG9sbHV0aW9uQWxlcnRDb25maWcnICYmXG4gICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZydcbiAgKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2V2ZXJpdHk7XG4gIGlmIChcbiAgICBuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyAmJlxuICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnXG4gIClcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnB1bXBfb25seTtcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi50YWdzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBub3RpZmljYXRpb25bJ2FsZXJ0X3R5cGUnXSA9IG5vdGlmaWNhdGlvbi50eXBlO1xuICBub3RpZmljYXRpb25bJ19kZXN0cm95J10gPSAwO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0U2VuZFZpYSA9IChub3RpZmljYXRpb24pID0+IHtcbiAgbGV0IGZvcm1hdHRlZFZhbHVlOiBhbnkgPSBbXTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWyd0ZWxlZ3JhbSddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kVGVsZWdyYW1BY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydlbWFpbCddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kRW1haWxBY3Rpb24nLCAnMCddKTtcbiAgLy8gaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydzbXMnXSkgZm9ybWF0dGVkVmFsdWUucHVzaChbJ1NlbmRTbXNBY3Rpb24nLCAnMCddKTtcbiAgbm90aWZpY2F0aW9uLmFjdGlvbnMgPSBmb3JtYXR0ZWRWYWx1ZS5mbGF0KCk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNldmVyaXRpZXMgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCB2YWx1ZTtcbiAgc3dpdGNoIChub3RpZmljYXRpb24uc2V2ZXJpdHkpIHtcbiAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgdmFsdWUgPSAnMCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdoaWdoJzpcbiAgICAgIHZhbHVlID0gJzEnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXh0cmVtZSc6XG4gICAgICB2YWx1ZSA9ICcyJztcbiAgfVxuICBub3RpZmljYXRpb24uc2V2ZXJpdHkgPSB2YWx1ZTtcbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXROb3RpZmljYXRpb24gPSAobmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBub3RpZmljYXRpb25Db3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdOb3RpZmljYXRpb24pKTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24obm90aWZpY2F0aW9uQ29weSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBmb3JtYXRTZW5kVmlhKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZGVsZXRlQXR0cmlidXRlcyhub3RpZmljYXRpb25Db3B5LCBuZXdOb3RpZmljYXRpb24pO1xuICBub3RpZmljYXRpb25Db3B5ID0gcGFyc2VTZXZlcml0aWVzKG5vdGlmaWNhdGlvbkNvcHkpO1xuXG4gIGlmIChub3RpZmljYXRpb25Db3B5LmFsZXJ0X3R5cGUgIT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycpIHtcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uQ29weS5kaXJlY3RfaW1wYWN0X29ubHk7XG4gIH1cblxuICBsZXQgbm90aWZpY2F0aW9uVG9TYXZlID0ge1xuICAgIHVzZXI6IHtcbiAgICAgIGFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlczoge1xuICAgICAgICAuLi5ub3RpZmljYXRpb25Db3B5LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXNbYCR7bm93LmdldFRpbWUoKX1gXSA9XG4gICAgbm90aWZpY2F0aW9uVG9TYXZlLnVzZXIuYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzO1xuXG4gIHJldHVybiBub3RpZmljYXRpb25XaXRoVGltZVN0YW1wO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFTyxNQUFNQSxzQkFBc0IsR0FBR0EsQ0FDcENDLE1BQU0sRUFDTkMsWUFBWSxFQUNaQyxrQkFBa0IsS0FDZjtFQUNILE1BQU1DLEtBQUssR0FBR0YsWUFBWSxDQUFDRyxlQUFlLENBQUVDLElBQUksQ0FDN0NDLElBQUksSUFBS0EsSUFBSSxLQUFLTixNQUFNLENBQUNHLEtBQzVCLENBQUM7RUFDRCxJQUFJQSxLQUFLLEVBQ1BELGtCQUFrQixDQUFFSyxTQUFTLFFBQUFDLGNBQUEsQ0FBQUMsT0FBQSxNQUFBRCxjQUFBLENBQUFDLE9BQUEsTUFDeEJGLFNBQVM7SUFDWkQsSUFBSSxFQUFFSDtFQUFLLEVBQ1gsQ0FBQztBQUNQLENBQUM7QUFBQ08sT0FBQSxDQUFBWCxzQkFBQSxHQUFBQSxzQkFBQTtBQUVLLE1BQU1ZLGdCQUFnQixHQUFHQSxDQUM5QkMsQ0FBc0MsRUFDdENWLGtCQUFrQixLQUNmO0VBQ0gsTUFBTUMsS0FBSyxHQUFHUyxDQUFDLENBQUNDLE1BQU0sQ0FBQ1YsS0FBSztFQUU1QkQsa0JBQWtCLENBQUVLLFNBQVMsUUFB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
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJoYW5kbGVOb3RpZmljYXRpb25UeXBlIiwib3B0aW9uIiwibm90aWZpY2F0aW9uIiwic2V0TmV3Tm90aWZpY2F0aW9uIiwidmFsdWUiLCJhdmFpbGFibGVfdHlwZXMiLCJmaW5kIiwidHlwZSIsInByZXZTdGF0ZSIsIl9vYmplY3RTcHJlYWQzIiwiZGVmYXVsdCIsImV4cG9ydHMiLCJoYW5kbGVTZXZlcml0aWVzIiwiZSIsInRhcmdldCIsInNldmVyaXR5IiwiaGFuZGxlRGlyZWN0SW1wYWN0IiwiY2hlY2tlZCIsImRpcmVjdF9pbXBhY3Rfb25seSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsIkFycmF5IiwiX29wdGlvbiRzZXQiLCJmb3JFYWNoIiwicHVzaCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfZGVmaW5lUHJvcGVydHkyIiwiaGFuZGxlU2VuZFZpYSIsInNldE1vZGFsRGV0YWlscyIsImFjdGlvbnMiLCJvcGVuIiwiaW5zdGFuY2UiLCJoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUiLCJwYXJzZWRWYWx1ZSIsInB1bXBfb25seSIsInZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0IiwiX3R5cGVvZjIiLCJpc0FycmF5IiwicGFyc2VOb3RpZmljYXRpb25BZHZhbmNlZFNlbGVjdGlvbiIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucyIsInNlbGVjdGlvbiIsInBvaW50IiwiaWQiLCJkZWxldGVBdHRyaWJ1dGVzIiwiZm9ybWF0U2VuZFZpYSIsImZvcm1hdHRlZFZhbHVlIiwiZmxhdCIsInBhcnNlU2V2ZXJpdGllcyIsImZvcm1hdE5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbkNvcHkiLCJwYXJzZSIsImFsZXJ0X3R5cGUiLCJub3RpZmljYXRpb25Ub1NhdmUiLCJ1c2VyIiwiYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzIiwibm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcCIsIm5vdyIsIkRhdGUiLCJjb25jYXQiLCJnZXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvY29tcG9uZW50cy9Ob3RpZmljYXRpb25zVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblR5cGUgPSAoXG4gIG9wdGlvbixcbiAgbm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBub3RpZmljYXRpb24uYXZhaWxhYmxlX3R5cGVzIS5maW5kKFxuICAgICh0eXBlKSA9PiB0eXBlID09PSBvcHRpb24udmFsdWUsXG4gICk7XG4gIGlmICh2YWx1ZSlcbiAgICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHR5cGU6IHZhbHVlLFxuICAgIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZXZlcml0aWVzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIHNldmVyaXR5OiB2YWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZURpcmVjdEltcGFjdCA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgbm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGlmIChub3RpZmljYXRpb24udHlwZSAhPT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJykgcmV0dXJuO1xuICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQgPyAnMCcgOiAnMSc7XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIGRpcmVjdF9pbXBhY3Rfb25seTogdmFsdWUsXG4gIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVXYXRlckF1dGhvcml0aWVzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQoXG4gICAgdmFsdWUsXG4gICAgJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICBlLFxuICAgIG9wdGlvbixcbiAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU291cmNlcyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24ucG9pbnRzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3BvaW50cycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVUYWdzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi50YWdzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3RhZ3MnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2Vuc29ycyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24uc2Vuc29ycyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQodmFsdWUsICdzZW5zb3JzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNlbGVjdGlvbkFuZFNldCA9IChcbiAgdmFsdWUsXG4gIGZpZWxkOiBzdHJpbmcsXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgaWYgKGUgIT09IHVuZGVmaW5lZCAmJiBlLnRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsdWUuc2VsZWN0aW9uX3R5cGUgPSBlLnRhcmdldC52YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IG9wdGlvbi5zZWxlY3Rpb25fdHlwZTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9PT0gJ2FsbCcpIHtcbiAgICB2YWx1ZS5zZXQgPSBuZXcgQXJyYXkoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzZXQ6IHN0cmluZ1tdID0gW107XG4gICAgb3B0aW9uLnNldD8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBzZXQucHVzaChKU09OLnN0cmluZ2lmeShvcHRpb24udmFsdWUpKTtcbiAgICB9KTtcbiAgICB2YWx1ZS5zZXQgPSBzZXQ7XG4gIH1cblxuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgW2ZpZWxkXTogdmFsdWUsXG4gIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5kVmlhID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4gIHNldE1vZGFsRGV0YWlscyxcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLmFjdGlvbnMgfTtcbiAgY29uc3QgZmllbGQgPSBlLnRhcmdldC52YWx1ZTtcbiAgdmFsdWVbZmllbGRdID0gIXZhbHVlW2ZpZWxkXTtcblxuICBpZiAoZmllbGQgPT09ICdzbXMnIHx8IGZpZWxkID09PSAndGVsZWdyYW0nKSB7XG4gICAgc2V0TW9kYWxEZXRhaWxzKHsgb3BlbjogdHJ1ZSwgaW5zdGFuY2U6IGZpZWxkIH0pO1xuICB9XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIGFjdGlvbnM6IHZhbHVlLFxuICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQuY2hlY2tlZDtcbiAgbGV0IHBhcnNlZFZhbHVlID0gdmFsdWUgPyAnMScgOiAnMCc7XG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBwdW1wX29ubHk6IHBhcnNlZFZhbHVlLFxuICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QgPSAodmFsdWUpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VOb3RpZmljYXRpb25BZHZhbmNlZFNlbGVjdGlvbiA9IChub3RpZmljYXRpb24pID0+IHtcbiAgLy8gSWYgdGhlcmUnbGwgYmUgYSBmdXR1cmUgcmVxdWlyZW1lbnQgdG8gYWRkIGFub3RoZXIgQWR2YW5jZWRTZWxlY3Rpb24gZmllbGRzLCBwbGVhc2UgYWRkIHRoZW0gcmlnaHQgYmVsb3dcblxuICBsZXQgcG9pbnRzID0gbm90aWZpY2F0aW9uLnBvaW50cztcbiAgbGV0IHdhdGVyQXV0aG9yaXRpZXMgPSBub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXM7XG4gIGxldCB0YWdzID0gbm90aWZpY2F0aW9uLnRhZ3M7XG4gIGxldCBzZW5zb3JzID0gbm90aWZpY2F0aW9uLnNlbnNvcnM7XG5cbiAgY29uc3QgYWxsX2FkdmFuY2VkX3NlbGVjdGlvbnMgPSBbcG9pbnRzLCB3YXRlckF1dGhvcml0aWVzLCB0YWdzLCBzZW5zb3JzXTtcblxuICBhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucy5mb3JFYWNoKChzZWxlY3Rpb24pID0+IHtcbiAgICBpZiAoXG4gICAgICB2YWxpZGF0ZVZhbHVlSXNOb3RBbk9iamVjdChcbiAgICAgICAgc2VsZWN0aW9uICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0aW9uLnNldCAhPT0gbnVsbCAmJiBzZWxlY3Rpb24uc2V0WzBdLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3Qgc2V0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgc2VsZWN0aW9uLnNldC5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICBzZXQucHVzaChKU09OLnN0cmluZ2lmeShwb2ludC5pZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbGVjdGlvbi5zZXQgPSBzZXQ7XG4gICAgfVxuXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uc2V0ICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0aW9uLnNldCA9PT0gbnVsbCkge1xuICAgICAgc2VsZWN0aW9uLnNldCA9IFtdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVBdHRyaWJ1dGVzID0gKG5vdGlmaWNhdGlvbiwgbmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0byByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlcyBmb3Igc29tZSBBbGVydENvbmZpZ3NcblxuICBkZWxldGUgbm90aWZpY2F0aW9uLmF2YWlsYWJsZV90eXBlcztcbiAgaWYgKFxuICAgIG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnUG9sbHV0aW9uQWxlcnRDb25maWcnICYmXG4gICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZydcbiAgKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2V2ZXJpdHk7XG4gIGlmIChcbiAgICBuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyAmJlxuICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnXG4gIClcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnB1bXBfb25seTtcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi50YWdzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBub3RpZmljYXRpb25bJ2FsZXJ0X3R5cGUnXSA9IG5vdGlmaWNhdGlvbi50eXBlO1xuICBub3RpZmljYXRpb25bJ19kZXN0cm95J10gPSAwO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0U2VuZFZpYSA9IChub3RpZmljYXRpb24pID0+IHtcbiAgbGV0IGZvcm1hdHRlZFZhbHVlOiBhbnkgPSBbXTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWyd0ZWxlZ3JhbSddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kVGVsZWdyYW1BY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydlbWFpbCddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kRW1haWxBY3Rpb24nLCAnMCddKTtcbiAgLy8gaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydzbXMnXSkgZm9ybWF0dGVkVmFsdWUucHVzaChbJ1NlbmRTbXNBY3Rpb24nLCAnMCddKTtcbiAgbm90aWZpY2F0aW9uLmFjdGlvbnMgPSBmb3JtYXR0ZWRWYWx1ZS5mbGF0KCk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNldmVyaXRpZXMgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCB2YWx1ZTtcbiAgc3dpdGNoIChub3RpZmljYXRpb24uc2V2ZXJpdHkpIHtcbiAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgdmFsdWUgPSAnMCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdoaWdoJzpcbiAgICAgIHZhbHVlID0gJzEnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXh0cmVtZSc6XG4gICAgICB2YWx1ZSA9ICcyJztcbiAgfVxuICBub3RpZmljYXRpb24uc2V2ZXJpdHkgPSB2YWx1ZTtcbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXROb3RpZmljYXRpb24gPSAobmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBub3RpZmljYXRpb25Db3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdOb3RpZmljYXRpb24pKTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24obm90aWZpY2F0aW9uQ29weSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBmb3JtYXRTZW5kVmlhKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZGVsZXRlQXR0cmlidXRlcyhub3RpZmljYXRpb25Db3B5LCBuZXdOb3RpZmljYXRpb24pO1xuICBub3RpZmljYXRpb25Db3B5ID0gcGFyc2VTZXZlcml0aWVzKG5vdGlmaWNhdGlvbkNvcHkpO1xuXG4gIGlmIChub3RpZmljYXRpb25Db3B5LmFsZXJ0X3R5cGUgIT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycpIHtcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uQ29weS5kaXJlY3RfaW1wYWN0X29ubHk7XG4gIH1cblxuICBsZXQgbm90aWZpY2F0aW9uVG9TYXZlID0ge1xuICAgIHVzZXI6IHtcbiAgICAgIGFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlczoge1xuICAgICAgICAuLi5ub3RpZmljYXRpb25Db3B5LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXNbYCR7bm93LmdldFRpbWUoKX1gXSA9XG4gICAgbm90aWZpY2F0aW9uVG9TYXZlLnVzZXIuYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzO1xuXG4gIHJldHVybiBub3RpZmljYXRpb25XaXRoVGltZVN0YW1wO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVPLElBQU1BLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQ2pDQyxNQUFNLEVBQ05DLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2Y7RUFDSCxJQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csZUFBZSxDQUFFQyxJQUFJLENBQzlDLFVBQUNDLElBQUk7SUFBQSxPQUFLQSxJQUFJLEtBQUtOLE1BQU0sQ0FBQ0csS0FBSztFQUFBLENBQ2pDLENBQUM7RUFDRCxJQUFJQSxLQUFLLEVBQ1BELGtCQUFrQixDQUFDLFVBQUNLLFNBQVM7SUFBQSxXQUFBQyxjQUFBLENBQUFDLE9BQUEsTUFBQUQsY0FBQSxDQUFBQyxPQUFBLE1BQ3hCRixTQUFTO01BQ1pELElBQUksRUFBRUg7SUFBSztFQUFBLENBQ1gsQ0FBQztBQUNQLENBQUM7QUFBQ08sT0FBQSxDQUFBWCxzQkFBQSxHQUFBQSxzQkFBQTtBQUVLLElBQU1ZLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQzNCQyxDQUFzQyxF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
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.waterAuthoritiesRadioButtons = exports.sourcesRadioButtons = exports.severitiesRadioButtons = exports.sendViaCheckBoxes = exports.mockTypes = exports.getNotificationString = exports.getEmptyNotification = void 0;
8
8
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
9
- const mockTypes = exports.mockTypes = ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'];
10
- const getEmptyNotification = () => {
9
+ var mockTypes = ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'];
10
+ exports.mockTypes = mockTypes;
11
+ var getEmptyNotification = function getEmptyNotification() {
11
12
  return {
12
13
  available_types: ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'],
13
14
  id: '',
@@ -39,7 +40,7 @@ const getEmptyNotification = () => {
39
40
  };
40
41
  };
41
42
  exports.getEmptyNotification = getEmptyNotification;
42
- const severitiesRadioButtons = exports.severitiesRadioButtons = [{
43
+ var severitiesRadioButtons = [{
43
44
  label: 'notifications_page.edit_extreme',
44
45
  name: 'severity',
45
46
  value: 'extreme'
@@ -52,7 +53,8 @@ const severitiesRadioButtons = exports.severitiesRadioButtons = [{
52
53
  name: 'severity',
53
54
  value: 'medium'
54
55
  }];
55
- const waterAuthoritiesRadioButtons = exports.waterAuthoritiesRadioButtons = [{
56
+ exports.severitiesRadioButtons = severitiesRadioButtons;
57
+ var waterAuthoritiesRadioButtons = [{
56
58
  label: 'notifications_page.edit_all',
57
59
  name: 'water_authorities',
58
60
  value: 'all'
@@ -65,7 +67,8 @@ const waterAuthoritiesRadioButtons = exports.waterAuthoritiesRadioButtons = [{
65
67
  name: 'water_authorities',
66
68
  value: 'exclude'
67
69
  }];
68
- const sourcesRadioButtons = exports.sourcesRadioButtons = [{
70
+ exports.waterAuthoritiesRadioButtons = waterAuthoritiesRadioButtons;
71
+ var sourcesRadioButtons = [{
69
72
  label: 'notifications_page.edit_all',
70
73
  name: 'sources',
71
74
  value: 'all'
@@ -78,7 +81,8 @@ const sourcesRadioButtons = exports.sourcesRadioButtons = [{
78
81
  name: 'sources',
79
82
  value: 'exclude'
80
83
  }];
81
- const sendViaCheckBoxes = exports.sendViaCheckBoxes = [{
84
+ exports.sourcesRadioButtons = sourcesRadioButtons;
85
+ var sendViaCheckBoxes = [{
82
86
  label: 'notifications_page.edit_telegram',
83
87
  name: 'actions',
84
88
  value: 'telegram'
@@ -93,11 +97,12 @@ const sendViaCheckBoxes = exports.sendViaCheckBoxes = [{
93
97
  // value: 'sms',
94
98
  // },
95
99
  ];
96
- const getNotificationString = notification => {
97
- const transIdx = 'notifications_page.notifications_text.';
98
- const title = _i18n.default.t("".concat(transIdx, "title"));
99
- let typeString = '';
100
- let sampleString = '';
100
+ exports.sendViaCheckBoxes = sendViaCheckBoxes;
101
+ var getNotificationString = function getNotificationString(notification) {
102
+ var transIdx = 'notifications_page.notifications_text.';
103
+ var title = _i18n.default.t("".concat(transIdx, "title"));
104
+ var typeString = '';
105
+ var sampleString = '';
101
106
  sampleString = notification.pump_only === '1' ? " ".concat(_i18n.default.t('notifications_page.sampler_activated')) : '.';
102
107
  switch (notification.type) {
103
108
  case 'RollingEventAlertConfig':
@@ -131,58 +136,52 @@ const getNotificationString = notification => {
131
136
  };
132
137
  exports.getNotificationString = getNotificationString;
133
138
  function getNotificationAlertsString(notification) {
134
- const sendVia = notification.actions;
135
- let tempArray = [];
136
- let sendViaString = '';
137
- for (const key in sendVia) {
139
+ var sendVia = notification.actions;
140
+ var tempArray = [];
141
+ var sendViaString = '';
142
+ for (var key in sendVia) {
138
143
  if (sendVia[key]) {
139
144
  tempArray.push(_i18n.default.t("notifications_page.edit_".concat(key)));
140
145
  }
141
146
  }
142
147
  sendViaString = tempArray.join(', ');
143
- let and = _i18n.default.t("notifications_page.notifications_text.and");
148
+ var and = _i18n.default.t("notifications_page.notifications_text.and");
144
149
  and += and === '&' ? ' ' : '';
145
150
  sendViaString = sendViaString.replace(/,\s([^,]+)$/, " ".concat(and, "$1"));
146
151
  return sendViaString;
147
152
  }
148
153
  function getNotificationSeveritiesString(notification) {
149
- const {
150
- severity
151
- } = notification;
152
- let severityString = '';
154
+ var severity = notification.severity;
155
+ var severityString = '';
153
156
  severity === 'extreme' ? severityString = _i18n.default.t('notifications_page.extreme') : severityString = _i18n.default.t("notifications_page.".concat(severity)) + ' ' + _i18n.default.t("notifications_page.notifications_text.or_higher");
154
157
  return severityString;
155
158
  }
156
159
  function getNotificationSourcesString(notification, transIdx) {
157
- const {
158
- set
159
- } = notification.points;
160
- const {
161
- selection_type
162
- } = notification.points;
163
- let Strings = [];
164
- let sourcesString = '';
160
+ var set = notification.points.set;
161
+ var selection_type = notification.points.selection_type;
162
+ var Strings = [];
163
+ var sourcesString = '';
165
164
  if (selection_type === 'all') Strings.push(_i18n.default.t("".concat(transIdx, "in_all_sources")));
166
165
  if (selection_type === 'exclude') Strings.push(_i18n.default.t("".concat(transIdx, "excluding")));
167
166
  if (selection_type === 'include') sourcesString = _i18n.default.t("".concat(transIdx, "in")) + ' ';
168
- if (selection_type !== 'all') set.map(source => Strings.push(source.text));
167
+ if (selection_type !== 'all') set.map(function (source) {
168
+ return Strings.push(source.text);
169
+ });
169
170
  sourcesString += Strings.join(Strings.length > 1 ? ', ' : ' ');
170
171
  return sourcesString;
171
172
  }
172
173
  function getNotificationSensorsString(notification) {
173
- const {
174
- set
175
- } = notification.sensors;
176
- const {
177
- selection_type
178
- } = notification.sensors;
179
- let Strings = [];
180
- let sensorsString = '';
174
+ var set = notification.sensors.set;
175
+ var selection_type = notification.sensors.selection_type;
176
+ var Strings = [];
177
+ var sensorsString = '';
181
178
  if (selection_type !== 'all') {
182
- set.map(sensor => Strings.push(sensor.text));
179
+ set.map(function (sensor) {
180
+ return Strings.push(sensor.text);
181
+ });
183
182
  sensorsString = ': ';
184
183
  sensorsString += Strings.join(', ');
185
184
  }
186
185
  return sensorsString;
187
186
  }
188
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibW9ja1R5cGVzIiwiZXhwb3J0cyIsImdldEVtcHR5Tm90aWZpY2F0aW9uIiwiYXZhaWxhYmxlX3R5cGVzIiwiaWQiLCJ0eXBlIiwic2V2ZXJpdHkiLCJ3YXRlcl9hdXRob3JpdGllcyIsInNlbGVjdGlvbl90eXBlIiwic2V0IiwicG9pbnRzIiwidGFncyIsInNlbnNvcnMiLCJhY3Rpb25zIiwidGVsZWdyYW0iLCJlbWFpbCIsInNtcyIsInB1bXBfb25seSIsImRpcmVjdF9pbXBhY3Rfb25seSIsInVuZGVmaW5lZCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJsYWJlbCIsIm5hbWUiLCJ2YWx1ZSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJzb3VyY2VzUmFkaW9CdXR0b25zIiwic2VuZFZpYUNoZWNrQm94ZXMiLCJnZXROb3RpZmljYXRpb25TdHJpbmciLCJub3RpZmljYXRpb24iLCJ0cmFuc0lkeCIsInRpdGxlIiwiaTE4biIsInQiLCJjb25jYXQiLCJ0eXBlU3RyaW5nIiwic2FtcGxlU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyIsImdldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmciLCJqb2luIiwiZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyIsInNlbmRWaWEiLCJ0ZW1wQXJyYXkiLCJzZW5kVmlhU3RyaW5nIiwia2V5IiwicHVzaCIsImFuZCIsInJlcGxhY2UiLCJzZXZlcml0eVN0cmluZyIsIlN0cmluZ3MiLCJzb3VyY2VzU3RyaW5nIiwibWFwIiwic291cmNlIiwidGV4dCIsImxlbmd0aCIsInNlbnNvcnNTdHJpbmciLCJzZW5zb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xuICBhdmFpbGFibGVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xuICB3YXRlcl9hdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbjtcbiAgYWN0aW9uczogYW55O1xuICBwdW1wX29ubHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlZFNlbGVjdGlvbiB7XG4gIHNlbGVjdGlvbl90eXBlOiBzdHJpbmc7XG4gIHNldDogYW55O1xuICB3YXRlcl9hdXRob3JpdHk/OiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBtb2NrVHlwZXM6IGFueSA9IFtcbiAgJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgJ0RhdGFsb2dnZXJUaHJlc2hvbGRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZycsXG4gICdXYmVBbGVydENvbmZpZycsXG4gICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyUHVtcEFsZXJ0Q29uZmlnJyxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXRFbXB0eU5vdGlmaWNhdGlvbiA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhdmFpbGFibGVfdHlwZXM6IFtcbiAgICAgICdQb2xsdXRpb25BbGVydENvbmZpZycsXG4gICAgICAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyxcbiAgICAgICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICAgICAnRGV2aWNlSGVhbHRoQWxlcnRDb25maWcnLFxuICAgICAgJ1diZUFsZXJ0Q29uZmlnJyxcbiAgICAgICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICAgICAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgJ0RhdGFsb2dnZXJQdW1wQWxlcnRDb25maWcnLFxuICAgIF0sXG4gICAgaWQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICB3YXRlcl9hdXRob3JpdGllczoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHBvaW50czoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHRhZ3M6IHtcbiAgICAgIHNlbGVjdGlvbl90eXBlOiAnYWxsJyxcbiAgICAgIHNldDogW10sXG4gICAgfSxcbiAgICBzZW5zb3JzOiB7XG4gICAgICBzZWxlY3Rpb25fdHlwZTogJ2FsbCcsXG4gICAgICBzZXQ6IFtdLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyB0ZWxlZ3JhbTogZmFsc2UsIGVtYWlsOiB0cnVlLCBzbXM6IGZhbHNlIH0sXG4gICAgcHVtcF9vbmx5OiAnMCcsXG4gICAgZGlyZWN0X2ltcGFjdF9vbmx5OiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXh0cmVtZScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ2V4dHJlbWUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9oaWdoJyxcbiAgICBuYW1lOiAnc2V2ZXJpdHknLFxuICAgIHZhbHVlOiAnaGlnaCcsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X21lZGl1bScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ21lZGl1bScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnYWxsJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfaW5jbHVkZScsXG4gICAgbmFtZTogJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICB2YWx1ZTogJ2luY2x1ZGUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9leGNsdWRlJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc291cmNlc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdhbGwnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9pbmNsdWRlJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdpbmNsdWRlJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXhjbHVkZScsXG4gICAgbmFtZTogJ3NvdXJjZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZFZpYUNoZWNrQm94ZXMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3RlbGVncmFtJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICd0ZWxlZ3JhbScsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2VtYWlsJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICdlbWFpbCcsXG4gIH0sXG4gIC8vIHtcbiAgLy8gICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NtcycsXG4gIC8vICAgbmFtZTogJ2FjdGlvbnMnLFxuICAvLyAgIHZhbHVlOiAnc21zJyxcbiAgLy8gfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXROb3RpZmljYXRpb25TdHJpbmcgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgY29uc3QgdHJhbnNJZHggPSAnbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC4nO1xuICBjb25zdCB0aXRsZSA9IGkxOG4udChgJHt0cmFuc0lkeH10aXRsZWApO1xuICBsZXQgdHlwZVN0cmluZyA9ICcnO1xuICBsZXQgc2FtcGxlU3RyaW5nID0gJyc7XG4gIHNhbXBsZVN0cmluZyA9XG4gICAgbm90aWZpY2F0aW9uLnB1bXBfb25seSA9PT0gJzEnXG4gICAgICA/IGAgJHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zYW1wbGVyX2FjdGl2YXRlZCcpfWBcbiAgICAgIDogJy4nO1xuXG4gIHN3aXRjaCAobm90aWZpY2F0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdQb2xsdXRpb25BbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQoXG4gICAgICAgIHRyYW5zSWR4ICsgJ3NlbnNvcnNfdGhyZXNob2xkcycsXG4gICAgICApfSR7Z2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlck92ZXJmbG93QWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQodHJhbnNJZHggKyAnb3ZlcmZsb3dfZXZlbnQnKX0sICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB0cmFuc0lkeCxcbiAgICAgICl9LmA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGV2aWNlX21hbGZ1bmN0aW9uaW5nJyxcbiAgICAgICl9ICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV93ZWVrbHknKX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZUFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV9hbGVydCcpfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlclB1bXBBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGF0YWxvZ2dlcl9wdW1wJyxcbiAgICAgICl9LCAke2dldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmcobm90aWZpY2F0aW9uLCB0cmFuc0lkeCl9LmA7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdHlwZVN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3Qgc2VuZFZpYSA9IG5vdGlmaWNhdGlvbi5hY3Rpb25zO1xuICBsZXQgdGVtcEFycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBzZW5kVmlhU3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IGluIHNlbmRWaWEpIHtcbiAgICBpZiAoc2VuZFZpYVtrZXldKSB7XG4gICAgICB0ZW1wQXJyYXkucHVzaChpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5lZGl0XyR7a2V5fWApKTtcbiAgICB9XG4gIH1cbiAgc2VuZFZpYVN0cmluZyA9IHRlbXBBcnJheS5qb2luKCcsICcpO1xuICBsZXQgYW5kID0gaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2Uubm90aWZpY2F0aW9uc190ZXh0LmFuZGApO1xuICBhbmQgKz0gYW5kID09PSAnJicgPyAnICcgOiAnJztcbiAgc2VuZFZpYVN0cmluZyA9IHNlbmRWaWFTdHJpbmcucmVwbGFjZSgvLFxccyhbXixdKykkLywgYCAke2FuZH0kMWApO1xuICByZXR1cm4gc2VuZFZpYVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXZlcml0eSB9ID0gbm90aWZpY2F0aW9uO1xuICBsZXQgc2V2ZXJpdHlTdHJpbmcgPSAnJztcbiAgc2V2ZXJpdHkgPT09ICdleHRyZW1lJ1xuICAgID8gKHNldmVyaXR5U3RyaW5nID0gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZXh0cmVtZScpKVxuICAgIDogKHNldmVyaXR5U3RyaW5nID1cbiAgICAgICAgaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2UuJHtzZXZlcml0eX1gKSArXG4gICAgICAgICcgJyArXG4gICAgICAgIGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC5vcl9oaWdoZXJgKSk7XG4gIHJldHVybiBzZXZlcml0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSB7XG4gIGNvbnN0IHsgc2V0IH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuXG4gIGxldCBTdHJpbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc291cmNlc1N0cmluZyA9ICcnO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdhbGwnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9aW5fYWxsX3NvdXJjZXNgKSk7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSA9PT0gJ2V4Y2x1ZGUnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9ZXhjbHVkaW5nYCkpO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdpbmNsdWRlJylcbiAgICBzb3VyY2VzU3RyaW5nID0gaTE4bi50KGAke3RyYW5zSWR4fWluYCkgKyAnICc7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcpIHNldC5tYXAoKHNvdXJjZSkgPT4gU3RyaW5ncy5wdXNoKHNvdXJjZS50ZXh0KSk7XG4gIHNvdXJjZXNTdHJpbmcgKz0gU3RyaW5ncy5qb2luKFN0cmluZ3MubGVuZ3RoID4gMSA/ICcsICcgOiAnICcpO1xuICByZXR1cm4gc291cmNlc1N0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXQgfSA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBsZXQgU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHNlbnNvcnNTdHJpbmcgPSAnJztcbiAgaWYgKHNlbGVjdGlvbl90eXBlICE9PSAnYWxsJykge1xuICAgIHNldC5tYXAoKHNlbnNvcikgPT4gU3RyaW5ncy5wdXNoKHNlbnNvci50ZXh0KSk7XG4gICAgc2Vuc29yc1N0cmluZyA9ICc6ICc7XG4gICAgc2Vuc29yc1N0cmluZyArPSBTdHJpbmdzLmpvaW4oJywgJyk7XG4gIH1cbiAgcmV0dXJuIHNlbnNvcnNTdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFxQk8sTUFBTUMsU0FBYyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBRyxDQUM1QixzQkFBc0IsRUFDdEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsMkJBQTJCLENBQzVCO0FBRU0sTUFBTUUsb0JBQW9CLEdBQUdBLENBQUEsS0FBTTtFQUN4QyxPQUFPO0lBQ0xDLGVBQWUsRUFBRSxDQUNmLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QiwyQkFBMkIsQ0FDNUI7SUFDREMsRUFBRSxFQUFFLEVBQUU7SUFDTkMsSUFBSSxFQUFFLEVBQUU7SUFDUkMsUUFBUSxFQUFFLFFBQVE7SUFDbEJDLGlCQUFpQixFQUFFO01BQ2pCQyxjQUFjLEVBQUUsS0FBSztN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NUQsTUFBTTtJQUFFcEI7RUFBSSxDQUFDLEdBQUdtQixZQUFZLENBQUNsQixNQUFNO0VBQ25DLE1BQU07SUFBRUY7RUFBZSxDQUFDLEdBQUdvQixZQUFZLENBQUNsQixNQUFNO0VBRTlDLElBQUl1QyxPQUFpQixHQUFHLEVBQUU7RUFDMUIsSUFBSUMsYUFBYSxHQUFHLEVBQUU7RUFDdEIsSUFBSTFDLGNBQWMsS0FBSyxLQUFLLEVBQzFCeUMsT0FBTyxDQUFDSixJQUFJLENBQUNkLGFBQUksQ0FBQ0MsQ0FBQyxJQUFBQyxNQUFBLENBQUlKLFFBQVEsbUJBQWdCLENBQUMsQ0FBQztFQUNuRCxJQUFJckIsY0FBYyxLQUFLLFNBQVMsRUFDOUJ5QyxPQUFPLENBQUNKLElBQUksQ0FBQ2QsYUFBSSxDQUFDQyxDQUFDLElBQUFDLE1BQUEsQ0FBSUosUUFBUSxjQUFXLENBQUMsQ0FBQztFQUM5QyxJQUFJckIsY0FBYyxLQUFLLFNBQVMsRUFDOUIwQyxhQUFhLEdBQUduQixhQUFJLENBQUNDLENBQUMsSUFBQUMsTUFBQSxDQUFJSixRQUFRLE9BQUksQ0FBQyxHQUFHLEdBQUc7RUFDL0MsSUFBSXJCLGNBQWMsS0FBSyxLQUFLLEVBQUVDLEdBQUcsQ0FBQzBDLEdBQUcsQ0FBRUMsTUFBTSxJQUFLSCxPQUFPLENBQUNKLElBQUksQ0FBQ08sTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUM1RUgsYUFBYSxJQUFJRCxPQUFPLENBQUNWLElBQUksQ0FBQ1UsT0FBTyxDQUFDSyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7RUFDOUQsT0FBT0osYUFBYTtBQUN0QjtBQUVBLFNBQVNWLDRCQUE0QkEsQ0FBQ1osWUFBWSxFQUFFO0VBQ2xELE1BQU07SUFBRW5CO0VBQUksQ0FBQyxHQUFHbUIsWUFBWSxDQUFDaEIsT0FBTztFQUNwQyxNQUFNO0lBQUVKO0VBQWUsQ0FBQyxHQUFHb0IsWUFBWSxDQUFDaEIsT0FBTztFQUUvQyxJQUFJcUMsT0FBaUIsR0FBRyxFQUFFO0VBQzFCLElBQUlNLGFBQWEsR0FBRyxFQUFFO0VBQ3RCLElBQUkvQyxjQUFjLEtBQUssS0FBSyxFQUFFO0lBQzVCQyxHQUFHLENBQUMwQyxHQUFHLENBQUVLLE1BQU0sSUFBS1AsT0FBTyxDQUFDSixJQUFJLENBQUNXLE1BQU0sQ0FBQ0gsSUFBSSxDQUFDLENBQUM7SUFDOUNFLGFBQWEsR0FBRyxJQUFJO0lBQ3BCQSxhQUFhLElBQUlOLE9BQU8sQ0FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQztFQUNyQztFQUNBLE9BQU9nQixhQUFhO0FBQ3RCIiwiaWdub3JlTGlzdCI6W119
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibW9ja1R5cGVzIiwiZXhwb3J0cyIsImdldEVtcHR5Tm90aWZpY2F0aW9uIiwiYXZhaWxhYmxlX3R5cGVzIiwiaWQiLCJ0eXBlIiwic2V2ZXJpdHkiLCJ3YXRlcl9hdXRob3JpdGllcyIsInNlbGVjdGlvbl90eXBlIiwic2V0IiwicG9pbnRzIiwidGFncyIsInNlbnNvcnMiLCJhY3Rpb25zIiwidGVsZWdyYW0iLCJlbWFpbCIsInNtcyIsInB1bXBfb25seSIsImRpcmVjdF9pbXBhY3Rfb25seSIsInVuZGVmaW5lZCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJsYWJlbCIsIm5hbWUiLCJ2YWx1ZSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJzb3VyY2VzUmFkaW9CdXR0b25zIiwic2VuZFZpYUNoZWNrQm94ZXMiLCJnZXROb3RpZmljYXRpb25TdHJpbmciLCJub3RpZmljYXRpb24iLCJ0cmFuc0lkeCIsInRpdGxlIiwiaTE4biIsInQiLCJjb25jYXQiLCJ0eXBlU3RyaW5nIiwic2FtcGxlU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyIsImdldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmciLCJqb2luIiwiZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyIsInNlbmRWaWEiLCJ0ZW1wQXJyYXkiLCJzZW5kVmlhU3RyaW5nIiwia2V5IiwicHVzaCIsImFuZCIsInJlcGxhY2UiLCJzZXZlcml0eVN0cmluZyIsIlN0cmluZ3MiLCJzb3VyY2VzU3RyaW5nIiwibWFwIiwic291cmNlIiwidGV4dCIsImxlbmd0aCIsInNlbnNvcnNTdHJpbmciLCJzZW5zb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xuICBhdmFpbGFibGVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xuICB3YXRlcl9hdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbjtcbiAgYWN0aW9uczogYW55O1xuICBwdW1wX29ubHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlZFNlbGVjdGlvbiB7XG4gIHNlbGVjdGlvbl90eXBlOiBzdHJpbmc7XG4gIHNldDogYW55O1xuICB3YXRlcl9hdXRob3JpdHk/OiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBtb2NrVHlwZXM6IGFueSA9IFtcbiAgJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgJ0RhdGFsb2dnZXJUaHJlc2hvbGRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZycsXG4gICdXYmVBbGVydENvbmZpZycsXG4gICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyUHVtcEFsZXJ0Q29uZmlnJyxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXRFbXB0eU5vdGlmaWNhdGlvbiA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhdmFpbGFibGVfdHlwZXM6IFtcbiAgICAgICdQb2xsdXRpb25BbGVydENvbmZpZycsXG4gICAgICAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyxcbiAgICAgICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICAgICAnRGV2aWNlSGVhbHRoQWxlcnRDb25maWcnLFxuICAgICAgJ1diZUFsZXJ0Q29uZmlnJyxcbiAgICAgICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICAgICAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgJ0RhdGFsb2dnZXJQdW1wQWxlcnRDb25maWcnLFxuICAgIF0sXG4gICAgaWQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICB3YXRlcl9hdXRob3JpdGllczoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHBvaW50czoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHRhZ3M6IHtcbiAgICAgIHNlbGVjdGlvbl90eXBlOiAnYWxsJyxcbiAgICAgIHNldDogW10sXG4gICAgfSxcbiAgICBzZW5zb3JzOiB7XG4gICAgICBzZWxlY3Rpb25fdHlwZTogJ2FsbCcsXG4gICAgICBzZXQ6IFtdLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyB0ZWxlZ3JhbTogZmFsc2UsIGVtYWlsOiB0cnVlLCBzbXM6IGZhbHNlIH0sXG4gICAgcHVtcF9vbmx5OiAnMCcsXG4gICAgZGlyZWN0X2ltcGFjdF9vbmx5OiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXh0cmVtZScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ2V4dHJlbWUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9oaWdoJyxcbiAgICBuYW1lOiAnc2V2ZXJpdHknLFxuICAgIHZhbHVlOiAnaGlnaCcsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X21lZGl1bScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ21lZGl1bScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnYWxsJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfaW5jbHVkZScsXG4gICAgbmFtZTogJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICB2YWx1ZTogJ2luY2x1ZGUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9leGNsdWRlJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc291cmNlc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdhbGwnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9pbmNsdWRlJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdpbmNsdWRlJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXhjbHVkZScsXG4gICAgbmFtZTogJ3NvdXJjZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZFZpYUNoZWNrQm94ZXMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3RlbGVncmFtJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICd0ZWxlZ3JhbScsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2VtYWlsJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICdlbWFpbCcsXG4gIH0sXG4gIC8vIHtcbiAgLy8gICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NtcycsXG4gIC8vICAgbmFtZTogJ2FjdGlvbnMnLFxuICAvLyAgIHZhbHVlOiAnc21zJyxcbiAgLy8gfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXROb3RpZmljYXRpb25TdHJpbmcgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgY29uc3QgdHJhbnNJZHggPSAnbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC4nO1xuICBjb25zdCB0aXRsZSA9IGkxOG4udChgJHt0cmFuc0lkeH10aXRsZWApO1xuICBsZXQgdHlwZVN0cmluZyA9ICcnO1xuICBsZXQgc2FtcGxlU3RyaW5nID0gJyc7XG4gIHNhbXBsZVN0cmluZyA9XG4gICAgbm90aWZpY2F0aW9uLnB1bXBfb25seSA9PT0gJzEnXG4gICAgICA/IGAgJHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zYW1wbGVyX2FjdGl2YXRlZCcpfWBcbiAgICAgIDogJy4nO1xuXG4gIHN3aXRjaCAobm90aWZpY2F0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdQb2xsdXRpb25BbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQoXG4gICAgICAgIHRyYW5zSWR4ICsgJ3NlbnNvcnNfdGhyZXNob2xkcycsXG4gICAgICApfSR7Z2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlck92ZXJmbG93QWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQodHJhbnNJZHggKyAnb3ZlcmZsb3dfZXZlbnQnKX0sICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB0cmFuc0lkeCxcbiAgICAgICl9LmA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGV2aWNlX21hbGZ1bmN0aW9uaW5nJyxcbiAgICAgICl9ICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV93ZWVrbHknKX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZUFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV9hbGVydCcpfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlclB1bXBBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGF0YWxvZ2dlcl9wdW1wJyxcbiAgICAgICl9LCAke2dldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmcobm90aWZpY2F0aW9uLCB0cmFuc0lkeCl9LmA7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdHlwZVN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3Qgc2VuZFZpYSA9IG5vdGlmaWNhdGlvbi5hY3Rpb25zO1xuICBsZXQgdGVtcEFycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBzZW5kVmlhU3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IGluIHNlbmRWaWEpIHtcbiAgICBpZiAoc2VuZFZpYVtrZXldKSB7XG4gICAgICB0ZW1wQXJyYXkucHVzaChpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5lZGl0XyR7a2V5fWApKTtcbiAgICB9XG4gIH1cbiAgc2VuZFZpYVN0cmluZyA9IHRlbXBBcnJheS5qb2luKCcsICcpO1xuICBsZXQgYW5kID0gaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2Uubm90aWZpY2F0aW9uc190ZXh0LmFuZGApO1xuICBhbmQgKz0gYW5kID09PSAnJicgPyAnICcgOiAnJztcbiAgc2VuZFZpYVN0cmluZyA9IHNlbmRWaWFTdHJpbmcucmVwbGFjZSgvLFxccyhbXixdKykkLywgYCAke2FuZH0kMWApO1xuICByZXR1cm4gc2VuZFZpYVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXZlcml0eSB9ID0gbm90aWZpY2F0aW9uO1xuICBsZXQgc2V2ZXJpdHlTdHJpbmcgPSAnJztcbiAgc2V2ZXJpdHkgPT09ICdleHRyZW1lJ1xuICAgID8gKHNldmVyaXR5U3RyaW5nID0gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZXh0cmVtZScpKVxuICAgIDogKHNldmVyaXR5U3RyaW5nID1cbiAgICAgICAgaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2UuJHtzZXZlcml0eX1gKSArXG4gICAgICAgICcgJyArXG4gICAgICAgIGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC5vcl9oaWdoZXJgKSk7XG4gIHJldHVybiBzZXZlcml0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSB7XG4gIGNvbnN0IHsgc2V0IH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuXG4gIGxldCBTdHJpbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc291cmNlc1N0cmluZyA9ICcnO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdhbGwnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9aW5fYWxsX3NvdXJjZXNgKSk7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSA9PT0gJ2V4Y2x1ZGUnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9ZXhjbHVkaW5nYCkpO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdpbmNsdWRlJylcbiAgICBzb3VyY2VzU3RyaW5nID0gaTE4bi50KGAke3RyYW5zSWR4fWluYCkgKyAnICc7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcpIHNldC5tYXAoKHNvdXJjZSkgPT4gU3RyaW5ncy5wdXNoKHNvdXJjZS50ZXh0KSk7XG4gIHNvdXJjZXNTdHJpbmcgKz0gU3RyaW5ncy5qb2luKFN0cmluZ3MubGVuZ3RoID4gMSA/ICcsICcgOiAnICcpO1xuICByZXR1cm4gc291cmNlc1N0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXQgfSA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBsZXQgU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHNlbnNvcnNTdHJpbmcgPSAnJztcbiAgaWYgKHNlbGVjdGlvbl90eXBlICE9PSAnYWxsJykge1xuICAgIHNldC5tYXAoKHNlbnNvcikgPT4gU3RyaW5ncy5wdXNoKHNlbnNvci50ZXh0KSk7XG4gICAgc2Vuc29yc1N0cmluZyA9ICc6ICc7XG4gICAgc2Vuc29yc1N0cmluZyArPSBTdHJpbmdzLmpvaW4oJywgJyk7XG4gIH1cbiAgcmV0dXJuIHNlbnNvcnNTdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFxQk8sSUFBTUMsU0FBYyxHQUFHLENBQzVCLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QiwyQkFBMkIsQ0FDNUI7QUFBQ0MsT0FBQSxDQUFBRCxTQUFBLEdBQUFBLFNBQUE7QUFFSyxJQUFNRSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7RUFDeEMsT0FBTztJQUNMQyxlQUFlLEVBQUUsQ0FDZixzQkFBc0IsRUFDdEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsMkJBQTJCLENBQzVCO0lBQ0RDLEVBQUUsRUFBRSxFQUFFO0lBQ05DLElBQUksRUFBRSxFQUFFO0lBQ1JDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCQyxpQkFBaUIsRUFB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