@kando-env/kando-ui 1.2.382 → 1.2.383

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 (585) hide show
  1. package/lib/Router.js +36 -73
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +25 -35
  3. package/lib/Widgets/EventsRow/EventsRow.js +27 -39
  4. package/lib/Widgets/Map/GraphUtils.js +3 -3
  5. package/lib/Widgets/Map/Map.js +86 -122
  6. package/lib/Widgets/Map/MapUtils.js +81 -95
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +53 -77
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
  9. package/lib/Widgets/Map/areas/AreaUtils.js +47 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +4 -4
  11. package/lib/Widgets/Map/edges/Edge.js +33 -37
  12. package/lib/Widgets/Map/edges/Edges.js +21 -26
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +23 -44
  14. package/lib/Widgets/Map/events/Event.js +18 -21
  15. package/lib/Widgets/Map/events/EventIndicator.js +65 -60
  16. package/lib/Widgets/Map/events/EventPath.js +49 -24
  17. package/lib/Widgets/Map/events/EventUtils.js +60 -80
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
  19. package/lib/Widgets/Map/events/PointOfEvent.js +29 -34
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +30 -37
  21. package/lib/Widgets/Map/events/Snail.js +21 -22
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +93 -86
  23. package/lib/Widgets/Map/map/FloatingGraph.js +22 -18
  24. package/lib/Widgets/Map/map/GraphDateButton.js +25 -17
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +13 -12
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -15
  27. package/lib/Widgets/Map/points/PointIcon.js +22 -15
  28. package/lib/Widgets/Map/points/PointMarker.js +71 -87
  29. package/lib/Widgets/Map/points/PointMarkers.js +45 -66
  30. package/lib/Widgets/Map/points/PointUtils.js +145 -83
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +30 -47
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -12
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +31 -60
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
  37. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
  38. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -8
  39. package/lib/Widgets/MostPolluting/Factories/Factories.js +39 -70
  40. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -18
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
  44. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
  45. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
  46. package/lib/Widgets/MostPolluting/MostPolluting.js +25 -35
  47. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +18 -22
  48. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
  49. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
  50. package/lib/Widgets/MostPolluting/assets/index.js +10 -10
  51. package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
  52. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
  53. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +45 -35
  54. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
  55. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
  56. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +54 -50
  57. package/lib/Widgets/MostPolluting/styles.js +3 -3
  58. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
  59. package/lib/Widgets/PotentialImpactSummary/Icon.js +8 -6
  60. package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
  61. package/lib/Widgets/PotentialImpactSummary/index.test.js +47 -52
  62. package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
  63. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
  64. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
  65. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
  66. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
  67. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
  68. package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
  69. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
  70. package/lib/Widgets/QualitySummary/styles.js +23 -15
  71. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
  72. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -26
  73. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
  74. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -37
  75. package/lib/Widgets/UtilityInformation/styles.js +34 -25
  76. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
  77. package/lib/assets/icons/TopNavbar/index.js +6 -6
  78. package/lib/assets/icons/TrendSvg.js +6 -6
  79. package/lib/assets/icons/index.js +15 -15
  80. package/lib/assets/icons/kandoStepper/index.js +5 -5
  81. package/lib/assets/icons/siteTypes/index.js +1 -1
  82. package/lib/components/ApplyButton/ApplyButton.js +9 -9
  83. package/lib/components/Backdrop/Backdrop.js +6 -4
  84. package/lib/components/ContentLoader/ContentLoader.js +11 -9
  85. package/lib/components/ContentLoader/index.js +1 -1
  86. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +13 -12
  87. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
  88. package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
  89. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +13 -20
  90. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
  91. package/lib/components/CustomInputs/Search/Search.js +42 -63
  92. package/lib/components/CustomInputs/Select/Select.js +45 -58
  93. package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
  94. package/lib/components/DamageType/DamageType.js +35 -57
  95. package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
  96. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
  97. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +70 -71
  98. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
  99. package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -12
  100. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
  101. package/lib/components/DischargeHeatmap/popupText.js +10 -10
  102. package/lib/components/DischargeHeatmap/titles.js +3 -3
  103. package/lib/components/ErrorBoundary.js +27 -41
  104. package/lib/components/Events/Events.js +41 -58
  105. package/lib/components/Graph/Graph.js +77 -96
  106. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
  107. package/lib/components/Header/DoubleTabs/DoubleTabs.js +25 -33
  108. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
  109. package/lib/components/Header/DoubleTabs/styles.js +4 -4
  110. package/lib/components/Header/Header.js +2 -2
  111. package/lib/components/Header/Header.stories.js +3 -5
  112. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +22 -34
  113. package/lib/components/Header/InfoBar/InfoBar.js +74 -103
  114. package/lib/components/Header/InfoBar/Search/Control.js +9 -9
  115. package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -5
  116. package/lib/components/Header/InfoBar/Search/Search.js +16 -21
  117. package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -33
  118. package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
  119. package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
  120. package/lib/components/Header/KandoNavbar/KandoNavbar.js +64 -89
  121. package/lib/components/Header/Slideshow/Slideshow.js +68 -90
  122. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
  123. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
  124. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
  125. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +37 -43
  126. package/lib/components/Header/Toolbar/Toolbar.js +55 -74
  127. package/lib/components/InfoBar/InfoBar.js +10 -23
  128. package/lib/components/InfoBar/InfoBar.stories.js +3 -5
  129. package/lib/components/KandoModal/KandoModal.js +27 -41
  130. package/lib/components/Link.js +8 -7
  131. package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
  132. package/lib/components/Links/StyledLink/StyledLink.js +12 -12
  133. package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
  134. package/lib/components/LiveEvents/CarouselSlide.js +9 -7
  135. package/lib/components/LiveEvents/LiveEvents.js +5 -3
  136. package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -29
  137. package/lib/components/Map/Map.js +20 -23
  138. package/lib/components/Modal/Modal.js +9 -9
  139. package/lib/components/NarrowHeader.js +17 -31
  140. package/lib/components/PointInfo/PointInfo.js +19 -17
  141. package/lib/components/PopupModal/PopupModal.js +12 -16
  142. package/lib/components/PopupModal/PopupModal.stories.js +15 -19
  143. package/lib/components/Sector/Sector.js +8 -6
  144. package/lib/components/Sector/Sector.test.js +19 -20
  145. package/lib/components/Sector/sectorIcons.js +2 -2
  146. package/lib/components/SevereEvent/Eta/Eta.js +49 -52
  147. package/lib/components/SevereEvent/Eta/styles.js +10 -6
  148. package/lib/components/SevereEvent/SevereEvent.js +30 -37
  149. package/lib/components/Spinner/Spinner.js +8 -8
  150. package/lib/components/Spinner/Spinner.stories.js +4 -6
  151. package/lib/components/Spinner/styles.js +22 -14
  152. package/lib/components/Tabs/Tabs.js +21 -29
  153. package/lib/components/Tabs/Tabs.stories.js +4 -6
  154. package/lib/components/Tabs/assets/index.js +5 -5
  155. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
  156. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +40 -51
  157. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
  158. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +20 -25
  159. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
  160. package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
  161. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -25
  162. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -32
  163. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
  164. package/lib/components/TimeRangeSelector/constants.js +3 -3
  165. package/lib/components/Toggle/Toggle.js +12 -17
  166. package/lib/components/TrendGraph/TrendGraph.js +23 -39
  167. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  168. package/lib/development-environment/index.js +8 -12
  169. package/lib/development-environment/mock/browser.js +2 -4
  170. package/lib/development-environment/mock/get.js +8 -10
  171. package/lib/development-environment/mock/handlers.js +2 -2
  172. package/lib/development-environment/mock/mockBus.js +4 -4
  173. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
  174. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
  175. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
  176. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
  177. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
  178. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
  179. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
  180. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
  181. package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
  182. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
  183. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
  184. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
  185. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
  186. package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
  187. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
  188. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
  189. package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
  190. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
  191. package/lib/development-environment/togly/ToglyDashboard.js +13 -22
  192. package/lib/development-environment/togly/ToglyItem.js +36 -31
  193. package/lib/development-environment/togly/init.js +2 -2
  194. package/lib/development-environment/togly/macro.js +14 -10
  195. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  196. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  197. package/lib/hooks/useApi.js +19 -55
  198. package/lib/hooks/useApiWithDashboardQuery.js +30 -49
  199. package/lib/hooks/useClickOutside.js +3 -3
  200. package/lib/hooks/useInitializeHeaders.js +5 -5
  201. package/lib/hooks/useKandoFetch.js +16 -29
  202. package/lib/hooks/useMap.js +22 -34
  203. package/lib/hooks/useNavContext.js +22 -26
  204. package/lib/hooks/useRemoveExistingLayers.js +6 -6
  205. package/lib/hooks/useUpdateEventBodyTail.js +13 -17
  206. package/lib/hooks/useUserTimeZone.js +33 -30
  207. package/lib/hooks/useUserTimeZone.test.js +19 -22
  208. package/lib/hooks/useWindowSize.js +7 -14
  209. package/lib/index.js +11 -12
  210. package/lib/macros/getVersion.js +3 -3
  211. package/lib/pages/AreaPage/AreaPage.js +34 -67
  212. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -17
  213. package/lib/pages/AreaPage/Dashboard/Dashboard.js +30 -31
  214. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
  215. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
  216. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  217. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
  218. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
  219. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
  220. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
  221. package/lib/pages/AssessmentPage/AssessmentPage.js +40 -46
  222. package/lib/pages/CannyWidget/Feedback.js +13 -13
  223. package/lib/pages/CovidPage/CovidPage.js +8 -13
  224. package/lib/pages/CovidPage/components/Body.js +25 -27
  225. package/lib/pages/CovidPage/components/Map.js +29 -39
  226. package/lib/pages/CovidPage/components/Sidebar.js +16 -15
  227. package/lib/pages/CovidPage/components/Summary.js +20 -27
  228. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  229. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
  230. package/lib/pages/CovidPage/components/areas/Area.js +29 -40
  231. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +55 -46
  232. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
  233. package/lib/pages/CovidPage/components/areas/AreasList.js +34 -46
  234. package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
  235. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  236. package/lib/pages/DashboardMap/AreaCard.js +28 -28
  237. package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
  238. package/lib/pages/DashboardMap/Capacity.js +31 -80
  239. package/lib/pages/DashboardMap/FactoryCard.js +31 -26
  240. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
  241. package/lib/pages/DashboardMap/List.js +74 -105
  242. package/lib/pages/DashboardMap/ListContext.js +15 -19
  243. package/lib/pages/DashboardMap/Loader.js +2 -2
  244. package/lib/pages/DashboardMap/SeverityBadge.js +10 -18
  245. package/lib/pages/DashboardMap/WWTPMap.js +48 -60
  246. package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
  247. package/lib/pages/DashboardMap/Widget.js +54 -71
  248. package/lib/pages/DashboardMap/utils.js +48 -65
  249. package/lib/pages/EventsPage/Body/Body.js +20 -15
  250. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
  251. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
  252. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
  253. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
  254. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
  255. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +53 -64
  256. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
  257. package/lib/pages/EventsPage/EventsPage.js +7 -10
  258. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -38
  259. package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
  260. package/lib/pages/EventsPage/events/Sidebar.js +21 -16
  261. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
  262. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +17 -20
  263. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
  264. package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -37
  265. package/lib/pages/EventsPage/events/event_info/EventInfo.js +44 -43
  266. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
  267. package/lib/pages/EventsPage/events/event_info/EventSection.js +17 -19
  268. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
  269. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -47
  270. package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
  271. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -33
  272. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
  273. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
  274. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
  275. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
  276. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +7 -9
  277. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
  278. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
  279. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
  280. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
  281. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -26
  282. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +12 -8
  283. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
  284. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +6 -4
  285. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
  286. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
  287. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +10 -8
  288. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
  289. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
  290. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
  291. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
  292. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
  293. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
  294. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
  295. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
  296. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +7 -5
  297. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
  298. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
  299. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
  300. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
  301. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -8
  302. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
  303. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
  304. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -38
  305. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
  306. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
  307. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
  308. package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -30
  309. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +23 -26
  310. package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
  311. package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -19
  312. package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
  313. package/lib/pages/EventsPage/events/events_list/EventsList.js +124 -145
  314. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +40 -55
  315. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +79 -115
  316. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +60 -77
  317. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
  318. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
  319. package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
  320. package/lib/pages/ImportFileWizard/FileUploadRespones.js +13 -20
  321. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
  322. package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
  323. package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
  324. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -22
  325. package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
  326. package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
  327. package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
  328. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
  329. package/lib/pages/ImportGisPage/importGisUtils.js +13 -21
  330. package/lib/pages/ImportGisProcess/index.js +12 -15
  331. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
  332. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
  333. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
  334. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +56 -65
  335. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
  336. package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
  337. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
  338. package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
  339. package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
  340. package/lib/pages/NotificationsPage/assets/index.js +9 -9
  341. package/lib/pages/NotificationsPageV2/NotificationsPage.js +71 -97
  342. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +94 -63
  343. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +14 -16
  344. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +18 -16
  345. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +17 -21
  346. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +17 -21
  347. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +18 -22
  348. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +83 -69
  349. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +18 -22
  350. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
  351. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +97 -95
  352. package/lib/pages/NotificationsPageV2/notificationUtils.js +54 -48
  353. package/lib/pages/OldSitePage/OldSitePage.js +57 -132
  354. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
  355. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  356. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
  357. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
  358. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  359. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
  360. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  361. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  362. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  363. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
  364. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  365. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
  366. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
  367. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  368. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
  369. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  370. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +32 -28
  371. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +27 -29
  372. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  373. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +18 -12
  374. package/lib/pages/ProfilePage/Container.js +2 -2
  375. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +28 -44
  376. package/lib/pages/ProfilePage/ProfilePage.js +121 -214
  377. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
  378. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +19 -16
  379. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +28 -30
  380. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -117
  381. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
  382. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
  383. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +39 -41
  384. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
  385. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
  386. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
  387. package/lib/pages/SamplingsPage/NavigationDropdown.js +45 -32
  388. package/lib/pages/SamplingsPage/NewSamplingAction.js +76 -100
  389. package/lib/pages/SamplingsPage/SamplingMobileModal.js +129 -101
  390. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
  391. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
  392. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -59
  393. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
  394. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -7
  395. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +110 -194
  396. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +49 -55
  397. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -43
  398. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -45
  399. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
  400. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
  401. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
  402. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +58 -54
  403. package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
  404. package/lib/pages/SamplingsPage/SamplingsPage.js +27 -33
  405. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +50 -58
  406. package/lib/pages/SamplingsPage/samplingsPageUtils.js +68 -76
  407. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
  408. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
  409. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
  410. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  411. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  412. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
  413. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
  414. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
  415. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
  416. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
  417. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  418. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
  419. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  420. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  421. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  422. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
  423. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  424. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
  425. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
  426. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  427. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
  428. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
  429. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  430. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  431. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -59
  432. package/lib/pages/SitePage/SamplingParameters/dataParser.js +30 -39
  433. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  434. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  435. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +18 -12
  436. package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
  437. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -30
  438. package/lib/pages/SitePage/SitePage.js +42 -81
  439. package/lib/pages/UploadLabResult/index.js +13 -13
  440. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
  441. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
  442. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
  443. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
  444. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -48
  445. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
  446. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
  447. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
  448. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -12
  449. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
  450. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
  451. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
  452. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +21 -29
  453. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
  454. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -17
  455. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
  456. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +27 -31
  457. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
  458. package/lib/pages/WbeDashboard/GraphWrapper.js +30 -36
  459. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
  460. package/lib/pages/WbeDashboard/SearchInput.js +15 -20
  461. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
  462. package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
  463. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  464. package/lib/pages/WbeDashboard/WbeDashboardPage.js +151 -213
  465. package/lib/pages/WbeDashboard/WbeSummaryBar.js +40 -48
  466. package/lib/pages/WwtpPage/DashboardCard.js +26 -23
  467. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
  468. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +26 -22
  469. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
  470. package/lib/pages/WwtpPage/Map.js +5 -3
  471. package/lib/pages/WwtpPage/OrganicCard.js +2 -2
  472. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
  473. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -6
  474. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
  475. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
  476. package/lib/pages/WwtpPage/PredictionCard.js +2 -2
  477. package/lib/pages/WwtpPage/TrendCard.js +18 -19
  478. package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
  479. package/lib/pages/WwtpPage/WwtpPage.js +8 -8
  480. package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
  481. package/lib/providers/Slideshow/SlideshowContext.js +11 -9
  482. package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
  483. package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
  484. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
  485. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
  486. package/lib/providers/UrlHistory/index.js +2 -2
  487. package/lib/providers/UrlHistory/useLastVisited.js +5 -5
  488. package/lib/store/ImportGis/actionTypes.js +1 -1
  489. package/lib/store/ImportGis/actionsCreator.js +7 -5
  490. package/lib/store/ImportGis/reducer.js +40 -29
  491. package/lib/store/WBE/actionTypes.js +2 -2
  492. package/lib/store/WBE/reducer.js +13 -9
  493. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
  494. package/lib/store/areas/actionTypes.js +4 -4
  495. package/lib/store/areas/actions.js +7 -13
  496. package/lib/store/areas/reducer.js +8 -6
  497. package/lib/store/context/actionTypes.js +3 -3
  498. package/lib/store/context/actions.js +3 -3
  499. package/lib/store/context/contextMiddlewares.js +14 -16
  500. package/lib/store/context/reducer.js +13 -9
  501. package/lib/store/dashboard/dashboardSlice.js +18 -10
  502. package/lib/store/edges/actionTypes.js +5 -5
  503. package/lib/store/edges/actions.js +4 -8
  504. package/lib/store/edges/reducer.js +13 -17
  505. package/lib/store/events/actionTypes.js +17 -17
  506. package/lib/store/events/actions.js +3 -7
  507. package/lib/store/events/models/IEvent.js +1 -1
  508. package/lib/store/events/reducer.js +42 -49
  509. package/lib/store/global/actionTypes.js +11 -11
  510. package/lib/store/global/actions.js +8 -6
  511. package/lib/store/global/reducer.js +11 -10
  512. package/lib/store/permissions/permissionsSlice.js +12 -8
  513. package/lib/store/points/actionTypes.js +3 -3
  514. package/lib/store/points/actions.js +4 -8
  515. package/lib/store/points/reducer.js +7 -5
  516. package/lib/store/rootActionTypes.js +2 -2
  517. package/lib/store/rootReducer.js +17 -12
  518. package/lib/store/rootStore.js +5 -5
  519. package/lib/store/samplings/actionTypes.js +1 -1
  520. package/lib/store/samplings/reducer.js +16 -14
  521. package/lib/styles/StylesLayout.js +5 -3
  522. package/lib/styles/theme/theme.js +26 -27
  523. package/lib/test/mocks/browser.js +2 -4
  524. package/lib/test/test-utils.js +17 -15
  525. package/lib/ui-kit/Button/Button.js +128 -80
  526. package/lib/ui-kit/Button/Button.test.js +24 -29
  527. package/lib/ui-kit/Checkbox/Checkbox.js +30 -20
  528. package/lib/ui-kit/ContentCard/ContentCard.js +15 -18
  529. package/lib/ui-kit/Dashboard/Dashboard.js +25 -22
  530. package/lib/ui-kit/DropDown/DropDown.js +23 -24
  531. package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
  532. package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
  533. package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
  534. package/lib/ui-kit/EmptyState/EmptyState.js +6 -4
  535. package/lib/ui-kit/IconAction/IconAction.js +7 -5
  536. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +48 -64
  537. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +69 -52
  538. package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
  539. package/lib/ui-kit/InletsPie/options.js +6 -6
  540. package/lib/ui-kit/KandoList/KandoList.js +14 -12
  541. package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
  542. package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -22
  543. package/lib/ui-kit/Layout/Layout.js +6 -4
  544. package/lib/ui-kit/MobileInput/MobileInput.js +60 -50
  545. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
  546. package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -6
  547. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
  548. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
  549. package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
  550. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
  551. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
  552. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
  553. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
  554. package/lib/ui-kit/ScoreGauge/constant.js +3 -3
  555. package/lib/ui-kit/TimeLineChart/TrendChart.js +54 -42
  556. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
  557. package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
  558. package/lib/ui-kit/index.js +8 -8
  559. package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
  560. package/lib/ui-kit/siteName/SiteName.js +11 -8
  561. package/lib/utilities/ActionUtility.js +7 -7
  562. package/lib/utilities/Alert.js +21 -17
  563. package/lib/utilities/Analytics.js +11 -11
  564. package/lib/utilities/Array.js +4 -5
  565. package/lib/utilities/Enum.js +15 -51
  566. package/lib/utilities/ErrorBoundary.js +27 -41
  567. package/lib/utilities/File.js +40 -69
  568. package/lib/utilities/GetDir.js +8 -7
  569. package/lib/utilities/KandoDate.js +7 -15
  570. package/lib/utilities/KandoModal.js +16 -26
  571. package/lib/utilities/LocalStorage.js +8 -10
  572. package/lib/utilities/ThousandsToK.js +3 -3
  573. package/lib/utilities/TimeFormat.js +21 -20
  574. package/lib/utilities/Truncate.js +17 -25
  575. package/lib/utilities/edgesMath.js +14 -15
  576. package/lib/utilities/i18n.js +3 -3
  577. package/lib/utilities/kql.js +12 -14
  578. package/lib/utilities/map/icons.js +3 -3
  579. package/lib/utilities/polylinedecorator.js +87 -112
  580. package/lib/utilities/scoreToData.js +17 -17
  581. package/lib/utilities/scoreToData.test.js +5 -5
  582. package/lib/utilities/time.js +8 -8
  583. package/lib/utilities/uploadToS3.js +11 -11
  584. package/lib/utilities/urls.js +61 -59
  585. package/package.json +1 -1
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.Area = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
8
  var _react = _interopRequireWildcard(require("react"));
