@envive-ai/react-hooks 0.2.6-alpha-2 → 0.2.6-alpha-4

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 (146) hide show
  1. package/dist/{AmplitudeOperations-DcuLn1Zk.cjs → AmplitudeOperations-BEhMCOtx.cjs} +1 -1
  2. package/dist/{AmplitudeOperations-C3i2q2Bn.js → AmplitudeOperations-Dpp91XWV.js} +1 -1
  3. package/dist/{NewOrgConfig-BtvujFC8.js → NewOrgConfig-Cx3R7FM6.js} +2 -2
  4. package/dist/{NewOrgConfig-CHt7Xg4t.cjs → NewOrgConfig-DRs9Sk4E.cjs} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-Be7wfXXY.js → TrackComponentVisibleEvent-CIfRZtFq.js} +2 -2
  6. package/dist/{TrackComponentVisibleEvent-KUihr_y4.cjs → TrackComponentVisibleEvent-OAFP4CZ6.cjs} +2 -2
  7. package/dist/{amplitudeContext-CRFxGj_x.d.ts → amplitudeContext-CMTvCsJC.d.ts} +1 -1
  8. package/dist/amplitudeContext-ZkerrMUa.d.cts +1 -1
  9. package/dist/amplitudeTrackEventAtom-BBkB1LPQ.cjs +15 -0
  10. package/dist/amplitudeTrackEventAtom-yP38BuDB.js +8 -0
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/guards/api/index.d.ts +2 -2
  13. package/dist/application/models/guards/utils.d.ts +1 -1
  14. package/dist/application/models/index.d.cts +1 -1
  15. package/dist/application/models/index.d.ts +4 -4
  16. package/dist/application/utils/index.d.ts +5 -5
  17. package/dist/atoms/app/index.d.cts +7 -7
  18. package/dist/atoms/app/index.d.ts +6 -6
  19. package/dist/atoms/chat/index.cjs +3 -2
  20. package/dist/atoms/chat/index.d.cts +32 -32
  21. package/dist/atoms/chat/index.d.ts +34 -34
  22. package/dist/atoms/chat/index.js +3 -2
  23. package/dist/atoms/globalSearch/index.d.cts +6 -6
  24. package/dist/atoms/globalSearch/index.d.ts +1 -1
  25. package/dist/atoms/org/index.d.cts +16 -16
  26. package/dist/atoms/org/index.d.ts +17 -17
  27. package/dist/atoms/search/index.cjs +3 -3
  28. package/dist/atoms/search/index.d.cts +15 -15
  29. package/dist/atoms/search/index.d.ts +14 -14
  30. package/dist/atoms/search/index.js +3 -3
  31. package/dist/atoms/search/utils.cjs +1 -1
  32. package/dist/atoms/search/utils.js +1 -1
  33. package/dist/{cdnContext-B2-NiEiW.js → cdnContext-BJZSYlsP.js} +1 -1
  34. package/dist/{cdnContext-CdhppNeT.cjs → cdnContext-KMAzFHrZ.cjs} +1 -1
  35. package/dist/chat-DYD6B6em.js +227 -0
  36. package/dist/chat-yICI8tzz.cjs +327 -0
  37. package/dist/{chatState-DqWSgmjC.cjs → chatState-BRYkF2g2.cjs} +1 -1
  38. package/dist/{chatState-DxG0t4fK.js → chatState-DRKB9bqM.js} +1 -1
  39. package/dist/config/index.d.ts +4 -4
  40. package/dist/config/locators/components/chat/index.d.ts +1 -1
  41. package/dist/config/locators/components/common/index.d.ts +1 -1
  42. package/dist/config/locators/components/index.d.ts +1 -1
  43. package/dist/config/locators/index.d.ts +4 -4
  44. package/dist/contexts/amplitudeContext/index.d.ts +1 -1
  45. package/dist/contexts/cdnContext/index.cjs +1 -1
  46. package/dist/contexts/cdnContext/index.d.cts +1 -1
  47. package/dist/contexts/cdnContext/index.js +1 -1
  48. package/dist/contexts/enviveConfigContext/index.d.cts +1 -1
  49. package/dist/contexts/enviveCssContext/index.cjs +5 -5
  50. package/dist/contexts/enviveCssContext/index.js +5 -5
  51. package/dist/contexts/featureFlagServiceContext/index.cjs +1 -1
  52. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -1
  53. package/dist/contexts/featureFlagServiceContext/index.js +1 -1
  54. package/dist/contexts/graphqlContext/index.cjs +1 -1
  55. package/dist/contexts/graphqlContext/index.js +1 -1
  56. package/dist/contexts/newOrgConfigContext/index.cjs +4 -4
  57. package/dist/contexts/newOrgConfigContext/index.js +4 -4
  58. package/dist/contexts/searchContext/index.cjs +5 -5
  59. package/dist/contexts/searchContext/index.js +5 -5
  60. package/dist/contexts/shopifyUrlContext/index.cjs +1 -1
  61. package/dist/contexts/shopifyUrlContext/index.js +1 -1
  62. package/dist/contexts/systemSettingsContext/index.cjs +1 -1
  63. package/dist/contexts/systemSettingsContext/index.d.cts +2 -2
  64. package/dist/contexts/systemSettingsContext/index.d.ts +2 -2
  65. package/dist/contexts/systemSettingsContext/index.js +1 -1
  66. package/dist/exceptions/index.d.cts +1 -1
  67. package/dist/{featureFlagServiceContext-ahy3jou0.d.ts → featureFlagServiceContext-DiYIv0jI.d.ts} +1 -1
  68. package/dist/{graphqlContext-CU7NIJo7.cjs → graphqlContext-BVFRNIdi.cjs} +1 -1
  69. package/dist/{graphqlContext-BuXJ5DiW.js → graphqlContext-D_Wp0LEl.js} +1 -1
  70. package/dist/hooks/AmplitudeOperations/index.cjs +1 -1
  71. package/dist/hooks/AmplitudeOperations/index.js +1 -1
  72. package/dist/hooks/AppDetails/index.cjs +3 -3
  73. package/dist/hooks/AppDetails/index.d.cts +1 -1
  74. package/dist/hooks/AppDetails/index.js +3 -3
  75. package/dist/hooks/CdnOperations/index.cjs +1 -1
  76. package/dist/hooks/CdnOperations/index.d.cts +1 -1
  77. package/dist/hooks/CdnOperations/index.d.ts +1 -1
  78. package/dist/hooks/CdnOperations/index.js +1 -1
  79. package/dist/hooks/ChatToggle/index.cjs +4 -3
  80. package/dist/hooks/ChatToggle/index.js +4 -3
  81. package/dist/hooks/ChatToggleAnalytics/index.cjs +2 -2
  82. package/dist/hooks/ChatToggleAnalytics/index.js +2 -2
  83. package/dist/hooks/ElementObserver/index.d.ts +1 -1
  84. package/dist/hooks/GraphQLConfig/index.cjs +2 -2
  85. package/dist/hooks/GraphQLConfig/index.js +2 -2
  86. package/dist/hooks/IdentifyUser/index.d.ts +1 -1
  87. package/dist/hooks/Intersection/index.cjs +1 -1
  88. package/dist/hooks/Intersection/index.js +1 -1
  89. package/dist/hooks/NewOrgConfig/index.cjs +5 -5
  90. package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
  91. package/dist/hooks/NewOrgConfig/index.js +5 -5
  92. package/dist/hooks/Search/index.cjs +32 -58
  93. package/dist/hooks/Search/index.js +33 -59
  94. package/dist/hooks/SearchOperations/index.cjs +5 -5
  95. package/dist/hooks/SearchOperations/index.js +5 -5
  96. package/dist/hooks/ShopifyUrlOperations/index.cjs +1 -1
  97. package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -2
  98. package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -2
  99. package/dist/hooks/ShopifyUrlOperations/index.js +1 -1
  100. package/dist/hooks/SystemSettingsContext/index.cjs +1 -1
  101. package/dist/hooks/SystemSettingsContext/index.d.cts +4 -4
  102. package/dist/hooks/SystemSettingsContext/index.d.ts +2 -2
  103. package/dist/hooks/SystemSettingsContext/index.js +1 -1
  104. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +2 -2
  105. package/dist/hooks/TrackComponentVisibleEvent/index.js +2 -2
  106. package/dist/{index-dngXrfnT.d.ts → index-BO-ZLYtR.d.ts} +1 -1
  107. package/dist/{index-B4cSHxVN.d.ts → index-BR1G8yyg.d.ts} +1 -1
  108. package/dist/index-BVZbvpx_.d.cts +1 -1
  109. package/dist/{index-DeQte6mb.d.ts → index-CAhGZxMI.d.ts} +1 -1
  110. package/dist/{index-CYGpI6hE.d.ts → index-DNccxbJi.d.ts} +1 -1
  111. package/dist/{index-CEmUfoZa.d.ts → index-Dgu085Lu.d.ts} +2 -2
  112. package/dist/{index-Clf4wYaJ.d.ts → index-DiIHuPq2.d.ts} +1 -1
  113. package/dist/{index-Dzv6WwSZ.d.ts → index-ZQMda2Iu.d.ts} +1 -1
  114. package/dist/index-ca7Qn8o0.d.cts +1 -1
  115. package/dist/interceptors/index.d.cts +1 -1
  116. package/dist/interceptors/index.d.ts +1 -1
  117. package/dist/{newOrgConfigContext-lw85mMS-.cjs → newOrgConfigContext-DkBvmY0p.cjs} +2 -2
  118. package/dist/{newOrgConfigContext-DPUxIF2G.js → newOrgConfigContext-Dn9l1f9w.js} +2 -2
  119. package/dist/{nodeSelector-CbWcUbuc.d.ts → nodeSelector-0gJ8Xayf.d.ts} +1 -1
  120. package/dist/{search-D1cU29CV.cjs → search-D-BGpGJt.cjs} +3 -3
  121. package/dist/{search-BzXoTgRx.js → search-jNTQGSyl.js} +3 -3
  122. package/dist/{searchContext-R_XuFzYe.cjs → searchContext-C75BHjlY.cjs} +3 -3
  123. package/dist/{searchContext-C8DpjnqD.js → searchContext-DjcqQsxp.js} +3 -3
  124. package/dist/{searchServiceAdapter-CKc7UXKi.js → searchServiceAdapter-BSPZOg1r.js} +1 -1
  125. package/dist/{searchServiceAdapter-pROGm3Rf.cjs → searchServiceAdapter-DrjFCiw8.cjs} +1 -1
  126. package/dist/{shopifyUrlContext-WAm0pnPh.js → shopifyUrlContext-BI3fVtA5.js} +1 -1
  127. package/dist/{shopifyUrlContext-G9eqIcsL.cjs → shopifyUrlContext-Ba6MQdNV.cjs} +1 -1
  128. package/dist/{systemSettingsContext-J1sny8W8.cjs → systemSettingsContext-CSXsgBiG.cjs} +1 -1
  129. package/dist/{systemSettingsContext-B-FZ8UAg.js → systemSettingsContext-DTdzjE_O.js} +1 -1
  130. package/dist/types/index.d.ts +1 -1
  131. package/dist/{useAppDetails-Bw2jJ39H.cjs → useAppDetails-Cq8TbvkX.cjs} +2 -2
  132. package/dist/{useAppDetails-BtK9ZZJs.js → useAppDetails-DjdYWTqz.js} +2 -2
  133. package/dist/{useGraphQLConfig-Dc8h2yyN.cjs → useGraphQLConfig-Dy0ml9xw.cjs} +2 -2
  134. package/dist/{useGraphQLConfig-DuLB3tdv.js → useGraphQLConfig-nY5CE8kj.js} +2 -2
  135. package/dist/{useIntersection-DZHz44BY.cjs → useIntersection-BQMfiS4x.cjs} +1 -1
  136. package/dist/{useIntersection-BWiHkpKL.js → useIntersection-D-ol9eH8.js} +1 -1
  137. package/dist/{utils-BivlGkeU.cjs → utils-BBICrPjW.cjs} +1 -1
  138. package/dist/{utils-wWki3L1d.d.ts → utils-sosM0bEk.d.ts} +1 -1
  139. package/dist/{utils-CExht7Uj.js → utils-w4-xONRA.js} +1 -1
  140. package/package.json +1 -1
  141. package/src/hooks/Search/useSearch.tsx +11 -11
  142. package/src/hooks/Search/useSearchInput.ts +19 -9
  143. package/dist/chat-C9KdnT5V.js +0 -230
  144. package/dist/chat-bImNRcnQ.cjs +0 -330
  145. /package/dist/{featureFlagServiceContext-CbUOAw5l.js → featureFlagServiceContext-DgoR6euC.js} +0 -0
  146. /package/dist/{featureFlagServiceContext-DSo2brno.cjs → featureFlagServiceContext-b-rYgf0u.cjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  import "../../events-WOOrnUAx.js";
2
2
  import "../../exceptions-CUGY31Ua.js";
3
3
  import { getSearchResultsState } from "../../utils-D_kATUj6.js";
4
- import { FeatureGates, ProductSorting, SpiffyMetricsEventName, SpiffyWidgets } from "../../dist-CtkINi1R.js";
4
+ import { ProductSorting, SpiffyMetricsEventName, SpiffyWidgets } from "../../dist-CtkINi1R.js";
5
5
  import "../../types-D5du68Vp.js";
6
6
  import "../../graphql-CvAHWmel.js";
7
7
  import "../../models-DmsMlaHT.js";
@@ -12,24 +12,19 @@ import { orgShortNameAtom } from "../../enviveConfig-Be2kZE7j.js";
12
12
  import "../../localStorageContext-D2uXKahw.js";
13
13
  import "../../org-CIczyLRP.js";
14
14
  import "../../atomStore-BuopbV9k.js";
15
- import "../../newOrgConfigAtom-Dsk0fJNR.js";
16
- import { useAmplitude } from "../../utils-IogJwDB9.js";
15
+ import { newOrgConfigAtom } from "../../newOrgConfigAtom-Dsk0fJNR.js";
16
+ import "../../utils-IogJwDB9.js";
17
17
  import "../../enviveConfigContext-1oiQuocd.js";
18
- import { useFeatureFlagService } from "../../featureFlagServiceContext-CPsygiHO.js";
18
+ import "../../featureFlagServiceContext-CPsygiHO.js";
19
19
  import "../../domObserver-B19-69gW.js";
20
20
  import "../../urlsParser-G7Ocwg0M.js";
21
21
  import { autocompleteStateAtom, isFilterOpenAtom } from "../../globalSearch-B_v9qfCT.js";
22
- import { formatFilterDisplayName } from "../../utils-CExht7Uj.js";
23
- import { addSearchFilterAtom, clearSearchFiltersAtom, createFilterOption, filteredSearchProductsAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom } from "../../search-BzXoTgRx.js";
24
- import "../../searchServiceAdapter-CKc7UXKi.js";
25
- import "../../graphqlContext-BuXJ5DiW.js";
26
- import "../../useGraphQLConfig-DuLB3tdv.js";
27
- import "../../featureFlagServiceContext-CbUOAw5l.js";
28
- import "../../newOrgConfigContext-DPUxIF2G.js";
29
- import { useNewOrgConfig } from "../../NewOrgConfig-BtvujFC8.js";
30
- import { useAmplitudeTracking } from "../../AmplitudeOperations-C3i2q2Bn.js";
31
- import "../../useIntersection-BWiHkpKL.js";
32
- import { useTrackComponentVisibleEvent } from "../../TrackComponentVisibleEvent-Be7wfXXY.js";
22
+ import { amplitudeTrackEventAtom } from "../../amplitudeTrackEventAtom-yP38BuDB.js";
23
+ import { formatFilterDisplayName } from "../../utils-w4-xONRA.js";
24
+ import { addSearchFilterAtom, clearSearchFiltersAtom, createFilterOption, filteredSearchProductsAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom } from "../../search-jNTQGSyl.js";
25
+ import "../../searchServiceAdapter-BSPZOg1r.js";
26
+ import "../../useIntersection-D-ol9eH8.js";
27
+ import { useTrackComponentVisibleEvent } from "../../TrackComponentVisibleEvent-CIfRZtFq.js";
33
28
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
34
29
  import { atom, useAtom, useAtomValue, useSetAtom } from "jotai";
35
30
  import Fuse from "fuse.js";
@@ -85,38 +80,10 @@ const productRetrievalErrorAtom = atom((get) => {
85
80
  return get(productRetrievalAtom).error;
86
81
  });
87
82
 
88
- //#endregion
89
- //#region src/hooks/Search/useRecommendedProducts.ts
90
- /**
91
- * A hook to get recommended products.
92
- * It checks the `IsRecommendedProductsEnabled` feature gate and triggers fetching if needed.
93
- * If the gate is enabled, it returns the list of recommended products.
94
- * If the gate is disabled, it returns an empty array.
95
- *
96
- * @returns The list of recommended products or an empty array.
97
- */
98
- const useRecommendedProducts = () => {
99
- const isEnabled = useFeatureFlagService().isFeatureGateEnabled(FeatureGates.IsRecommendedProductsEnabled);
100
- const recommendedProducts = useAtomValue(retrievedProductsAtom);
101
- const performProductRetrieval = useSetAtom(performProductRetrievalAtom);
102
- const { lastProductIds } = useAtomValue(productRetrievalAtom);
103
- const orgUIConfig = useNewOrgConfig();
104
- useEffect(() => {
105
- const recommendedProductIds = orgUIConfig.searchConfig ? orgUIConfig.searchConfig.recommendedProducts : [];
106
- if (isEnabled && recommendedProductIds && recommendedProductIds.length > 0 && !lastProductIds) performProductRetrieval({ productIds: recommendedProductIds });
107
- }, [
108
- isEnabled,
109
- performProductRetrieval,
110
- lastProductIds,
111
- orgUIConfig
112
- ]);
113
- return isEnabled ? recommendedProducts : [];
114
- };
115
-
116
83
  //#endregion
117
84
  //#region src/hooks/Search/useSearchInput.ts
118
85
  const useSearchInput = ({ initialSearchText = "", searchOrigin, onSearchSubmit }) => {
119
- const { track } = useAmplitudeTracking();
86
+ const track = useAtomValue(amplitudeTrackEventAtom);
120
87
  const [searchText, setSearchText] = useState(initialSearchText);
121
88
  const [hasText, setHasText] = useState(initialSearchText.trim().length > 0);
122
89
  const [isFocused, setIsFocused] = useState(false);
@@ -154,7 +121,10 @@ const useSearchInput = ({ initialSearchText = "", searchOrigin, onSearchSubmit }
154
121
  ]);
155
122
  const handleSearchInputChange = useCallback((newValue) => {
156
123
  if (newValue !== searchText) setIsFocused(true);
157
- if (newValue.length === 1) track(SpiffyMetricsEventName.SearchInputStarted, { searchOrigin });
124
+ if (newValue.length === 1) track?.({
125
+ eventName: SpiffyMetricsEventName.SearchInputStarted,
126
+ eventProps: { searchOrigin }
127
+ });
158
128
  setSearchText(newValue);
159
129
  setHasText(newValue.trim().length > 0);
160
130
  setFocusedIndex(-1);
@@ -179,9 +149,13 @@ const useSearchInput = ({ initialSearchText = "", searchOrigin, onSearchSubmit }
179
149
  const handleSubmitSearch = useCallback(() => {
180
150
  setIsFocused(false);
181
151
  if (searchText.trim() && onSearchSubmit) {
182
- track(SpiffyMetricsEventName.SearchQuerySubmitted, {
183
- searchOrigin,
184
- queryText: searchText.trim()
152
+ track?.({
153
+ eventName: SpiffyMetricsEventName.SearchQuerySubmitted,
154
+ eventProps: {
155
+ searchOrigin,
156
+ queryText: searchText.trim()
157
+ },
158
+ alsoSendToGoogleAnalytics: true
185
159
  });
186
160
  onSearchSubmit(searchText.trim());
187
161
  }
@@ -196,9 +170,9 @@ const useSearchInput = ({ initialSearchText = "", searchOrigin, onSearchSubmit }
196
170
  setSearchText(suggestion);
197
171
  setHasText(suggestion.trim().length > 0);
198
172
  setIsFocused(false);
199
- track(SpiffyMetricsEventName.SearchQuerySubmitted, {
200
- searchOrigin,
201
- queryText: suggestion.trim()
173
+ track?.({
174
+ eventName: SpiffyMetricsEventName.SearchInputStarted,
175
+ eventProps: { searchOrigin }
202
176
  });
203
177
  if (onSearchSubmit) onSearchSubmit(suggestion.trim());
204
178
  setTimeout(() => {
@@ -272,8 +246,8 @@ const useSearchInput = ({ initialSearchText = "", searchOrigin, onSearchSubmit }
272
246
  //#endregion
273
247
  //#region src/hooks/Search/useSearch.tsx
274
248
  const useSearch = () => {
275
- const { trackEvent } = useAmplitude();
276
- const config = useNewOrgConfig();
249
+ const trackEvent = useAtomValue(amplitudeTrackEventAtom);
250
+ const config = useAtomValue(newOrgConfigAtom);
277
251
  const orgShortName = useAtomValue(orgShortNameAtom);
278
252
  const { data: searchData, loading: isLoadingSearch } = useAtomValue(searchAtom);
279
253
  const productList = useAtomValue(filteredSearchProductsAtom);
@@ -286,7 +260,7 @@ const useSearch = () => {
286
260
  const [productSorting, setProductSorting] = useAtom(searchProductSortingAtom);
287
261
  const clearFilters = useSetAtom(clearSearchFiltersAtom);
288
262
  const searchFilters = useAtomValue(searchFiltersAtom);
289
- const recommendedProducts = useRecommendedProducts();
263
+ const recommendedProducts = useAtomValue(retrievedProductsAtom);
290
264
  const searchResultsRef = useRef(null);
291
265
  const scrollToTop = useCallback(() => {
292
266
  const container = searchResultsRef.current;
@@ -355,7 +329,7 @@ const useSearch = () => {
355
329
  return `Filter & Sort (${selectedCount})`;
356
330
  }, [filters]);
357
331
  const handleToggleDynamicFilter = useCallback(({ filter, dynamicFilterDisplayName }) => {
358
- trackEvent({
332
+ trackEvent?.({
359
333
  eventName: SpiffyMetricsEventName.SearchFilterClicked,
360
334
  eventProps: {
361
335
  filterType: "Dynamic",
@@ -378,7 +352,7 @@ const useSearch = () => {
378
352
  const handleSelectFilterItem = useCallback(({ filterId, filterItemId, isSelected, displayName }) => {
379
353
  if (filterId === "sort") {
380
354
  const newSort = filterItemId;
381
- trackEvent({
355
+ trackEvent?.({
382
356
  eventName: SpiffyMetricsEventName.SearchSortClicked,
383
357
  eventProps: {
384
358
  sortType: newSort,
@@ -391,7 +365,7 @@ const useSearch = () => {
391
365
  removeFilter(`${filterId}:${filterItemId}`);
392
366
  scrollToTop();
393
367
  } else {
394
- trackEvent({
368
+ trackEvent?.({
395
369
  eventName: SpiffyMetricsEventName.SearchFilterClicked,
396
370
  eventProps: {
397
371
  filterType: "Static",
@@ -422,7 +396,7 @@ const useSearch = () => {
422
396
  ]);
423
397
  useTrackComponentVisibleEvent(SpiffyWidgets.SearchResults, searchResultsRef, {}, SpiffyMetricsEventName.SearchComponentVisible);
424
398
  useEffect(() => {
425
- if (productList.length > 0) trackEvent({
399
+ if (productList.length > 0) trackEvent?.({
426
400
  eventName: SpiffyMetricsEventName.SearchResultsViewed,
427
401
  eventProps: {
428
402
  queryText: searchText,
@@ -483,4 +457,4 @@ const useSearch = () => {
483
457
 
484
458
  //#endregion
485
459
  export { useSearch };
486
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb246XG4gIHwgKChwYXJhbXM6IFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMpID0+IFByb21pc2U8UHJvZHVjdFJldHJpZXZhbFJlc3VsdD4pXG4gIHwgbnVsbCIsImVycm9yOiB1bmtub3duIiwiaGFuZGxlU2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdFJldHJpZXZhbEFkYXB0ZXIudHMiLCIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RSZXRyaWV2YWxBUEkudHMiLCIuLi8uLi8uLi9zcmMvaG9va3MvU2VhcmNoL3VzZVJlY29tbWVuZGVkUHJvZHVjdHMudHMiLCIuLi8uLi8uLi9zcmMvaG9va3MvU2VhcmNoL3VzZVNlYXJjaElucHV0LnRzIiwiLi4vLi4vLi4vc3JjL2hvb2tzL1NlYXJjaC91c2VTZWFyY2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMsXG4gIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5cbi8vIFRoaXMgd2lsbCBiZSBzZXQgYnkgdGhlIFByb2R1Y3RSZXRyaWV2YWxQcm92aWRlciB3aGVuIGl0IGluaXRpYWxpemVzXG5sZXQgcHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uOlxuICB8ICgocGFyYW1zOiBQcm9kdWN0UmV0cmlldmFsUGFyYW1zKSA9PiBQcm9taXNlPFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQ+KVxuICB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0UHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uID0gKFxuICBmbjogKHBhcmFtczogUHJvZHVjdFJldHJpZXZhbFBhcmFtcykgPT4gUHJvbWlzZTxQcm9kdWN0UmV0cmlldmFsUmVzdWx0PlxuKSA9PiB7XG4gIHByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbiA9IGZuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbiA9ICgpID0+IHtcbiAgaWYgKCFwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIlByb2R1Y3QgcmV0cmlldmFsIGZ1bmN0aW9uIG5vdCBpbml0aWFsaXplZC4gTWFrZSBzdXJlIFByb2R1Y3RSZXRyaWV2YWxQcm92aWRlciBpcyBtb3VudGVkLlwiXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyUHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uID0gKCkgPT4ge1xuICBwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24gPSBudWxsO1xufTtcbiIsImltcG9ydCB7XG4gIFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMsXG4gIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBhdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyBnZXRQcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24gfSBmcm9tIFwiLi9wcm9kdWN0UmV0cmlldmFsQWRhcHRlclwiO1xuXG5pbnRlcmZhY2UgUHJvZHVjdFJldHJpZXZhbFN0YXRlIHtcbiAgZGF0YTogUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB8IG51bGw7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0UHJvZHVjdElkczogc3RyaW5nW10gfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgcHJvZHVjdFJldHJpZXZhbEF0b20gPSBhdG9tPFByb2R1Y3RSZXRyaWV2YWxTdGF0ZT4oe1xuICBkYXRhOiBudWxsLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIGxhc3RQcm9kdWN0SWRzOiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtUHJvZHVjdFJldHJpZXZhbEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogUHJvZHVjdFJldHJpZXZhbFBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChwcm9kdWN0UmV0cmlldmFsQXRvbSk7XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjsgLy8gUHJldmVudCBjb25jdXJyZW50IHJldHJpZXZhbHNcbiAgICB9XG5cbiAgICBzZXQocHJvZHVjdFJldHJpZXZhbEF0b20sIHtcbiAgICAgIGRhdGE6IG51bGwsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBsYXN0UHJvZHVjdElkczogcGFyYW1zLnByb2R1Y3RJZHMsXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmV0cmlldmVQcm9kdWN0cyA9IGdldFByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmV0cmlldmVQcm9kdWN0cyhwYXJhbXMpO1xuICAgICAgc2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tLCB7XG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICBsYXN0UHJvZHVjdElkczogcGFyYW1zLnByb2R1Y3RJZHMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBcIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWRcIjtcbiAgICAgIHNldChwcm9kdWN0UmV0cmlldmFsQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFByb2R1Y3RJZHM6IHBhcmFtcy5wcm9kdWN0SWRzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4pO1xuXG4vLyBHZXQganVzdCB0aGUgcHJvZHVjdHMgYXJyYXkgKGFscmVhZHkgbm9ybWFsaXplZCBieSBzZXJ2aWNlKVxuZXhwb3J0IGNvbnN0IHJldHJpZXZlZFByb2R1Y3RzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCByZXRyaWV2YWxEYXRhID0gZ2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tKS5kYXRhO1xuICByZXR1cm4gcmV0cmlldmFsRGF0YT8ucHJvZHVjdHMgfHwgW107XG59KTtcblxuZXhwb3J0IGNvbnN0IHByb2R1Y3RSZXRyaWV2YWxMb2FkaW5nQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICByZXR1cm4gZ2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tKS5sb2FkaW5nO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwcm9kdWN0UmV0cmlldmFsRXJyb3JBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIHJldHVybiBnZXQocHJvZHVjdFJldHJpZXZhbEF0b20pLmVycm9yO1xufSk7XG4iLCJpbXBvcnQge1xuICBTZWFyY2hSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzLFxuICBGZWF0dXJlR2F0ZXMsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUsIHVzZVNldEF0b20gfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSBcInNyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHRcIjtcbmltcG9ydCB7XG4gIHJldHJpZXZlZFByb2R1Y3RzQXRvbSxcbiAgcGVyZm9ybVByb2R1Y3RSZXRyaWV2YWxBdG9tLFxuICBwcm9kdWN0UmV0cmlldmFsQXRvbSxcbn0gZnJvbSBcInNyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdFJldHJpZXZhbEFQSVwiO1xuaW1wb3J0IHsgdXNlTmV3T3JnQ29uZmlnIH0gZnJvbSBcIi4uL05ld09yZ0NvbmZpZ1wiO1xuXG4vKipcbiAqIEEgaG9vayB0byBnZXQgcmVjb21tZW5kZWQgcHJvZHVjdHMuXG4gKiBJdCBjaGVja3MgdGhlIGBJc1JlY29tbWVuZGVkUHJvZHVjdHNFbmFibGVkYCBmZWF0dXJlIGdhdGUgYW5kIHRyaWdnZXJzIGZldGNoaW5nIGlmIG5lZWRlZC5cbiAqIElmIHRoZSBnYXRlIGlzIGVuYWJsZWQsIGl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVjb21tZW5kZWQgcHJvZHVjdHMuXG4gKiBJZiB0aGUgZ2F0ZSBpcyBkaXNhYmxlZCwgaXQgcmV0dXJucyBhbiBlbXB0eSBhcnJheS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbGlzdCBvZiByZWNvbW1lbmRlZCBwcm9kdWN0cyBvciBhbiBlbXB0eSBhcnJheS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlY29tbWVuZGVkUHJvZHVjdHMgPVxuICAoKTogU2VhcmNoUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl1bXSA9PiB7XG4gICAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gICAgY29uc3QgaXNFbmFibGVkID0gZmVhdHVyZUZsYWdTZXJ2aWNlLmlzRmVhdHVyZUdhdGVFbmFibGVkKFxuICAgICAgRmVhdHVyZUdhdGVzLklzUmVjb21tZW5kZWRQcm9kdWN0c0VuYWJsZWRcbiAgICApO1xuICAgIGNvbnN0IHJlY29tbWVuZGVkUHJvZHVjdHMgPSB1c2VBdG9tVmFsdWUocmV0cmlldmVkUHJvZHVjdHNBdG9tKTtcbiAgICBjb25zdCBwZXJmb3JtUHJvZHVjdFJldHJpZXZhbCA9IHVzZVNldEF0b20ocGVyZm9ybVByb2R1Y3RSZXRyaWV2YWxBdG9tKTtcbiAgICBjb25zdCB7IGxhc3RQcm9kdWN0SWRzIH0gPSB1c2VBdG9tVmFsdWUocHJvZHVjdFJldHJpZXZhbEF0b20pO1xuICAgIGNvbnN0IG9yZ1VJQ29uZmlnID0gdXNlTmV3T3JnQ29uZmlnKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgcmVjb21tZW5kZWRQcm9kdWN0SWRzID0gb3JnVUlDb25maWcuc2VhcmNoQ29uZmlnXG4gICAgICAgID8gb3JnVUlDb25maWcuc2VhcmNoQ29uZmlnLnJlY29tbWVuZGVkUHJvZHVjdHNcbiAgICAgICAgOiBbXTtcbiAgICAgIC8vIEZldGNoIG9ubHkgaWYgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZCwgdGhlcmUgYXJlIElEcyB0byBmZXRjaCwgYW5kIHdlIGhhdmVuJ3QgYWxyZWFkeSBmZXRjaGVkIHRoZW0uXG4gICAgICBpZiAoXG4gICAgICAgIGlzRW5hYmxlZCAmJlxuICAgICAgICByZWNvbW1lbmRlZFByb2R1Y3RJZHMgJiZcbiAgICAgICAgcmVjb21tZW5kZWRQcm9kdWN0SWRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgIWxhc3RQcm9kdWN0SWRzXG4gICAgICApIHtcbiAgICAgICAgcGVyZm9ybVByb2R1Y3RSZXRyaWV2YWwoeyBwcm9kdWN0SWRzOiByZWNvbW1lbmRlZFByb2R1Y3RJZHMgfSk7XG4gICAgICB9XG4gICAgfSwgW2lzRW5hYmxlZCwgcGVyZm9ybVByb2R1Y3RSZXRyaWV2YWwsIGxhc3RQcm9kdWN0SWRzLCBvcmdVSUNvbmZpZ10pO1xuXG4gICAgcmV0dXJuIGlzRW5hYmxlZCA/IHJlY29tbWVuZGVkUHJvZHVjdHMgOiBbXTtcbiAgfTtcbiIsImltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCBGdXNlIGZyb20gXCJmdXNlLmpzXCI7XG5pbXBvcnQge1xuICBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLFxuICBVc2VTZWFyY2hJbnB1dFByb3BzLFxuICBVc2VTZWFyY2hJbnB1dFJldHVybixcbn0gZnJvbSBcIkBlbnZpdmUtYWkvdHlwZXNcIjtcbmltcG9ydCB7IHVzZUFtcGxpdHVkZVRyYWNraW5nIH0gZnJvbSBcIi4uL0FtcGxpdHVkZU9wZXJhdGlvbnNcIjtcbmltcG9ydCB7IGF1dG9jb21wbGV0ZVN0YXRlQXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvZ2xvYmFsU2VhcmNoXCI7XG5cbmV4cG9ydCBjb25zdCB1c2VTZWFyY2hJbnB1dCA9ICh7XG4gIGluaXRpYWxTZWFyY2hUZXh0ID0gXCJcIixcbiAgc2VhcmNoT3JpZ2luLFxuICBvblNlYXJjaFN1Ym1pdCxcbn06IFVzZVNlYXJjaElucHV0UHJvcHMpOiBVc2VTZWFyY2hJbnB1dFJldHVybiA9PiB7XG4gIGNvbnN0IHsgdHJhY2sgfSA9IHVzZUFtcGxpdHVkZVRyYWNraW5nKCk7XG5cbiAgLy8gU3RhdGVcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoaW5pdGlhbFNlYXJjaFRleHQpO1xuICBjb25zdCBbaGFzVGV4dCwgc2V0SGFzVGV4dF0gPSB1c2VTdGF0ZShpbml0aWFsU2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID4gMCk7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmb2N1c2VkSW5kZXgsIHNldEZvY3VzZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IFtmb2N1c2VkT3B0aW9uSWQsIHNldEZvY3VzZWRPcHRpb25JZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBjb25zdCBhdXRvY29tcGxldGVTdGF0ZSA9IHVzZUF0b21WYWx1ZShhdXRvY29tcGxldGVTdGF0ZUF0b20pO1xuICBjb25zdCBnbG9iYWxBdXRvY29tcGxldGVSZXN1bHRzID0gYXV0b2NvbXBsZXRlU3RhdGUucmVzdWx0cztcbiAgY29uc3QgaXNBdXRvY29tcGxldGVFbmFibGVkID0gZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGggPiAwO1xuXG4gIC8vIFJlZnNcbiAgY29uc3QgaXNTZWxlY3RpbmdBdXRvY29tcGxldGUgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIENvbXB1dGVkXG4gIGNvbnN0IHNob3VsZFNob3dBdXRvY29tcGxldGUgPSBoYXNUZXh0ICYmIGlzRm9jdXNlZCAmJiBpc0F1dG9jb21wbGV0ZUVuYWJsZWQ7XG5cbiAgY29uc3QgYXV0b2NvbXBsZXRlUmVzdWx0c0xpbWl0ID0gNTtcblxuICAvLyBDb25maWd1cmUgRnVzZS5qcyBmb3IgZnV6enkgc2VhcmNoIHdpdGggY3VzdG9tIHNjb3JpbmdcbiAgY29uc3QgZnVzZU9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgIC8vIEZ1enp5IG1hdGNoaW5nIHRocmVzaG9sZCAoMC4wID0gcGVyZmVjdCBtYXRjaCwgMS4wID0gbWF0Y2ggYW55dGhpbmcpXG4gICAgICB0aHJlc2hvbGQ6IDAuMyxcbiAgICAgIC8vIExvY2F0aW9uIHdoZXJlIG1hdGNoIGlzIGV4cGVjdGVkICgwID0gYmVnaW5uaW5nKVxuICAgICAgbG9jYXRpb246IDAsXG4gICAgICAvLyBEaXN0YW5jZSBmcm9tIGxvY2F0aW9uIHdoZXJlIG1hdGNoIGNhbiBiZSBmb3VuZCAtIHNtYWxsZXIgZm9yIHByZWZpeCBwcmVmZXJlbmNlXG4gICAgICBkaXN0YW5jZTogNCxcbiAgICAgIC8vIE1pbmltdW0gY2hhcmFjdGVyIGxlbmd0aCBiZWZvcmUgZnV6enkgbWF0Y2hpbmcgc3RhcnRzXG4gICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDEsXG4gICAgICAvLyBLZXlzIHRvIHNlYXJjaCAod2UncmUgc2VhcmNoaW5nIHN0cmluZ3MgZGlyZWN0bHksIHNvIG5vIGtleXMgbmVlZGVkKVxuICAgICAga2V5czogW10sXG4gICAgICAvLyBVc2UgZXh0ZW5kZWQgc2VhcmNoIGZvciBleGFjdCBtYXRjaGVzIGFuZCBwcmVmaXggbWF0Y2hpbmdcbiAgICAgIHVzZUV4dGVuZGVkU2VhcmNoOiBmYWxzZSxcbiAgICAgIC8vIERvbid0IGlnbm9yZSBsb2NhdGlvbiAtIHRoaXMgaGVscHMgcHJpb3JpdGl6ZSBtYXRjaGVzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgIGlnbm9yZUxvY2F0aW9uOiBmYWxzZSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IGZ1c2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWdsb2JhbEF1dG9jb21wbGV0ZVJlc3VsdHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbmV3IEZ1c2UoZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cywgZnVzZU9wdGlvbnMpO1xuICB9LCBbZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cywgZnVzZU9wdGlvbnNdKTtcblxuICAvLyBBdXRvY29tcGxldGUgZnV6enkgc2VhcmNoIHVzaW5nIEZ1c2UuanNcbiAgY29uc3QgYXV0b2NvbXBsZXRlUmVzdWx0cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghaXNBdXRvY29tcGxldGVFbmFibGVkIHx8ICFmdXNlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCFzZWFyY2hUZXh0LnRyaW0oKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1c2VSZXN1bHRzID0gZnVzZS5zZWFyY2goc2VhcmNoVGV4dCk7XG5cbiAgICAvLyBVc2Ugb25seSBGdXNlLmpzIHNjb3JpbmcgKHJlc3VsdHMgYXJlIGFscmVhZHkgc29ydGVkIGJ5IHJlbGV2YW5jZSlcbiAgICByZXR1cm4gZnVzZVJlc3VsdHNcbiAgICAgIC5zbGljZSgwLCBhdXRvY29tcGxldGVSZXN1bHRzTGltaXQpXG4gICAgICAubWFwKChyZXN1bHQpID0+IHJlc3VsdC5pdGVtKTtcbiAgfSwgW2lzQXV0b2NvbXBsZXRlRW5hYmxlZCwgZnVzZSwgc2VhcmNoVGV4dCwgYXV0b2NvbXBsZXRlUmVzdWx0c0xpbWl0XSk7XG5cbiAgLy8gSGFuZGxlcnNcbiAgY29uc3QgaGFuZGxlU2VhcmNoSW5wdXRDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgY2hhbmdpbmcgdGV4dCwgdGhleSBtdXN0IGJlIGludGVyYWN0aW5nIHdpdGggdGhlIGlucHV0XG4gICAgICAvLyBTbyB3ZSBjYW4gc2FmZWx5IGFzc3VtZSB0aGV5J3JlIGZvY3VzZWRcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gc2VhcmNoVGV4dCkge1xuICAgICAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdHJhY2soU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hJbnB1dFN0YXJ0ZWQsIHtcbiAgICAgICAgICBzZWFyY2hPcmlnaW4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgc2V0U2VhcmNoVGV4dChuZXdWYWx1ZSk7XG4gICAgICBzZXRIYXNUZXh0KG5ld1ZhbHVlLnRyaW0oKS5sZW5ndGggPiAwKTtcbiAgICAgIHNldEZvY3VzZWRJbmRleCgtMSk7XG4gICAgICBzZXRGb2N1c2VkT3B0aW9uSWQodW5kZWZpbmVkKTtcbiAgICB9LFxuICAgIFtzZWFyY2hPcmlnaW4sIHNlYXJjaFRleHQsIHRyYWNrXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaElucHV0Rm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNGb2N1c2VkKHRydWUpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoSW5wdXRCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCFpc1NlbGVjdGluZ0F1dG9jb21wbGV0ZS5jdXJyZW50KSB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSk7XG4gICAgICAgIHNldEZvY3VzZWRJbmRleCgtMSk7XG4gICAgICAgIHNldEZvY3VzZWRPcHRpb25JZCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0sIDE1MCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXRTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNGb2N1c2VkKGZhbHNlKTtcbiAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkgJiYgb25TZWFyY2hTdWJtaXQpIHtcbiAgICAgIHRyYWNrKFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuU2VhcmNoUXVlcnlTdWJtaXR0ZWQsIHtcbiAgICAgICAgc2VhcmNoT3JpZ2luLFxuICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQudHJpbSgpLFxuICAgICAgfSk7XG4gICAgICBvblNlYXJjaFN1Ym1pdChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gICAgfVxuICB9LCBbc2VhcmNoVGV4dCwgb25TZWFyY2hTdWJtaXQsIHNlYXJjaE9yaWdpbiwgdHJhY2tdKTtcblxuICBjb25zdCBoYW5kbGVBdXRvY29tcGxldGVTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoc3VnZ2VzdGlvbjogc3RyaW5nLCByYW5rUG9zaXRpb24/OiBudW1iZXIpID0+IHtcbiAgICAgIGlzU2VsZWN0aW5nQXV0b2NvbXBsZXRlLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0U2VhcmNoVGV4dChzdWdnZXN0aW9uKTtcbiAgICAgIHNldEhhc1RleHQoc3VnZ2VzdGlvbi50cmltKCkubGVuZ3RoID4gMCk7XG4gICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuXG4gICAgICB0cmFjayhTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaFF1ZXJ5U3VibWl0dGVkLCB7XG4gICAgICAgIHNlYXJjaE9yaWdpbixcbiAgICAgICAgcXVlcnlUZXh0OiBzdWdnZXN0aW9uLnRyaW0oKSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAob25TZWFyY2hTdWJtaXQpIHtcbiAgICAgICAgb25TZWFyY2hTdWJtaXQoc3VnZ2VzdGlvbi50cmltKCkpO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaXNTZWxlY3RpbmdBdXRvY29tcGxldGUuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfSwgMTAwKTtcbiAgICB9LFxuICAgIFtvblNlYXJjaFN1Ym1pdCwgc2VhcmNoT3JpZ2luLCB0cmFja11cbiAgKTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gKGZvY3VzZWRJbmRleCArIDEpICUgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGg7XG4gICAgICAgIHNldEZvY3VzZWRJbmRleChuZXdJbmRleCk7XG4gICAgICAgIHNldEZvY3VzZWRPcHRpb25JZChgb3B0aW9uLSR7bmV3SW5kZXh9YCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPVxuICAgICAgICAgIChmb2N1c2VkSW5kZXggLSAxICsgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGgpICVcbiAgICAgICAgICBhdXRvY29tcGxldGVSZXN1bHRzLmxlbmd0aDtcbiAgICAgICAgc2V0Rm9jdXNlZEluZGV4KG5ld0luZGV4KTtcbiAgICAgICAgc2V0Rm9jdXNlZE9wdGlvbklkKGBvcHRpb24tJHtuZXdJbmRleH1gKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvblRleHQgPSBhdXRvY29tcGxldGVSZXN1bHRzW2ZvY3VzZWRJbmRleF07XG4gICAgICAgICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0KHN1Z2dlc3Rpb25UZXh0LCBmb2N1c2VkSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXRGb2N1c2VkSW5kZXgoLTEpO1xuICAgICAgICBzZXRGb2N1c2VkT3B0aW9uSWQodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgICBmb2N1c2VkSW5kZXgsXG4gICAgICBoYW5kbGVBdXRvY29tcGxldGVTZWxlY3QsXG4gICAgICBoYW5kbGVTdWJtaXRTZWFyY2gsXG4gICAgXVxuICApO1xuXG4gIGNvbnN0IHNldFNlYXJjaFRleHRVdGlsaXR5ID0gdXNlQ2FsbGJhY2soKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFRleHQodGV4dCk7XG4gICAgc2V0SGFzVGV4dCh0ZXh0LnRyaW0oKS5sZW5ndGggPiAwKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHJlc2V0U2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNlYXJjaFRleHQoXCJcIik7XG4gICAgc2V0SGFzVGV4dChmYWxzZSk7XG4gICAgc2V0SXNGb2N1c2VkKGZhbHNlKTtcbiAgICBzZXRGb2N1c2VkSW5kZXgoLTEpO1xuICAgIHNldEZvY3VzZWRPcHRpb25JZCh1bmRlZmluZWQpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTdGF0ZVxuICAgIHNlYXJjaFRleHQsXG4gICAgaGFzVGV4dCxcbiAgICBpc0ZvY3VzZWQsXG4gICAgZm9jdXNlZEluZGV4LFxuICAgIGZvY3VzZWRPcHRpb25JZCxcbiAgICBhdXRvY29tcGxldGVSZXN1bHRzLFxuICAgIHNob3VsZFNob3dBdXRvY29tcGxldGUsXG5cbiAgICAvLyBIYW5kbGVyc1xuICAgIGhhbmRsZVNlYXJjaElucHV0Q2hhbmdlLFxuICAgIGhhbmRsZVNlYXJjaElucHV0Rm9jdXMsXG4gICAgaGFuZGxlU2VhcmNoSW5wdXRCbHVyLFxuICAgIGhhbmRsZUtleURvd24sXG4gICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0LFxuICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCxcblxuICAgIC8vIFV0aWxpdGllc1xuICAgIHNldFNlYXJjaFRleHQ6IHNldFNlYXJjaFRleHRVdGlsaXR5LFxuICAgIHJlc2V0U2VhcmNoLFxuICB9O1xufTtcbiIsImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgU2VhcmNoUmVzdWx0c0hvY1Byb3BzLFxuICBQcm9kdWN0U29ydGluZyxcbiAgU2VhcmNoRmlsdGVyRGF0dW0sXG4gIFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsXG4gIFNlbGVjdGVkRmlsdGVyT3B0aW9uLFxuICBTZWxlY3RGaWx0ZXJJdGVtLFxuICBTcGlmZnlXaWRnZXRzLFxufSBmcm9tIFwiQGVudml2ZS1haS90eXBlc1wiO1xuaW1wb3J0IHtcbiAgYWRkU2VhcmNoRmlsdGVyQXRvbSxcbiAgY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSxcbiAgY3JlYXRlRmlsdGVyT3B0aW9uLFxuICBmaWx0ZXJlZFNlYXJjaFByb2R1Y3RzQXRvbSxcbiAgcGVyZm9ybVNlYXJjaEF0b20sXG4gIHJlbW92ZVNlYXJjaEZpbHRlckF0b20sXG4gIHNlYXJjaEF0b20sXG4gIHNlYXJjaEZpbHRlcnNBdG9tLFxuICBzZWFyY2hQYXJhbXNBdG9tLFxuICBzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20sXG4gIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG59IGZyb20gXCIuLi8uLi9hdG9tcy9zZWFyY2hcIjtcbmltcG9ydCB7IGlzRmlsdGVyT3BlbkF0b20gfSBmcm9tIFwiLi4vLi4vYXRvbXMvZ2xvYmFsU2VhcmNoL2dsb2JhbFNlYXJjaFwiO1xuaW1wb3J0IHsgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUgfSBmcm9tIFwiLi4vLi4vYXRvbXMvc2VhcmNoL3V0aWxzXCI7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGUgfSBmcm9tIFwiLi4vLi4vY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBvcmdTaG9ydE5hbWVBdG9tIH0gZnJvbSBcIi4uLy4uL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWdcIjtcbmltcG9ydCB7IHVzZU5ld09yZ0NvbmZpZyB9IGZyb20gXCIuLi9OZXdPcmdDb25maWdcIjtcbmltcG9ydCB7IHVzZVRyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50IH0gZnJvbSBcIi4uL1RyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50XCI7XG5pbXBvcnQgeyBnZXRTZWFyY2hSZXN1bHRzU3RhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IHVzZVJlY29tbWVuZGVkUHJvZHVjdHMgfSBmcm9tIFwiLi91c2VSZWNvbW1lbmRlZFByb2R1Y3RzXCI7XG5pbXBvcnQgeyB1c2VTZWFyY2hJbnB1dCB9IGZyb20gXCIuL3VzZVNlYXJjaElucHV0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VTZWFyY2ggPSAoKTogU2VhcmNoUmVzdWx0c0hvY1Byb3BzID0+IHtcbiAgLy8gQXRvbXNcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgY29uZmlnID0gdXNlTmV3T3JnQ29uZmlnKCk7XG4gIGNvbnN0IG9yZ1Nob3J0TmFtZSA9IHVzZUF0b21WYWx1ZShvcmdTaG9ydE5hbWVBdG9tKTtcbiAgY29uc3QgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBpc0xvYWRpbmdTZWFyY2ggfSA9XG4gICAgdXNlQXRvbVZhbHVlKHNlYXJjaEF0b20pO1xuICBjb25zdCBwcm9kdWN0TGlzdCA9IHVzZUF0b21WYWx1ZShmaWx0ZXJlZFNlYXJjaFByb2R1Y3RzQXRvbSk7XG4gIGNvbnN0IHBlcmZvcm1TZWFyY2ggPSB1c2VTZXRBdG9tKHBlcmZvcm1TZWFyY2hBdG9tKTtcbiAgY29uc3QgW3sgcXVlcnkgfV0gPSB1c2VBdG9tKHNlYXJjaFBhcmFtc0F0b20pO1xuICBjb25zdCBbaXNGaWx0ZXJPcGVuLCBzZXRJc0ZpbHRlck9wZW5dID0gdXNlQXRvbShpc0ZpbHRlck9wZW5BdG9tKTtcbiAgY29uc3QgW3NlbGVjdGVkRmlsdGVyT3B0aW9uc10gPSB1c2VBdG9tKHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBhZGRGaWx0ZXIgPSB1c2VTZXRBdG9tKGFkZFNlYXJjaEZpbHRlckF0b20pO1xuICBjb25zdCByZW1vdmVGaWx0ZXIgPSB1c2VTZXRBdG9tKHJlbW92ZVNlYXJjaEZpbHRlckF0b20pO1xuICBjb25zdCBbcHJvZHVjdFNvcnRpbmcsIHNldFByb2R1Y3RTb3J0aW5nXSA9IHVzZUF0b20oc2VhcmNoUHJvZHVjdFNvcnRpbmdBdG9tKTtcbiAgY29uc3QgY2xlYXJGaWx0ZXJzID0gdXNlU2V0QXRvbShjbGVhclNlYXJjaEZpbHRlcnNBdG9tKTtcbiAgY29uc3Qgc2VhcmNoRmlsdGVycyA9IHVzZUF0b21WYWx1ZShzZWFyY2hGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IHJlY29tbWVuZGVkUHJvZHVjdHMgPSB1c2VSZWNvbW1lbmRlZFByb2R1Y3RzKCk7XG5cbiAgLy8gUmVmc1xuICBjb25zdCBzZWFyY2hSZXN1bHRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAvLyBVdGlsaXRpZXNcbiAgY29uc3Qgc2Nyb2xsVG9Ub3AgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2VhcmNoUmVzdWx0c1JlZi5jdXJyZW50O1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgLy8gU2VhcmNoIElucHV0IEhvb2tcbiAgY29uc3Qgc2VhcmNoSW5wdXQgPSB1c2VTZWFyY2hJbnB1dCh7XG4gICAgaW5pdGlhbFNlYXJjaFRleHQ6IHF1ZXJ5IHx8IFwiXCIsXG4gICAgc2VhcmNoT3JpZ2luOiBTcGlmZnlXaWRnZXRzLlNlYXJjaFJlc3VsdHMsXG4gICAgb25TZWFyY2hTdWJtaXQ6IChzZWFyY2hRdWVyeSkgPT4ge1xuICAgICAgcGVyZm9ybVNlYXJjaCh7IHF1ZXJ5OiBzZWFyY2hRdWVyeSB9KTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCB7XG4gICAgc2VhcmNoVGV4dCxcbiAgICBmb2N1c2VkSW5kZXgsXG4gICAgZm9jdXNlZE9wdGlvbklkLFxuICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgc2hvdWxkU2hvd0F1dG9jb21wbGV0ZSxcbiAgICBoYW5kbGVTZWFyY2hJbnB1dENoYW5nZSxcbiAgICBoYW5kbGVTZWFyY2hJbnB1dEZvY3VzLFxuICAgIGhhbmRsZVNlYXJjaElucHV0Qmx1cixcbiAgICBoYW5kbGVLZXlEb3duLFxuICAgIGhhbmRsZUF1dG9jb21wbGV0ZVNlbGVjdCxcbiAgICBoYW5kbGVTdWJtaXRTZWFyY2gsXG4gICAgc2V0U2VhcmNoVGV4dCxcbiAgfSA9IHNlYXJjaElucHV0O1xuICBjb25zdCBzZWFyY2hSZXN1bHRzU3RhdGUgPSBnZXRTZWFyY2hSZXN1bHRzU3RhdGUoaXNMb2FkaW5nU2VhcmNoLCBzZWFyY2hEYXRhKTtcblxuICBjb25zdCBkeW5hbWljRmlsdGVycyA9IHNlYXJjaERhdGE/LmZpbHRlcnMgfHwgW107XG5cbiAgLy8gUHJvdmlkZSBmYWxsYmFjayB2YWx1ZXMgd2hlbiBjb25maWcgaXMgbm90IHlldCBhdmFpbGFibGVcbiAgY29uc3Qgc2FmZVByb2R1Y3RDYXJkQ29uZmlnID0gY29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzXG4gICAgPy5wcm9kdWN0Q2FyZENvbmZpZyB8fCB7XG4gICAgdmFyaWFudDogXCJtaW5pbWFsXCIsXG4gICAgaG92ZXJWYXJpYW50OiBcIm5vbmVcIixcbiAgICBsYXlvdXRWYXJpYW50OiBcInNxdWFyZVwiLFxuICB9O1xuICBjb25zdCBzYWZlTWVyY2hhbnRTaG9ydE5hbWUgPSBvcmdTaG9ydE5hbWUgfHwgXCJcIjtcblxuICBjb25zdCBhdmFpbGFibGVEeW5hbWljRmlsdGVycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkeW5hbWljRmlsdGVyc1xuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGR5bmFtaWNGaWx0ZXJOYW1lKSA9PlxuICAgICAgICAgICFzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYGR5bmFtaWM6JHtkeW5hbWljRmlsdGVyTmFtZX1gXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICAgLm1hcCgoZHluYW1pY0ZpbHRlck5hbWUpID0+ICh7XG4gICAgICAgIG5hbWU6IGR5bmFtaWNGaWx0ZXJOYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZTogZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUoZHluYW1pY0ZpbHRlck5hbWUpLFxuICAgICAgfSkpO1xuICB9LCBbZHluYW1pY0ZpbHRlcnMsIHNlbGVjdGVkRmlsdGVyT3B0aW9uc10pO1xuXG4gIGNvbnN0IGZpbHRlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzb3J0T3B0aW9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBTdHJpbmcoUHJvZHVjdFNvcnRpbmcuRkVBVFVSRUQpLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJSZWxldmFuY2VcIixcbiAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICBpc1NlbGVjdGVkOiBwcm9kdWN0U29ydGluZyA9PT0gUHJvZHVjdFNvcnRpbmcuRkVBVFVSRUQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IFN0cmluZyhQcm9kdWN0U29ydGluZy5QUklDRV9BU0MpLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJQcmljZTogTG93IHRvIEhpZ2hcIixcbiAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICBpc1NlbGVjdGVkOiBwcm9kdWN0U29ydGluZyA9PT0gUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBTdHJpbmcoUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQyksXG4gICAgICAgIGRpc3BsYXlOYW1lOiBcIlByaWNlOiBIaWdoIHRvIExvd1wiLFxuICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgIGlzU2VsZWN0ZWQ6IHByb2R1Y3RTb3J0aW5nID09PSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHsgZmlsdGVySWQ6IFwic29ydFwiLCBkaXNwbGF5TmFtZTogXCJTT1JUXCIsIGl0ZW1zOiBzb3J0T3B0aW9ucyB9LFxuICAgICAgLi4uc2VhcmNoRmlsdGVycyxcbiAgICBdIGFzIFNlYXJjaEZpbHRlckRhdHVtW107XG4gIH0sIFtwcm9kdWN0U29ydGluZywgc2VhcmNoRmlsdGVyc10pO1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblRleHQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50ID0gZmlsdGVycy5yZWR1Y2UoKGFjYzogbnVtYmVyLCBmaWx0ZXIpID0+IHtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVySWQgPT09IFwic29ydFwiKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjICsgZmlsdGVyLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pc1NlbGVjdGVkKS5sZW5ndGg7XG4gICAgfSwgMCk7XG4gICAgaWYgKHNlbGVjdGVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBcIkZpbHRlciAmIFNvcnRcIjtcbiAgICB9XG4gICAgcmV0dXJuIGBGaWx0ZXIgJiBTb3J0ICgke3NlbGVjdGVkQ291bnR9KWA7XG4gIH0sIFtmaWx0ZXJzXSk7XG5cbiAgLy8gQ2FsbGJhY2tzXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUR5bmFtaWNGaWx0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmlsdGVyLFxuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lLFxuICAgIH06IHtcbiAgICAgIGZpbHRlcjogc3RyaW5nO1xuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hGaWx0ZXJDbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgZmlsdGVyVHlwZTogXCJEeW5hbWljXCIsXG4gICAgICAgICAgZmlsdGVyVmFsdWU6IGZpbHRlcixcbiAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGFkZEZpbHRlcihcbiAgICAgICAgY3JlYXRlRmlsdGVyT3B0aW9uKFwiZHluYW1pY1wiLCBmaWx0ZXIsIGR5bmFtaWNGaWx0ZXJEaXNwbGF5TmFtZSlcbiAgICAgICk7XG4gICAgICBzY3JvbGxUb1RvcCgpO1xuICAgIH0sXG4gICAgW2FkZEZpbHRlciwgc2VhcmNoVGV4dCwgc2Nyb2xsVG9Ub3AsIHRyYWNrRXZlbnRdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlUmVtb3ZlRmlsdGVyID0gdXNlQ2FsbGJhY2soXG4gICAgKGZpbHRlcjogU2VsZWN0ZWRGaWx0ZXJPcHRpb24pID0+IHtcbiAgICAgIHJlbW92ZUZpbHRlcihmaWx0ZXIuaWQpO1xuICAgICAgc2Nyb2xsVG9Ub3AoKTtcbiAgICB9LFxuICAgIFtyZW1vdmVGaWx0ZXIsIHNjcm9sbFRvVG9wXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmlsdGVySWQsXG4gICAgICBmaWx0ZXJJdGVtSWQsXG4gICAgICBpc1NlbGVjdGVkLFxuICAgICAgZGlzcGxheU5hbWUsXG4gICAgfToge1xuICAgICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICAgIGZpbHRlckl0ZW1JZDogc3RyaW5nO1xuICAgICAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgaWYgKGZpbHRlcklkID09PSBcInNvcnRcIikge1xuICAgICAgICBjb25zdCBuZXdTb3J0ID0gZmlsdGVySXRlbUlkIGFzIFByb2R1Y3RTb3J0aW5nO1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuU2VhcmNoU29ydENsaWNrZWQsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgc29ydFR5cGU6IG5ld1NvcnQsXG4gICAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFByb2R1Y3RTb3J0aW5nKG5ld1NvcnQpO1xuICAgICAgICBzY3JvbGxUb1RvcCgpO1xuICAgICAgfSBlbHNlIGlmICghaXNTZWxlY3RlZCkge1xuICAgICAgICByZW1vdmVGaWx0ZXIoYCR7ZmlsdGVySWR9OiR7ZmlsdGVySXRlbUlkfWApO1xuICAgICAgICBzY3JvbGxUb1RvcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaEZpbHRlckNsaWNrZWQsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIGZpbHRlckNhdGVnb3J5OiBmaWx0ZXJJZCxcbiAgICAgICAgICAgIGZpbHRlclZhbHVlOiBmaWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGFkZEZpbHRlcihjcmVhdGVGaWx0ZXJPcHRpb24oZmlsdGVySWQsIGZpbHRlckl0ZW1JZCwgZGlzcGxheU5hbWUpKTtcbiAgICAgICAgc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFkZEZpbHRlcixcbiAgICAgIHJlbW92ZUZpbHRlcixcbiAgICAgIHNldFByb2R1Y3RTb3J0aW5nLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIHNjcm9sbFRvVG9wLFxuICAgICAgdHJhY2tFdmVudCxcbiAgICBdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2xlYXJBbGxGaWx0ZXJzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFByb2R1Y3RTb3J0aW5nKFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbiAgICBjbGVhckZpbHRlcnMoKTtcbiAgICBzY3JvbGxUb1RvcCgpO1xuICB9LCBbc2V0UHJvZHVjdFNvcnRpbmcsIGNsZWFyRmlsdGVycywgc2Nyb2xsVG9Ub3BdKTtcblxuICAvLyBTaWRlIEVmZmVjdHNcbiAgdXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQoXG4gICAgU3BpZmZ5V2lkZ2V0cy5TZWFyY2hSZXN1bHRzLFxuICAgIHNlYXJjaFJlc3VsdHNSZWYsXG4gICAge30sXG4gICAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hDb21wb25lbnRWaXNpYmxlXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJvZHVjdExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hSZXN1bHRzVmlld2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnlUZXh0OiBzZWFyY2hUZXh0LFxuICAgICAgICAgIHJlc3VsdHNDb3VudDogcHJvZHVjdExpc3QubGVuZ3RoLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJvZHVjdExpc3QubGVuZ3RoLCBzZWFyY2hUZXh0LCB0cmFja0V2ZW50XSk7XG5cbiAgLy8gVGhpcyBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlIHNlYXJjaCB0ZXh0IHRyaWdnZXJpbmcgYSBzZWFyY2hcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocXVlcnkgJiYgcXVlcnkgIT09IHNlYXJjaFRleHQpIHtcbiAgICAgIGNvbnN0IGVzcSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwiZXNxXCIpO1xuICAgICAgc2V0U2VhcmNoVGV4dChxdWVyeSk7XG4gICAgICBwZXJmb3JtU2VhcmNoKHsgcXVlcnk6IGVzcSA/PyBxdWVyeSB9KTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbcGVyZm9ybVNlYXJjaCwgcXVlcnksIHNldFNlYXJjaFRleHRdKTtcblxuICByZXR1cm4ge1xuICAgIHNlYXJjaERhdGEsXG4gICAgc2VhcmNoUmVzcG9uc2VJZDogc2VhcmNoRGF0YT8uc2VhcmNoUmVzcG9uc2VJZCA/PyBcIlwiLFxuICAgIG1lcmNoYW50U2hvcnROYW1lOiBzYWZlTWVyY2hhbnRTaG9ydE5hbWUsXG4gICAgcHJvZHVjdENhcmRDb25maWc6IHNhZmVQcm9kdWN0Q2FyZENvbmZpZyxcbiAgICBwcm9kdWN0TGlzdCxcbiAgICByZWNvbW1lbmRlZFByb2R1Y3RzLFxuICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgc2VhcmNoRmlsdGVyczogZmlsdGVycyxcbiAgICBhdmFpbGFibGVEeW5hbWljRmlsdGVycyxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMsXG4gICAgc2VhcmNoVGV4dCxcbiAgICBxdWVyeTogcXVlcnkgfHwgXCJcIixcbiAgICBzZWFyY2hSZXN1bHRzU3RhdGUsXG4gICAgaXNMb2FkaW5nU2VhcmNoLFxuICAgIGlzTG9hZGluZ0F1dG9jb21wbGV0ZTogZmFsc2UsXG4gICAgaXNGaWx0ZXJPcGVuLFxuICAgIHNob3VsZFNob3dBdXRvY29tcGxldGUsXG4gICAgZm9jdXNlZEluZGV4LFxuICAgIGZvY3VzZWRPcHRpb25JZCxcbiAgICBmaWx0ZXJCdXR0b25UZXh0LFxuICAgIG9uU2VhcmNoSW5wdXRDaGFuZ2U6IGhhbmRsZVNlYXJjaElucHV0Q2hhbmdlLFxuICAgIG9uU3VibWl0U2VhcmNoOiBoYW5kbGVTdWJtaXRTZWFyY2gsXG4gICAgb25BdXRvY29tcGxldGVTZWxlY3Q6IGhhbmRsZUF1dG9jb21wbGV0ZVNlbGVjdCxcbiAgICBvbktleURvd246IGhhbmRsZUtleURvd24sXG4gICAgb25TZWFyY2hJbnB1dEZvY3VzOiBoYW5kbGVTZWFyY2hJbnB1dEZvY3VzLFxuICAgIG9uU2VhcmNoSW5wdXRCbHVyOiBoYW5kbGVTZWFyY2hJbnB1dEJsdXIsXG4gICAgb25Ub2dnbGVEeW5hbWljRmlsdGVyOiBoYW5kbGVUb2dnbGVEeW5hbWljRmlsdGVyLFxuICAgIG9uU2VsZWN0RmlsdGVySXRlbTogaGFuZGxlU2VsZWN0RmlsdGVySXRlbSxcbiAgICBvblJlbW92ZUZpbHRlcjogaGFuZGxlUmVtb3ZlRmlsdGVyLFxuICAgIG9uQ2xlYXJBbGxGaWx0ZXJzOiBoYW5kbGVDbGVhckFsbEZpbHRlcnMsXG4gICAgc2V0SXNGaWx0ZXJPcGVuLFxuICAgIHNlYXJjaFJlc3VsdHNSZWYsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsSUFBSUEsMkJBRU87QUFRWCxNQUFhLG9DQUFvQztBQUMvQyxLQUFJLENBQUMseUJBQ0gsT0FBTSxJQUFJLE1BQ1IsNkZBQ0Q7QUFFSCxRQUFPOzs7OztBQ1JULE1BQWEsdUJBQXVCLEtBQTRCO0NBQzlELE1BQU07Q0FDTixTQUFTO0NBQ1QsT0FBTztDQUNQLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBYSw4QkFBOEIsS0FDekMsTUFDQSxPQUFPLEtBQUssS0FBSyxXQUFtQztBQUdsRCxLQUZxQixJQUFJLHFCQUFxQixDQUU3QixRQUNmO0FBR0YsS0FBSSxzQkFBc0I7RUFDeEIsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZ0JBQWdCLE9BQU87RUFDeEIsQ0FBQztBQUVGLEtBQUk7RUFFRixNQUFNLFNBQVMs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
460
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb246XG4gIHwgKChwYXJhbXM6IFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMpID0+IFByb21pc2U8UHJvZHVjdFJldHJpZXZhbFJlc3VsdD4pXG4gIHwgbnVsbCIsImVycm9yOiB1bmtub3duIiwiaGFuZGxlU2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdFJldHJpZXZhbEFkYXB0ZXIudHMiLCIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RSZXRyaWV2YWxBUEkudHMiLCIuLi8uLi8uLi9zcmMvaG9va3MvU2VhcmNoL3VzZVNlYXJjaElucHV0LnRzIiwiLi4vLi4vLi4vc3JjL2hvb2tzL1NlYXJjaC91c2VTZWFyY2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMsXG4gIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5cbi8vIFRoaXMgd2lsbCBiZSBzZXQgYnkgdGhlIFByb2R1Y3RSZXRyaWV2YWxQcm92aWRlciB3aGVuIGl0IGluaXRpYWxpemVzXG5sZXQgcHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uOlxuICB8ICgocGFyYW1zOiBQcm9kdWN0UmV0cmlldmFsUGFyYW1zKSA9PiBQcm9taXNlPFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQ+KVxuICB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0UHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uID0gKFxuICBmbjogKHBhcmFtczogUHJvZHVjdFJldHJpZXZhbFBhcmFtcykgPT4gUHJvbWlzZTxQcm9kdWN0UmV0cmlldmFsUmVzdWx0PlxuKSA9PiB7XG4gIHByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbiA9IGZuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbiA9ICgpID0+IHtcbiAgaWYgKCFwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIlByb2R1Y3QgcmV0cmlldmFsIGZ1bmN0aW9uIG5vdCBpbml0aWFsaXplZC4gTWFrZSBzdXJlIFByb2R1Y3RSZXRyaWV2YWxQcm92aWRlciBpcyBtb3VudGVkLlwiXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyUHJvZHVjdFJldHJpZXZhbEZ1bmN0aW9uID0gKCkgPT4ge1xuICBwcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24gPSBudWxsO1xufTtcbiIsImltcG9ydCB7XG4gIFByb2R1Y3RSZXRyaWV2YWxQYXJhbXMsXG4gIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBhdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyBnZXRQcm9kdWN0UmV0cmlldmFsRnVuY3Rpb24gfSBmcm9tIFwiLi9wcm9kdWN0UmV0cmlldmFsQWRhcHRlclwiO1xuXG5pbnRlcmZhY2UgUHJvZHVjdFJldHJpZXZhbFN0YXRlIHtcbiAgZGF0YTogUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB8IG51bGw7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0UHJvZHVjdElkczogc3RyaW5nW10gfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgcHJvZHVjdFJldHJpZXZhbEF0b20gPSBhdG9tPFByb2R1Y3RSZXRyaWV2YWxTdGF0ZT4oe1xuICBkYXRhOiBudWxsLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIGxhc3RQcm9kdWN0SWRzOiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtUHJvZHVjdFJldHJpZXZhbEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogUHJvZHVjdFJldHJpZXZhbFBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChwcm9kdWN0UmV0cmlldmFsQXRvbSk7XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjsgLy8gUHJldmVudCBjb25jdXJyZW50IHJldHJpZXZhbHNcbiAgICB9XG5cbiAgICBzZXQocHJvZHVjdFJldHJpZXZhbEF0b20sIHtcbiAgICAgIGRhdGE6IG51bGwsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBsYXN0UHJvZHVjdElkczogcGFyYW1zLnByb2R1Y3RJZHMsXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmV0cmlldmVQcm9kdWN0cyA9IGdldFByb2R1Y3RSZXRyaWV2YWxGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmV0cmlldmVQcm9kdWN0cyhwYXJhbXMpO1xuICAgICAgc2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tLCB7XG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICBsYXN0UHJvZHVjdElkczogcGFyYW1zLnByb2R1Y3RJZHMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBcIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWRcIjtcbiAgICAgIHNldChwcm9kdWN0UmV0cmlldmFsQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFByb2R1Y3RJZHM6IHBhcmFtcy5wcm9kdWN0SWRzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4pO1xuXG4vLyBHZXQganVzdCB0aGUgcHJvZHVjdHMgYXJyYXkgKGFscmVhZHkgbm9ybWFsaXplZCBieSBzZXJ2aWNlKVxuZXhwb3J0IGNvbnN0IHJldHJpZXZlZFByb2R1Y3RzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCByZXRyaWV2YWxEYXRhID0gZ2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tKS5kYXRhO1xuICByZXR1cm4gcmV0cmlldmFsRGF0YT8ucHJvZHVjdHMgfHwgW107XG59KTtcblxuZXhwb3J0IGNvbnN0IHByb2R1Y3RSZXRyaWV2YWxMb2FkaW5nQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICByZXR1cm4gZ2V0KHByb2R1Y3RSZXRyaWV2YWxBdG9tKS5sb2FkaW5nO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwcm9kdWN0UmV0cmlldmFsRXJyb3JBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIHJldHVybiBnZXQocHJvZHVjdFJldHJpZXZhbEF0b20pLmVycm9yO1xufSk7XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgRnVzZSBmcm9tIFwiZnVzZS5qc1wiO1xuaW1wb3J0IHtcbiAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSxcbiAgVXNlU2VhcmNoSW5wdXRQcm9wcyxcbiAgVXNlU2VhcmNoSW5wdXRSZXR1cm4sXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGVUcmFja2luZyB9IGZyb20gXCIuLi9BbXBsaXR1ZGVPcGVyYXRpb25zXCI7XG5pbXBvcnQgeyBhdXRvY29tcGxldGVTdGF0ZUF0b20gfSBmcm9tIFwic3JjL2F0b21zL2dsb2JhbFNlYXJjaFwiO1xuaW1wb3J0IHsgYW1wbGl0dWRlVHJhY2tFdmVudEF0b20gfSBmcm9tIFwic3JjL2F0b21zL2FtcGxpdHVkZS9hbXBsaXR1ZGVUcmFja0V2ZW50QXRvbVwiO1xuXG5leHBvcnQgY29uc3QgdXNlU2VhcmNoSW5wdXQgPSAoe1xuICBpbml0aWFsU2VhcmNoVGV4dCA9IFwiXCIsXG4gIHNlYXJjaE9yaWdpbixcbiAgb25TZWFyY2hTdWJtaXQsXG59OiBVc2VTZWFyY2hJbnB1dFByb3BzKTogVXNlU2VhcmNoSW5wdXRSZXR1cm4gPT4ge1xuICBjb25zdCB0cmFjayA9IHVzZUF0b21WYWx1ZShhbXBsaXR1ZGVUcmFja0V2ZW50QXRvbSk7XG5cbiAgLy8gU3RhdGVcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoaW5pdGlhbFNlYXJjaFRleHQpO1xuICBjb25zdCBbaGFzVGV4dCwgc2V0SGFzVGV4dF0gPSB1c2VTdGF0ZShpbml0aWFsU2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID4gMCk7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmb2N1c2VkSW5kZXgsIHNldEZvY3VzZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IFtmb2N1c2VkT3B0aW9uSWQsIHNldEZvY3VzZWRPcHRpb25JZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBjb25zdCBhdXRvY29tcGxldGVTdGF0ZSA9IHVzZUF0b21WYWx1ZShhdXRvY29tcGxldGVTdGF0ZUF0b20pO1xuICBjb25zdCBnbG9iYWxBdXRvY29tcGxldGVSZXN1bHRzID0gYXV0b2NvbXBsZXRlU3RhdGUucmVzdWx0cztcbiAgY29uc3QgaXNBdXRvY29tcGxldGVFbmFibGVkID0gZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGggPiAwO1xuXG4gIC8vIFJlZnNcbiAgY29uc3QgaXNTZWxlY3RpbmdBdXRvY29tcGxldGUgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIENvbXB1dGVkXG4gIGNvbnN0IHNob3VsZFNob3dBdXRvY29tcGxldGUgPSBoYXNUZXh0ICYmIGlzRm9jdXNlZCAmJiBpc0F1dG9jb21wbGV0ZUVuYWJsZWQ7XG5cbiAgY29uc3QgYXV0b2NvbXBsZXRlUmVzdWx0c0xpbWl0ID0gNTtcblxuICAvLyBDb25maWd1cmUgRnVzZS5qcyBmb3IgZnV6enkgc2VhcmNoIHdpdGggY3VzdG9tIHNjb3JpbmdcbiAgY29uc3QgZnVzZU9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgIC8vIEZ1enp5IG1hdGNoaW5nIHRocmVzaG9sZCAoMC4wID0gcGVyZmVjdCBtYXRjaCwgMS4wID0gbWF0Y2ggYW55dGhpbmcpXG4gICAgICB0aHJlc2hvbGQ6IDAuMyxcbiAgICAgIC8vIExvY2F0aW9uIHdoZXJlIG1hdGNoIGlzIGV4cGVjdGVkICgwID0gYmVnaW5uaW5nKVxuICAgICAgbG9jYXRpb246IDAsXG4gICAgICAvLyBEaXN0YW5jZSBmcm9tIGxvY2F0aW9uIHdoZXJlIG1hdGNoIGNhbiBiZSBmb3VuZCAtIHNtYWxsZXIgZm9yIHByZWZpeCBwcmVmZXJlbmNlXG4gICAgICBkaXN0YW5jZTogNCxcbiAgICAgIC8vIE1pbmltdW0gY2hhcmFjdGVyIGxlbmd0aCBiZWZvcmUgZnV6enkgbWF0Y2hpbmcgc3RhcnRzXG4gICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDEsXG4gICAgICAvLyBLZXlzIHRvIHNlYXJjaCAod2UncmUgc2VhcmNoaW5nIHN0cmluZ3MgZGlyZWN0bHksIHNvIG5vIGtleXMgbmVlZGVkKVxuICAgICAga2V5czogW10sXG4gICAgICAvLyBVc2UgZXh0ZW5kZWQgc2VhcmNoIGZvciBleGFjdCBtYXRjaGVzIGFuZCBwcmVmaXggbWF0Y2hpbmdcbiAgICAgIHVzZUV4dGVuZGVkU2VhcmNoOiBmYWxzZSxcbiAgICAgIC8vIERvbid0IGlnbm9yZSBsb2NhdGlvbiAtIHRoaXMgaGVscHMgcHJpb3JpdGl6ZSBtYXRjaGVzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgIGlnbm9yZUxvY2F0aW9uOiBmYWxzZSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IGZ1c2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWdsb2JhbEF1dG9jb21wbGV0ZVJlc3VsdHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbmV3IEZ1c2UoZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cywgZnVzZU9wdGlvbnMpO1xuICB9LCBbZ2xvYmFsQXV0b2NvbXBsZXRlUmVzdWx0cywgZnVzZU9wdGlvbnNdKTtcblxuICAvLyBBdXRvY29tcGxldGUgZnV6enkgc2VhcmNoIHVzaW5nIEZ1c2UuanNcbiAgY29uc3QgYXV0b2NvbXBsZXRlUmVzdWx0cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghaXNBdXRvY29tcGxldGVFbmFibGVkIHx8ICFmdXNlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCFzZWFyY2hUZXh0LnRyaW0oKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1c2VSZXN1bHRzID0gZnVzZS5zZWFyY2goc2VhcmNoVGV4dCk7XG5cbiAgICAvLyBVc2Ugb25seSBGdXNlLmpzIHNjb3JpbmcgKHJlc3VsdHMgYXJlIGFscmVhZHkgc29ydGVkIGJ5IHJlbGV2YW5jZSlcbiAgICByZXR1cm4gZnVzZVJlc3VsdHNcbiAgICAgIC5zbGljZSgwLCBhdXRvY29tcGxldGVSZXN1bHRzTGltaXQpXG4gICAgICAubWFwKChyZXN1bHQpID0+IHJlc3VsdC5pdGVtKTtcbiAgfSwgW2lzQXV0b2NvbXBsZXRlRW5hYmxlZCwgZnVzZSwgc2VhcmNoVGV4dCwgYXV0b2NvbXBsZXRlUmVzdWx0c0xpbWl0XSk7XG5cbiAgLy8gSGFuZGxlcnNcbiAgY29uc3QgaGFuZGxlU2VhcmNoSW5wdXRDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgY2hhbmdpbmcgdGV4dCwgdGhleSBtdXN0IGJlIGludGVyYWN0aW5nIHdpdGggdGhlIGlucHV0XG4gICAgICAvLyBTbyB3ZSBjYW4gc2FmZWx5IGFzc3VtZSB0aGV5J3JlIGZvY3VzZWRcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gc2VhcmNoVGV4dCkge1xuICAgICAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdHJhY2s/Lih7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaElucHV0U3RhcnRlZCxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICBzZWFyY2hPcmlnaW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBzZXRTZWFyY2hUZXh0KG5ld1ZhbHVlKTtcbiAgICAgIHNldEhhc1RleHQobmV3VmFsdWUudHJpbSgpLmxlbmd0aCA+IDApO1xuICAgICAgc2V0Rm9jdXNlZEluZGV4KC0xKTtcbiAgICAgIHNldEZvY3VzZWRPcHRpb25JZCh1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgW3NlYXJjaE9yaWdpbiwgc2VhcmNoVGV4dCwgdHJhY2tdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoSW5wdXRGb2N1cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2hJbnB1dEJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIWlzU2VsZWN0aW5nQXV0b2NvbXBsZXRlLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKTtcbiAgICAgICAgc2V0Rm9jdXNlZEluZGV4KC0xKTtcbiAgICAgICAgc2V0Rm9jdXNlZE9wdGlvbklkKHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSwgMTUwKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdFNlYXJjaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSAmJiBvblNlYXJjaFN1Ym1pdCkge1xuICAgICAgdHJhY2s/Lih7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hRdWVyeVN1Ym1pdHRlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHNlYXJjaE9yaWdpbixcbiAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgICBhbHNvU2VuZFRvR29vZ2xlQW5hbHl0aWNzOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBvblNlYXJjaFN1Ym1pdChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gICAgfVxuICB9LCBbc2VhcmNoVGV4dCwgb25TZWFyY2hTdWJtaXQsIHNlYXJjaE9yaWdpbiwgdHJhY2tdKTtcblxuICBjb25zdCBoYW5kbGVBdXRvY29tcGxldGVTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoc3VnZ2VzdGlvbjogc3RyaW5nLCByYW5rUG9zaXRpb24/OiBudW1iZXIpID0+IHtcbiAgICAgIGlzU2VsZWN0aW5nQXV0b2NvbXBsZXRlLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0U2VhcmNoVGV4dChzdWdnZXN0aW9uKTtcbiAgICAgIHNldEhhc1RleHQoc3VnZ2VzdGlvbi50cmltKCkubGVuZ3RoID4gMCk7XG4gICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuXG4gICAgICB0cmFjaz8uKHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaElucHV0U3RhcnRlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHNlYXJjaE9yaWdpbixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAob25TZWFyY2hTdWJtaXQpIHtcbiAgICAgICAgb25TZWFyY2hTdWJtaXQoc3VnZ2VzdGlvbi50cmltKCkpO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaXNTZWxlY3RpbmdBdXRvY29tcGxldGUuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfSwgMTAwKTtcbiAgICB9LFxuICAgIFtvblNlYXJjaFN1Ym1pdCwgc2VhcmNoT3JpZ2luLCB0cmFja11cbiAgKTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gKGZvY3VzZWRJbmRleCArIDEpICUgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGg7XG4gICAgICAgIHNldEZvY3VzZWRJbmRleChuZXdJbmRleCk7XG4gICAgICAgIHNldEZvY3VzZWRPcHRpb25JZChgb3B0aW9uLSR7bmV3SW5kZXh9YCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPVxuICAgICAgICAgIChmb2N1c2VkSW5kZXggLSAxICsgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGgpICVcbiAgICAgICAgICBhdXRvY29tcGxldGVSZXN1bHRzLmxlbmd0aDtcbiAgICAgICAgc2V0Rm9jdXNlZEluZGV4KG5ld0luZGV4KTtcbiAgICAgICAgc2V0Rm9jdXNlZE9wdGlvbklkKGBvcHRpb24tJHtuZXdJbmRleH1gKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvblRleHQgPSBhdXRvY29tcGxldGVSZXN1bHRzW2ZvY3VzZWRJbmRleF07XG4gICAgICAgICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0KHN1Z2dlc3Rpb25UZXh0LCBmb2N1c2VkSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXRGb2N1c2VkSW5kZXgoLTEpO1xuICAgICAgICBzZXRGb2N1c2VkT3B0aW9uSWQodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgICBmb2N1c2VkSW5kZXgsXG4gICAgICBoYW5kbGVBdXRvY29tcGxldGVTZWxlY3QsXG4gICAgICBoYW5kbGVTdWJtaXRTZWFyY2gsXG4gICAgXVxuICApO1xuXG4gIGNvbnN0IHNldFNlYXJjaFRleHRVdGlsaXR5ID0gdXNlQ2FsbGJhY2soKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFRleHQodGV4dCk7XG4gICAgc2V0SGFzVGV4dCh0ZXh0LnRyaW0oKS5sZW5ndGggPiAwKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHJlc2V0U2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNlYXJjaFRleHQoXCJcIik7XG4gICAgc2V0SGFzVGV4dChmYWxzZSk7XG4gICAgc2V0SXNGb2N1c2VkKGZhbHNlKTtcbiAgICBzZXRGb2N1c2VkSW5kZXgoLTEpO1xuICAgIHNldEZvY3VzZWRPcHRpb25JZCh1bmRlZmluZWQpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTdGF0ZVxuICAgIHNlYXJjaFRleHQsXG4gICAgaGFzVGV4dCxcbiAgICBpc0ZvY3VzZWQsXG4gICAgZm9jdXNlZEluZGV4LFxuICAgIGZvY3VzZWRPcHRpb25JZCxcbiAgICBhdXRvY29tcGxldGVSZXN1bHRzLFxuICAgIHNob3VsZFNob3dBdXRvY29tcGxldGUsXG5cbiAgICAvLyBIYW5kbGVyc1xuICAgIGhhbmRsZVNlYXJjaElucHV0Q2hhbmdlLFxuICAgIGhhbmRsZVNlYXJjaElucHV0Rm9jdXMsXG4gICAgaGFuZGxlU2VhcmNoSW5wdXRCbHVyLFxuICAgIGhhbmRsZUtleURvd24sXG4gICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0LFxuICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCxcblxuICAgIC8vIFV0aWxpdGllc1xuICAgIHNldFNlYXJjaFRleHQ6IHNldFNlYXJjaFRleHRVdGlsaXR5LFxuICAgIHJlc2V0U2VhcmNoLFxuICB9O1xufTtcbiIsImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICBTZWFyY2hSZXN1bHRzSG9jUHJvcHMsXG4gIFByb2R1Y3RTb3J0aW5nLFxuICBTZWFyY2hGaWx0ZXJEYXR1bSxcbiAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSxcbiAgU2VsZWN0ZWRGaWx0ZXJPcHRpb24sXG4gIFNlbGVjdEZpbHRlckl0ZW0sXG4gIFNwaWZmeVdpZGdldHMsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQge1xuICBhZGRTZWFyY2hGaWx0ZXJBdG9tLFxuICBjbGVhclNlYXJjaEZpbHRlcnNBdG9tLFxuICBjcmVhdGVGaWx0ZXJPcHRpb24sXG4gIGZpbHRlcmVkU2VhcmNoUHJvZHVjdHNBdG9tLFxuICBwZXJmb3JtU2VhcmNoQXRvbSxcbiAgcmVtb3ZlU2VhcmNoRmlsdGVyQXRvbSxcbiAgc2VhcmNoQXRvbSxcbiAgc2VhcmNoRmlsdGVyc0F0b20sXG4gIHNlYXJjaFBhcmFtc0F0b20sXG4gIHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSxcbiAgc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSxcbn0gZnJvbSBcIi4uLy4uL2F0b21zL3NlYXJjaFwiO1xuaW1wb3J0IHsgaXNGaWx0ZXJPcGVuQXRvbSB9IGZyb20gXCIuLi8uLi9hdG9tcy9nbG9iYWxTZWFyY2gvZ2xvYmFsU2VhcmNoXCI7XG5pbXBvcnQgeyBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSB9IGZyb20gXCIuLi8uLi9hdG9tcy9zZWFyY2gvdXRpbHNcIjtcbmltcG9ydCB7IGFtcGxpdHVkZVRyYWNrRXZlbnRBdG9tIH0gZnJvbSBcIi4uLy4uL2F0b21zL2FtcGxpdHVkZS9hbXBsaXR1ZGVUcmFja0V2ZW50QXRvbVwiO1xuaW1wb3J0IHsgb3JnU2hvcnROYW1lQXRvbSB9IGZyb20gXCIuLi8uLi9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnXCI7XG5pbXBvcnQgeyBuZXdPcmdDb25maWdBdG9tIH0gZnJvbSBcIi4uLy4uL2F0b21zL29yZy9uZXdPcmdDb25maWdBdG9tXCI7XG5pbXBvcnQgeyByZXRyaWV2ZWRQcm9kdWN0c0F0b20gfSBmcm9tIFwiLi4vLi4vYXRvbXMvc2VhcmNoL3Byb2R1Y3RSZXRyaWV2YWxBUElcIjtcbmltcG9ydCB7IHVzZVRyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50IH0gZnJvbSBcIi4uL1RyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50XCI7XG5pbXBvcnQgeyBnZXRTZWFyY2hSZXN1bHRzU3RhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IHVzZVNlYXJjaElucHV0IH0gZnJvbSBcIi4vdXNlU2VhcmNoSW5wdXRcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVNlYXJjaCA9ICgpOiBTZWFyY2hSZXN1bHRzSG9jUHJvcHMgPT4ge1xuICAvLyBBdG9tc1xuICBjb25zdCB0cmFja0V2ZW50ID0gdXNlQXRvbVZhbHVlKGFtcGxpdHVkZVRyYWNrRXZlbnRBdG9tKTtcbiAgY29uc3QgY29uZmlnID0gdXNlQXRvbVZhbHVlKG5ld09yZ0NvbmZpZ0F0b20pO1xuICBjb25zdCBvcmdTaG9ydE5hbWUgPSB1c2VBdG9tVmFsdWUob3JnU2hvcnROYW1lQXRvbSk7XG4gIGNvbnN0IHsgZGF0YTogc2VhcmNoRGF0YSwgbG9hZGluZzogaXNMb2FkaW5nU2VhcmNoIH0gPVxuICAgIHVzZUF0b21WYWx1ZShzZWFyY2hBdG9tKTtcbiAgY29uc3QgcHJvZHVjdExpc3QgPSB1c2VBdG9tVmFsdWUoZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20pO1xuICBjb25zdCBwZXJmb3JtU2VhcmNoID0gdXNlU2V0QXRvbShwZXJmb3JtU2VhcmNoQXRvbSk7XG4gIGNvbnN0IFt7IHF1ZXJ5IH1dID0gdXNlQXRvbShzZWFyY2hQYXJhbXNBdG9tKTtcbiAgY29uc3QgW2lzRmlsdGVyT3Blbiwgc2V0SXNGaWx0ZXJPcGVuXSA9IHVzZUF0b20oaXNGaWx0ZXJPcGVuQXRvbSk7XG4gIGNvbnN0IFtzZWxlY3RlZEZpbHRlck9wdGlvbnNdID0gdXNlQXRvbShzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgYWRkRmlsdGVyID0gdXNlU2V0QXRvbShhZGRTZWFyY2hGaWx0ZXJBdG9tKTtcbiAgY29uc3QgcmVtb3ZlRmlsdGVyID0gdXNlU2V0QXRvbShyZW1vdmVTZWFyY2hGaWx0ZXJBdG9tKTtcbiAgY29uc3QgW3Byb2R1Y3RTb3J0aW5nLCBzZXRQcm9kdWN0U29ydGluZ10gPSB1c2VBdG9tKHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IGNsZWFyRmlsdGVycyA9IHVzZVNldEF0b20oY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IHNlYXJjaEZpbHRlcnMgPSB1c2VBdG9tVmFsdWUoc2VhcmNoRmlsdGVyc0F0b20pO1xuICBjb25zdCByZWNvbW1lbmRlZFByb2R1Y3RzID0gdXNlQXRvbVZhbHVlKHJldHJpZXZlZFByb2R1Y3RzQXRvbSk7XG5cbiAgLy8gUmVmc1xuICBjb25zdCBzZWFyY2hSZXN1bHRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAvLyBVdGlsaXRpZXNcbiAgY29uc3Qgc2Nyb2xsVG9Ub3AgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2VhcmNoUmVzdWx0c1JlZi5jdXJyZW50O1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgLy8gU2VhcmNoIElucHV0IEhvb2tcbiAgY29uc3Qgc2VhcmNoSW5wdXQgPSB1c2VTZWFyY2hJbnB1dCh7XG4gICAgaW5pdGlhbFNlYXJjaFRleHQ6IHF1ZXJ5IHx8IFwiXCIsXG4gICAgc2VhcmNoT3JpZ2luOiBTcGlmZnlXaWRnZXRzLlNlYXJjaFJlc3VsdHMsXG4gICAgb25TZWFyY2hTdWJtaXQ6IChzZWFyY2hRdWVyeSkgPT4ge1xuICAgICAgcGVyZm9ybVNlYXJjaCh7IHF1ZXJ5OiBzZWFyY2hRdWVyeSB9KTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCB7XG4gICAgc2VhcmNoVGV4dCxcbiAgICBmb2N1c2VkSW5kZXgsXG4gICAgZm9jdXNlZE9wdGlvbklkLFxuICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgc2hvdWxkU2hvd0F1dG9jb21wbGV0ZSxcbiAgICBoYW5kbGVTZWFyY2hJbnB1dENoYW5nZSxcbiAgICBoYW5kbGVTZWFyY2hJbnB1dEZvY3VzLFxuICAgIGhhbmRsZVNlYXJjaElucHV0Qmx1cixcbiAgICBoYW5kbGVLZXlEb3duLFxuICAgIGhhbmRsZUF1dG9jb21wbGV0ZVNlbGVjdCxcbiAgICBoYW5kbGVTdWJtaXRTZWFyY2gsXG4gICAgc2V0U2VhcmNoVGV4dCxcbiAgfSA9IHNlYXJjaElucHV0O1xuICBjb25zdCBzZWFyY2hSZXN1bHRzU3RhdGUgPSBnZXRTZWFyY2hSZXN1bHRzU3RhdGUoaXNMb2FkaW5nU2VhcmNoLCBzZWFyY2hEYXRhKTtcblxuICBjb25zdCBkeW5hbWljRmlsdGVycyA9IHNlYXJjaERhdGE/LmZpbHRlcnMgfHwgW107XG5cbiAgLy8gUHJvdmlkZSBmYWxsYmFjayB2YWx1ZXMgd2hlbiBjb25maWcgaXMgbm90IHlldCBhdmFpbGFibGVcbiAgY29uc3Qgc2FmZVByb2R1Y3RDYXJkQ29uZmlnID0gY29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzXG4gICAgPy5wcm9kdWN0Q2FyZENvbmZpZyB8fCB7XG4gICAgdmFyaWFudDogXCJtaW5pbWFsXCIsXG4gICAgaG92ZXJWYXJpYW50OiBcIm5vbmVcIixcbiAgICBsYXlvdXRWYXJpYW50OiBcInNxdWFyZVwiLFxuICB9O1xuICBjb25zdCBzYWZlTWVyY2hhbnRTaG9ydE5hbWUgPSBvcmdTaG9ydE5hbWUgfHwgXCJcIjtcblxuICBjb25zdCBhdmFpbGFibGVEeW5hbWljRmlsdGVycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkeW5hbWljRmlsdGVyc1xuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGR5bmFtaWNGaWx0ZXJOYW1lKSA9PlxuICAgICAgICAgICFzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYGR5bmFtaWM6JHtkeW5hbWljRmlsdGVyTmFtZX1gXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICAgLm1hcCgoZHluYW1pY0ZpbHRlck5hbWUpID0+ICh7XG4gICAgICAgIG5hbWU6IGR5bmFtaWNGaWx0ZXJOYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZTogZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUoZHluYW1pY0ZpbHRlck5hbWUpLFxuICAgICAgfSkpO1xuICB9LCBbZHluYW1pY0ZpbHRlcnMsIHNlbGVjdGVkRmlsdGVyT3B0aW9uc10pO1xuXG4gIGNvbnN0IGZpbHRlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzb3J0T3B0aW9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBTdHJpbmcoUHJvZHVjdFNvcnRpbmcuRkVBVFVSRUQpLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJSZWxldmFuY2VcIixcbiAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICBpc1NlbGVjdGVkOiBwcm9kdWN0U29ydGluZyA9PT0gUHJvZHVjdFNvcnRpbmcuRkVBVFVSRUQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IFN0cmluZyhQcm9kdWN0U29ydGluZy5QUklDRV9BU0MpLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJQcmljZTogTG93IHRvIEhpZ2hcIixcbiAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICBpc1NlbGVjdGVkOiBwcm9kdWN0U29ydGluZyA9PT0gUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBTdHJpbmcoUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQyksXG4gICAgICAgIGRpc3BsYXlOYW1lOiBcIlByaWNlOiBIaWdoIHRvIExvd1wiLFxuICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgIGlzU2VsZWN0ZWQ6IHByb2R1Y3RTb3J0aW5nID09PSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHsgZmlsdGVySWQ6IFwic29ydFwiLCBkaXNwbGF5TmFtZTogXCJTT1JUXCIsIGl0ZW1zOiBzb3J0T3B0aW9ucyB9LFxuICAgICAgLi4uc2VhcmNoRmlsdGVycyxcbiAgICBdIGFzIFNlYXJjaEZpbHRlckRhdHVtW107XG4gIH0sIFtwcm9kdWN0U29ydGluZywgc2VhcmNoRmlsdGVyc10pO1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblRleHQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50ID0gZmlsdGVycy5yZWR1Y2UoKGFjYzogbnVtYmVyLCBmaWx0ZXIpID0+IHtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVySWQgPT09IFwic29ydFwiKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjICsgZmlsdGVyLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pc1NlbGVjdGVkKS5sZW5ndGg7XG4gICAgfSwgMCk7XG4gICAgaWYgKHNlbGVjdGVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBcIkZpbHRlciAmIFNvcnRcIjtcbiAgICB9XG4gICAgcmV0dXJuIGBGaWx0ZXIgJiBTb3J0ICgke3NlbGVjdGVkQ291bnR9KWA7XG4gIH0sIFtmaWx0ZXJzXSk7XG5cbiAgLy8gQ2FsbGJhY2tzXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUR5bmFtaWNGaWx0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmlsdGVyLFxuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lLFxuICAgIH06IHtcbiAgICAgIGZpbHRlcjogc3RyaW5nO1xuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgdHJhY2tFdmVudD8uKHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaEZpbHRlckNsaWNrZWQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBmaWx0ZXJUeXBlOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICBmaWx0ZXJWYWx1ZTogZmlsdGVyLFxuICAgICAgICAgIHF1ZXJ5VGV4dDogc2VhcmNoVGV4dCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgYWRkRmlsdGVyKFxuICAgICAgICBjcmVhdGVGaWx0ZXJPcHRpb24oXCJkeW5hbWljXCIsIGZpbHRlciwgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lKVxuICAgICAgKTtcbiAgICAgIHNjcm9sbFRvVG9wKCk7XG4gICAgfSxcbiAgICBbYWRkRmlsdGVyLCBzZWFyY2hUZXh0LCBzY3JvbGxUb1RvcCwgdHJhY2tFdmVudF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVSZW1vdmVGaWx0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4ge1xuICAgICAgcmVtb3ZlRmlsdGVyKGZpbHRlci5pZCk7XG4gICAgICBzY3JvbGxUb1RvcCgpO1xuICAgIH0sXG4gICAgW3JlbW92ZUZpbHRlciwgc2Nyb2xsVG9Ub3BdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICBmaWx0ZXJJZCxcbiAgICAgIGZpbHRlckl0ZW1JZCxcbiAgICAgIGlzU2VsZWN0ZWQsXG4gICAgICBkaXNwbGF5TmFtZSxcbiAgICB9OiB7XG4gICAgICBmaWx0ZXJJZDogc3RyaW5nO1xuICAgICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG4gICAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICAgICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICB9KSA9PiB7XG4gICAgICBpZiAoZmlsdGVySWQgPT09IFwic29ydFwiKSB7XG4gICAgICAgIGNvbnN0IG5ld1NvcnQgPSBmaWx0ZXJJdGVtSWQgYXMgUHJvZHVjdFNvcnRpbmc7XG4gICAgICAgIHRyYWNrRXZlbnQ/Lih7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaFNvcnRDbGlja2VkLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHNvcnRUeXBlOiBuZXdTb3J0LFxuICAgICAgICAgICAgcXVlcnlUZXh0OiBzZWFyY2hUZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRQcm9kdWN0U29ydGluZyhuZXdTb3J0KTtcbiAgICAgICAgc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgICAgcmVtb3ZlRmlsdGVyKGAke2ZpbHRlcklkfToke2ZpbHRlckl0ZW1JZH1gKTtcbiAgICAgICAgc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyYWNrRXZlbnQ/Lih7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaEZpbHRlckNsaWNrZWQsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIGZpbHRlckNhdGVnb3J5OiBmaWx0ZXJJZCxcbiAgICAgICAgICAgIGZpbHRlclZhbHVlOiBmaWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGFkZEZpbHRlcihjcmVhdGVGaWx0ZXJPcHRpb24oZmlsdGVySWQsIGZpbHRlckl0ZW1JZCwgZGlzcGxheU5hbWUpKTtcbiAgICAgICAgc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFkZEZpbHRlcixcbiAgICAgIHJlbW92ZUZpbHRlcixcbiAgICAgIHNldFByb2R1Y3RTb3J0aW5nLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIHNjcm9sbFRvVG9wLFxuICAgICAgdHJhY2tFdmVudCxcbiAgICBdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2xlYXJBbGxGaWx0ZXJzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFByb2R1Y3RTb3J0aW5nKFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbiAgICBjbGVhckZpbHRlcnMoKTtcbiAgICBzY3JvbGxUb1RvcCgpO1xuICB9LCBbc2V0UHJvZHVjdFNvcnRpbmcsIGNsZWFyRmlsdGVycywgc2Nyb2xsVG9Ub3BdKTtcblxuICAvLyBTaWRlIEVmZmVjdHNcbiAgdXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQoXG4gICAgU3BpZmZ5V2lkZ2V0cy5TZWFyY2hSZXN1bHRzLFxuICAgIHNlYXJjaFJlc3VsdHNSZWYsXG4gICAge30sXG4gICAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hDb21wb25lbnRWaXNpYmxlXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJvZHVjdExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdHJhY2tFdmVudD8uKHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaFJlc3VsdHNWaWV3ZWQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgcmVzdWx0c0NvdW50OiBwcm9kdWN0TGlzdC5sZW5ndGgsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtwcm9kdWN0TGlzdC5sZW5ndGgsIHNlYXJjaFRleHQsIHRyYWNrRXZlbnRdKTtcblxuICAvLyBUaGlzIGlzIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciB0aGUgc2VhcmNoIHRleHQgdHJpZ2dlcmluZyBhIHNlYXJjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChxdWVyeSAmJiBxdWVyeSAhPT0gc2VhcmNoVGV4dCkge1xuICAgICAgY29uc3QgZXNxID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoXCJlc3FcIik7XG4gICAgICBzZXRTZWFyY2hUZXh0KHF1ZXJ5KTtcbiAgICAgIHBlcmZvcm1TZWFyY2goeyBxdWVyeTogZXNxID8/IHF1ZXJ5IH0pO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtwZXJmb3JtU2VhcmNoLCBxdWVyeSwgc2V0U2VhcmNoVGV4dF0pO1xuXG4gIHJldHVybiB7XG4gICAgc2VhcmNoRGF0YSxcbiAgICBzZWFyY2hSZXNwb25zZUlkOiBzZWFyY2hEYXRhPy5zZWFyY2hSZXNwb25zZUlkID8/IFwiXCIsXG4gICAgbWVyY2hhbnRTaG9ydE5hbWU6IHNhZmVNZXJjaGFudFNob3J0TmFtZSxcbiAgICBwcm9kdWN0Q2FyZENvbmZpZzogc2FmZVByb2R1Y3RDYXJkQ29uZmlnLFxuICAgIHByb2R1Y3RMaXN0LFxuICAgIHJlY29tbWVuZGVkUHJvZHVjdHMsXG4gICAgYXV0b2NvbXBsZXRlUmVzdWx0cyxcbiAgICBzZWFyY2hGaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIGF2YWlsYWJsZUR5bmFtaWNGaWx0ZXJzLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9ucyxcbiAgICBzZWFyY2hUZXh0LFxuICAgIHF1ZXJ5OiBxdWVyeSB8fCBcIlwiLFxuICAgIHNlYXJjaFJlc3VsdHNTdGF0ZSxcbiAgICBpc0xvYWRpbmdTZWFyY2gsXG4gICAgaXNMb2FkaW5nQXV0b2NvbXBsZXRlOiBmYWxzZSxcbiAgICBpc0ZpbHRlck9wZW4sXG4gICAgc2hvdWxkU2hvd0F1dG9jb21wbGV0ZSxcbiAgICBmb2N1c2VkSW5kZXgsXG4gICAgZm9jdXNlZE9wdGlvbklkLFxuICAgIGZpbHRlckJ1dHRvblRleHQsXG4gICAgb25TZWFyY2hJbnB1dENoYW5nZTogaGFuZGxlU2VhcmNoSW5wdXRDaGFuZ2UsXG4gICAgb25TdWJtaXRTZWFyY2g6IGhhbmRsZVN1Ym1pdFNlYXJjaCxcbiAgICBvbkF1dG9jb21wbGV0ZVNlbGVjdDogaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0LFxuICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93bixcbiAgICBvblNlYXJjaElucHV0Rm9jdXM6IGhhbmRsZVNlYXJjaElucHV0Rm9jdXMsXG4gICAgb25TZWFyY2hJbnB1dEJsdXI6IGhhbmRsZVNlYXJjaElucHV0Qmx1cixcbiAgICBvblRvZ2dsZUR5bmFtaWNGaWx0ZXI6IGhhbmRsZVRvZ2dsZUR5bmFtaWNGaWx0ZXIsXG4gICAgb25TZWxlY3RGaWx0ZXJJdGVtOiBoYW5kbGVTZWxlY3RGaWx0ZXJJdGVtLFxuICAgIG9uUmVtb3ZlRmlsdGVyOiBoYW5kbGVSZW1vdmVGaWx0ZXIsXG4gICAgb25DbGVhckFsbEZpbHRlcnM6IGhhbmRsZUNsZWFyQWxsRmlsdGVycyxcbiAgICBzZXRJc0ZpbHRlck9wZW4sXG4gICAgc2VhcmNoUmVzdWx0c1JlZixcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsSUFBSUEsMkJBRU87QUFRWCxNQUFhLG9DQUFvQztBQUMvQyxLQUFJLENBQUMseUJBQ0gsT0FBTSxJQUFJLE1BQ1IsNkZBQ0Q7QUFFSCxRQUFPOzs7OztBQ1JULE1BQWEsdUJBQXVCLEtBQTRCO0NBQzlELE1BQU07Q0FDTixTQUFTO0NBQ1QsT0FBTztDQUNQLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBYSw4QkFBOEIsS0FDekMsTUFDQSxPQUFPLEtBQUssS0FBSyxXQUFtQztBQUdsRCxLQUZxQixJQUFJLHFCQUFxQixDQUU3QixRQUNmO0FBR0YsS0FBSSxzQkFBc0I7RUFDeEIsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZ0JBQWdCLE9BQU87RUFDeEIsQ0FBQztBQUVGLEtBQUk7RUFFRixNQUFNLFNBQVMsTUFEVSw2QkFBNkIsQ0FDaEIsT0FBTztBQUM3QyxNQUFJLHNCQUFzQjtHQUN4QixNQUFNO0dBQ04sU0FBUztHQUNULE9BQU87R0FDUCxnQkFBZ0IsT0FBTztHQUN4QixDQUFDO1VBQ0tDLE9BQWdCO0VBQ3ZCLE1BQU0sZUFDSixpQkFBaUIsUUFBUSxNQUFNLFVBQVU7QUFDM0MsTUFBSSxzQkFBc0I7R0FDeEIsTUFBTTtHQUNOLFNBQVM7R0FDVCxPQUFPO0dBQ1AsZ0JBQWdCLE9BQU87R0FDeEIsQ0FBQzs7RUFHUDtBQUdELE1BQWEsd0JBQXdCLE1BQU0sUUFBUTtBQUVqRCxRQURzQixJQUFJLHFCQUFxQixDQUFDLE1BQzFCLFlBQVksRUFBRTtFQUNwQztBQUVGLE1BQWEsOEJBQThCLE1BQU0sUUFBUTtBQUN2RCxRQUFPLElBQUkscUJBQXFCLENBQUM7RUFDakM7QUFFRixNQUFhLDRCQUE0QixNQUFNLFFBQVE7QUFDckQsUUFBTyxJQUFJLHFCQUFxQixDQUFDO0VBQ2pDOzs7O0FDM0RGLE1BQWEsa0JBQWtCLEVBQzdCLG9CQUFvQixJQUNwQixjQUNBLHFCQUMrQztDQUMvQyxNQUFNLFFBQVEsYUFBYSx3QkFBd0I7Q0FHbkQsTUFBTSxDQUFDLFlBQVksaUJBQWlCLFNBQVMsa0JBQWtCO0NBQy9ELE1BQU0sQ0FBQyxTQUFTLGNBQWMsU0FBUyxrQkFBa0IsTUFBTSxDQUFDLFNBQVMsRUFBRTtDQUMzRSxNQUFNLENBQUMsV0FBVyxnQkFBZ0IsU0FBUyxNQUFNO0NBQ2pELE1BQU0sQ0FBQyxjQUFjLG1CQUFtQixTQUFTLEdBQUc7Q0FDcEQsTUFBTSxDQUFDLGlCQUFpQixzQkFBc0IsU0FDNUMsT0FDRDtDQUVELE1BQU0sNEJBRG9CLGFBQWEsc0JBQXNCLENBQ1Q7Q0FDcEQsTUFBTSx3QkFBd0IsMEJBQTBCLFNBQVM7Q0FHakUsTUFBTSwwQkFBMEIsT0FBTyxNQUFNO0NBRzdDLE1BQU0seUJBQXlCLFdBQVcsYUFBYTtDQUV2RCxNQUFNLDJCQUEyQjtDQUdqQyxNQUFNLGNBQWMsZUFDWDtFQUNMLGNBQWM7RUFDZCxnQkFBZ0I7RUFFaEIsV0FBVztFQUVYLFVBQVU7RUFFVixVQUFVO0VBRVYsb0JBQW9CO0VBRXBCLE1BQU0sRUFBRTtFQUVSLG1CQUFtQjtFQUVuQixnQkFBZ0I7RUFDakIsR0FDRCxFQUFFLENBQ0g7Q0FFRCxNQUFNLE9BQU8sY0FBYztBQUN6QixNQUFJLENBQUMsMEJBQTBCLE9BQVEsUUFBTztBQUM5QyxTQUFPLElBQUksS0FBSywyQkFBMkIsWUFBWTtJQUN0RCxDQUFDLDJCQUEyQixZQUFZLENBQUM7Q0FHNUMsTUFBTSxzQkFBc0IsY0FBYztBQUN4QyxNQUFJLENBQUMseUJBQXlCLENBQUMsS0FDN0IsUUFBTyxFQUFFO0FBR1gsTUFBSSxDQUFDLFdBQVcsTUFBTSxDQUNwQixRQUFPLEVBQUU7QUFNWCxTQUhvQixLQUFLLE9BQU8sV0FBVyxDQUl4QyxNQUFNLEdBQUcseUJBQXlCLENBQ2xDLEtBQUssV0FBVyxPQUFPLEtBQUs7SUFDOUI7RUFBQztFQUF1QjtFQUFNO0VBQVk7RUFBeUIsQ0FBQztDQUd2RSxNQUFNLDBCQUEwQixhQUM3QixhQUFxQjtBQUdwQixNQUFJLGFBQWEsV0FDZixjQUFhLEtBQUs7QUFHcEIsTUFBSSxTQUFTLFdBQVcsRUFDdEIsU0FBUTtHQUNOLFdBQVcsdUJBQXVCO0dBQ2xDLFlBQVksRUFDVixjQUNEO0dBQ0YsQ0FBQztBQUVKLGdCQUFjLFNBQVM7QUFDdkIsYUFBVyxTQUFTLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDdEMsa0JBQWdCLEdBQUc7QUFDbkIscUJBQW1CLE9BQVU7SUFFL0I7RUFBQztFQUFjO0VBQVk7RUFBTSxDQUNsQztDQUVELE1BQU0seUJBQXlCLGtCQUFrQjtBQUMvQyxlQUFhLEtBQUs7SUFDakIsRUFBRSxDQUFDO0NBRU4sTUFBTSx3QkFBd0Isa0JBQWtCO0FBQzlDLG1CQUFpQjtBQUNmLE9BQUksQ0FBQyx3QkFBd0IsU0FBUztBQUNwQyxpQkFBYSxNQUFNO0FBQ25CLG9CQUFnQixHQUFHO0FBQ25CLHVCQUFtQixPQUFVOztLQUU5QixJQUFJO0lBQ04sRUFBRSxDQUFDO0NBRU4sTUFBTSxxQkFBcUIsa0JBQWtCO0FBQzNDLGVBQWEsTUFBTTtBQUNuQixNQUFJLFdBQVcsTUFBTSxJQUFJLGdCQUFnQjtBQUN2QyxXQUFRO0lBQ04sV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWO0tBQ0EsV0FBVyxXQUFXLE1BQU07S0FDN0I7SUFDRCwyQkFBMkI7SUFDNUIsQ0FBQztBQUNGLGtCQUFlLFdBQVcsTUFBTSxDQUFDOztJQUVsQztFQUFDO0VBQVk7RUFBZ0I7RUFBYztFQUFNLENBQUM7Q0FFckQsTUFBTSwyQkFBMkIsYUFDOUIsWUFBb0IsaUJBQTBCO0FBQzdDLDBCQUF3QixVQUFVO0FBQ2xDLGdCQUFjLFdBQVc7QUFDekIsYUFBVyxXQUFXLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDeEMsZUFBYSxNQUFNO0FBRW5CLFVBQVE7R0FDTixXQUFXLHVCQUF1QjtHQUNsQyxZQUFZLEVBQ1YsY0FDRDtHQUNGLENBQUM7QUFFRixNQUFJLGVBQ0YsZ0JBQWUsV0FBVyxNQUFNLENBQUM7QUFHbkMsbUJBQWlCO0FBQ2YsMkJBQXdCLFVBQVU7S0FDakMsSUFBSTtJQUVUO0VBQUM7RUFBZ0I7RUFBYztFQUFNLENBQ3RDO0NBRUQsTUFBTSxnQkFBZ0IsYUFDbkIsVUFBaUQ7QUFDaEQsTUFBSSxNQUFNLFFBQVEsYUFBYTtBQUM3QixTQUFNLGdCQUFnQjtHQUN0QixNQUFNLFlBQVksZUFBZSxLQUFLLG9CQUFvQjtBQUMxRCxtQkFBZ0IsU0FBUztBQUN6QixzQkFBbUIsVUFBVSxXQUFXO2FBQy9CLE1BQU0sUUFBUSxXQUFXO0FBQ2xDLFNBQU0sZ0JBQWdCO0dBQ3RCLE1BQU0sWUFDSCxlQUFlLElBQUksb0JBQW9CLFVBQ3hDLG9CQUFvQjtBQUN0QixtQkFBZ0IsU0FBUztBQUN6QixzQkFBbUIsVUFBVSxXQUFXO2FBQy9CLE1BQU0sUUFBUSxRQUN2QixLQUFJLGlCQUFpQixJQUFJO0FBQ3ZCLFNBQU0sZ0JBQWdCO0FBQ3RCLHVCQUFvQjtTQUNmO0FBQ0wsU0FBTSxnQkFBZ0I7R0FDdEIsTUFBTSxpQkFBaUIsb0JBQW9CO0FBQzNDLDRCQUF5QixnQkFBZ0IsYUFBYTs7V0FFL0MsTUFBTSxRQUFRLFVBQVU7QUFDakMsU0FBTSxnQkFBZ0I7QUFDdEIsbUJBQWdCLEdBQUc7QUFDbkIsc0JBQW1CLE9BQVU7O0lBR2pDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUNGO0NBRUQsTUFBTSx1QkFBdUIsYUFBYSxTQUFpQjtBQUN6RCxnQkFBYyxLQUFLO0FBQ25CLGFBQVcsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFO0lBQ2pDLEVBQUUsQ0FBQztDQUVOLE1BQU0sY0FBYyxrQkFBa0I7QUFDcEMsZ0JBQWMsR0FBRztBQUNqQixhQUFXLE1BQU07QUFDakIsZUFBYSxNQUFNO0FBQ25CLGtCQUFnQixHQUFHO0FBQ25CLHFCQUFtQixPQUFVO0lBQzVCLEVBQUUsQ0FBQztBQUVOLFFBQU87RUFFTDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBLGVBQWU7RUFDZjtFQUNEOzs7OztBQ3pNSCxNQUFhLGtCQUF5QztDQUVwRCxNQUFNLGFBQWEsYUFBYSx3QkFBd0I7Q0FDeEQsTUFBTSxTQUFTLGFBQWEsaUJBQWlCO0NBQzdDLE1BQU0sZUFBZSxhQUFhLGlCQUFpQjtDQUNuRCxNQUFNLEVBQUUsTUFBTSxZQUFZLFNBQVMsb0JBQ2pDLGFBQWEsV0FBVztDQUMxQixNQUFNLGNBQWMsYUFBYSwyQkFBMkI7Q0FDNUQsTUFBTSxnQkFBZ0IsV0FBVyxrQkFBa0I7Q0FDbkQsTUFBTSxDQUFDLEVBQUUsV0FBVyxRQUFRLGlCQUFpQjtDQUM3QyxNQUFNLENBQUMsY0FBYyxtQkFBbUIsUUFBUSxpQkFBaUI7Q0FDakUsTUFBTSxDQUFDLHlCQUF5QixRQUFRLDBCQUEwQjtDQUNsRSxNQUFNLFlBQVksV0FBVyxvQkFBb0I7Q0FDakQsTUFBTSxlQUFlLFdBQVcsdUJBQXVCO0NBQ3ZELE1BQU0sQ0FBQyxnQkFBZ0IscUJBQXFCLFFBQVEseUJBQXlCO0NBQzdFLE1BQU0sZUFBZSxXQUFXLHVCQUF1QjtDQUN2RCxNQUFNLGdCQUFnQixhQUFhLGtCQUFrQjtDQUNyRCxNQUFNLHNCQUFzQixhQUFhLHNCQUFzQjtDQUcvRCxNQUFNLG1CQUFtQixPQUF1QixLQUFLO0NBR3JELE1BQU0sY0FBYyxrQkFBa0I7RUFDcEMsTUFBTSxZQUFZLGlCQUFpQjtBQUNuQyxNQUFJLFVBQ0YsV0FBVSxTQUFTO0dBQUUsS0FBSztHQUFHLFVBQVU7R0FBVSxDQUFDO01BRWxELFFBQU8sU0FBUztHQUFFLEtBQUs7R0FBRyxVQUFVO0dBQVUsQ0FBQztJQUVoRCxFQUFFLENBQUM7Q0FXTixNQUFNLEVBQ0osWUFDQSxjQUNBLGlCQUNBLHFCQUNBLHdCQUNBLHlCQUNBLHdCQUNBLHVCQUNBLGVBQ0EsMEJBQ0Esb0JBQ0Esa0JBcEJrQixlQUFlO0VBQ2pDLG1CQUFtQixTQUFTO0VBQzVCLGNBQWMsY0FBYztFQUM1QixpQkFBaUIsZ0JBQWdCO0FBQy9CLGlCQUFjLEVBQUUsT0FBTyxhQUFhLENBQUM7O0VBRXhDLENBQUM7Q0FnQkYsTUFBTSxxQkFBcUIsc0JBQXNCLGlCQUFpQixXQUFXO0NBRTdFLE1BQU0saUJBQWlCLFlBQVksV0FBVyxFQUFFO0NBR2hELE1BQU0sd0JBQXdCLFFBQVEsZ0JBQWdCLFdBQ2xELHFCQUFxQjtFQUN2QixTQUFTO0VBQ1QsY0FBYztFQUNkLGVBQWU7RUFDaEI7Q0FDRCxNQUFNLHdCQUF3QixnQkFBZ0I7Q0FFOUMsTUFBTSwwQkFBMEIsY0FBYztBQUM1QyxTQUFPLGVBQ0osUUFDRSxzQkFDQyxDQUFDLHNCQUFzQixNQUNwQixXQUFXLE9BQU8sT0FBTyxXQUFXLG9CQUN0QyxDQUNKLENBQ0EsS0FBSyx1QkFBdUI7R0FDM0IsTUFBTTtHQUNOLGFBQWEsd0JBQXdCLGtCQUFrQjtHQUN4RCxFQUFFO0lBQ0osQ0FBQyxnQkFBZ0Isc0JBQXNCLENBQUM7Q0FFM0MsTUFBTSxVQUFVLGNBQWM7QUFzQjVCLFNBQU8sQ0FDTDtHQUFFLFVBQVU7R0FBUSxhQUFhO0dBQVEsT0F0QnZCO0lBQ2xCO0tBQ0UsY0FBYyxPQUFPLGVBQWUsU0FBUztLQUM3QyxhQUFhO0tBQ2IsY0FBYztLQUNkLFlBQVksbUJBQW1CLGVBQWU7S0FDL0M7SUFDRDtLQUNFLGNBQWMsT0FBTyxlQUFlLFVBQVU7S0FDOUMsYUFBYTtLQUNiLGNBQWM7S0FDZCxZQUFZLG1CQUFtQixlQUFlO0tBQy9DO0lBQ0Q7S0FDRSxjQUFjLE9BQU8sZUFBZSxXQUFXO0tBQy9DLGFBQWE7S0FDYixjQUFjO0tBQ2QsWUFBWSxtQkFBbUIsZUFBZTtLQUMvQztJQUNGO0dBRzhELEVBQzdELEdBQUcsY0FDSjtJQUNBLENBQUMsZ0JBQWdCLGNBQWMsQ0FBQztDQUVuQyxNQUFNLG1CQUFtQixjQUFjO0VBQ3JDLE1BQU0sZ0JBQWdCLFFBQVEsUUFBUSxLQUFhLFdBQVc7QUFDNUQsT0FBSSxPQUFPLGFBQWEsT0FDdEIsUUFBTztBQUVULFVBQU8sTUFBTSxPQUFPLE1BQU0sUUFBUSxTQUFTLEtBQUssV0FBVyxDQUFDO0tBQzNELEVBQUU7QUFDTCxNQUFJLGtCQUFrQixFQUNwQixRQUFPO0FBRVQsU0FBTyxrQkFBa0IsY0FBYztJQUN0QyxDQUFDLFFBQVEsQ0FBQztDQUdiLE1BQU0sNEJBQTRCLGFBQy9CLEVBQ0MsUUFDQSwrQkFJSTtBQUNKLGVBQWE7R0FDWCxXQUFXLHVCQUF1QjtHQUNsQyxZQUFZO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixXQUFXO0lBQ1o7R0FDRixDQUFDO0FBQ0YsWUFDRSxtQkFBbUIsV0FBVyxRQUFRLHlCQUF5QixDQUNoRTtBQUNELGVBQWE7SUFFZjtFQUFDO0VBQVc7RUFBWTtFQUFhO0VBQVcsQ0FDakQ7Q0FFRCxNQUFNLHFCQUFxQixhQUN4QixXQUFpQztBQUNoQyxlQUFhLE9BQU8sR0FBRztBQUN2QixlQUFhO0lBRWYsQ0FBQyxjQUFjLFlBQVksQ0FDNUI7Q0FFRCxNQUFNQyx5QkFBMkMsYUFDOUMsRUFDQyxVQUNBLGNBQ0EsWUFDQSxrQkFNSTtBQUNKLE1BQUksYUFBYSxRQUFRO0dBQ3ZCLE1BQU0sVUFBVTtBQUNoQixnQkFBYTtJQUNYLFdBQVcsdUJBQXVCO0lBQ2xDLFlBQVk7S0FDVixVQUFVO0tBQ1YsV0FBVztLQUNaO0lBQ0YsQ0FBQztBQUNGLHFCQUFrQixRQUFRO0FBQzFCLGdCQUFhO2FBQ0osQ0FBQyxZQUFZO0FBQ3RCLGdCQUFhLEdBQUcsU0FBUyxHQUFHLGVBQWU7QUFDM0MsZ0JBQWE7U0FDUjtBQUNMLGdCQUFhO0lBQ1gsV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWLFlBQVk7S0FDWixnQkFBZ0I7S0FDaEIsYUFBYTtLQUNiLFdBQVc7S0FDWjtJQUNGLENBQUM7QUFDRixhQUFVLG1CQUFtQixVQUFVLGNBQWMsWUFBWSxDQUFDO0FBQ2xFLGdCQUFhOztJQUdqQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELENBQ0Y7Q0FFRCxNQUFNLHdCQUF3QixrQkFBa0I7QUFDOUMsb0JBQWtCLGVBQWUsU0FBUztBQUMxQyxnQkFBYztBQUNkLGVBQWE7SUFDWjtFQUFDO0VBQW1CO0VBQWM7RUFBWSxDQUFDO0FBR2xELCtCQUNFLGNBQWMsZUFDZCxrQkFDQSxFQUFFLEVBQ0YsdUJBQXVCLHVCQUN4QjtBQUVELGlCQUFnQjtBQUNkLE1BQUksWUFBWSxTQUFTLEVBQ3ZCLGNBQWE7R0FDWCxXQUFXLHVCQUF1QjtHQUNsQyxZQUFZO0lBQ1YsV0FBVztJQUNYLGNBQWMsWUFBWTtJQUMzQjtHQUNGLENBQUM7SUFFSDtFQUFDLFlBQVk7RUFBUTtFQUFZO0VBQVcsQ0FBQztBQUdoRCxpQkFBZ0I7QUFDZCxNQUFJLFNBQVMsVUFBVSxZQUFZO0dBQ2pDLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixPQUFPLFNBQVMsT0FBTyxDQUFDLElBQUksTUFBTTtBQUNsRSxpQkFBYyxNQUFNO0FBQ3BCLGlCQUFjLEVBQUUsT0FBTyxPQUFPLE9BQU8sQ0FBQzs7SUFHdkM7RUFBQztFQUFlO0VBQU87RUFBYyxDQUFDO0FBRXpDLFFBQU87RUFDTDtFQUNBLGtCQUFrQixZQUFZLG9CQUFvQjtFQUNsRCxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CO0VBQ0E7RUFDQTtFQUNBLGVBQWU7RUFDZjtFQUNBO0VBQ0E7RUFDQSxPQUFPLFNBQVM7RUFDaEI7RUFDQTtFQUNBLHVCQUF1QjtFQUN2QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CO0VBQ0E7RUFDRCJ9
@@ -18,11 +18,11 @@ require('../../enviveConfigContext-kQfHEGdJ.cjs');
18
18
  require('../../featureFlagServiceContext-pPneufeB.cjs');
19
19
  require('../../domObserver-CwieVNgj.cjs');
20
20
  require('../../urlsParser-C-Vzs--G.cjs');
21
- require('../../searchServiceAdapter-pROGm3Rf.cjs');
22
- require('../../graphqlContext-CU7NIJo7.cjs');
23
- require('../../useGraphQLConfig-Dc8h2yyN.cjs');
24
- require('../../useAppDetails-Bw2jJ39H.cjs');
25
- const require_searchContext = require('../../searchContext-R_XuFzYe.cjs');
21
+ require('../../searchServiceAdapter-DrjFCiw8.cjs');
22
+ require('../../graphqlContext-BVFRNIdi.cjs');
23
+ require('../../useGraphQLConfig-Dy0ml9xw.cjs');
24
+ require('../../useAppDetails-Cq8TbvkX.cjs');
25
+ const require_searchContext = require('../../searchContext-C75BHjlY.cjs');
26
26
  let react = require("react");
27
27
  react = require_chunk.__toESM(react);
28
28
 
@@ -17,11 +17,11 @@ import "../../enviveConfigContext-1oiQuocd.js";
17
17
  import "../../featureFlagServiceContext-CPsygiHO.js";
18
18
  import "../../domObserver-B19-69gW.js";
19
19
  import "../../urlsParser-G7Ocwg0M.js";
20
- import "../../searchServiceAdapter-CKc7UXKi.js";
21
- import "../../graphqlContext-BuXJ5DiW.js";
22
- import "../../useGraphQLConfig-DuLB3tdv.js";
23
- import "../../useAppDetails-BtK9ZZJs.js";
24
- import { useSearchService } from "../../searchContext-C8DpjnqD.js";
20
+ import "../../searchServiceAdapter-BSPZOg1r.js";
21
+ import "../../graphqlContext-D_Wp0LEl.js";
22
+ import "../../useGraphQLConfig-nY5CE8kj.js";
23
+ import "../../useAppDetails-DjdYWTqz.js";
24
+ import { useSearchService } from "../../searchContext-DjcqQsxp.js";
25
25
  import { useCallback, useEffect, useState } from "react";
26
26
 
27
27
  //#region src/hooks/SearchOperations/useSearchOperations.ts
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('../../chunk-CUT6urMc.cjs');
2
2
  require('../../urlsParser-C-Vzs--G.cjs');
3
- const require_shopifyUrlContext = require('../../shopifyUrlContext-G9eqIcsL.cjs');
3
+ const require_shopifyUrlContext = require('../../shopifyUrlContext-Ba6MQdNV.cjs');
4
4
  let react = require("react");
5
5
  react = require_chunk.__toESM(react);
6
6
 
@@ -9,7 +9,7 @@ declare const useShopifyUrlOperations: () => {
9
9
  isReady: boolean;
10
10
  };
11
11
  declare const useCurrentPageType: () => {
12
- getPageType: () => "pdp" | "plp" | "unknown" | "other";
12
+ getPageType: () => "unknown" | "pdp" | "plp" | "other";
13
13
  isReady: boolean;
14
14
  };
15
15
  declare const useProductId: (extractor: IdExtractor) => {
@@ -18,4 +18,4 @@ declare const useProductId: (extractor: IdExtractor) => {
18
18
  };
19
19
  //#endregion
20
20
  export { useCurrentPageType, useProductId, useShopifyUrlOperations };
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL1Nob3BpZnlVcmxPcGVyYXRpb25zL3VzZVNob3BpZnlVcmxPcGVyYXRpb25zLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWRFeHRyYWN0b3IgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNob3BpZnlVcmxPcGVyYXRpb25zOiAoKSA9PiB7XG4gICAgZ2V0VHJpbW1lZFBhdGhOYW1lOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGdldFBscE9yUGRwSWQ6IChleHRyYWN0b3I6IElkRXh0cmFjdG9yKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGlzT25QZHBQYWdlOiAoKSA9PiBib29sZWFuO1xuICAgIGlzT25QbHBQYWdlOiAoKSA9PiBib29sZWFuO1xuICAgIGlzUmVhZHk6IGJvb2xlYW47XG59O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlQ3VycmVudFBhZ2VUeXBlOiAoKSA9PiB7XG4gICAgZ2V0UGFnZVR5cGU6ICgpID0+IFwicGRwXCIgfCBcInBscFwiIHwgXCJ1bmtub3duXCIgfCBcIm90aGVyXCI7XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VQcm9kdWN0SWQ6IChleHRyYWN0b3I6IElkRXh0cmFjdG9yKSA9PiB7XG4gICAgcHJvZHVjdElkOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGlzUmVhZHk6IGJvb2xlYW47XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQSxJQUFXLDBCQUEwQixDQUFDLFdBQVcsWUFBRztBQUNwRCxJQUFXLHFCQUFxQixDQUFDLElBQUk7QUFDckMsSUFBVyxlQUFlLENBQUMsV0FBVyxZQUFZIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL1Nob3BpZnlVcmxPcGVyYXRpb25zL3VzZVNob3BpZnlVcmxPcGVyYXRpb25zLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWRFeHRyYWN0b3IgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNob3BpZnlVcmxPcGVyYXRpb25zOiAoKSA9PiB7XG4gICAgZ2V0VHJpbW1lZFBhdGhOYW1lOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGdldFBscE9yUGRwSWQ6IChleHRyYWN0b3I6IElkRXh0cmFjdG9yKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGlzT25QZHBQYWdlOiAoKSA9PiBib29sZWFuO1xuICAgIGlzT25QbHBQYWdlOiAoKSA9PiBib29sZWFuO1xuICAgIGlzUmVhZHk6IGJvb2xlYW47XG59O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlQ3VycmVudFBhZ2VUeXBlOiAoKSA9PiB7XG4gICAgZ2V0UGFnZVR5cGU6ICgpID0+IFwidW5rbm93blwiIHwgXCJwZHBcIiB8IFwicGxwXCIgfCBcIm90aGVyXCI7XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VQcm9kdWN0SWQ6IChleHRyYWN0b3I6IElkRXh0cmFjdG9yKSA9PiB7XG4gICAgcHJvZHVjdElkOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgIGlzUmVhZHk6IGJvb2xlYW47XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQSxJQUFXLDBCQUEwQixDQUFDLFdBQVcsWUFBRztBQUNwRCxJQUFXLHFCQUFxQixDQUFDLElBQUk7QUFDckMsSUFBVyxlQUFlLENBQUMsV0FBVyxZQUFZIn0=
@@ -9,7 +9,7 @@ declare const useShopifyUrlOperations: () => {
9
9
  isReady: boolean;
10
10
  };
11
11
  declare const useCurrentPageType: () => {
12
- getPageType: () => "pdp" | "plp" | "unknown" | "other";
12
+ getPageType: () => "unknown" | "pdp" | "plp" | "other";
13
13
  isReady: boolean;
14
14
  };
15
15
  declare const useProductId: (extractor: IdExtractor) => {
@@ -18,4 +18,4 @@ declare const useProductId: (extractor: IdExtractor) => {
18
18
  };
19
19
  //#endregion
20
20
  export { useCurrentPageType, useProductId, useShopifyUrlOperations };
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvU2hvcGlmeVVybE9wZXJhdGlvbnMvdXNlU2hvcGlmeVVybE9wZXJhdGlvbnMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZEV4dHJhY3RvciB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2hvcGlmeVVybE9wZXJhdGlvbnM6ICgpID0+IHtcbiAgICBnZXRUcmltbWVkUGF0aE5hbWU6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgZ2V0UGxwT3JQZHBJZDogKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpID0+IHN0cmluZyB8IG51bGw7XG4gICAgaXNPblBkcFBhZ2U6ICgpID0+IGJvb2xlYW47XG4gICAgaXNPblBscFBhZ2U6ICgpID0+IGJvb2xlYW47XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VDdXJyZW50UGFnZVR5cGU6ICgpID0+IHtcbiAgICBnZXRQYWdlVHlwZTogKCkgPT4gXCJwZHBcIiB8IFwicGxwXCIgfCBcInVua25vd25cIiB8IFwib3RoZXJcIjtcbiAgICBpc1JlYWR5OiBib29sZWFuO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVByb2R1Y3RJZDogKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpID0+IHtcbiAgICBwcm9kdWN0SWQ6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUNBLElBQVcsMEJBQTBCLENBQUMsV0FBVyxZQUFHO0FBQ3BELElBQVcscUJBQXFCLENBQUMsSUFBSTtBQUNyQyxJQUFXLGVBQWUsQ0FBQyxXQUFXLFlBQVkifQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvU2hvcGlmeVVybE9wZXJhdGlvbnMvdXNlU2hvcGlmeVVybE9wZXJhdGlvbnMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZEV4dHJhY3RvciB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2hvcGlmeVVybE9wZXJhdGlvbnM6ICgpID0+IHtcbiAgICBnZXRUcmltbWVkUGF0aE5hbWU6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgZ2V0UGxwT3JQZHBJZDogKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpID0+IHN0cmluZyB8IG51bGw7XG4gICAgaXNPblBkcFBhZ2U6ICgpID0+IGJvb2xlYW47XG4gICAgaXNPblBscFBhZ2U6ICgpID0+IGJvb2xlYW47XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VDdXJyZW50UGFnZVR5cGU6ICgpID0+IHtcbiAgICBnZXRQYWdlVHlwZTogKCkgPT4gXCJ1bmtub3duXCIgfCBcInBkcFwiIHwgXCJwbHBcIiB8IFwib3RoZXJcIjtcbiAgICBpc1JlYWR5OiBib29sZWFuO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVByb2R1Y3RJZDogKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpID0+IHtcbiAgICBwcm9kdWN0SWQ6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUNBLElBQVcsMEJBQTBCLENBQUMsV0FBVyxZQUFHO0FBQ3BELElBQVcscUJBQXFCLENBQUMsSUFBSTtBQUNyQyxJQUFXLGVBQWUsQ0FBQyxXQUFXLFlBQVkifQ==
@@ -1,5 +1,5 @@
1
1
  import "../../urlsParser-G7Ocwg0M.js";
2
- import { useShopifyUrl } from "../../shopifyUrlContext-WAm0pnPh.js";
2
+ import { useShopifyUrl } from "../../shopifyUrlContext-BI3fVtA5.js";
3
3
  import { useCallback } from "react";
4
4
 
5
5
  //#region src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.ts
@@ -2,7 +2,7 @@ const require_chunk = require('../../chunk-CUT6urMc.cjs');
2
2
  require('../../dist-B7BErEyV.cjs');
3
3
  require('../../logger-BqHq67zN.cjs');
4
4
  require('../../enviveConfig-u50Rpz-G.cjs');
5
- const require_systemSettingsContext = require('../../systemSettingsContext-J1sny8W8.cjs');
5
+ const require_systemSettingsContext = require('../../systemSettingsContext-CSXsgBiG.cjs');
6
6
  let react = require("react");
7
7
  react = require_chunk.__toESM(react);
8
8
 
@@ -1,12 +1,12 @@
1
- import * as _envive_ai_types4 from "@envive-ai/types";
2
- import * as react2 from "react";
1
+ import * as _envive_ai_types6 from "@envive-ai/types";
2
+ import * as react1 from "react";
3
3
 
4
4
  //#region src/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts
5
5
  declare const useSystemSettingsContext: () => {
6
- generationParams?: _envive_ai_types4.GenerationParams;
6
+ generationParams?: _envive_ai_types6.GenerationParams;
7
7
  showDebugBar?: boolean;
8
8
  endpointURL?: string;
9
- setGenerationParams: react2.Dispatch<react2.SetStateAction<_envive_ai_types4.GenerationParams | undefined>>;
9
+ setGenerationParams: react1.Dispatch<react1.SetStateAction<_envive_ai_types6.GenerationParams | undefined>>;
10
10
  };
11
11
  //#endregion
12
12
  export { useSystemSettingsContext };
@@ -1,4 +1,4 @@
1
- import * as react0 from "react";
1
+ import * as react2 from "react";
2
2
  import * as _envive_ai_types5 from "@envive-ai/types";
3
3
 
4
4
  //#region src/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts
@@ -6,7 +6,7 @@ declare const useSystemSettingsContext: () => {
6
6
  generationParams?: _envive_ai_types5.GenerationParams;
7
7
  showDebugBar?: boolean;
8
8
  endpointURL?: string;
9
- setGenerationParams: react0.Dispatch<react0.SetStateAction<_envive_ai_types5.GenerationParams | undefined>>;
9
+ setGenerationParams: react2.Dispatch<react2.SetStateAction<_envive_ai_types5.GenerationParams | undefined>>;
10
10
  };
11
11
  //#endregion
12
12
  export { useSystemSettingsContext };
@@ -1,7 +1,7 @@
1
1
  import "../../dist-CtkINi1R.js";
2
2
  import "../../logger-BMVdhQOV.js";
3
3
  import "../../enviveConfig-Be2kZE7j.js";
4
- import { SystemSettingsContext } from "../../systemSettingsContext-B-FZ8UAg.js";
4
+ import { SystemSettingsContext } from "../../systemSettingsContext-DTdzjE_O.js";
5
5
  import { useContext } from "react";
6
6
 
7
7
  //#region src/hooks/SystemSettingsContext/useSystemSettingsContext.ts
@@ -17,7 +17,7 @@ require('../../enviveConfigContext-kQfHEGdJ.cjs');
17
17
  require('../../featureFlagServiceContext-pPneufeB.cjs');
18
18
  require('../../domObserver-CwieVNgj.cjs');
19
19
  require('../../urlsParser-C-Vzs--G.cjs');
20
- require('../../useIntersection-DZHz44BY.cjs');
21
- const require_TrackComponentVisibleEvent = require('../../TrackComponentVisibleEvent-KUihr_y4.cjs');
20
+ require('../../useIntersection-BQMfiS4x.cjs');
21
+ const require_TrackComponentVisibleEvent = require('../../TrackComponentVisibleEvent-OAFP4CZ6.cjs');
22
22
 
23
23
  exports.useTrackComponentVisibleEvent = require_TrackComponentVisibleEvent.useTrackComponentVisibleEvent;
@@ -17,7 +17,7 @@ import "../../enviveConfigContext-1oiQuocd.js";
17
17
  import "../../featureFlagServiceContext-CPsygiHO.js";
18
18
  import "../../domObserver-B19-69gW.js";
19
19
  import "../../urlsParser-G7Ocwg0M.js";
20
- import "../../useIntersection-BWiHkpKL.js";
21
- import { useTrackComponentVisibleEvent } from "../../TrackComponentVisibleEvent-Be7wfXXY.js";
20
+ import "../../useIntersection-D-ol9eH8.js";
21
+ import { useTrackComponentVisibleEvent } from "../../TrackComponentVisibleEvent-CIfRZtFq.js";
22
22
 
23
23
  export { useTrackComponentVisibleEvent };
@@ -32,4 +32,4 @@ declare const PRODUCT_LINK_TESTID = "spiffy-product-link";
32
32
  declare const PRODUCTS_COMPARISON_TABLE_CONTAINER_TESTID = "spiffy-products-comparison-table-container";
33
33
  //#endregion
34
34
  export { ANIMATED_PRODUCT_CARD_TESTID, BUTTON_BASE_TESTID, EXPAND_COLLAPSE_CARD_TESTID, MESSAGE_CARD_TESTID, MESSAGE_CONTENT_TESTID, MESSAGE_MARKDOWN_CONTENT_TESTID, MESSAGE_VARIANT_MARKDOWN, MESSAGE_VARIANT_TEXT, PAGE_CARDS_SCROLL_CONTAINER_TESTID, PAGE_CARD_DESCRIPTION_TESTID, PAGE_CARD_LINK_TESTID, PAGE_CARD_TESTID, PAGE_CARD_TITLE_TESTID, PAGE_CARD_VIEW_SOURCE_BUTTON_TESTID, PRODUCTS_COMPARISON_TABLE_CONTAINER_TESTID, PRODUCT_CARDS_SCROLL_CONTAINER_TESTID, PRODUCT_CARD_TESTID, PRODUCT_LINK_TESTID, PRODUCT_REVIEW_CARD_BUTTON_TESTID, PRODUCT_REVIEW_CARD_TESTID, SUGGESTION_BUTTON_TESTID, SWITCH_TO_AGENT_CONTAINER_TESTID, SWITCH_TO_AI_ASSISTANT_BUTTON_TESTID, SWITCH_TO_LIVE_AGENT_BUTTON_TESTID, USER_QUERY_BUTTON_TESTID };
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtZG5nWHJmblQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvY29tbW9uL2J1dHRvbnMuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vY2FyZHMuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vbGlua3MuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vdGFibGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgQlVUVE9OX0JBU0VfVEVTVElEID0gXCJzcGlmZnktYnV0dG9uLWJhc2VcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNVR0dFU1RJT05fQlVUVE9OX1RFU1RJRCA9IFwic3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fQUdFTlRfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fTElWRV9BR0VOVF9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktc3dpdGNoLXRvLWxpdmUtYWdlbnQtYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fQUlfQVNTSVNUQU5UX0JVVFRPTl9URVNUSUQgPSBcInNwaWZmeS1zd2l0Y2gtdG8tYWktYXNzaXN0YW50LWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgVVNFUl9RVUVSWV9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktdXNlci1xdWVyeS1idXR0b25cIjtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IEFOSU1BVEVEX1BST0RVQ1RfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1hbmltYXRlZC1wcm9kdWN0LWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfQ09OVEVOVF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLWNvbnRlbnRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfTUFSS0RPV05fQ09OVEVOVF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLW1hcmtkb3duLWNvbnRlbnRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfVkFSSUFOVF9NQVJLRE9XTiA9IFwibWRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfVkFSSUFOVF9URVhUID0gXCJ0eHRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEVYUEFORF9DT0xMQVBTRV9DQVJEX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtcmV2aWV3LWNhcmQtcmVhZC1tb3JlLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEU19TQ1JPTExfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXBhZ2UtY2FyZHMtc2Nyb2xsLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEX0RFU0NSSVBUSU9OX1RFU1RJRCA9IFwic3BpZmZ5LXBhZ2UtY2FyZC1kZXNjcmlwdGlvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEX0xJTktfVEVTVElEID0gXCJzcGlmZnktcGFnZS1jYXJkLWxpbmtcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1wYWdlLWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9USVRMRV9URVNUSUQgPSBcInNwaWZmeS1wYWdlLWNhcmQtdGl0bGVcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9WSUVXX1NPVVJDRV9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktcGFnZS1jYXJkLXZpZXctc291cmNlLWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9SRVZJRVdfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1wcm9kdWN0LXJldmlldy1jYXJkXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQUk9EVUNUX1JFVklFV19DQVJEX0JVVFRPTl9URVNUSUQgPSBcInNwaWZmeS1wcm9kdWN0LXJldmlldy1jYXJkLWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9DQVJEX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtY2FyZFwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9DQVJEU19TQ1JPTExfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtY2FyZHMtc2Nyb2xsLWNvbnRhaW5lclwiO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9MSU5LX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtbGlua1wiO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVFNfQ09NUEFSSVNPTl9UQUJMRV9DT05UQUlORVJfVEVTVElEID0gXCJzcGlmZnktcHJvZHVjdHMtY29tcGFyaXNvbi10YWJsZS1jb250YWluZXJcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcscUJBQXFCLENBQUMsSUFBSTtBQUNyQyxJQUFXLDJCQUEyQixDQUFDLElBQUk7QUFDM0MsSUFBVyxtQ0FBbUMsQ0FBQyxJQUFJO0FBQ25ELElBQVcscUNBQXFDLENBQUMsSUFBSTtBQUNyRCxJQUFXLHVDQUF1QyxDQUFDLElBQUk7QUFDdkQsSUFBVywyQkFBMkIsQ0FBQyxJQUFJOzs7O0FDTDNDLElBQVcsK0JBQStCLENBQUMsSUFBSTtBQUMvQyxJQUFXLHNCQUFzQixDQUFDLElBQUk7QUFDdEMsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJO0FBQ3pDLElBQVcsa0NBQWtDLENBQUMsSUFBSTtBQUNsRCxJQUFXLDJCQUEyQixDQUFDLElBQUk7QUFDM0MsSUFBVyx1QkFBdUIsQ0FBQyxJQUFJO0FBQ3ZDLElBQVcsOEJBQThCLENBQUMsSUFBSTtBQUM5QyxJQUFXLHFDQUFxQyxDQUFDLElBQUk7QUFDckQsSUFBVywrQkFBK0IsQ0FBQyxJQUFJO0FBQy9DLElBQVcsd0JBQXdCLENBQUMsSUFBSTtBQUN4QyxJQUFXLG1CQUFtQixDQUFDLElBQUk7QUFDbkMsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJO0FBQ3pDLElBQVcsc0NBQXNDLENBQUMsSUFBSTtBQUN0RCxJQUFXLDZCQUE2QixDQUFDLElBQUk7QUFDN0MsSUFBVyxvQ0FBb0MsQ0FBQyxJQUFJO0FBQ3BELElBQVcsc0JBQXNCLENBQUMsSUFBSTtBQUN0QyxJQUFXLHdDQUF3QyxDQUFDLElBQUk7Ozs7QUNoQnhELElBQVcsc0JBQXNCLENBQUMsSUFBSTs7OztBQ0F0QyxJQUFXLDZDQUE2QyxDQUFDLElBQUkifQ==
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQk8tWkxZdFIuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvY29tbW9uL2J1dHRvbnMuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vY2FyZHMuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vbGlua3MuZC50cyIsIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jb21tb24vdGFibGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgQlVUVE9OX0JBU0VfVEVTVElEID0gXCJzcGlmZnktYnV0dG9uLWJhc2VcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNVR0dFU1RJT05fQlVUVE9OX1RFU1RJRCA9IFwic3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fQUdFTlRfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fTElWRV9BR0VOVF9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktc3dpdGNoLXRvLWxpdmUtYWdlbnQtYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTV0lUQ0hfVE9fQUlfQVNTSVNUQU5UX0JVVFRPTl9URVNUSUQgPSBcInNwaWZmeS1zd2l0Y2gtdG8tYWktYXNzaXN0YW50LWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgVVNFUl9RVUVSWV9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktdXNlci1xdWVyeS1idXR0b25cIjtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IEFOSU1BVEVEX1BST0RVQ1RfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1hbmltYXRlZC1wcm9kdWN0LWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfQ09OVEVOVF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLWNvbnRlbnRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfTUFSS0RPV05fQ09OVEVOVF9URVNUSUQgPSBcInNwaWZmeS1tZXNzYWdlLW1hcmtkb3duLWNvbnRlbnRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfVkFSSUFOVF9NQVJLRE9XTiA9IFwibWRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1FU1NBR0VfVkFSSUFOVF9URVhUID0gXCJ0eHRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEVYUEFORF9DT0xMQVBTRV9DQVJEX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtcmV2aWV3LWNhcmQtcmVhZC1tb3JlLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEU19TQ1JPTExfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXBhZ2UtY2FyZHMtc2Nyb2xsLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEX0RFU0NSSVBUSU9OX1RFU1RJRCA9IFwic3BpZmZ5LXBhZ2UtY2FyZC1kZXNjcmlwdGlvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUEFHRV9DQVJEX0xJTktfVEVTVElEID0gXCJzcGlmZnktcGFnZS1jYXJkLWxpbmtcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1wYWdlLWNhcmRcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9USVRMRV9URVNUSUQgPSBcInNwaWZmeS1wYWdlLWNhcmQtdGl0bGVcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBBR0VfQ0FSRF9WSUVXX1NPVVJDRV9CVVRUT05fVEVTVElEID0gXCJzcGlmZnktcGFnZS1jYXJkLXZpZXctc291cmNlLWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9SRVZJRVdfQ0FSRF9URVNUSUQgPSBcInNwaWZmeS1wcm9kdWN0LXJldmlldy1jYXJkXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQUk9EVUNUX1JFVklFV19DQVJEX0JVVFRPTl9URVNUSUQgPSBcInNwaWZmeS1wcm9kdWN0LXJldmlldy1jYXJkLWJ1dHRvblwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9DQVJEX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtY2FyZFwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9DQVJEU19TQ1JPTExfQ09OVEFJTkVSX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtY2FyZHMtc2Nyb2xsLWNvbnRhaW5lclwiO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVF9MSU5LX1RFU1RJRCA9IFwic3BpZmZ5LXByb2R1Y3QtbGlua1wiO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgUFJPRFVDVFNfQ09NUEFSSVNPTl9UQUJMRV9DT05UQUlORVJfVEVTVElEID0gXCJzcGlmZnktcHJvZHVjdHMtY29tcGFyaXNvbi10YWJsZS1jb250YWluZXJcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcscUJBQXFCLENBQUMsR0FBRztBQUNwQyxJQUFXLDJCQUEyQixDQUFDLEdBQUc7QUFDMUMsSUFBVyxtQ0FBbUMsQ0FBQyxHQUFHO0FBQ2xELElBQVcscUNBQXFDLENBQUMsR0FBRztBQUNwRCxJQUFXLHVDQUF1QyxDQUFDLEdBQUc7QUFDdEQsSUFBVywyQkFBMkIsQ0FBQyxHQUFHOzs7O0FDTDFDLElBQVcsK0JBQStCLENBQUMsR0FBRztBQUM5QyxJQUFXLHNCQUFzQixDQUFDLEdBQUc7QUFDckMsSUFBVyx5QkFBeUIsQ0FBQyxHQUFHO0FBQ3hDLElBQVcsa0NBQWtDLENBQUMsR0FBRztBQUNqRCxJQUFXLDJCQUEyQixDQUFDLEdBQUc7QUFDMUMsSUFBVyx1QkFBdUIsQ0FBQyxHQUFHO0FBQ3RDLElBQVcsOEJBQThCLENBQUMsR0FBRztBQUM3QyxJQUFXLHFDQUFxQyxDQUFDLEdBQUc7QUFDcEQsSUFBVywrQkFBK0IsQ0FBQyxHQUFHO0FBQzlDLElBQVcsd0JBQXdCLENBQUMsR0FBRztBQUN2QyxJQUFXLG1CQUFtQixDQUFDLEdBQUc7QUFDbEMsSUFBVyx5QkFBeUIsQ0FBQyxHQUFHO0FBQ3hDLElBQVcsc0NBQXNDLENBQUMsR0FBRztBQUNyRCxJQUFXLDZCQUE2QixDQUFDLEdBQUc7QUFDNUMsSUFBVyxvQ0FBb0MsQ0FBQyxJQUFJO0FBQ3BELElBQVcsc0JBQXNCLENBQUMsSUFBSTtBQUN0QyxJQUFXLHdDQUF3QyxDQUFDLElBQUk7Ozs7QUNoQnhELElBQVcsc0JBQXNCLENBQUMsSUFBSTs7OztBQ0F0QyxJQUFXLDZDQUE2QyxDQUFDLElBQUkifQ==
@@ -19,4 +19,4 @@ declare const TOP_SUGGESTION_BAR_PDP_TESTID = "spiffy-top-suggestion-bar-pdp";
19
19
  declare const BOTTOM_SUGGESTION_BAR_PDP_TESTID = "spiffy-bottom-suggestion-bar-pdp";
20
20
  //#endregion
21
21
  export { BOTTOM_PLP_BANNER_TESTID, BOTTOM_SUGGESTION_BAR_PDP_TESTID, BOTTOM_SUGGESTION_BAR_TESTID, CHAT_PREVIEW_PDP_TESTID, CHAT_PREVIEW_PLP_TESTID, CHAT_PREVIEW_TESTID, FLOATING_BUTTON_TESTID, FLOATING_CHAT_TESTID, GLOBAL_SEARCH_ENTRYPOINT_TESTID, MOBILE_SEARCH_ICON_NO_OP_ENTRYPOINT_TESTID, PROMPT_CARD_TESTID, SEARCH_OVERLAY_HOST_TESTID, SEARCH_RESULTS_ENTRYPOINT_TESTID, SEARCH_RESULTS_NO_OP_ENTRYPOINT_TESTID, TAILWIND_FLOATING_CHAT_BUTTON_TESTID, TOP_PLP_BANNER_TESTID, TOP_SUGGESTION_BAR_PDP_TESTID, TOP_SUGGESTION_BAR_TESTID };
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQjRjU0h4Vk4uZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2VtYmVkZGVkLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgQk9UVE9NX1BMUF9CQU5ORVJfVEVTVElEID0gXCJib3R0b20tcGxwLWltYWdlLWJhbm5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCA9IFwiYm90dG9tLXN1Z2dlc3Rpb24tYmFyLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBDSEFUX1BSRVZJRVdfVEVTVElEID0gXCJjaGF0LXByZXZpZXctc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9URVNUSUQgPSBcImdsb2JhbC1zZWFyY2gtZW50cnlwb2ludC1zaGFkb3ctZG9tLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgU0VBUkNIX09WRVJMQVlfSE9TVF9URVNUSUQgPSBcInNlYXJjaC1vdmVybGF5LWhvc3Qtc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfVEVTVElEID0gXCJzZWFyY2gtcmVzdWx0cy1lbnRyeXBvaW50LXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTRUFSQ0hfUkVTVUxUU19OT19PUF9FTlRSWVBPSU5UX1RFU1RJRCA9IFwic2VhcmNoLXJlc3VsdHMtbm8tb3Atc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1PQklMRV9TRUFSQ0hfSUNPTl9OT19PUF9FTlRSWVBPSU5UX1RFU1RJRCA9IFwibW9iaWxlLXNlYXJjaC1pY29uLW5vLW9wLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQUk9NUFRfQ0FSRF9URVNUSUQgPSBcImltYWdlLXByb21wdC1jYXJkLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBGTE9BVElOR19CVVRUT05fVEVTVElEID0gXCJmbG9hdGluZy1idXR0b24tc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0NIQVRfVEVTVElEID0gXCJmbG9hdGluZy1jaGF0LXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUQUlMV0lORF9GTE9BVElOR19DSEFUX0JVVFRPTl9URVNUSUQgPSBcImZsb2F0aW5nLWNoYXQtYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfUExQX0JBTk5FUl9URVNUSUQgPSBcInRvcC1wbHAtaW1hZ2UtYmFubmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElEID0gXCJ0b3Atc3VnZ2VzdGlvbi1iYXItc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IENIQVRfUFJFVklFV19QRFBfVEVTVElEID0gXCJzcGlmZnktY2hhdC1wcmV2aWV3LXBkcFwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgQ0hBVF9QUkVWSUVXX1BMUF9URVNUSUQgPSBcInNwaWZmeS1jaGF0LXByZXZpZXctcGxwXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfU1VHR0VTVElPTl9CQVJfUERQX1RFU1RJRCA9IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1wZHBcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJPVFRPTV9TVUdHRVNUSU9OX0JBUl9QRFBfVEVTVElEID0gXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLXBkcFwiO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVywyQkFBMkIsQ0FBQyxHQUFHO0FBQzFDLElBQVcsK0JBQStCLENBQUMsR0FBRztBQUM5QyxJQUFXLHNCQUFzQixDQUFDLEdBQUc7QUFDckMsSUFBVyxrQ0FBa0MsQ0FBQyxHQUFHO0FBQ2pELElBQVcsNkJBQTZCLENBQUMsR0FBRztBQUM1QyxJQUFXLG1DQUFtQyxDQUFDLElBQUk7QUFDbkQsSUFBVyx5Q0FBeUMsQ0FBQyxJQUFJO0FBQ3pELElBQVcsNkNBQTZDLENBQUMsSUFBSTtBQUM3RCxJQUFXLHFCQUFxQixDQUFDLElBQUk7QUFDckMsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJO0FBQ3pDLElBQVcsdUJBQXVCLENBQUMsSUFBSTtBQUN2QyxJQUFXLHVDQUF1QyxDQUFDLElBQUk7QUFDdkQsSUFBVyx3QkFBd0IsQ0FBQyxJQUFJO0FBQ3hDLElBQVcsNEJBQTRCLENBQUMsSUFBSTtBQUM1QyxJQUFXLDBCQUEwQixDQUFDLElBQUk7QUFDMUMsSUFBVywwQkFBMEIsQ0FBQyxJQUFJO0FBQzFDLElBQVcsZ0NBQWdDLENBQUMsSUFBSTtBQUNoRCxJQUFXLG1DQUFtQyxDQUFDLElBQUkifQ==
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQlIxRzh5eWcuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2VtYmVkZGVkLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgQk9UVE9NX1BMUF9CQU5ORVJfVEVTVElEID0gXCJib3R0b20tcGxwLWltYWdlLWJhbm5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCA9IFwiYm90dG9tLXN1Z2dlc3Rpb24tYmFyLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBDSEFUX1BSRVZJRVdfVEVTVElEID0gXCJjaGF0LXByZXZpZXctc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9URVNUSUQgPSBcImdsb2JhbC1zZWFyY2gtZW50cnlwb2ludC1zaGFkb3ctZG9tLWNvbnRhaW5lclwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgU0VBUkNIX09WRVJMQVlfSE9TVF9URVNUSUQgPSBcInNlYXJjaC1vdmVybGF5LWhvc3Qtc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfVEVTVElEID0gXCJzZWFyY2gtcmVzdWx0cy1lbnRyeXBvaW50LXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTRUFSQ0hfUkVTVUxUU19OT19PUF9FTlRSWVBPSU5UX1RFU1RJRCA9IFwic2VhcmNoLXJlc3VsdHMtbm8tb3Atc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1PQklMRV9TRUFSQ0hfSUNPTl9OT19PUF9FTlRSWVBPSU5UX1RFU1RJRCA9IFwibW9iaWxlLXNlYXJjaC1pY29uLW5vLW9wLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQUk9NUFRfQ0FSRF9URVNUSUQgPSBcImltYWdlLXByb21wdC1jYXJkLXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBGTE9BVElOR19CVVRUT05fVEVTVElEID0gXCJmbG9hdGluZy1idXR0b24tc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0NIQVRfVEVTVElEID0gXCJmbG9hdGluZy1jaGF0LXNoYWRvdy1kb20tY29udGFpbmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUQUlMV0lORF9GTE9BVElOR19DSEFUX0JVVFRPTl9URVNUSUQgPSBcImZsb2F0aW5nLWNoYXQtYnV0dG9uXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfUExQX0JBTk5FUl9URVNUSUQgPSBcInRvcC1wbHAtaW1hZ2UtYmFubmVyXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElEID0gXCJ0b3Atc3VnZ2VzdGlvbi1iYXItc2hhZG93LWRvbS1jb250YWluZXJcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IENIQVRfUFJFVklFV19QRFBfVEVTVElEID0gXCJzcGlmZnktY2hhdC1wcmV2aWV3LXBkcFwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgQ0hBVF9QUkVWSUVXX1BMUF9URVNUSUQgPSBcInNwaWZmeS1jaGF0LXByZXZpZXctcGxwXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBUT1BfU1VHR0VTVElPTl9CQVJfUERQX1RFU1RJRCA9IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1wZHBcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJPVFRPTV9TVUdHRVNUSU9OX0JBUl9QRFBfVEVTVElEID0gXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLXBkcFwiO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVywyQkFBMkIsQ0FBQyxHQUFHO0FBQzFDLElBQVcsK0JBQStCLENBQUMsR0FBRztBQUM5QyxJQUFXLHNCQUFzQixDQUFDLEdBQUc7QUFDckMsSUFBVyxrQ0FBa0MsQ0FBQyxHQUFHO0FBQ2pELElBQVcsNkJBQTZCLENBQUMsR0FBRztBQUM1QyxJQUFXLG1DQUFtQyxDQUFDLEdBQUc7QUFDbEQsSUFBVyx5Q0FBeUMsQ0FBQyxHQUFHO0FBQ3hELElBQVcsNkNBQTZDLENBQUMsR0FBRztBQUM1RCxJQUFXLHFCQUFxQixDQUFDLEdBQUc7QUFDcEMsSUFBVyx5QkFBeUIsQ0FBQyxHQUFHO0FBQ3hDLElBQVcsdUJBQXVCLENBQUMsR0FBRztBQUN0QyxJQUFXLHVDQUF1QyxDQUFDLEdBQUc7QUFDdEQsSUFBVyx3QkFBd0IsQ0FBQyxHQUFHO0FBQ3ZDLElBQVcsNEJBQTRCLENBQUMsR0FBRztBQUMzQyxJQUFXLDBCQUEwQixDQUFDLEdBQUc7QUFDekMsSUFBVywwQkFBMEIsQ0FBQyxHQUFHO0FBQ3pDLElBQVcsZ0NBQWdDLENBQUMsR0FBRztBQUMvQyxJQUFXLG1DQUFtQyxDQUFDLEdBQUcifQ==
@@ -8,4 +8,4 @@ declare const getMerchantColorsQuery: () => string;
8
8
  declare const getMerchantOrgIdQuery = "\n query {\n me {\n org {\n id\n }\n }\n }\n";
9
9
  //#endregion
10
10
  export { getMerchantColorsQuery, getMerchantFrontendConfigQuery, getMerchantOrgIdQuery };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQlZaYnZweF8uZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudENvbG9yc1F1ZXJ5LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnkuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGNvbnN0IGdldE1lcmNoYW50RnJvbnRlbmRDb25maWdRdWVyeTogKCkgPT4gc3RyaW5nO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5IH07XG4iLCJkZWNsYXJlIGNvbnN0IGdldE1lcmNoYW50Q29sb3JzUXVlcnk6ICgpID0+IHN0cmluZztcbmV4cG9ydCB7IGdldE1lcmNoYW50Q29sb3JzUXVlcnkgfTtcbiIsImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5ID0gXCJcXG4gIHF1ZXJ5IHtcXG4gICAgbWUge1xcbiAgICAgIG9yZyB7XFxuICAgICAgICBpZFxcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblwiO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IH07XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLGlDQUFpQyxDQUFDLElBQUk7Ozs7QUNBMUMsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJOzs7O0FDQWxDLElBQUksd0JBQXdCLENBQUMsSUFBSSJ9
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQlZaYnZweF8uZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudENvbG9yc1F1ZXJ5LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnkuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGNvbnN0IGdldE1lcmNoYW50RnJvbnRlbmRDb25maWdRdWVyeTogKCkgPT4gc3RyaW5nO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5IH07XG4iLCJkZWNsYXJlIGNvbnN0IGdldE1lcmNoYW50Q29sb3JzUXVlcnk6ICgpID0+IHN0cmluZztcbmV4cG9ydCB7IGdldE1lcmNoYW50Q29sb3JzUXVlcnkgfTtcbiIsImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5ID0gXCJcXG4gIHF1ZXJ5IHtcXG4gICAgbWUge1xcbiAgICAgIG9yZyB7XFxuICAgICAgICBpZFxcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblwiO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IH07XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLGlDQUFpQyxDQUFDLElBQUk7Ozs7QUNBMUMsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJOzs7O0FDQWxDLElBQUksd0JBQXdCLENBQUMsR0FBRyJ9
@@ -8,4 +8,4 @@ declare const getMerchantColorsQuery: () => string;
8
8
  declare const getMerchantOrgIdQuery = "\n query {\n me {\n org {\n id\n }\n }\n }\n";
9
9
  //#endregion
10
10
  export { getMerchantColorsQuery, getMerchantFrontendConfigQuery, getMerchantOrgIdQuery };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtRGVRdGU2bWIuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnkuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldE1lcmNoYW50Q29sb3JzUXVlcnkuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldE1lcmNoYW50T3JnSWRRdWVyeS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5OiAoKSA9PiBzdHJpbmc7XG5leHBvcnQgeyBnZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnkgfTtcbiIsImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRDb2xvcnNRdWVyeTogKCkgPT4gc3RyaW5nO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRDb2xvcnNRdWVyeSB9O1xuIiwiZGVjbGFyZSBjb25zdCBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgPSBcIlxcbiAgcXVlcnkge1xcbiAgICBtZSB7XFxuICAgICAgb3JnIHtcXG4gICAgICAgIGlkXFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCI7XG5leHBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUksaUNBQWlDLENBQUMsSUFBSTs7OztBQ0ExQyxJQUFJLHlCQUF5QixDQUFDLElBQUk7Ozs7QUNBbEMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJIn0=
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQ0FoR1p4TUkuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnkuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldE1lcmNoYW50Q29sb3JzUXVlcnkuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldE1lcmNoYW50T3JnSWRRdWVyeS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5OiAoKSA9PiBzdHJpbmc7XG5leHBvcnQgeyBnZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnkgfTtcbiIsImRlY2xhcmUgY29uc3QgZ2V0TWVyY2hhbnRDb2xvcnNRdWVyeTogKCkgPT4gc3RyaW5nO1xuZXhwb3J0IHsgZ2V0TWVyY2hhbnRDb2xvcnNRdWVyeSB9O1xuIiwiZGVjbGFyZSBjb25zdCBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgPSBcIlxcbiAgcXVlcnkge1xcbiAgICBtZSB7XFxuICAgICAgb3JnIHtcXG4gICAgICAgIGlkXFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCI7XG5leHBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUksaUNBQWlDLENBQUMsSUFBSTs7OztBQ0ExQyxJQUFJLHlCQUF5QixDQUFDLElBQUk7Ozs7QUNBbEMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJIn0=
@@ -6,4 +6,4 @@ declare const FLOATING_BUTTON_TEXT_TESTID = "floating-button-text";
6
6
  declare const SHADOW_DOM_CONTAINER_TESTID = "shadow-dom-container";
7
7
  //#endregion
8
8
  export { FLOATING_BUTTON_ICON_TESTID, FLOATING_BUTTON_TEXT_TESTID, SHADOW_DOM_CONTAINER_TESTID };
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQ1lHcEk2aEUuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvZmxvYXRpbmctYnV0dG9uLmQudHMiLCIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvc2hhZG93LWRvbS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0JVVFRPTl9JQ09OX1RFU1RJRCA9IFwiZmxvYXRpbmctYnV0dG9uLWljb25cIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0JVVFRPTl9URVhUX1RFU1RJRCA9IFwiZmxvYXRpbmctYnV0dG9uLXRleHRcIjtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IFNIQURPV19ET01fQ09OVEFJTkVSX1RFU1RJRCA9IFwic2hhZG93LWRvbS1jb250YWluZXJcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcsOEJBQThCLENBQUMsSUFBSTtBQUM5QyxJQUFXLDhCQUE4QixDQUFDLElBQUk7Ozs7QUNEOUMsSUFBVyw4QkFBOEIsQ0FBQyxJQUFJIn0=
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtRE5jY3hiSmkuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvZmxvYXRpbmctYnV0dG9uLmQudHMiLCIuLi9zcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvc2hhZG93LWRvbS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0JVVFRPTl9JQ09OX1RFU1RJRCA9IFwiZmxvYXRpbmctYnV0dG9uLWljb25cIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEZMT0FUSU5HX0JVVFRPTl9URVhUX1RFU1RJRCA9IFwiZmxvYXRpbmctYnV0dG9uLXRleHRcIjtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IFNIQURPV19ET01fQ09OVEFJTkVSX1RFU1RJRCA9IFwic2hhZG93LWRvbS1jb250YWluZXJcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcsOEJBQThCLENBQUMsSUFBSTtBQUM5QyxJQUFXLDhCQUE4QixDQUFDLElBQUk7Ozs7QUNEOUMsSUFBVyw4QkFBOEIsQ0FBQyxHQUFHIn0=