11
9
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
12
10
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
@@ -18,31 +16,30 @@ var _TrendPopupContent = _interopRequireDefault(require("../TrendPopupContent"))
18
16
  var _useQueryURL = _interopRequireDefault(require("hooks/useQueryURL"));
19
17
  var _Truncate = _interopRequireDefault(require("utilities/Truncate"));
20
18
  var _nvlStatusHelper = require("../nvlStatusHelper");
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
21
  // TODO: Covid Create interface IArea
24
22
 
25
23
  /***
26
24
  * If focus_main_area is given in the URL, then trend popup for that area will be opened.
27
25
  * */
28
- var Area = function Area(props) {
29
- var area = props.area,
30
- isSubAreasDisplayed = props.isSubAreasDisplayed,
31
- zoomedArea = props.zoomedArea;
32
- var _useState = (0, _react.useState)(false),
33
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
- expanded = _useState2[0],
35
- setExpanded = _useState2[1];
36
- var dispatch = (0, _reactRedux.useDispatch)();
37
- var popupAreaID = parseInt((0, _useQueryURL.default)().get('focus_main_area') || '');
38
- var displayNVLChange = function displayNVLChange() {
26
+ const Area = props => {
27
+ const {
28
+ area,
29
+ isSubAreasDisplayed,
30
+ zoomedArea
31
+ } = props;
32
+ const [expanded, setExpanded] = (0, _react.useState)(false);
33
+ const dispatch = (0, _reactRedux.useDispatch)();
34
+ const popupAreaID = parseInt((0, _useQueryURL.default)().get('focus_main_area') || '');
35
+ const displayNVLChange = () => {
39
36
  if (Math.sign(area.NVL_diff_ratio) === 1) {
40
- return "+".concat(area.NVL_diff_ratio, "%");
37
+ return `+${area.NVL_diff_ratio}%`;
41
38
  } else {
42
- return "".concat(area.NVL_diff_ratio, "%");
39
+ return `${area.NVL_diff_ratio}%`;
43
40
  }
44
41
  };
45
- var displaySubAreas = function displaySubAreas() {
42
+ const displaySubAreas = () => {
46
43
  if (area.sub_areas !== undefined && area.sub_areas.length !== 0) {
47
44
  dispatch((0, _actions.updateWBE)({
48
45
  focusedArea: area,
@@ -50,8 +47,8 @@ var Area = function Area(props) {
50
47
  }));
51
48
  }
52
49
  };
53
- var handleAreaClick = function handleAreaClick(mobile) {
54
- var setZoomedArea = function setZoomedArea(zoomedArea) {
50
+ const handleAreaClick = mobile => {
51
+ const setZoomedArea = zoomedArea => {
55
52
  if (area.shape_data !== undefined && area.shape_data.length !== 0) {
56
53
  if (mobile && zoomedArea !== null) {
57
54
  dispatch((0, _actions.updateWBE)({
@@ -67,34 +64,30 @@ var Area = function Area(props) {
67
64
  };
68
65
  if (zoomedArea !== null) {
69
66
  setZoomedArea(null);
70
- setTimeout(function () {
67
+ setTimeout(() => {
71
68
  setZoomedArea(area);
72
69
  }, 300);
73
70
  } else {
74
71
  setZoomedArea(area);
75
72
  }
76
73
  };
77
- var displaySamplingHistory = function displaySamplingHistory() {
74
+ const displaySamplingHistory = () => {
78
75
  // eslint-disable-next-line no-console
79
76
  console.log('sampling history');
80
77
  };
81
- var renderArea = function renderArea(mobile) {
78
+ const renderArea = mobile => {
82
79
  return /*#__PURE__*/_react.default.createElement("div", {
83
- className: "area ".concat(area.sampling_taken === null ? 'area--no_sampling' : '', " ").concat(expanded ? 'area--expanded' : '', " ").concat(mobile ? 'area--mobile' : 'area--desktop')
80
+ className: `area ${area.sampling_taken === null ? 'area--no_sampling' : ''} ${expanded ? 'area--expanded' : ''} ${mobile ? 'area--mobile' : 'area--desktop'}`
84
81
  }, /*#__PURE__*/_react.default.createElement("div", {
85
82
  className: 'area-container'
86
83
  }, /*#__PURE__*/_react.default.createElement("div", {
87
- className: "area__header area__header--".concat((0, _nvlStatusHelper.verbalizeNVL)(area.NVL)),
88
- onClick: function onClick() {
89
- return setExpanded(!expanded);
90
- }
84
+ className: `area__header area__header--${(0, _nvlStatusHelper.verbalizeNVL)(area.NVL)}`,
85
+ onClick: () => setExpanded(!expanded)
91
86
  }, /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_Truncate.default, {
92
87
  characters: 0
93
88
  }, area.name)), area.sampling_taken !== null && /*#__PURE__*/_react.default.createElement("span", null, area.NVL, " (", displayNVLChange(), ")")), /*#__PURE__*/_react.default.createElement("div", {
94
89
  className: 'area__details',
95
- onClick: function onClick() {
96
- return handleAreaClick(mobile);
97
- }
90
+ onClick: () => handleAreaClick(mobile)
98
91
  }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
99
92
  className: 'area__detail'
100
93
  }, _i18n.default.t('covid_view.area_details.NVL_change'), ":", ' ', /*#__PURE__*/_react.default.createElement("b", null, displayNVLChange())), /*#__PURE__*/_react.default.createElement("span", {
@@ -103,24 +96,20 @@ var Area = function Area(props) {
103
96
  className: 'area__detail'
104
97
  }, _i18n.default.t('covid_view.area_details.sampling_taken'), ":", ' ', /*#__PURE__*/_react.default.createElement("b", null, area.sampling_taken === null ? null : new Date(area.sampling_taken).toLocaleDateString())), /*#__PURE__*/_react.default.createElement("span", {
105
98
  className: 'area__detail'
106
- }, _i18n.default.t('covid_view.area_details.status'), ":", ' ', /*#__PURE__*/_react.default.createElement("b", null, _i18n.default.t("covid_view.area_statuses.".concat(area.status)))), /*#__PURE__*/_react.default.createElement("span", {
99
+ }, _i18n.default.t('covid_view.area_details.status'), ":", ' ', /*#__PURE__*/_react.default.createElement("b", null, _i18n.default.t(`covid_view.area_statuses.${area.status}`))), /*#__PURE__*/_react.default.createElement("span", {
107
100
  className: 'area__detail'
108
101
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
109
102
  icon: _freeSolidSvgIcons.faUsers
110
103
  }), " ", area.population)))), isSubAreasDisplayed ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null) : /*#__PURE__*/_react.default.createElement("div", {
111
104
  className: 'area__actions'
112
105
  }, /*#__PURE__*/_react.default.createElement("a", {
113
- onClick: function onClick() {
114
- return displaySubAreas();
115
- }
106
+ onClick: () => displaySubAreas()
116
107
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
117
108
  icon: _freeSolidSvgIcons.faLevelDownAlt
118
109
  }), /*#__PURE__*/_react.default.createElement("span", null, " ", _i18n.default.t('covid_view.sub_areas'))), /*#__PURE__*/_react.default.createElement("div", {
119
110
  className: "divider"
120
111
  }), /*#__PURE__*/_react.default.createElement("a", {
121
- onClick: function onClick() {
122
- return displaySamplingHistory();
123
- }
112
+ onClick: () => displaySamplingHistory()
124
113
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
125
114
  icon: _freeSolidSvgIcons.faHistory
126
115
  }), /*#__PURE__*/_react.default.createElement(_KandoModal.default, {
@@ -136,8 +125,8 @@ var Area = function Area(props) {
136
125
  includeSamplingInfo: true
137
126
  })))));
138
127
  };
139
- (0, _react.useEffect)(function () {}, [zoomedArea]);
128
+ (0, _react.useEffect)(() => {}, [zoomedArea]);
140
129
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderArea(true), renderArea(false));
141
130
  };
142
131
  exports.Area = Area;
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RGb250YXdlc29tZSIsIl9mcmVlU29saWRTdmdJY29ucyIsIl9yZWFjdFJlZHV4IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfS2FuZG9Nb2RhbCIsIl9UcmVuZFBvcHVwQ29udGVudCIsIl91c2VRdWVyeVVSTCIsIl9UcnVuY2F0ZSIsIl9udmxTdGF0dXNIZWxwZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkFyZWEiLCJwcm9wcyIsImFyZWEiLCJpc1N1YkFyZWFzRGlzcGxheWVkIiwiem9vbWVkQXJlYSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwicG9wdXBBcmVhSUQiLCJwYXJzZUludCIsInVzZVF1ZXJ5VVJMIiwiZGlzcGxheU5WTENoYW5nZSIsIk1hdGgiLCJzaWduIiwiTlZMX2RpZmZfcmF0aW8iLCJjb25jYXQiLCJkaXNwbGF5U3ViQXJlYXMiLCJzdWJfYXJlYXMiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJ1cGRhdGVXQkUiLCJmb2N1c2VkQXJlYSIsImhhbmRsZUFyZWFDbGljayIsIm1vYmlsZSIsInNldFpvb21lZEFyZWEiLCJzaGFwZV9kYXRhIiwic2lkZW5hdkV4cGFuZGVkIiwic2V0VGltZW91dCIsImRpc3BsYXlTYW1wbGluZ0hpc3RvcnkiLCJjb25zb2xlIiwibG9nIiwicmVuZGVyQXJlYSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzYW1wbGluZ190YWtlbiIsInZlcmJhbGl6ZU5WTCIsIk5WTCIsIm9uQ2xpY2siLCJjaGFyYWN0ZXJzIiwibmFtZSIsIkZyYWdtZW50IiwiaTE4biIsInQiLCJsYXN0X3VwZGF0ZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwic3RhdHVzIiwiRm9udEF3ZXNvbWVJY29uIiwiaWNvbiIsImZhVXNlcnMiLCJwb3B1bGF0aW9uIiwiZmFMZXZlbERvd25BbHQiLCJmYUhpc3RvcnkiLCJidXR0b25MYWJlbCIsIm9wZW5lckNsYXNzIiwidHlwZSIsImlzT3BlbiIsImlkIiwiY2hhbmdlSGlzdG9yeSIsInBvcHVwX2FyZWFfaWQiLCJhcmVhSUQiLCJpbmNsdWRlU2FtcGxpbmdJbmZvIiwidXNlRWZmZWN0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Db3ZpZFBhZ2UvY29tcG9uZW50cy9hcmVhcy9BcmVhLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0Jztcbi8vIFRPRE86IENvdmlkIENyZWF0ZSBpbnRlcmZhY2UgSUFyZWFcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYVVzZXJzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IGZhSGlzdG9yeSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBmYUxldmVsRG93bkFsdCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhV0JFIH0gZnJvbSAnc3JjL3N0b3JlL1dCRS9tb2RlbHMvSUFyZWFXQkUnO1xuaW1wb3J0IHsgdXBkYXRlV0JFIH0gZnJvbSAnc3JjL3N0b3JlL1dCRS9hY3Rpb25zJztcbmltcG9ydCBLYW5kb01vZGFsIGZyb20gJ3NyYy9jb21wb25lbnRzL0thbmRvTW9kYWwnO1xuaW1wb3J0IFRyZW5kUG9wdXBDb250ZW50IGZyb20gJy4uL1RyZW5kUG9wdXBDb250ZW50JztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IFRydW5jYXRlIGZyb20gJ3NyYy91dGlsaXRpZXMvVHJ1bmNhdGUnO1xuaW1wb3J0IHsgdmVyYmFsaXplTlZMIH0gZnJvbSAnLi4vbnZsU3RhdHVzSGVscGVyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgYXJlYTogSUFyZWFXQkU7XG4gIHpvb21lZEFyZWE6IElBcmVhV0JFIHwgbnVsbDtcbiAgaXNTdWJBcmVhc0Rpc3BsYXllZDogYm9vbGVhbjtcbn07XG5cbi8qKipcbiAqIElmIGZvY3VzX21haW5fYXJlYSBpcyBnaXZlbiBpbiB0aGUgVVJMLCB0aGVuIHRyZW5kIHBvcHVwIGZvciB0aGF0IGFyZWEgd2lsbCBiZSBvcGVuZWQuXG4gKiAqL1xuZXhwb3J0IGNvbnN0IEFyZWE6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGFyZWEsIGlzU3ViQXJlYXNEaXNwbGF5ZWQsIHpvb21lZEFyZWEgfSA9IHByb3BzO1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBwb3B1cEFyZWFJRCA9IHBhcnNlSW50KHVzZVF1ZXJ5VVJMKCkuZ2V0KCdmb2N1c19tYWluX2FyZWEnKSB8fCAnJyk7XG5cbiAgY29uc3QgZGlzcGxheU5WTENoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAoTWF0aC5zaWduKGFyZWEuTlZMX2RpZmZfcmF0aW8pID09PSAxKSB7XG4gICAgICByZXR1cm4gYCske2FyZWEuTlZMX2RpZmZfcmF0aW99JWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHthcmVhLk5WTF9kaWZmX3JhdGlvfSVgO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkaXNwbGF5U3ViQXJlYXMgPSAoKSA9PiB7XG4gICAgaWYgKGFyZWEuc3ViX2FyZWFzICE9PSB1bmRlZmluZWQgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVXQkUoeyBmb2N1c2VkQXJlYTogYXJlYSwgem9vbWVkQXJlYTogbnVsbCB9KSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUFyZWFDbGljayA9IChtb2JpbGU6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCBzZXRab29tZWRBcmVhID0gKHpvb21lZEFyZWE6IElBcmVhV0JFIHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKGFyZWEuc2hhcGVfZGF0YSAhPT0gdW5kZWZpbmVkICYmIGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgaWYgKG1vYmlsZSAmJiB6b29tZWRBcmVhICE9PSBudWxsKSB7XG4gICAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgICB1cGRhdGVXQkUoe1xuICAgICAgICAgICAgICB6b29tZWRBcmVhOiB6b29tZWRBcmVhLFxuICAgICAgICAgICAgICBzaWRlbmF2RXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXNwYXRjaCh1cGRhdGVXQkUoeyB6b29tZWRBcmVhOiB6b29tZWRBcmVhIH0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoem9vbWVkQXJlYSAhPT0gbnVsbCkge1xuICAgICAgc2V0Wm9vbWVkQXJlYShudWxsKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRab29tZWRBcmVhKGFyZWEpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Wm9vbWVkQXJlYShhcmVhKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGlzcGxheVNhbXBsaW5nSGlzdG9yeSA9ICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKCdzYW1wbGluZyBoaXN0b3J5Jyk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyQXJlYSA9IChtb2JpbGU6IGJvb2xlYW4pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2BhcmVhICR7XG4gICAgICAgICAgYXJlYS5zYW1wbGluZ190YWtlbiA9PT0gbnVsbCA/ICdhcmVhLS1ub19zYW1wbGluZycgOiAnJ1xuICAgICAgICB9ICR7ZXhwYW5kZWQgPyAnYXJlYS0tZXhwYW5kZWQnIDogJyd9ICR7XG4gICAgICAgICAgbW9iaWxlID8gJ2FyZWEtLW1vYmlsZScgOiAnYXJlYS0tZGVza3RvcCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnYXJlYS1jb250YWluZXInfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2BhcmVhX19oZWFkZXIgYXJlYV9faGVhZGVyLS0ke3ZlcmJhbGl6ZU5WTChhcmVhLk5WTCl9YH1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKCFleHBhbmRlZCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxUcnVuY2F0ZSBjaGFyYWN0ZXJzPXswfT57YXJlYS5uYW1lfTwvVHJ1bmNhdGU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7YXJlYS5zYW1wbGluZ190YWtlbiAhPT0gbnVsbCAmJiAoXG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHthcmVhLk5WTH0gKHtkaXNwbGF5TlZMQ2hhbmdlKCl9KVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2FyZWFfX2RldGFpbHMnfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQXJlYUNsaWNrKG1vYmlsZSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydhcmVhX19kZXRhaWwnfT5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdjb3ZpZF92aWV3LmFyZWFfZGV0YWlscy5OVkxfY2hhbmdlJyl9OnsnICd9XG4gICAgICAgICAgICAgICAgPGI+e2Rpc3BsYXlOVkxDaGFuZ2UoKX08L2I+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnYXJlYV9fZGV0YWlsJ30+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnY292aWRfdmlldy5hcmVhX2RldGFpbHMubGFzdF91cGRhdGVkJyl9OnsnICd9XG4gICAgICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgICAgICB7YXJlYS5sYXN0X3VwZGF0ZWQgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IERhdGUoYXJlYS5sYXN0X3VwZGF0ZWQpLnRvTG9jYWxlRGF0ZVN0cmluZygpfVxuICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydhcmVhX19kZXRhaWwnfT5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdjb3ZpZF92aWV3LmFyZWFfZGV0YWlscy5zYW1wbGluZ190YWtlbicpfTp7JyAnfVxuICAgICAgICAgICAgICAgIDxiPlxuICAgICAgICAgICAgICAgICAge2FyZWEuc2FtcGxpbmdfdGFrZW4gPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IERhdGUoYXJlYS5zYW1wbGluZ190YWtlbikudG9Mb2NhbGVEYXRlU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgPC9iPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2FyZWFfX2RldGFpbCd9PlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2NvdmlkX3ZpZXcuYXJlYV9kZXRhaWxzLnN0YXR1cycpfTp7JyAnfVxuICAgICAgICAgICAgICAgIDxiPntpMThuLnQoYGNvdmlkX3ZpZXcuYXJlYV9zdGF0dXNlcy4ke2FyZWEuc3RhdHVzfWApfTwvYj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydhcmVhX19kZXRhaWwnfT5cbiAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhVXNlcnN9IC8+IHthcmVhLnBvcHVsYXRpb259XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXNTdWJBcmVhc0Rpc3BsYXllZCA/IChcbiAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2FyZWFfX2FjdGlvbnMnfT5cbiAgICAgICAgICAgIDxhIG9uQ2xpY2s9eygpID0+IGRpc3BsYXlTdWJBcmVhcygpfT5cbiAgICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYUxldmVsRG93bkFsdH0gLz5cbiAgICAgICAgICAgICAgPHNwYW4+IHtpMThuLnQoJ2NvdmlkX3ZpZXcuc3ViX2FyZWFzJyl9PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXZpZGVyXCIgLz5cbiAgICAgICAgICAgIDxhIG9uQ2xpY2s9eygpID0+IGRpc3BsYXlTYW1wbGluZ0hpc3RvcnkoKX0+XG4gICAgICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFIaXN0b3J5fSAvPlxuICAgICAgICAgICAgICA8S2FuZG9Nb2RhbFxuICAgICAgICAgICAgICAgIGJ1dHRvbkxhYmVsPXtpMThuLnQoJ2NvdmlkX3ZpZXcuTlZMX3RyZW5kJyl9XG4gICAgICAgICAgICAgICAgb3BlbmVyQ2xhc3M9XCJpbmxpbmVcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJiaWdcIlxuICAgICAgICAgICAgICAgIGlzT3Blbj17cG9wdXBBcmVhSUQgPT09IGFyZWEuaWR9XG4gICAgICAgICAgICAgICAgY2hhbmdlSGlzdG9yeT17eyBwb3B1cF9hcmVhX2lkOiBhcmVhLmlkIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHJlbmRQb3B1cENvbnRlbnRcbiAgICAgICAgICAgICAgICAgIGFyZWFJRD17YXJlYS5pZH1cbiAgICAgICAgICAgICAgICAgIGluY2x1ZGVTYW1wbGluZ0luZm89e3RydWV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9LYW5kb01vZGFsPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge30sIFt6b29tZWRBcmVhXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7cmVuZGVyQXJlYSh0cnVlKX1cbiAgICAgIHtyZW5kZXJBcmVhKGZhbHNlKX1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFHQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFFQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFGLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBUSxrQkFBQSxHQUFBSCxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBSixzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBTCxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVcsZ0JBQUEsR0FBQVgsT0FBQTtBQUFrRCxTQUFBWSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWQsd0JBQUFrQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFB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
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RGb250YXdlc29tZSIsIl9mcmVlU29saWRTdmdJY29ucyIsIl9yZWFjdFJlZHV4IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfS2FuZG9Nb2RhbCIsIl9UcmVuZFBvcHVwQ29udGVudCIsIl91c2VRdWVyeVVSTCIsIl9UcnVuY2F0ZSIsIl9udmxTdGF0dXNIZWxwZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiQXJlYSIsInByb3BzIiwiYXJlYSIsImlzU3ViQXJlYXNEaXNwbGF5ZWQiLCJ6b29tZWRBcmVhIiwiZXhwYW5kZWQiLCJzZXRFeHBhbmRlZCIsInVzZVN0YXRlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInBvcHVwQXJlYUlEIiwicGFyc2VJbnQiLCJ1c2VRdWVyeVVSTCIsImRpc3BsYXlOVkxDaGFuZ2UiLCJNYXRoIiwic2lnbiIsIk5WTF9kaWZmX3JhdGlvIiwiZGlzcGxheVN1YkFyZWFzIiwic3ViX2FyZWFzIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwidXBkYXRlV0JFIiwiZm9jdXNlZEFyZWEiLCJoYW5kbGVBcmVhQ2xpY2siLCJtb2JpbGUiLCJzZXRab29tZWRBcmVhIiwic2hhcGVfZGF0YSIsInNpZGVuYXZFeHBhbmRlZCIsInNldFRpbWVvdXQiLCJkaXNwbGF5U2FtcGxpbmdIaXN0b3J5IiwiY29uc29sZSIsImxvZyIsInJlbmRlckFyZWEiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic2FtcGxpbmdfdGFrZW4iLCJ2ZXJiYWxpemVOVkwiLCJOVkwiLCJvbkNsaWNrIiwiY2hhcmFjdGVycyIsIm5hbWUiLCJGcmFnbWVudCIsImkxOG4iLCJ0IiwibGFzdF91cGRhdGVkIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsInN0YXR1cyIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYVVzZXJzIiwicG9wdWxhdGlvbiIsImZhTGV2ZWxEb3duQWx0IiwiZmFIaXN0b3J5IiwiYnV0dG9uTGFiZWwiLCJvcGVuZXJDbGFzcyIsInR5cGUiLCJpc09wZW4iLCJpZCIsImNoYW5nZUhpc3RvcnkiLCJwb3B1cF9hcmVhX2lkIiwiYXJlYUlEIiwiaW5jbHVkZVNhbXBsaW5nSW5mbyIsInVzZUVmZmVjdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvQ292aWRQYWdlL2NvbXBvbmVudHMvYXJlYXMvQXJlYS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG4vLyBUT0RPOiBDb3ZpZCBDcmVhdGUgaW50ZXJmYWNlIElBcmVhXG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFVc2VycyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBmYUhpc3RvcnkgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgZmFMZXZlbERvd25BbHQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBJQXJlYVdCRSB9IGZyb20gJ3NyYy9zdG9yZS9XQkUvbW9kZWxzL0lBcmVhV0JFJztcbmltcG9ydCB7IHVwZGF0ZVdCRSB9IGZyb20gJ3NyYy9zdG9yZS9XQkUvYWN0aW9ucyc7XG5pbXBvcnQgS2FuZG9Nb2RhbCBmcm9tICdzcmMvY29tcG9uZW50cy9LYW5kb01vZGFsJztcbmltcG9ydCBUcmVuZFBvcHVwQ29udGVudCBmcm9tICcuLi9UcmVuZFBvcHVwQ29udGVudCc7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnc3JjL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCBUcnVuY2F0ZSBmcm9tICdzcmMvdXRpbGl0aWVzL1RydW5jYXRlJztcbmltcG9ydCB7IHZlcmJhbGl6ZU5WTCB9IGZyb20gJy4uL252bFN0YXR1c0hlbHBlcic7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFyZWE6IElBcmVhV0JFO1xuICB6b29tZWRBcmVhOiBJQXJlYVdCRSB8IG51bGw7XG4gIGlzU3ViQXJlYXNEaXNwbGF5ZWQ6IGJvb2xlYW47XG59O1xuXG4vKioqXG4gKiBJZiBmb2N1c19tYWluX2FyZWEgaXMgZ2l2ZW4gaW4gdGhlIFVSTCwgdGhlbiB0cmVuZCBwb3B1cCBmb3IgdGhhdCBhcmVhIHdpbGwgYmUgb3BlbmVkLlxuICogKi9cbmV4cG9ydCBjb25zdCBBcmVhOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBhcmVhLCBpc1N1YkFyZWFzRGlzcGxheWVkLCB6b29tZWRBcmVhIH0gPSBwcm9wcztcbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgcG9wdXBBcmVhSUQgPSBwYXJzZUludCh1c2VRdWVyeVVSTCgpLmdldCgnZm9jdXNfbWFpbl9hcmVhJykgfHwgJycpO1xuXG4gIGNvbnN0IGRpc3BsYXlOVkxDaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKE1hdGguc2lnbihhcmVhLk5WTF9kaWZmX3JhdGlvKSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGArJHthcmVhLk5WTF9kaWZmX3JhdGlvfSVgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7YXJlYS5OVkxfZGlmZl9yYXRpb30lYDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGlzcGxheVN1YkFyZWFzID0gKCkgPT4ge1xuICAgIGlmIChhcmVhLnN1Yl9hcmVhcyAhPT0gdW5kZWZpbmVkICYmIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlV0JFKHsgZm9jdXNlZEFyZWE6IGFyZWEsIHpvb21lZEFyZWE6IG51bGwgfSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVBcmVhQ2xpY2sgPSAobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3Qgc2V0Wm9vbWVkQXJlYSA9ICh6b29tZWRBcmVhOiBJQXJlYVdCRSB8IG51bGwpID0+IHtcbiAgICAgIGlmIChhcmVhLnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCAmJiBhcmVhLnNoYXBlX2RhdGEubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGlmIChtb2JpbGUgJiYgem9vbWVkQXJlYSAhPT0gbnVsbCkge1xuICAgICAgICAgIGRpc3BhdGNoKFxuICAgICAgICAgICAgdXBkYXRlV0JFKHtcbiAgICAgICAgICAgICAgem9vbWVkQXJlYTogem9vbWVkQXJlYSxcbiAgICAgICAgICAgICAgc2lkZW5hdkV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlzcGF0Y2godXBkYXRlV0JFKHsgem9vbWVkQXJlYTogem9vbWVkQXJlYSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHpvb21lZEFyZWEgIT09IG51bGwpIHtcbiAgICAgIHNldFpvb21lZEFyZWEobnVsbCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0Wm9vbWVkQXJlYShhcmVhKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFpvb21lZEFyZWEoYXJlYSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRpc3BsYXlTYW1wbGluZ0hpc3RvcnkgPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZygnc2FtcGxpbmcgaGlzdG9yeScpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckFyZWEgPSAobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgYXJlYSAke1xuICAgICAgICAgIGFyZWEuc2FtcGxpbmdfdGFrZW4gPT09IG51bGwgPyAnYXJlYS0tbm9fc2FtcGxpbmcnIDogJydcbiAgICAgICAgfSAke2V4cGFuZGVkID8gJ2FyZWEtLWV4cGFuZGVkJyA6ICcnfSAke1xuICAgICAgICAgIG1vYmlsZSA/ICdhcmVhLS1tb2JpbGUnIDogJ2FyZWEtLWRlc2t0b3AnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2FyZWEtY29udGFpbmVyJ30+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYXJlYV9faGVhZGVyIGFyZWFfX2hlYWRlci0tJHt2ZXJiYWxpemVOVkwoYXJlYS5OVkwpfWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRFeHBhbmRlZCghZXhwYW5kZWQpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8VHJ1bmNhdGUgY2hhcmFjdGVycz17MH0+e2FyZWEubmFtZX08L1RydW5jYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAge2FyZWEuc2FtcGxpbmdfdGFrZW4gIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YXJlYS5OVkx9ICh7ZGlzcGxheU5WTENoYW5nZSgpfSlcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9eydhcmVhX19kZXRhaWxzJ31cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUFyZWFDbGljayhtb2JpbGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnYXJlYV9fZGV0YWlsJ30+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnY292aWRfdmlldy5hcmVhX2RldGFpbHMuTlZMX2NoYW5nZScpfTp7JyAnfVxuICAgICAgICAgICAgICAgIDxiPntkaXNwbGF5TlZMQ2hhbmdlKCl9PC9iPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2FyZWFfX2RldGFpbCd9PlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2NvdmlkX3ZpZXcuYXJlYV9kZXRhaWxzLmxhc3RfdXBkYXRlZCcpfTp7JyAnfVxuICAgICAgICAgICAgICAgIDxiPlxuICAgICAgICAgICAgICAgICAge2FyZWEubGFzdF91cGRhdGVkID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBEYXRlKGFyZWEubGFzdF91cGRhdGVkKS50b0xvY2FsZURhdGVTdHJpbmcoKX1cbiAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnYXJlYV9fZGV0YWlsJ30+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnY292aWRfdmlldy5hcmVhX2RldGFpbHMuc2FtcGxpbmdfdGFrZW4nKX06eycgJ31cbiAgICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICAgIHthcmVhLnNhbXBsaW5nX3Rha2VuID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBEYXRlKGFyZWEuc2FtcGxpbmdfdGFrZW4pLnRvTG9jYWxlRGF0ZVN0cmluZygpfVxuICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydhcmVhX19kZXRhaWwnfT5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdjb3ZpZF92aWV3LmFyZWFfZGV0YWlscy5zdGF0dXMnKX06eycgJ31cbiAgICAgICAgICAgICAgICA8Yj57aTE4bi50KGBjb3ZpZF92aWV3LmFyZWFfc3RhdHVzZXMuJHthcmVhLnN0YXR1c31gKX08L2I+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnYXJlYV9fZGV0YWlsJ30+XG4gICAgICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYVVzZXJzfSAvPiB7YXJlYS5wb3B1bGF0aW9ufVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2lzU3ViQXJlYXNEaXNwbGF5ZWQgPyAoXG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydhcmVhX19hY3Rpb25zJ30+XG4gICAgICAgICAgICA8YSBvbkNsaWNrPXsoKSA9PiBkaXNwbGF5U3ViQXJlYXMoKX0+XG4gICAgICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFMZXZlbERvd25BbHR9IC8+XG4gICAgICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdjb3ZpZF92aWV3LnN1Yl9hcmVhcycpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlclwiIC8+XG4gICAgICAgICAgICA8YSBvbkNsaWNrPXsoKSA9PiBkaXNwbGF5U2FtcGxpbmdIaXN0b3J5KCl9PlxuICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhSGlzdG9yeX0gLz5cbiAgICAgICAgICAgICAgPEthbmRvTW9kYWxcbiAgICAgICAgICAgICAgICBidXR0b25MYWJlbD17aTE4bi50KCdjb3ZpZF92aWV3Lk5WTF90cmVuZCcpfVxuICAgICAgICAgICAgICAgIG9wZW5lckNsYXNzPVwiaW5saW5lXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmlnXCJcbiAgICAgICAgICAgICAgICBpc09wZW49e3BvcHVwQXJlYUlEID09PSBhcmVhLmlkfVxuICAgICAgICAgICAgICAgIGNoYW5nZUhpc3Rvcnk9e3sgcG9wdXBfYXJlYV9pZDogYXJlYS5pZCB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRyZW5kUG9wdXBDb250ZW50XG4gICAgICAgICAgICAgICAgICBhcmVhSUQ9e2FyZWEuaWR9XG4gICAgICAgICAgICAgICAgICBpbmNsdWRlU2FtcGxpbmdJbmZvPXt0cnVlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvS2FuZG9Nb2RhbD5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHt9LCBbem9vbWVkQXJlYV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAge3JlbmRlckFyZWEodHJ1ZSl9XG4gICAgICB7cmVuZGVyQXJlYShmYWxzZSl9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsa0JBQUEsR0FBQUYsT0FBQTtBQUdBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUwsT0FBQTtBQUVBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFILHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBUyxZQUFBLEdBQUFKLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBVSxTQUFBLEdBQUFMLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBWCxPQUFBO0FBQWtELFNBQUFZLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFkLHdCQUFBa0IsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLEdBQUEsRUFBQVcsR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWCxHQUFBLENBQUFXLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFGLEdBQUEsTUFBQUcsS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWhCLEdBQUEsRUFBQU0sTUFBQSxZQUFBQSxNQUFBO0FBZGxEOztBQXNCQTtBQUNBO0FBQ0E7QUFDTyxNQUFNVyxJQUFxQixHQUFJQyxLQUFLLElBQUs7RUFDOUMsTUFBTTtJQUFFQyxJQUFJO0lBQUVDLG1CQUFtQjtJQUFFQztFQUFXLENBQUMsR0FBR0gsS0FBSztFQUN2RCxNQUFNLENBQUNJLFFBQVEsRUFBRUMsV0FBVyxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFDLEtBQUssQ0FBQztFQUMvQyxNQUFNQyxRQUFRLEdBQUcsSUFBQUMsdUJBQVcsRUFBQyxDQUFDO0VBQzlCLE1BQU1DLFdBQVcsR0FBR0MsUUFBUSxDQUFDLElBQUFDLG9CQUFXLEVBQUMsQ0FBQyxDQUFDeEIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0VBRXhFLE1BQU15QixnQkFBZ0IsR0FBR0EsQ0FBQSxLQUFNO0lBQzdCLElBQUlDLElBQUksQ0FBQ0MsSUFBSSxDQUFDYixJQUFJLENBQUNjLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtNQUN4QyxPQUFRLElBQUdkLElBQUksQ0FBQ2MsY0FBZSxHQUFFO0lBQ25DLENBQUMsTUFBTTtNQUNMLE9BQVEsR0FBRWQsSUFBSSxDQUFDYyxjQUFlLEdBQUU7SUFDbEM7RUFDRixDQUFDO0VBRUQsTUFBTUMsZUFBZSxHQUFHQSxDQUFBLEtBQU07SUFDNUIsSUFBSWYsSUFBSSxDQUFDZ0IsU0FBUyxLQUFLQyxTQUFTLElBQUlqQixJQUFJLENBQUNnQixTQUFTLENBQUNFLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDL0RaLFFBQVEsQ0FBQyxJQUFBYSxrQkFBUyxFQUFDO1FBQUVDLFdBQVcsRUFBRXBCLElBQUk7UUFBRUUsVUFBVSxFQUFFO01BQUssQ0FBQyxDQUFDLENBQUM7SUFDOUQ7RUFDRixDQUFDO0VBRUQsTUFBTW1CLGVBQWUsR0FBSUMsTUFBZSxJQUFLO0lBQzNDLE1BQU1DLGFBQWEsR0FBSXJCLFVBQTJCLElBQUs7TUFDckQsSUFBSUYsSUFBSSxDQUFDd0IsVUFBVSxLQUFLUCxTQUFTLElBQUlqQixJQUFJLENBQUN3QixVQUFVLENBQUNOLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakUsSUFBSUksTUFBTSxJQUFJcEIsVUFBVSxLQUFLLElBQUksRUFBRTtVQUNqQ0ksUUFBUSxDQUNOLElBQUFhLGtCQUFTLEVBQUM7WUFDUmpCLFVBQVUsRUFBRUEsVUFBVTtZQUN0QnVCLGVBQWUsRUFBRTtVQUNuQixDQUFDLENBQ0gsQ0FBQztRQUNILENBQUMsTUFBTTtVQUNMbkIsUUFBUSxDQUFDLElBQUFhLGtCQUFTLEVBQUM7WUFBRWpCLFVBQVUsRUFBRUE7VUFBVyxDQUFDLENBQUMsQ0FBQztRQUNqRDtNQUNGO0lBQ0YsQ0FBQztJQUVELElBQUlBLFVBQVUsS0FBSyxJQUFJLEVBQUU7TUFDdkJxQixhQUFhLENBQUMsSUFBSSxDQUFDO01BQ25CRyxVQUFVLENBQUMsTUFBTTtRQUNmSCxhQUFhLENBQUN2QixJQUFJLENBQUM7TUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNULENBQUMsTUFBTTtNQUNMdUIsYUFBYSxDQUFDdkIsSUFBSSxDQUFDO0lBQ3JCO0VBQ0YsQ0FBQztFQUVELE1BQU0yQixzQkFBc0IsR0FBR0EsQ0FBQSxLQUFNO0lBQ25DO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0VBQ2pDLENBQUM7RUFFRCxNQUFNQyxVQUFVLEdBQUlSLE1BQWUsSUFBSztJQUN0QyxvQkFDRTVELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFDRUMsU0FBUyxFQUFHLFFBQ1ZoQyxJQUFJLENBQUNpQyxjQUFjLEtBQUssSUFBSSxHQUFHLG1CQUFtQixHQUFHLEVBQ3RELElBQUc5QixRQUFRLEdBQUcsZ0JBQWdCLEdBQUcsRUFBRyxJQUNuQ21CLE1BQU0sR0FBRyxjQUFjLEdBQUcsZUFDM0I7SUFBRSxnQkFFSDVELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFBS0MsU0FBUyxFQUFFO0lBQWlCLGdCQUMvQnRFLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFDRUMsU0FBUyxFQUFHLDhCQUE2QixJQUFBRSw2QkFBWSxFQUFDbEMsSUFBSSxDQUFDbUMsR0FBRyxDQUFFLEVBQUU7TUFDbEVDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNaEMsV0FBVyxDQUFDLENBQUNELFFBQVE7SUFBRSxnQkFFdEN6QyxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLDRCQUNFckUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDekQsU0FBQSxDQUFBUyxPQUFRO01BQUNzRCxVQUFVLEVBQUU7SUFBRSxHQUFFckMsSUFBSSxDQUFDc0MsSUFBZSxDQUMxQyxDQUFDLEVBQ050QyxJQUFJLENBQUNpQyxjQUFjLEtBQUssSUFBSSxpQkFDM0J2RSxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLGVBQ0cvQixJQUFJLENBQUNtQyxHQUFHLEVBQUMsSUFBRSxFQUFDeEIsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLEdBQzVCLENBRUwsQ0FBQyxlQUNOakQsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQTtNQUNFQyxTQUFTLEVBQUUsZUFBZ0I7TUFDM0JJLE9BQU8sRUFBRUEsQ0FBQSxLQUFNZixlQUFlLENBQUNDLE1BQU07SUFBRSxnQkFFdkM1RCxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLENBQUNyRSxNQUFBLENBQUFxQixPQUFLLENBQUN3RCxRQUFRLHFCQUNiN0UsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQTtNQUFNQyxTQUFTLEVBQUU7SUFBZSxHQUM3QlEsYUFBSSxDQUFDQyxDQUFDLENBQUMsb0NBQW9DLENBQUMsRUFBQyxHQUFDLEVBQUMsR0FBRyxlQUNuRC9FLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUEsWUFBSXBCLGdCQUFnQixDQUFDLENBQUssQ0FDdEIsQ0FBQyxlQUNQakQsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQTtNQUFNQyxTQUFTLEVBQUU7SUFBZSxHQUM3QlEsYUFBSSxDQUFDQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsRUFBQyxHQUFDLEVBQUMsR0FBRyxlQUNyRC9FLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUEsWUFDRy9CLElBQUksQ0FBQzBDLFlBQVksS0FBSyxJQUFJLEdBQ3ZCLElBQUksR0FDSixJQUFJQyxJQUFJLENBQUMzQyxJQUFJLENBQUMwQyxZQUFZLENBQUMsQ0FBQ0Usa0JBQWtCLENBQUMsQ0FDbEQsQ0FDQyxDQUFDLGVBQ1BsRixNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBO01BQU1DLFNBQVMsRUFBRTtJQUFlLEdBQzdCUSxhQUFJLENBQUNDLENBQUMsQ0FBQyx3Q0FBd0MsQ0FBQyxFQUFDLEdBQUMsRUFBQyxHQUFHLGVBQ3ZEL0UsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQSxZQUNHL0IsSUFBSSxDQUFDaUMsY0FBYyxLQUFLLElBQUksR0FDekIsSUFBSSxHQUNKLElBQUlVLElBQUksQ0FBQzNDLElBQUksQ0FBQ2lDLGNBQWMsQ0FBQyxDQUFDVyxrQkFBa0IsQ0FBQyxDQUNwRCxDQUNDLENBQUMsZUFDUGxGLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFBTUMsU0FBUyxFQUFFO0lBQWUsR0FDN0JRLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUMsR0FBQyxFQUFDLEdBQUcsZUFDL0MvRSxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLFlBQUlTLGFBQUksQ0FBQ0MsQ0FBQyxDQUFFLDRCQUEyQnpDLElBQUksQ0FBQzZDLE1BQU8sRUFBQyxDQUFLLENBQ3JELENBQUMsZUFDUG5GLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFBTUMsU0FBUyxFQUFFO0lBQWUsZ0JBQzlCdEUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDbEUsaUJBQUEsQ0FBQWlGLGVBQWU7TUFBQ0MsSUFBSSxFQUFFQztJQUFRLENBQUUsQ0FBQyxLQUFDLEVBQUNoRCxJQUFJLENBQUNpRCxVQUNyQyxDQUNRLENBQ2IsQ0FDRixDQUFDLEVBQ0xoRCxtQkFBbUIsZ0JBQ2xCdkMsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDckUsTUFBQSxDQUFBcUIsT0FBSyxDQUFDd0QsUUFBUSxNQUFFLENBQUMsZ0JBRWxCN0UsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQTtNQUFLQyxTQUFTLEVBQUU7SUFBZ0IsZ0JBQzlCdEUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQTtNQUFHSyxPQUFPLEVBQUVBLENBQUEsS0FBTXJCLGVBQWUsQ0FBQztJQUFFLGdCQUNsQ3JELE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQ2xFLGlCQUFBLENBQUFpRixlQUFlO01BQUNDLElBQUksRUFBRUc7SUFBZSxDQUFFLENBQUMsZUFDekN4RixNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLGVBQU0sR0FBQyxFQUFDUyxhQUFJLENBQUNDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBUSxDQUM1QyxDQUFDLGVBQ0ovRSxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFTLENBQUUsQ0FBQyxlQUMzQnRFLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUE7TUFBR0ssT0FBTyxFQUFFQSxDQUFBLEtBQU1ULHNCQUFzQixDQUFDO0lBQUUsZ0JBQ3pDakUsTUFBQSxDQUFBcUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDbEUsaUJBQUEsQ0FBQWlGLGVBQWU7TUFBQ0MsSUFBSSxFQUFFSTtJQUFVLENBQUUsQ0FBQyxlQUNwQ3pGLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQzVELFdBQUEsQ0FBQVksT0FBVTtNQUNUcUUsV0FBVyxFQUFFWixhQUFJLENBQUNDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBRTtNQUM1Q1ksV0FBVyxFQUFDLFFBQVE7TUFDcEJDLElBQUksRUFBQyxLQUFLO01BQ1ZDLE1BQU0sRUFBRS9DLFdBQVcsS0FBS1IsSUFBSSxDQUFDd0QsRUFBRztNQUNoQ0MsYUFBYSxFQUFFO1FBQUVDLGFBQWEsRUFBRTFELElBQUksQ0FBQ3dEO01BQUc7SUFBRSxnQkFFMUM5RixNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLENBQUMzRCxrQkFBQSxDQUFBVyxPQUFpQjtNQUNoQjRFLE1BQU0sRUFBRTNELElBQUksQ0FBQ3dELEVBQUc7TUFDaEJJLG1CQUFtQixFQUFFO0lBQUssQ0FDM0IsQ0FDUyxDQUNYLENBQ0EsQ0FFSixDQUFDO0VBRVYsQ0FBQztFQUVELElBQUFDLGdCQUFTLEVBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDM0QsVUFBVSxDQUFDLENBQUM7RUFFakMsb0JBQ0V4QyxNQUFBLENBQUFxQixPQUFBLENBQUFnRCxhQUFBLENBQUNyRSxNQUFBLENBQUFxQixPQUFLLENBQUN3RCxRQUFRLFFBQ1pULFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDaEJBLFVBQVUsQ0FBQyxLQUFLLENBQ0gsQ0FBQztBQUVyQixDQUFDO0FBQUNnQyxPQUFBLENBQUFoRSxJQUFBLEdBQUFBLElBQUEifQ==
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -19,25 +18,27 @@ var _up = _interopRequireDefault(require("../../../../assets/NVL_trends/up.png")
19
18
  var _down = _interopRequireDefault(require("../../../../assets/NVL_trends/down.png"));
20
19
  var _same = _interopRequireDefault(require("../../../../assets/NVL_trends/same.png"));
21
20
  var _nvlStatusHelper = require("../nvlStatusHelper");
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
- var AreaPolygonWBE = function AreaPolygonWBE(props) {
25
- var L = props.L,
26
- map = props.map,
27
- area = props.area,
28
- mapZoom = props.mapZoom;
29
- var dispatch = (0, _reactRedux.useDispatch)();
30
- var matchColorToPolygon = function matchColorToPolygon(polygon) {
31
- var polygonColor = (0, _nvlStatusHelper.statusColor)(area.NVL);
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ const AreaPolygonWBE = props => {
24
+ const {
25
+ L,
26
+ map,
27
+ area,
28
+ mapZoom
29
+ } = props;
30
+ const dispatch = (0, _reactRedux.useDispatch)();
31
+ const matchColorToPolygon = polygon => {
32
+ const polygonColor = (0, _nvlStatusHelper.statusColor)(area.NVL);
32
33
  polygon.setStyle({
33
34
  fillColor: polygonColor,
34
35
  color: polygonColor
35
36
  });
36
37
  };
37
- var createMarkerByNVLChange = function createMarkerByNVLChange() {
38
- var LatLng = [area.point.latitude, area.point.longitude];
39
- var options;
40
- var iconOptions = function iconOptions(iconURL) {
38
+ const createMarkerByNVLChange = () => {
39
+ const LatLng = [area.point.latitude, area.point.longitude];
40
+ let options;
41
+ let iconOptions = iconURL => {
41
42
  return {
42
43
  iconUrl: iconURL,
43
44
  iconSize: [33, 30],
@@ -46,34 +47,34 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
46
47
  };
47
48
  };
48
49
  if (Math.sign(area.NVL_diff_ratio) === 1) {
49
- var valid = L.icon(iconOptions(_up.default));
50
+ let valid = L.icon(iconOptions(_up.default));
50
51
  options = {
51
52
  opacity: 1,
52
53
  icon: valid
53
54
  };
54
55
  } else if (area.NVL_diff_ratio === 0) {
55
- var invalid = L.icon(iconOptions(_same.default));
56
+ let invalid = L.icon(iconOptions(_same.default));
56
57
  options = {
57
58
  opacity: 1,
58
59
  icon: invalid
59
60
  };
60
61
  } else {
61
- var pending = L.icon(iconOptions(_down.default));
62
+ let pending = L.icon(iconOptions(_down.default));
62
63
  options = {
63
64
  opacity: 1,
64
65
  icon: pending
65
66
  };
66
67
  }
67
68
  if (area.point.latitude !== null && area.point.longitude !== null) {
68
- var marker = L.marker(LatLng, options).addTo(map);
69
+ let marker = L.marker(LatLng, options).addTo(map);
69
70
  marker['kando_object_id'] = area.point.id;
70
71
  marker['kando_object'] = 'Point';
71
72
  }
72
73
  };
73
- var createMarkerByStatus = function createMarkerByStatus() {
74
- var LatLng = [area.point.latitude, area.point.longitude];
75
- var options;
76
- var iconOptions = function iconOptions(iconURL) {
74
+ const createMarkerByStatus = () => {
75
+ const LatLng = [area.point.latitude, area.point.longitude];
76
+ let options;
77
+ let iconOptions = iconURL => {
77
78
  return {
78
79
  iconUrl: iconURL,
79
80
  iconSize: [54, 58],
@@ -83,28 +84,28 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
83
84
  };
84
85
  switch (area.status) {
85
86
  case 0:
86
- var valid = L.icon(iconOptions(_validSampling.default));
87
+ let valid = L.icon(iconOptions(_validSampling.default));
87
88
  options = {
88
89
  opacity: 0.8,
89
90
  icon: valid
90
91
  };
91
92
  break;
92
93
  case 1:
93
- var invalid = L.icon(iconOptions(_invalidSampling.default));
94
+ let invalid = L.icon(iconOptions(_invalidSampling.default));
94
95
  options = {
95
96
  opacity: 0.8,
96
97
  icon: invalid
97
98
  };
98
99
  break;
99
100
  case 2:
100
- var pending = L.icon(iconOptions(_pendingSampling.default));
101
+ let pending = L.icon(iconOptions(_pendingSampling.default));
101
102
  options = {
102
103
  opacity: 0.8,
103
104
  icon: pending
104
105
  };
105
106
  break;
106
107
  case 3:
107
- var missing = L.icon(iconOptions(_missingSampling.default));
108
+ let missing = L.icon(iconOptions(_missingSampling.default));
108
109
  options = {
109
110
  opacity: 0.8,
110
111
  icon: missing
@@ -112,21 +113,23 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
112
113
  break;
113
114
  }
114
115
  if (area.point.latitude !== null && area.point.longitude !== null) {
115
- var marker = L.marker(LatLng, options);
116
+ let marker = L.marker(LatLng, options);
116
117
  marker['kando_object_id'] = area.point.id;
117
118
  marker['kando_object'] = 'Point';
118
119
  marker.addTo(map);
119
- marker.bindPopup("\n <p>".concat(area.name, " / ").concat(area.point.name, "</p>\n "));
120
+ marker.bindPopup(`
121
+ <p>${area.name} / ${area.point.name}</p>
122
+ `);
120
123
  }
121
124
  };
122
- var NVLScoreForSite = function NVLScoreForSite() {
125
+ const NVLScoreForSite = () => {
123
126
  if (area.NVL_diff_ratio === null) {
124
- return "".concat(_i18n.default.t('covid_view.NVL_score_for_site.null'), ": ").concat(area.NVL);
127
+ return `${_i18n.default.t('covid_view.NVL_score_for_site.null')}: ${area.NVL}`;
125
128
  } else {
126
- return "".concat(_i18n.default.t('covid_view.NVL_score_for_site.present'), ": ").concat(area.NVL_diff_ratio);
129
+ return `${_i18n.default.t('covid_view.NVL_score_for_site.present')}: ${area.NVL_diff_ratio}`;
127
130
  }
128
131
  };
129
- var fakeLayer = function fakeLayer() {
132
+ const fakeLayer = () => {
130
133
  if (area.point !== undefined) {
131
134
  return {
132
135
  shape_data: [area.point.longitude, area.point.latitude],
@@ -138,10 +141,10 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
138
141
  };
139
142
  }
140
143
  };
141
- var samplingsForSubAreas = function samplingsForSubAreas() {
142
- var noSamplings = false;
144
+ const samplingsForSubAreas = () => {
145
+ let noSamplings = false;
143
146
  if (area.sub_areas !== undefined && area.sub_areas.length !== 0) {
144
- area.sub_areas.forEach(function (sub_area) {
147
+ area.sub_areas.forEach(sub_area => {
145
148
  if (sub_area.status !== 3) {
146
149
  noSamplings = false;
147
150
  } else {
@@ -158,12 +161,12 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
158
161
  };
159
162
  (0, _useRemoveExistingLayers.default)(map, area, 'Area', mapZoom);
160
163
  (0, _useRemoveExistingLayers.default)(map, fakeLayer(), 'Point', mapZoom);
161
- (0, _react.useEffect)(function () {
164
+ (0, _react.useEffect)(() => {
162
165
  if (area.shape_data !== null && area.shape_data !== undefined) {
163
- var latlngs = area.shape_data.map(function (location) {
166
+ let latlngs = area.shape_data.map(location => {
164
167
  return [location['lat'], location['lng']];
165
168
  });
166
- var polygon = L.polygon(latlngs).addTo(map);
169
+ let polygon = L.polygon(latlngs).addTo(map);
167
170
  polygon['kando_object_id'] = area.id;
168
171
  polygon['kando_object'] = 'Area';
169
172
  matchColorToPolygon(polygon);
@@ -180,7 +183,7 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
180
183
  createMarkerByNVLChange();
181
184
  }
182
185
  polygon.bringToBack();
183
- polygon.on('click', function (e) {
186
+ polygon.on('click', e => {
184
187
  if (area.sub_areas !== undefined && area.sub_areas.length !== 0) {
185
188
  dispatch((0, _actions.updateWBE)({
186
189
  focusedArea: area,
@@ -188,11 +191,17 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
188
191
  }));
189
192
  }
190
193
  });
191
- polygon.on('mouseover', function (e) {
192
- var layer = e.target;
193
- var LatLng = layer.getBounds().getCenter();
194
- var popup = L.popup().setLatLng(LatLng).setContent("\n <h4>".concat(area.name, "</h4>\n <p>").concat(NVLScoreForSite(), "</p>\n <p>").concat(_i18n.default.t('covid_view.viral_load'), ": ").concat(area.NVL, "</p>\n <p>").concat(_i18n.default.t('covid_view.status'), ": ").concat(_i18n.default.t("covid_view.area_statuses.".concat(area.status)), "</p>\n <p>").concat(samplingsForSubAreas(), "</p>\n ")).openOn(map);
195
- polygon.on('mouseout', function (e) {
194
+ polygon.on('mouseover', e => {
195
+ let layer = e.target;
196
+ let LatLng = layer.getBounds().getCenter();
197
+ let popup = L.popup().setLatLng(LatLng).setContent(`
198
+ <h4>${area.name}</h4>
199
+ <p>${NVLScoreForSite()}</p>
200
+ <p>${_i18n.default.t('covid_view.viral_load')}: ${area.NVL}</p>
201
+ <p>${_i18n.default.t('covid_view.status')}: ${_i18n.default.t(`covid_view.area_statuses.${area.status}`)}</p>
202
+ <p>${samplingsForSubAreas()}</p>
203
+ `).openOn(map);
204
+ polygon.on('mouseout', e => {
196
205
  map.closePopup(popup);
197
206
  });
198
207
  });
@@ -202,4 +211,4 @@ var AreaPolygonWBE = function AreaPolygonWBE(props) {
202
211
  };
203
212
  var _default = AreaPolygonWBE;
204
213
  exports.default = _default;
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl91c2VSZW1vdmVFeGlzdGluZ0xheWVycyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9hY3Rpb25zIiwiX3ZhbGlkU2FtcGxpbmciLCJfaW52YWxpZFNhbXBsaW5nIiwiX21pc3NpbmdTYW1wbGluZyIsIl9wZW5kaW5nU2FtcGxpbmciLCJfdXAiLCJfZG93biIsIl9zYW1lIiwiX252bFN0YXR1c0hlbHBlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiQXJlYVBvbHlnb25XQkUiLCJwcm9wcyIsIkwiLCJtYXAiLCJhcmVhIiwibWFwWm9vbSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJtYXRjaENvbG9yVG9Qb2x5Z29uIiwicG9seWdvbiIsInBvbHlnb25Db2xvciIsInN0YXR1c0NvbG9yIiwiTlZMIiwic2V0U3R5bGUiLCJmaWxsQ29sb3IiLCJjb2xvciIsImNyZWF0ZU1hcmtlckJ5TlZMQ2hhbmdlIiwiTGF0TG5nIiwicG9pbnQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsIm9wdGlvbnMiLCJpY29uT3B0aW9ucyIsImljb25VUkwiLCJpY29uVXJsIiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJNYXRoIiwic2lnbiIsIk5WTF9kaWZmX3JhdGlvIiwidmFsaWQiLCJpY29uIiwidHJlbmRVcEljb24iLCJvcGFjaXR5IiwiaW52YWxpZCIsInRyZW5kU2FtZUljb24iLCJwZW5kaW5nIiwidHJlbmREb3duSWNvbiIsIm1hcmtlciIsImFkZFRvIiwiaWQiLCJjcmVhdGVNYXJrZXJCeVN0YXR1cyIsInN0YXR1cyIsInZhbGlkU2FtcGxpbmdJY29uIiwiaW52YWxpZFNhbXBsaW5nSWNvbiIsInBlbmRpbmdTYW1wbGluZ0ljb24iLCJtaXNzaW5nIiwibWlzc2luZ1NhbXBsaW5nSWNvbiIsImJpbmRQb3B1cCIsImNvbmNhdCIsIm5hbWUiLCJOVkxTY29yZUZvclNpdGUiLCJpMThuIiwidCIsImZha2VMYXllciIsInVuZGVmaW5lZCIsInNoYXBlX2RhdGEiLCJzYW1wbGluZ3NGb3JTdWJBcmVhcyIsIm5vU2FtcGxpbmdzIiwic3ViX2FyZWFzIiwibGVuZ3RoIiwiZm9yRWFjaCIsInN1Yl9hcmVhIiwidXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMiLCJ1c2VFZmZlY3QiLCJsYXRsbmdzIiwibG9jYXRpb24iLCJmaWxsT3BhY2l0eSIsImJyaW5nVG9CYWNrIiwib24iLCJlIiwidXBkYXRlV0JFIiwiZm9jdXNlZEFyZWEiLCJ6b29tZWRBcmVhIiwibGF5ZXIiLCJ0YXJnZXQiLCJnZXRCb3VuZHMiLCJnZXRDZW50ZXIiLCJwb3B1cCIsInNldExhdExuZyIsInNldENvbnRlbnQiLCJvcGVuT24iLCJjbG9zZVBvcHVwIiwiY3JlYXRlRWxlbWVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Db3ZpZFBhZ2UvY29tcG9uZW50cy9hcmVhcy9BcmVhUG9seWdvbldCRS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMgZnJvbSAnc3JjL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBJQXJlYVdCRSB9IGZyb20gJ3NyYy9zdG9yZS9XQkUvbW9kZWxzL0lBcmVhV0JFJztcbmltcG9ydCB7IHVwZGF0ZVdCRSB9IGZyb20gJ3NyYy9zdG9yZS9XQkUvYWN0aW9ucyc7XG5pbXBvcnQgdmFsaWRTYW1wbGluZ0ljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2FyZWFfc3RhdHVzZXMvdmFsaWQtc2FtcGxpbmcucG5nJztcbmltcG9ydCBpbnZhbGlkU2FtcGxpbmdJY29uIGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcmVhX3N0YXR1c2VzL2ludmFsaWQtc2FtcGxpbmcucG5nJztcbmltcG9ydCBtaXNzaW5nU2FtcGxpbmdJY29uIGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcmVhX3N0YXR1c2VzL21pc3Npbmctc2FtcGxpbmcucG5nJztcbmltcG9ydCBwZW5kaW5nU2FtcGxpbmdJY29uIGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcmVhX3N0YXR1c2VzL3BlbmRpbmctc2FtcGxpbmcucG5nJztcbmltcG9ydCB0cmVuZFVwSWNvbiBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvTlZMX3RyZW5kcy91cC5wbmcnO1xuaW1wb3J0IHRyZW5kRG93bkljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL05WTF90cmVuZHMvZG93bi5wbmcnO1xuaW1wb3J0IHRyZW5kU2FtZUljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL05WTF90cmVuZHMvc2FtZS5wbmcnO1xuaW1wb3J0IHsgc3RhdHVzQ29sb3IgfSBmcm9tICcuLi9udmxTdGF0dXNIZWxwZXInO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBhcmVhOiBJQXJlYVdCRTtcbiAgbWFwWm9vbTogbnVtYmVyO1xufTtcblxuY29uc3QgQXJlYVBvbHlnb25XQkU6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgYXJlYSwgbWFwWm9vbSB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbWF0Y2hDb2xvclRvUG9seWdvbiA9IChwb2x5Z29uOiBhbnkpID0+IHtcbiAgICBjb25zdCBwb2x5Z29uQ29sb3IgPSBzdGF0dXNDb2xvcihhcmVhLk5WTCk7XG4gICAgcG9seWdvbi5zZXRTdHlsZSh7IGZpbGxDb2xvcjogcG9seWdvbkNvbG9yLCBjb2xvcjogcG9seWdvbkNvbG9yIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU1hcmtlckJ5TlZMQ2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IExhdExuZyA9IFthcmVhLnBvaW50LmxhdGl0dWRlLCBhcmVhLnBvaW50LmxvbmdpdHVkZV07XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgbGV0IGljb25PcHRpb25zID0gKGljb25VUkw6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblVybDogaWNvblVSTCxcbiAgICAgICAgaWNvblNpemU6IFszMywgMzBdLFxuICAgICAgICBpY29uQW5jaG9yOiBbLTUsIDQ1XSxcbiAgICAgICAgcG9wdXBBbmNob3I6IFstOSwgLTM2XSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGlmIChNYXRoLnNpZ24oYXJlYS5OVkxfZGlmZl9yYXRpbykgPT09IDEpIHtcbiAgICAgIGxldCB2YWxpZCA9IEwuaWNvbihpY29uT3B0aW9ucyh0cmVuZFVwSWNvbikpO1xuICAgICAgb3B0aW9ucyA9IHsgb3BhY2l0eTogMSwgaWNvbjogdmFsaWQgfTtcbiAgICB9IGVsc2UgaWYgKGFyZWEuTlZMX2RpZmZfcmF0aW8gPT09IDApIHtcbiAgICAgIGxldCBpbnZhbGlkID0gTC5pY29uKGljb25PcHRpb25zKHRyZW5kU2FtZUljb24pKTtcbiAgICAgIG9wdGlvbnMgPSB7IG9wYWNpdHk6IDEsIGljb246IGludmFsaWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHBlbmRpbmcgPSBMLmljb24oaWNvbk9wdGlvbnModHJlbmREb3duSWNvbikpO1xuICAgICAgb3B0aW9ucyA9IHsgb3BhY2l0eTogMSwgaWNvbjogcGVuZGluZyB9O1xuICAgIH1cblxuICAgIGlmIChhcmVhLnBvaW50LmxhdGl0dWRlICE9PSBudWxsICYmIGFyZWEucG9pbnQubG9uZ2l0dWRlICE9PSBudWxsKSB7XG4gICAgICBsZXQgbWFya2VyID0gTC5tYXJrZXIoTGF0TG5nLCBvcHRpb25zKS5hZGRUbyhtYXApO1xuICAgICAgbWFya2VyWydrYW5kb19vYmplY3RfaWQnXSA9IGFyZWEucG9pbnQuaWQ7XG4gICAgICBtYXJrZXJbJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlTWFya2VyQnlTdGF0dXMgPSAoKSA9PiB7XG4gICAgY29uc3QgTGF0TG5nID0gW2FyZWEucG9pbnQubGF0aXR1ZGUsIGFyZWEucG9pbnQubG9uZ2l0dWRlXTtcbiAgICBsZXQgb3B0aW9ucztcbiAgICBsZXQgaWNvbk9wdGlvbnMgPSAoaWNvblVSTDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uVXJsOiBpY29uVVJMLFxuICAgICAgICBpY29uU2l6ZTogWzU0LCA1OF0sXG4gICAgICAgIGljb25BbmNob3I6IFsxOSwgNDJdLFxuICAgICAgICBwb3B1cEFuY2hvcjogWzgsIC0zNl0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBzd2l0Y2ggKGFyZWEuc3RhdHVzKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIGxldCB2YWxpZCA9IEwuaWNvbihpY29uT3B0aW9ucyh2YWxpZFNhbXBsaW5nSWNvbikpO1xuICAgICAgICBvcHRpb25zID0geyBvcGFjaXR5OiAwLjgsIGljb246IHZhbGlkIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxOlxuICAgICAgICBsZXQgaW52YWxpZCA9IEwuaWNvbihpY29uT3B0aW9ucyhpbnZhbGlkU2FtcGxpbmdJY29uKSk7XG4gICAgICAgIG9wdGlvbnMgPSB7IG9wYWNpdHk6IDAuOCwgaWNvbjogaW52YWxpZCB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgbGV0IHBlbmRpbmcgPSBMLmljb24oaWNvbk9wdGlvbnMocGVuZGluZ1NhbXBsaW5nSWNvbikpO1xuICAgICAgICBvcHRpb25zID0geyBvcGFjaXR5OiAwLjgsIGljb246IHBlbmRpbmcgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGxldCBtaXNzaW5nID0gTC5pY29uKGljb25PcHRpb25zKG1pc3NpbmdTYW1wbGluZ0ljb24pKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgb3BhY2l0eTogMC44LCBpY29uOiBtaXNzaW5nIH07XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChhcmVhLnBvaW50LmxhdGl0dWRlICE9PSBudWxsICYmIGFyZWEucG9pbnQubG9uZ2l0dWRlICE9PSBudWxsKSB7XG4gICAgICBsZXQgbWFya2VyID0gTC5tYXJrZXIoTGF0TG5nLCBvcHRpb25zKTtcbiAgICAgIG1hcmtlclsna2FuZG9fb2JqZWN0X2lkJ10gPSBhcmVhLnBvaW50LmlkO1xuICAgICAgbWFya2VyWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gICAgICBtYXJrZXIuYWRkVG8obWFwKTtcbiAgICAgIG1hcmtlci5iaW5kUG9wdXAoYFxuICAgICAgICAgICAgPHA+JHthcmVhLm5hbWV9IC8gJHthcmVhLnBvaW50Lm5hbWV9PC9wPlxuICAgICAgICAgICAgYCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IE5WTFNjb3JlRm9yU2l0ZSA9ICgpID0+IHtcbiAgICBpZiAoYXJlYS5OVkxfZGlmZl9yYXRpbyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGAke2kxOG4udCgnY292aWRfdmlldy5OVkxfc2NvcmVfZm9yX3NpdGUubnVsbCcpfTogJHthcmVhLk5WTH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7aTE4bi50KCdjb3ZpZF92aWV3Lk5WTF9zY29yZV9mb3Jfc2l0ZS5wcmVzZW50Jyl9OiAke1xuICAgICAgICBhcmVhLk5WTF9kaWZmX3JhdGlvXG4gICAgICB9YDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZmFrZUxheWVyID0gKCkgPT4ge1xuICAgIGlmIChhcmVhLnBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNoYXBlX2RhdGE6IFthcmVhLnBvaW50LmxvbmdpdHVkZSwgYXJlYS5wb2ludC5sYXRpdHVkZV0sXG4gICAgICAgIGlkOiBhcmVhLnBvaW50LmlkLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2hhcGVfZGF0YTogbnVsbCxcbiAgICAgIH07XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNhbXBsaW5nc0ZvclN1YkFyZWFzID0gKCkgPT4ge1xuICAgIGxldCBub1NhbXBsaW5nczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlmIChhcmVhLnN1Yl9hcmVhcyAhPT0gdW5kZWZpbmVkICYmIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYXJlYS5zdWJfYXJlYXMuZm9yRWFjaCgoc3ViX2FyZWE6IElBcmVhV0JFKSA9PiB7XG4gICAgICAgIGlmIChzdWJfYXJlYS5zdGF0dXMgIT09IDMpIHtcbiAgICAgICAgICBub1NhbXBsaW5ncyA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vU2FtcGxpbmdzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChub1NhbXBsaW5ncykge1xuICAgICAgICByZXR1cm4gaTE4bi50KCdjb3ZpZF92aWV3Lm5vX3ZhbGlkX3NhbXBsaW5ncycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpMThuLnQoJ2NvdmlkX3ZpZXcubm9fdmFsaWRfc2FtcGxpbmdzJyk7XG4gIH07XG5cbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBhcmVhLCAnQXJlYScsIG1hcFpvb20pO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIGZha2VMYXllcigpLCAnUG9pbnQnLCBtYXBab29tKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYXJlYS5zaGFwZV9kYXRhICE9PSBudWxsICYmIGFyZWEuc2hhcGVfZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgbGF0bG5ncyA9IGFyZWEuc2hhcGVfZGF0YS5tYXAoKGxvY2F0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIFtsb2NhdGlvblsnbGF0J10sIGxvY2F0aW9uWydsbmcnXV07XG4gICAgICB9KTtcblxuICAgICAgbGV0IHBvbHlnb246IGFueSA9IEwucG9seWdvbihsYXRsbmdzKS5hZGRUbyhtYXApO1xuICAgICAgcG9seWdvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBhcmVhLmlkO1xuICAgICAgcG9seWdvblsna2FuZG9fb2JqZWN0J10gPSAnQXJlYSc7XG4gICAgICBtYXRjaENvbG9yVG9Qb2x5Z29uKHBvbHlnb24pO1xuICAgICAgcG9seWdvbi5zZXRTdHlsZSh7IGZpbGxPcGFjaXR5OiAwLjQgfSk7XG5cbiAgICAgIGlmIChtYXBab29tID4gMTYpIHtcbiAgICAgICAgcG9seWdvbi5zZXRTdHlsZSh7IGZpbGxPcGFjaXR5OiAwIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoYXJlYS5wb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNyZWF0ZU1hcmtlckJ5U3RhdHVzKCk7XG4gICAgICAgIGNyZWF0ZU1hcmtlckJ5TlZMQ2hhbmdlKCk7XG4gICAgICB9XG5cbiAgICAgIHBvbHlnb24uYnJpbmdUb0JhY2soKTtcbiAgICAgIHBvbHlnb24ub24oJ2NsaWNrJywgKGU6IGFueSkgPT4ge1xuICAgICAgICBpZiAoYXJlYS5zdWJfYXJlYXMgIT09IHVuZGVmaW5lZCAmJiBhcmVhLnN1Yl9hcmVhcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgIHVwZGF0ZVdCRSh7XG4gICAgICAgICAgICAgIGZvY3VzZWRBcmVhOiBhcmVhLFxuICAgICAgICAgICAgICB6b29tZWRBcmVhOiBhcmVhLnN1Yl9hcmVhc1swXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcG9seWdvbi5vbignbW91c2VvdmVyJywgKGU6IGFueSkgPT4ge1xuICAgICAgICBsZXQgbGF5ZXIgPSBlLnRhcmdldDtcbiAgICAgICAgbGV0IExhdExuZyA9IGxheWVyLmdldEJvdW5kcygpLmdldENlbnRlcigpO1xuICAgICAgICBsZXQgcG9wdXAgPSBMLnBvcHVwKClcbiAgICAgICAgICAuc2V0TGF0TG5nKExhdExuZylcbiAgICAgICAgICAuc2V0Q29udGVudChcbiAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICAgPGg0PiR7YXJlYS5uYW1lfTwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxwPiR7TlZMU2NvcmVGb3JTaXRlKCl9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD4ke2kxOG4udCgnY292aWRfdmlldy52aXJhbF9sb2FkJyl9OiAke2FyZWEuTlZMfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+JHtpMThuLnQoJ2NvdmlkX3ZpZXcuc3RhdHVzJyl9OiAke2kxOG4udChcbiAgICAgICAgICAgICAgYGNvdmlkX3ZpZXcuYXJlYV9zdGF0dXNlcy4ke2FyZWEuc3RhdHVzfWAsXG4gICAgICAgICAgICApfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+JHtzYW1wbGluZ3NGb3JTdWJBcmVhcygpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgYCxcbiAgICAgICAgICApXG4gICAgICAgICAgLm9wZW5PbihtYXApO1xuXG4gICAgICAgIHBvbHlnb24ub24oJ21vdXNlb3V0JywgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIG1hcC5jbG9zZVBvcHVwKHBvcHVwKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFthcmVhLCBtYXBab29tXSk7XG5cbiAgcmV0dXJuIDxkaXY+PC9kaXY+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQXJlYVBvbHlnb25XQkU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsd0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGNBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxnQkFBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVMsZ0JBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLEdBQUEsR0FBQVAsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLEtBQUEsR0FBQVQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFhLGdCQUFBLEdBQUFiLE9BQUE7QUFBaUQsU0FBQWMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFoQix3QkFBQW9CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFTakQsSUFBTVcsY0FBK0IsR0FBRyxTQUFsQ0EsY0FBK0JBLENBQUlDLEtBQUssRUFBSztFQUNqRCxJQUFRQyxDQUFDLEdBQXlCRCxLQUFLLENBQS9CQyxDQUFDO0lBQUVDLEdBQUcsR0FBb0JGLEtBQUssQ0FBNUJFLEdBQUc7SUFBRUMsSUFBSSxHQUFjSCxLQUFLLENBQXZCRyxJQUFJO0lBQUVDLE9BQU8sR0FBS0osS0FBSyxDQUFqQkksT0FBTztFQUM3QixJQUFNQyxRQUFRLEdBQUcsSUFBQUMsdUJBQVcsRUFBQyxDQUFDO0VBQzlCLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLE9BQVksRUFBSztJQUM1QyxJQUFNQyxZQUFZLEdBQUcsSUFBQUMsNEJBQVcsRUFBQ1AsSUFBSSxDQUFDUSxHQUFHLENBQUM7SUFDMUNILE9BQU8sQ0FBQ0ksUUFBUSxDQUFDO01BQUVDLFNBQVMsRUFBRUosWUFBWTtNQUFFSyxLQUFLLEVBQUVMO0lBQWEsQ0FBQyxDQUFDO0VBQ3BFLENBQUM7RUFFRCxJQUFNTSx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBLEVBQVM7SUFDcEMsSUFBTUMsTUFBTSxHQUFHLENBQUNiLElBQUksQ0FBQ2MsS0FBSyxDQUFDQyxRQUFRLEVBQUVmLElBQUksQ0FBQ2MsS0FBSyxDQUFDRSxTQUFTLENBQUM7SUFDMUQsSUFBSUMsT0FBTztJQUNYLElBQUlDLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxPQUFlLEVBQUs7TUFDckMsT0FBTztRQUNMQyxPQUFPLEVBQUVELE9BQU87UUFDaEJFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEJDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwQkMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO01BQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUMsSUFBSSxDQUFDQyxJQUFJLENBQUN6QixJQUFJLENBQUMwQixjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7TUFDeEMsSUFBSUMsS0FBSyxHQUFHN0IsQ0FBQyxDQUFDOEIsSUFBSSxDQUFDVixXQUFXLENBQUNXLFdBQVcsQ0FBQyxDQUFDO01BQzVDWixPQUFPLEdBQUc7UUFBRWEsT0FBTyxFQUFFLENBQUM7UUFBRUYsSUFBSSxFQUFFRDtNQUFNLENBQUM7SUFDdkMsQ0FBQyxNQUFNLElBQUkzQixJQUFJLENBQUMwQixjQUFjLEtBQUssQ0FBQyxFQUFFO01BQ3BDLElBQUlLLE9BQU8sR0FBR2pDLENBQUMsQ0FBQzhCLElBQUksQ0FBQ1YsV0FBVyxDQUFDYyxhQUFhLENBQUMsQ0FBQztNQUNoRGYsT0FBTyxHQUFHO1FBQUVhLE9BQU8sRUFBRSxDQUFDO1FBQUVGLElBQUksRUFBRUc7TUFBUSxDQUFDO0lBQ3pDLENBQUMsTUFBTTtNQUNMLElBQUlFLE9BQU8sR0FBR25DLENBQUMsQ0FBQzhCLElBQUksQ0FBQ1YsV0FBVyxDQUFDZ0IsYUFBYSxDQUFDLENBQUM7TUFDaERqQixPQUFPLEdBQUc7UUFBRWEsT0FBTyxFQUFFLENBQUM7UUFBRUYsSUFBSSxFQUFFSztNQUFRLENBQUM7SUFDekM7SUFFQSxJQUFJakMsSUFBSSxDQUFDYyxLQUFLLENBQUNDLFFBQVEsS0FBSyxJQUFJLElBQUlmLElBQUksQ0FBQ2MsS0FBSyxDQUFDRSxTQUFTLEtBQUssSUFBSSxFQUFFO01BQ2pFLElBQUltQixNQUFNLEdBQUdyQyxDQUFDLENBQUNxQyxNQUFNLENBQUN0QixNQUFNLEVBQUVJLE9BQU8sQ0FBQyxDQUFDbUIsS0FBSyxDQUFDckMsR0FBRyxDQUFDO01BQ2pEb0MsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUduQyxJQUFJLENBQUNjLEtBQUssQ0FBQ3VCLEVBQUU7TUFDekNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPO0lBQ2xDO0VBQ0YsQ0FBQztFQUVELElBQU1HLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUEsRUFBUztJQUNqQyxJQUFNekIsTUFBTSxHQUFHLENBQUNiLElBQUksQ0FBQ2MsS0FBSyxDQUFDQyxRQUFRLEVBQUVmLElBQUksQ0FBQ2MsS0FBSyxDQUFDRSxTQUFTLENBQUM7SUFDMUQsSUFBSUMsT0FBTztJQUNYLElBQUlDLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxPQUFlLEVBQUs7TUFDckMsT0FBTztRQUNMQyxPQUFPLEVBQUVELE9BQU87UUFDaEJFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7TUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRdkIsSUFBSSxDQUFDdUMsTUFBTTtNQUNqQixLQUFLLENBQUM7UUFDSixJQUFJWixLQUFLLEdBQUc3QixDQUFDLENBQUM4QixJQUFJLENBQUNWLFdBQVcsQ0FBQ3NCLHNCQUFpQixDQUFDLENBQUM7UUFDbER2QixPQUFPLEdBQUc7VUFBRWEsT0FBTyxFQUFFLEdBQUc7VUFBRUYsSUFBSSxFQUFFRDtRQUFNLENBQUM7UUFDdkM7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJSSxPQUFPLEdBQUdqQyxDQUFDLENBQUM4QixJQUFJLENBQUNWLFdBQVcsQ0FBQ3VCLHdCQUFtQixDQUFDLENBQUM7UUFDdER4QixPQUFPLEdBQUc7VUFBRWEsT0FBTyxFQUFFLEdBQUc7VUFBRUYsSUFBSSxFQUFFRztRQUFRLENBQUM7UUFDekM7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJRSxPQUFPLEdBQUduQyxDQUFDLENBQUM4QixJQUFJLENBQUNWLFdBQVcsQ0FBQ3dCLHdCQUFtQixDQUFDLENBQUM7UUFDdER6QixPQUFPLEdBQUc7VUFBRWEsT0FBTyxFQUFFLEdBQUc7VUFBRUYsSUFBSSxFQUFFSztRQUFRLENBQUM7UUFDekM7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJVSxPQUFPLEdBQUc3QyxDQUFDLENBQUM4QixJQUFJLENBQUNWLFdBQVcsQ0FBQzBCLHdCQUFtQixDQUFDLENBQUM7UUFDdEQzQixPQUFPLEdBQUc7VUFBRWEsT0FBTyxFQUFFLEdBQUc7VUFBRUYsSUFBSSxFQUFFZTtRQUFRLENBQUM7UUFDekM7SUFDSjtJQUVBLElBQUkzQyxJQUFJLENBQUNjLEtBQUssQ0FBQ0MsUUFBUSxLQUFLLElBQUksSUFBSWYsSUFBSSxDQUFDYyxLQUFLLENBQUNFLFNBQVMsS0FBSyxJQUFJLEVBQUU7TUFDakUsSUFBSW1CLE1BQU0sR0FBR3JDLENBQUMsQ0FBQ3FDLE1BQU0sQ0FBQ3RCLE1BQU0sRUFBRUksT0FBTyxDQUFDO01BQ3RDa0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUduQyxJQUFJLENBQUNjLEtBQUssQ0FBQ3VCLEVBQUU7TUFDekNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPO01BQ2hDQSxNQUFNLENBQUNDLEtBQUssQ0FBQ3JDLEdBQUcsQ0FBQztNQUNqQm9DLE1BQU0sQ0FBQ1UsU0FBUyxxQkFBQUMsTUFBQSxDQUNMOUMsSUFBSSxDQUFDK0MsSUFBSSxTQUFBRCxNQUFBLENBQU05QyxJQUFJLENBQUNjLEtBQUssQ0FBQ2lDLElBQUksdUJBQ2xDLENBQUM7SUFDVjtFQUNGLENBQUM7RUFFRCxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBUztJQUM1QixJQUFJaEQsSUFBSSxDQUFDMEIsY0FBYyxLQUFLLElBQUksRUFBRTtNQUNoQyxVQUFBb0IsTUFBQSxDQUFVRyxhQUFJLENBQUNDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxRQUFBSixNQUFBLENBQUs5QyxJQUFJLENBQUNRLEdBQUc7SUFDckUsQ0FBQyxNQUFNO01BQ0wsVUFBQXNDLE1BQUEsQ0FBVUcsYUFBSSxDQUFDQyxDQUFDLENBQUMsdUNBQXVDLENBQUMsUUFBQUosTUFBQSxDQUN2RDlDLElBQUksQ0FBQzBCLGNBQWM7SUFFdkI7RUFDRixDQUFDO0VBRUQsSUFBTXlCLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7SUFDdEIsSUFBSW5ELElBQUksQ0FBQ2MsS0FBSyxLQUFLc0MsU0FBUyxFQUFFO01BQzVCLE9BQU87UUFDTEMsVUFBVSxFQUFFLENBQUNyRCxJQUFJLENBQUNjLEtBQUssQ0FBQ0UsU0FBUyxFQUFFaEIsSUFBSSxDQUFDYyxLQUFLLENBQUNDLFFBQVEsQ0FBQztRQUN2RHNCLEVBQUUsRUFBRXJDLElBQUksQ0FBQ2MsS0FBSyxDQUFDdUI7TUFDakIsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLE9BQU87UUFDTGdCLFVBQVUsRUFBRTtNQUNkLENBQUM7SUFDSDtFQUNGLENBQUM7RUFFRCxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7SUFDakMsSUFBSUMsV0FBb0IsR0FBRyxLQUFLO0lBQ2hDLElBQUl2RCxJQUFJLENBQUN3RCxTQUFTLEtBQUtKLFNBQVMsSUFBSXBELElBQUksQ0FBQ3dELFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUMvRHpELElBQUksQ0FBQ3dELFNBQVMsQ0FBQ0UsT0FBTyxDQUFDLFVBQUNDLFFBQWtCLEVBQUs7UUFDN0MsSUFBSUEsUUFBUSxDQUFDcEIsTUFBTSxLQUFLLENBQUMsRUFBRTtVQUN6QmdCLFdBQVcsR0FBRyxLQUFLO1FBQ3JCLENBQUMsTUFBTTtVQUNMQSxXQUFXLEdBQUcsSUFBSTtRQUNwQjtNQUNGLENBQUMsQ0FBQztNQUVGLElBQUlBLFdBQVcsRUFBRTtRQUNmLE9BQU9OLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLCtCQUErQixDQUFDO01BQ2hELENBQUMsTUFBTTtRQUNMLE9BQU8sRUFBRTtNQUNYO0lBQ0Y7SUFFQSxPQUFPRCxhQUFJLENBQUNDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQztFQUNoRCxDQUFDO0VBRUQsSUFBQVUsZ0NBQXVCLEVBQUM3RCxHQUFHLEVBQUVDLElBQUksRUFBRSxNQUFNLEVBQUVDLE9BQU8sQ0FBQztFQUNuRCxJQUFBMkQsZ0NBQXVCLEVBQUM3RCxHQUFHLEVBQUVvRCxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRWxELE9BQU8sQ0FBQztFQUMzRCxJQUFBNEQsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSTdELElBQUksQ0FBQ3FELFVBQVUsS0FBSyxJQUFJLElBQUlyRCxJQUFJLENBQUNxRCxVQUFVLEtBQUtELFNBQVMsRUFBRTtNQUM3RCxJQUFJVSxPQUFPLEdBQUc5RCxJQUFJLENBQUNxRCxVQUFVLENBQUN0RCxHQUFHLENBQUMsVUFBQ2dFLFFBQWEsRUFBSztRQUNuRCxPQUFPLENBQUNBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO01BQzNDLENBQUMsQ0FBQztNQUVGLElBQUkxRCxPQUFZLEdBQUdQLENBQUMsQ0FBQ08sT0FBTyxDQUFDeUQsT0FBTyxDQUFDLENBQUMxQixLQUFLLENBQUNyQyxHQUFHLENBQUM7TUFDaERNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHTCxJQUFJLENBQUNxQyxFQUFFO01BQ3BDaEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU07TUFDaENELG1CQUFtQixDQUFDQyxPQUFPLENBQUM7TUFDNUJBLE9BQU8sQ0FBQ0ksUUFBUSxDQUFDO1FBQUV1RCxXQUFXLEVBQUU7TUFBSSxDQUFDLENBQUM7TUFFdEMsSUFBSS9ELE9BQU8sR0FBRyxFQUFFLEVBQUU7UUFDaEJJLE9BQU8sQ0FBQ0ksUUFBUSxDQUFDO1VBQUV1RCxXQUFXLEVBQUU7UUFBRSxDQUFDLENBQUM7TUFDdEM7TUFFQSxJQUFJaEUsSUFBSSxDQUFDYyxLQUFLLEtBQUtzQyxTQUFTLEVBQUU7UUFDNUJkLG9CQUFvQixDQUFDLENBQUM7UUFDdEIxQix1QkFBdUIsQ0FBQyxDQUFDO01BQzNCO01BRUFQLE9BQU8sQ0FBQzRELFdBQVcsQ0FBQyxDQUFDO01BQ3JCNUQsT0FBTyxDQUFDNkQsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFDQyxDQUFNLEVBQUs7UUFDOUIsSUFBSW5FLElBQUksQ0FBQ3dELFNBQVMsS0FBS0osU0FBUyxJQUFJcEQsSUFBSSxDQUFDd0QsU0FBUyxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1VBQy9EdkQsUUFBUSxDQUNOLElBQUFrRSxrQkFBUyxFQUFDO1lBQ1JDLFdBQVcsRUFBRXJFLElBQUk7WUFDakJzRSxVQUFVLEVBQUV0RSxJQUFJLENBQUN3RCxTQUFTLENBQUMsQ0FBQztVQUM5QixDQUFDLENBQ0gsQ0FBQztRQUNIO01BQ0YsQ0FBQyxDQUFDO01BQ0ZuRCxPQUFPLENBQUM2RCxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQUNDLENBQU0sRUFBSztRQUNsQyxJQUFJSSxLQUFLLEdBQUdKLENBQUMsQ0FBQ0ssTUFBTTtRQUNwQixJQUFJM0QsTUFBTSxHQUFHMEQsS0FBSyxDQUFDRSxTQUFTLENBQUMsQ0FBQyxDQUFDQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJQyxLQUFLLEdBQUc3RSxDQUFDLENBQUM2RSxLQUFLLENBQUMsQ0FBQyxDQUNsQkMsU0FBUyxDQUFDL0QsTUFBTSxDQUFDLENBQ2pCZ0UsVUFBVSw4QkFBQS9CLE1BQUEsQ0FFSzlDLElBQUksQ0FBQytDLElBQUksb0NBQUFELE1BQUEsQ0FDVkUsZUFBZSxDQUFDLENBQUMsbUNBQUFGLE1BQUEsQ0FDakJHLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQUFKLE1BQUEsQ0FBSzlDLElBQUksQ0FBQ1EsR0FBRyxtQ0FBQXNDLE1BQUEsQ0FDNUNHLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQUFKLE1BQUEsQ0FBS0csYUFBSSxDQUFDQyxDQUFDLDZCQUFBSixNQUFBLENBQ3JCOUMsSUFBSSxDQUFDdUMsTUFBTSxDQUN6QyxDQUFDLG1DQUFBTyxNQUFBLENBQ1lRLG9CQUFvQixDQUFDLENBQUMsK0JBRXJDLENBQUMsQ0FDQXdCLE1BQU0sQ0FBQy9FLEdBQUcsQ0FBQztRQUVkTSxPQUFPLENBQUM2RCxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQUNDLENBQU0sRUFBSztVQUNqQ3BFLEdBQUcsQ0FBQ2dGLFVBQVUsQ0FBQ0osS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUMzRSxJQUFJLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO0VBRW5CLG9CQUFPNUMsTUFBQSxDQUFBd0IsT0FBQSxDQUFBbUcsYUFBQSxZQUFVLENBQUM7QUFDcEIsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFYXJGLGNBQWM7QUFBQXNGLE9BQUEsQ0FBQXJHLE9BQUEsR0FBQW9HLFFBQUEifQ==
214
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl91c2VSZW1vdmVFeGlzdGluZ0xheWVycyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9hY3Rpb25zIiwiX3ZhbGlkU2FtcGxpbmciLCJfaW52YWxpZFNhbXBsaW5nIiwiX21pc3NpbmdTYW1wbGluZyIsIl9wZW5kaW5nU2FtcGxpbmciLCJfdXAiLCJfZG93biIsIl9zYW1lIiwiX252bFN0YXR1c0hlbHBlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJBcmVhUG9seWdvbldCRSIsInByb3BzIiwiTCIsIm1hcCIsImFyZWEiLCJtYXBab29tIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm1hdGNoQ29sb3JUb1BvbHlnb24iLCJwb2x5Z29uIiwicG9seWdvbkNvbG9yIiwic3RhdHVzQ29sb3IiLCJOVkwiLCJzZXRTdHlsZSIsImZpbGxDb2xvciIsImNvbG9yIiwiY3JlYXRlTWFya2VyQnlOVkxDaGFuZ2UiLCJMYXRMbmciLCJwb2ludCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwib3B0aW9ucyIsImljb25PcHRpb25zIiwiaWNvblVSTCIsImljb25VcmwiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJwb3B1cEFuY2hvciIsIk1hdGgiLCJzaWduIiwiTlZMX2RpZmZfcmF0aW8iLCJ2YWxpZCIsImljb24iLCJ0cmVuZFVwSWNvbiIsIm9wYWNpdHkiLCJpbnZhbGlkIiwidHJlbmRTYW1lSWNvbiIsInBlbmRpbmciLCJ0cmVuZERvd25JY29uIiwibWFya2VyIiwiYWRkVG8iLCJpZCIsImNyZWF0ZU1hcmtlckJ5U3RhdHVzIiwic3RhdHVzIiwidmFsaWRTYW1wbGluZ0ljb24iLCJpbnZhbGlkU2FtcGxpbmdJY29uIiwicGVuZGluZ1NhbXBsaW5nSWNvbiIsIm1pc3NpbmciLCJtaXNzaW5nU2FtcGxpbmdJY29uIiwiYmluZFBvcHVwIiwibmFtZSIsIk5WTFNjb3JlRm9yU2l0ZSIsImkxOG4iLCJ0IiwiZmFrZUxheWVyIiwidW5kZWZpbmVkIiwic2hhcGVfZGF0YSIsInNhbXBsaW5nc0ZvclN1YkFyZWFzIiwibm9TYW1wbGluZ3MiLCJzdWJfYXJlYXMiLCJsZW5ndGgiLCJmb3JFYWNoIiwic3ViX2FyZWEiLCJ1c2VSZW1vdmVFeGlzdGluZ0xheWVycyIsInVzZUVmZmVjdCIsImxhdGxuZ3MiLCJsb2NhdGlvbiIsImZpbGxPcGFjaXR5IiwiYnJpbmdUb0JhY2siLCJvbiIsImUiLCJ1cGRhdGVXQkUiLCJmb2N1c2VkQXJlYSIsInpvb21lZEFyZWEiLCJsYXllciIsInRhcmdldCIsImdldEJvdW5kcyIsImdldENlbnRlciIsInBvcHVwIiwic2V0TGF0TG5nIiwic2V0Q29udGVudCIsIm9wZW5PbiIsImNsb3NlUG9wdXAiLCJjcmVhdGVFbGVtZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0NvdmlkUGFnZS9jb21wb25lbnRzL2FyZWFzL0FyZWFQb2x5Z29uV0JFLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyBmcm9tICdzcmMvaG9va3MvdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhV0JFIH0gZnJvbSAnc3JjL3N0b3JlL1dCRS9tb2RlbHMvSUFyZWFXQkUnO1xuaW1wb3J0IHsgdXBkYXRlV0JFIH0gZnJvbSAnc3JjL3N0b3JlL1dCRS9hY3Rpb25zJztcbmltcG9ydCB2YWxpZFNhbXBsaW5nSWNvbiBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvYXJlYV9zdGF0dXNlcy92YWxpZC1zYW1wbGluZy5wbmcnO1xuaW1wb3J0IGludmFsaWRTYW1wbGluZ0ljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2FyZWFfc3RhdHVzZXMvaW52YWxpZC1zYW1wbGluZy5wbmcnO1xuaW1wb3J0IG1pc3NpbmdTYW1wbGluZ0ljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2FyZWFfc3RhdHVzZXMvbWlzc2luZy1zYW1wbGluZy5wbmcnO1xuaW1wb3J0IHBlbmRpbmdTYW1wbGluZ0ljb24gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2FyZWFfc3RhdHVzZXMvcGVuZGluZy1zYW1wbGluZy5wbmcnO1xuaW1wb3J0IHRyZW5kVXBJY29uIGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9OVkxfdHJlbmRzL3VwLnBuZyc7XG5pbXBvcnQgdHJlbmREb3duSWNvbiBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvTlZMX3RyZW5kcy9kb3duLnBuZyc7XG5pbXBvcnQgdHJlbmRTYW1lSWNvbiBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvTlZMX3RyZW5kcy9zYW1lLnBuZyc7XG5pbXBvcnQgeyBzdGF0dXNDb2xvciB9IGZyb20gJy4uL252bFN0YXR1c0hlbHBlcic7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBMOiBhbnk7XG4gIGFyZWE6IElBcmVhV0JFO1xuICBtYXBab29tOiBudW1iZXI7XG59O1xuXG5jb25zdCBBcmVhUG9seWdvbldCRTogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgTCwgbWFwLCBhcmVhLCBtYXBab29tIH0gPSBwcm9wcztcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBtYXRjaENvbG9yVG9Qb2x5Z29uID0gKHBvbHlnb246IGFueSkgPT4ge1xuICAgIGNvbnN0IHBvbHlnb25Db2xvciA9IHN0YXR1c0NvbG9yKGFyZWEuTlZMKTtcbiAgICBwb2x5Z29uLnNldFN0eWxlKHsgZmlsbENvbG9yOiBwb2x5Z29uQ29sb3IsIGNvbG9yOiBwb2x5Z29uQ29sb3IgfSk7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlTWFya2VyQnlOVkxDaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgTGF0TG5nID0gW2FyZWEucG9pbnQubGF0aXR1ZGUsIGFyZWEucG9pbnQubG9uZ2l0dWRlXTtcbiAgICBsZXQgb3B0aW9ucztcbiAgICBsZXQgaWNvbk9wdGlvbnMgPSAoaWNvblVSTDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uVXJsOiBpY29uVVJMLFxuICAgICAgICBpY29uU2l6ZTogWzMzLCAzMF0sXG4gICAgICAgIGljb25BbmNob3I6IFstNSwgNDVdLFxuICAgICAgICBwb3B1cEFuY2hvcjogWy05LCAtMzZdLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgaWYgKE1hdGguc2lnbihhcmVhLk5WTF9kaWZmX3JhdGlvKSA9PT0gMSkge1xuICAgICAgbGV0IHZhbGlkID0gTC5pY29uKGljb25PcHRpb25zKHRyZW5kVXBJY29uKSk7XG4gICAgICBvcHRpb25zID0geyBvcGFjaXR5OiAxLCBpY29uOiB2YWxpZCB9O1xuICAgIH0gZWxzZSBpZiAoYXJlYS5OVkxfZGlmZl9yYXRpbyA9PT0gMCkge1xuICAgICAgbGV0IGludmFsaWQgPSBMLmljb24oaWNvbk9wdGlvbnModHJlbmRTYW1lSWNvbikpO1xuICAgICAgb3B0aW9ucyA9IHsgb3BhY2l0eTogMSwgaWNvbjogaW52YWxpZCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcGVuZGluZyA9IEwuaWNvbihpY29uT3B0aW9ucyh0cmVuZERvd25JY29uKSk7XG4gICAgICBvcHRpb25zID0geyBvcGFjaXR5OiAxLCBpY29uOiBwZW5kaW5nIH07XG4gICAgfVxuXG4gICAgaWYgKGFyZWEucG9pbnQubGF0aXR1ZGUgIT09IG51bGwgJiYgYXJlYS5wb2ludC5sb25naXR1ZGUgIT09IG51bGwpIHtcbiAgICAgIGxldCBtYXJrZXIgPSBMLm1hcmtlcihMYXRMbmcsIG9wdGlvbnMpLmFkZFRvKG1hcCk7XG4gICAgICBtYXJrZXJbJ2thbmRvX29iamVjdF9pZCddID0gYXJlYS5wb2ludC5pZDtcbiAgICAgIG1hcmtlclsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVNYXJrZXJCeVN0YXR1cyA9ICgpID0+IHtcbiAgICBjb25zdCBMYXRMbmcgPSBbYXJlYS5wb2ludC5sYXRpdHVkZSwgYXJlYS5wb2ludC5sb25naXR1ZGVdO1xuICAgIGxldCBvcHRpb25zO1xuICAgIGxldCBpY29uT3B0aW9ucyA9IChpY29uVVJMOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25Vcmw6IGljb25VUkwsXG4gICAgICAgIGljb25TaXplOiBbNTQsIDU4XSxcbiAgICAgICAgaWNvbkFuY2hvcjogWzE5LCA0Ml0sXG4gICAgICAgIHBvcHVwQW5jaG9yOiBbOCwgLTM2XSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHN3aXRjaCAoYXJlYS5zdGF0dXMpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgbGV0IHZhbGlkID0gTC5pY29uKGljb25PcHRpb25zKHZhbGlkU2FtcGxpbmdJY29uKSk7XG4gICAgICAgIG9wdGlvbnMgPSB7IG9wYWNpdHk6IDAuOCwgaWNvbjogdmFsaWQgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGxldCBpbnZhbGlkID0gTC5pY29uKGljb25PcHRpb25zKGludmFsaWRTYW1wbGluZ0ljb24pKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgb3BhY2l0eTogMC44LCBpY29uOiBpbnZhbGlkIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBsZXQgcGVuZGluZyA9IEwuaWNvbihpY29uT3B0aW9ucyhwZW5kaW5nU2FtcGxpbmdJY29uKSk7XG4gICAgICAgIG9wdGlvbnMgPSB7IG9wYWNpdHk6IDAuOCwgaWNvbjogcGVuZGluZyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgbGV0IG1pc3NpbmcgPSBMLmljb24oaWNvbk9wdGlvbnMobWlzc2luZ1NhbXBsaW5nSWNvbikpO1xuICAgICAgICBvcHRpb25zID0geyBvcGFjaXR5OiAwLjgsIGljb246IG1pc3NpbmcgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGFyZWEucG9pbnQubGF0aXR1ZGUgIT09IG51bGwgJiYgYXJlYS5wb2ludC5sb25naXR1ZGUgIT09IG51bGwpIHtcbiAgICAgIGxldCBtYXJrZXIgPSBMLm1hcmtlcihMYXRMbmcsIG9wdGlvbnMpO1xuICAgICAgbWFya2VyWydrYW5kb19vYmplY3RfaWQnXSA9IGFyZWEucG9pbnQuaWQ7XG4gICAgICBtYXJrZXJbJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgICAgIG1hcmtlci5hZGRUbyhtYXApO1xuICAgICAgbWFya2VyLmJpbmRQb3B1cChgXG4gICAgICAgICAgICA8cD4ke2FyZWEubmFtZX0gLyAke2FyZWEucG9pbnQubmFtZX08L3A+XG4gICAgICAgICAgICBgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgTlZMU2NvcmVGb3JTaXRlID0gKCkgPT4ge1xuICAgIGlmIChhcmVhLk5WTF9kaWZmX3JhdGlvID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYCR7aTE4bi50KCdjb3ZpZF92aWV3Lk5WTF9zY29yZV9mb3Jfc2l0ZS5udWxsJyl9OiAke2FyZWEuTlZMfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHtpMThuLnQoJ2NvdmlkX3ZpZXcuTlZMX3Njb3JlX2Zvcl9zaXRlLnByZXNlbnQnKX06ICR7XG4gICAgICAgIGFyZWEuTlZMX2RpZmZfcmF0aW9cbiAgICAgIH1gO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBmYWtlTGF5ZXIgPSAoKSA9PiB7XG4gICAgaWYgKGFyZWEucG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2hhcGVfZGF0YTogW2FyZWEucG9pbnQubG9uZ2l0dWRlLCBhcmVhLnBvaW50LmxhdGl0dWRlXSxcbiAgICAgICAgaWQ6IGFyZWEucG9pbnQuaWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzaGFwZV9kYXRhOiBudWxsLFxuICAgICAgfTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2FtcGxpbmdzRm9yU3ViQXJlYXMgPSAoKSA9PiB7XG4gICAgbGV0IG5vU2FtcGxpbmdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKGFyZWEuc3ViX2FyZWFzICE9PSB1bmRlZmluZWQgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBhcmVhLnN1Yl9hcmVhcy5mb3JFYWNoKChzdWJfYXJlYTogSUFyZWFXQkUpID0+IHtcbiAgICAgICAgaWYgKHN1Yl9hcmVhLnN0YXR1cyAhPT0gMykge1xuICAgICAgICAgIG5vU2FtcGxpbmdzID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9TYW1wbGluZ3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKG5vU2FtcGxpbmdzKSB7XG4gICAgICAgIHJldHVybiBpMThuLnQoJ2NvdmlkX3ZpZXcubm9fdmFsaWRfc2FtcGxpbmdzJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGkxOG4udCgnY292aWRfdmlldy5ub192YWxpZF9zYW1wbGluZ3MnKTtcbiAgfTtcblxuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIGFyZWEsICdBcmVhJywgbWFwWm9vbSk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgZmFrZUxheWVyKCksICdQb2ludCcsIG1hcFpvb20pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhcmVhLnNoYXBlX2RhdGEgIT09IG51bGwgJiYgYXJlYS5zaGFwZV9kYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBsYXRsbmdzID0gYXJlYS5zaGFwZV9kYXRhLm1hcCgobG9jYXRpb246IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gW2xvY2F0aW9uWydsYXQnXSwgbG9jYXRpb25bJ2xuZyddXTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgcG9seWdvbjogYW55ID0gTC5wb2x5Z29uKGxhdGxuZ3MpLmFkZFRvKG1hcCk7XG4gICAgICBwb2x5Z29uWydrYW5kb19vYmplY3RfaWQnXSA9IGFyZWEuaWQ7XG4gICAgICBwb2x5Z29uWydrYW5kb19vYmplY3QnXSA9ICdBcmVhJztcbiAgICAgIG1hdGNoQ29sb3JUb1BvbHlnb24ocG9seWdvbik7XG4gICAgICBwb2x5Z29uLnNldFN0eWxlKHsgZmlsbE9wYWNpdHk6IDAuNCB9KTtcblxuICAgICAgaWYgKG1hcFpvb20gPiAxNikge1xuICAgICAgICBwb2x5Z29uLnNldFN0eWxlKHsgZmlsbE9wYWNpdHk6IDAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmVhLnBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY3JlYXRlTWFya2VyQnlTdGF0dXMoKTtcbiAgICAgICAgY3JlYXRlTWFya2VyQnlOVkxDaGFuZ2UoKTtcbiAgICAgIH1cblxuICAgICAgcG9seWdvbi5icmluZ1RvQmFjaygpO1xuICAgICAgcG9seWdvbi5vbignY2xpY2snLCAoZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChhcmVhLnN1Yl9hcmVhcyAhPT0gdW5kZWZpbmVkICYmIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIGRpc3BhdGNoKFxuICAgICAgICAgICAgdXBkYXRlV0JFKHtcbiAgICAgICAgICAgICAgZm9jdXNlZEFyZWE6IGFyZWEsXG4gICAgICAgICAgICAgIHpvb21lZEFyZWE6IGFyZWEuc3ViX2FyZWFzWzBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBwb2x5Z29uLm9uKCdtb3VzZW92ZXInLCAoZTogYW55KSA9PiB7XG4gICAgICAgIGxldCBsYXllciA9IGUudGFyZ2V0O1xuICAgICAgICBsZXQgTGF0TG5nID0gbGF5ZXIuZ2V0Qm91bmRzKCkuZ2V0Q2VudGVyKCk7XG4gICAgICAgIGxldCBwb3B1cCA9IEwucG9wdXAoKVxuICAgICAgICAgIC5zZXRMYXRMbmcoTGF0TG5nKVxuICAgICAgICAgIC5zZXRDb250ZW50KFxuICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgICAgICA8aDQ+JHthcmVhLm5hbWV9PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPHA+JHtOVkxTY29yZUZvclNpdGUoKX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwPiR7aTE4bi50KCdjb3ZpZF92aWV3LnZpcmFsX2xvYWQnKX06ICR7YXJlYS5OVkx9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD4ke2kxOG4udCgnY292aWRfdmlldy5zdGF0dXMnKX06ICR7aTE4bi50KFxuICAgICAgICAgICAgICBgY292aWRfdmlldy5hcmVhX3N0YXR1c2VzLiR7YXJlYS5zdGF0dXN9YCxcbiAgICAgICAgICAgICl9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD4ke3NhbXBsaW5nc0ZvclN1YkFyZWFzKCl9PC9wPlxuICAgICAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgIClcbiAgICAgICAgICAub3Blbk9uKG1hcCk7XG5cbiAgICAgICAgcG9seWdvbi5vbignbW91c2VvdXQnLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgbWFwLmNsb3NlUG9wdXAocG9wdXApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2FyZWEsIG1hcFpvb21dKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcmVhUG9seWdvbldCRTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHdCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLGdCQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxHQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxLQUFBLEdBQUFULHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYSxnQkFBQSxHQUFBYixPQUFBO0FBQWlELFNBQUFjLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEs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