@envive-ai/react-hooks 0.3.18 → 0.3.19-alpha-marlo-0
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.
- package/dist/application/commerce-api.cjs +14 -13
- package/dist/application/commerce-api.js +14 -13
- package/dist/application/logging/logger.cjs +16 -10
- package/dist/application/logging/logger.js +16 -10
- package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
- package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
- package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
- package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
- package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
- package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
- package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
- package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
- package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
- package/dist/application/models/guards/api/isApiResponse.js +7 -6
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
- package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
- package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
- package/dist/application/utils/analyticsUtils.cjs +4 -3
- package/dist/application/utils/analyticsUtils.js +4 -3
- package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
- package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
- package/dist/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/variant.cjs +3 -2
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.js +3 -2
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +18 -18
- package/dist/atoms/chat/form.d.cts +3 -3
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +7 -7
- package/dist/atoms/chat/messageQueue.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.cjs +3 -2
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.js +3 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +3 -3
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +3 -3
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.cjs +5 -4
- package/dist/atoms/envive/enviveConfig.d.cts +13 -13
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/envive/enviveConfig.js +5 -4
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
- package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
- package/dist/contexts/enviveConfigContext/index.cjs +2 -1
- package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
- package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
- package/dist/contexts/enviveConfigContext/index.js +2 -1
- package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
- package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
- package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
- package/dist/contexts/enviveContext/enviveContext.cjs +74 -45
- package/dist/contexts/enviveContext/enviveContext.d.cts +8 -2
- package/dist/contexts/enviveContext/enviveContext.d.ts +8 -2
- package/dist/contexts/enviveContext/enviveContext.js +75 -46
- package/dist/contexts/enviveContext/index.d.cts +2 -2
- package/dist/contexts/enviveContext/index.d.ts +2 -2
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
- package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
- package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
- package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
- package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
- package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
- package/dist/contexts/pageContext/pageContext.cjs +23 -4
- package/dist/contexts/pageContext/pageContext.d.cts +3 -1
- package/dist/contexts/pageContext/pageContext.d.ts +3 -1
- package/dist/contexts/pageContext/pageContext.js +24 -5
- package/dist/contexts/pageContext/types.d.ts +1 -1
- package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
- package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
- package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
- package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
- package/dist/contexts/searchContext/searchContext.cjs +8 -6
- package/dist/contexts/searchContext/searchContext.js +7 -5
- package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
- package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.d.cts +1 -1
- package/dist/contexts/uiConfigContext/index.cjs +0 -1
- package/dist/contexts/uiConfigContext/index.d.cts +2 -2
- package/dist/contexts/uiConfigContext/index.d.ts +2 -2
- package/dist/contexts/uiConfigContext/index.js +2 -2
- package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
- package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
- package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.cts +2 -2
- package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.ts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
- package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
- package/dist/hooks/WidgetInteraction/utils.js +2 -1
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +15 -7
- package/dist/services/amplitudeService/amplitudeService.d.cts +2 -1
- package/dist/services/amplitudeService/amplitudeService.d.ts +2 -1
- package/dist/services/amplitudeService/amplitudeService.js +15 -7
- package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
- package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
- package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
- package/dist/services/userIdentityService/userIdentityService.js +8 -7
- package/package.json +2 -2
- package/src/application/commerce-api.ts +14 -12
- package/src/application/logging/logger.ts +33 -8
- package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
- package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
- package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
- package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
- package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
- package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
- package/src/application/models/guards/api/isApiResponse.ts +7 -5
- package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
- package/src/application/utils/analyticsUtils.ts +4 -4
- package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
- package/src/atoms/app/variant.ts +3 -1
- package/src/atoms/chat/performanceMetrics.ts +3 -1
- package/src/atoms/envive/enviveConfig.ts +5 -3
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
- package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
- package/src/contexts/enviveConfigContext/index.ts +1 -0
- package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
- package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
- package/src/contexts/enviveContext/enviveContext.tsx +109 -50
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
- package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
- package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
- package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
- package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
- package/src/contexts/pageContext/pageContext.tsx +22 -2
- package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
- package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
- package/src/contexts/searchContext/searchContext.tsx +6 -4
- package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
- package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
- package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
- package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
- package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
- package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
- package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
- package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
- package/src/hooks/WidgetInteraction/utils.ts +3 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
- package/src/services/amplitudeService/amplitudeService.ts +19 -6
- package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
- package/src/services/userIdentityService/userIdentityService.ts +8 -8
|
@@ -25,6 +25,7 @@ const TRACKED_USER_EVENTS = [
|
|
|
25
25
|
__spiffy_ai_commerce_api_client.UserEventCategory.PdpVisit,
|
|
26
26
|
__spiffy_ai_commerce_api_client.UserEventCategory.PlpVisit
|
|
27
27
|
];
|
|
28
|
+
const logger = new require_logger.default("chatAPI");
|
|
28
29
|
const useSalesAgentChatAPI = (widget) => {
|
|
29
30
|
const context = (0, jotai.useAtomValue)(require_variant.analyticsContextAtom);
|
|
30
31
|
const hasParsedVariantInfo = (0, jotai.useAtomValue)(require_variant.hasParsedVariantInfoAtom);
|
|
@@ -61,7 +62,7 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
61
62
|
]),
|
|
62
63
|
logUserEvent: (0, react.useCallback)((event) => {
|
|
63
64
|
if (!hasParsedVariantInfo) {
|
|
64
|
-
|
|
65
|
+
logger.logWarn("hasParsedVariantInfo is false, not logging user event", void 0, { event });
|
|
65
66
|
return;
|
|
66
67
|
}
|
|
67
68
|
if (TRACKED_USER_EVENTS.includes(event.category)) trackEvent({
|
|
@@ -216,4 +217,4 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
216
217
|
|
|
217
218
|
//#endregion
|
|
218
219
|
exports.useSalesAgentChatAPI = useSalesAgentChatAPI;
|
|
219
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJVc2VyRXZlbnRDYXRlZ29yeSIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwiaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIiwicXVldWVVc2VyRXZlbnRBdG9tIiwicmVwbHlFdmVudENhdGVnb3J5QXRvbSIsImZvcm1TdWJtaXRBdG9tIiwidXNlQW1wbGl0dWRlIiwidXNlV2lkZ2V0SW50ZXJhY3Rpb24iLCJXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJXaWRnZXRJbnRlcmFjdGlvblR5cGUiLCJTcGlmZnlNZXRyaWNzRXZlbnROYW1lIiwiTWVzc2FnZVJvbGUiLCJNZXNzYWdlVHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29tcG9uZW50IHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgYmFja2VuZCBBUEkgdG8gZ2V0IHRoZSByZXNwb25zZXMgZnJvbSB0aGUgc2FsZXMgYWdlbnQuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICBGb3JtU3VibWl0dGVkQXR0cmlidXRlcyxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBTdWdnZXN0aW9uLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBhbmFseXRpY3NDb250ZXh0QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyBmb3JtU3VibWl0QXRvbSwgcmVwbHlFdmVudENhdGVnb3J5QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0JztcbmltcG9ydCB7IHF1ZXVlVXNlckV2ZW50QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VXaWRnZXRJbnRlcmFjdGlvbiB9IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbic7XG5pbXBvcnQge1xuICBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCxcbiAgV2lkZ2V0SW50ZXJhY3Rpb25UeXBlLFxufSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24vdHlwZXMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IFRSQUNLRURfVVNFUl9FVkVOVFMgPSBbXG4gIFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQsXG4gIFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0LFxuXTtcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChcbiAgICBzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLFxuICAgIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHtcbiAgICBxdWVyeSxcbiAgICB1c2VyVHlwZWQsXG4gICAgZGlzcGxheUxvY2F0aW9uLFxuICB9OiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzO1xuICB9KSA9PiB2b2lkO1xuICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudENoYXRBUEkgPSAod2lkZ2V0PzogV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQpID0+IHtcbiAgLy8gVE9ETzogRWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0cmlnZ2VyIGJvdGggdGhlIG5lY2Vzc2FyeSBhbXBsaXR1ZGUgZXZlbnRzIGFuZCBpbml0aWF0ZSB0aGVcbiAgLy8gbmVjZXNzYXJ5IGFjdGlvbnMgdG8gdHJpZ2dlciB0aGUgYmFja2VuZCBBUElcbiAgY29uc3QgY29udGV4dCA9IHVzZUF0b21WYWx1ZShhbmFseXRpY3NDb250ZXh0QXRvbSk7XG4gIGNvbnN0IGhhc1BhcnNlZFZhcmlhbnRJbmZvID0gdXNlQXRvbVZhbHVlKGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSk7XG4gIGNvbnN0IHF1ZXVlVXNlckV2ZW50ID0gdXNlU2V0QXRvbShxdWV1ZVVzZXJFdmVudEF0b20pO1xuICBjb25zdCBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkgPSB1c2VTZXRBdG9tKHJlcGx5RXZlbnRDYXRlZ29yeUF0b20pO1xuICBjb25zdCBzZXRGb3JtU3VibWl0ID0gdXNlU2V0QXRvbShmb3JtU3VibWl0QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG4gIGNvbnN0IHsgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbiB9ID0gdXNlV2lkZ2V0SW50ZXJhY3Rpb24oKTtcbiAgY29uc3QgY29udGV4dFdpZGdldCA9IHdpZGdldCB8fCBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudC5GTE9BVElOR19DSEFUO1xuXG4gIGNvbnN0IGxvZ1BhZ2VWaXNpdCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIGNvbnRleHQsIHRyYWNrRXZlbnRdLFxuICApO1xuXG4gIGNvbnN0IGxvZ1VzZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogVXNlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWhhc1BhcnNlZFZhcmlhbnRJbmZvKSB7XG4gICAgICAgIExvZ2dlci5sb2dXYXJuKFxuICAgICAgICAgICdbZW52aXZlLWFpXSBoYXNQYXJzZWRWYXJpYW50SW5mbyBpcyBmYWxzZSwgbm90IGxvZ2dpbmcgdXNlciBldmVudCcsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHsgZXZlbnQgfSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKFRSQUNLRURfVVNFUl9FVkVOVFMuaW5jbHVkZXMoZXZlbnQuY2F0ZWdvcnkpKSB7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbY29udGV4dCwgaGFzUGFyc2VkVmFyaWFudEluZm8sIHF1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLCBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMpID0+IHtcbiAgICAgIHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24oe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb24sXG4gICAgICAgIHRyaWdnZXI6IHtcbiAgICAgICAgICB3aWRnZXQ6IGNvbnRleHRXaWRnZXQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uOiBXaWRnZXRJbnRlcmFjdGlvblR5cGUuU1VHR0VTVElPTl9DTElDS0VELFxuICAgICAgICAgIHdpZGdldF9pbnRlcmFjdGlvbl9kYXRhOiB7XG4gICAgICAgICAgICBzdWdnZXN0aW9uX2NsaWNrZWQ6IHtcbiAgICAgICAgICAgICAgc3VnZ2VzdGlvbl9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIG1lc3NhZ2VfaWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogc3VnZ2VzdGlvbi5jcmVhdGVkQXQsXG4gICAgICAgICAgICBjYXRlZ29yeTogc3VnZ2VzdGlvbi5jYXRlZ29yeSxcbiAgICAgICAgICAgIGlzX2Fuc3dlcjogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAgIGRpc3BsYXlfbG9jYXRpb246IGRpc3BsYXlMb2NhdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ3RyaWdnZXIud2lkZ2V0JzogZGlzcGxheUxvY2F0aW9uLCAvLyBUaGlzIGlzIGZhaXJseSBmaW5lZ3JhaW5lZCwgYnV0IHRoYXQgbWF5IGJlIG9rXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3N1Z2dlc3Rpb24nLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHN1Z2dlc3Rpb24uY29udGVudCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJzogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2NhdGVnb3J5Jzogc3VnZ2VzdGlvbi5jYXRlZ29yeSxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2NyZWF0ZWRfYXQnOiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2lzX2Fuc3dlcic6IHN1Z2dlc3Rpb24uaXNBbnN3ZXIsXG4gICAgICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgc3VnZ2VzdGlvbklkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgIGNvbnRlbnQ6IHN1Z2dlc3Rpb24uY29udGVudCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnQsIGNvbnRleHRdLFxuICApO1xuICBjb25zdCBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICBxdWVyeSxcbiAgICAgIHVzZXJUeXBlZCxcbiAgICAgIGRpc3BsYXlMb2NhdGlvbixcbiAgICB9OiB7XG4gICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzO1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG5cbiAgICAgIHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24oe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb24sXG4gICAgICAgIHRyaWdnZXI6IHtcbiAgICAgICAgICB3aWRnZXQ6IGNvbnRleHRXaWRnZXQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uOiBXaWRnZXRJbnRlcmFjdGlvblR5cGUuTUVTU0FHRV9TVUJNSVRURUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2Vfc3VibWl0dGVkOiB7XG4gICAgICAgICAgICAgIHJlcXVlc3RfdGV4dDogcXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0VXNlck1lc3NhZ2VJbnB1dCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX2lkOiBldmVudElkLFxuICAgICAgICAgIG1lc3NhZ2Vfcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogcXVlcnksXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB1c2VyX3R5cGVkOiB1c2VyVHlwZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ3RyaWdnZXIud2lkZ2V0JzogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICd0ZXh0JyxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiBxdWVyeSxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2NyZWF0ZWRfYXQnOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IHVzZXJUeXBlZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudCwgY29udGV4dF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB7XG4gICAgICBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkoVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCk7XG4gICAgICBzZXRGb3JtU3VibWl0KGZvcm0pO1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdmb3JtJyxcbiAgICAgICAgICAnY2hhdC5mb3JtX3Jlc3BvbnNlX2lkJzogZm9ybS5mb3JtUmVzcG9uc2VJZCxcbiAgICAgICAgICAnY2hhdC5mb3JtX3R5cGUnOiBmb3JtLmZvcm1UeXBlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IGZvcm0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3NldFJlcGx5RXZlbnRDYXRlZ29yeSwgc2V0Rm9ybVN1Ym1pdCwgdHJhY2tFdmVudCwgY29udGV4dCwgcXVldWVVc2VyRXZlbnRdLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQSxNQUFNLHNCQUFzQjtDQUMxQkEsa0RBQWtCO0NBQ2xCQSxrREFBa0I7Q0FDbEJBLGtEQUFrQjtDQUNuQjtBQW9CRCxNQUFhLHdCQUF3QixXQUF3QztDQUczRSxNQUFNLGtDQUF1QkMscUNBQXFCO0NBQ2xELE1BQU0sK0NBQW9DQyx5Q0FBeUI7Q0FDbkUsTUFBTSx1Q0FBNEJDLHdDQUFtQjtDQUNyRCxNQUFNLDhDQUFtQ0Msb0RBQXVCO0NBQ2hFLE1BQU0sc0NBQTJCQyw0Q0FBZTtDQUNoRCxNQUFNLEVBQUUsZUFBZUMsdUNBQWM7Q0FDckMsTUFBTSxFQUFFLDJCQUEyQkMsbURBQXNCO0NBQ3pELE1BQU0sZ0JBQWdCLFVBQVVDLGlFQUEyQjtBQXlNM0QsUUFBTztFQUNMLHNDQXZNQyxFQUFFLHdCQUFrRTtHQUNuRSxNQUFNLHdCQUFnQjtBQUN0QixjQUFXO0lBQ1QsV0FBV0MsMENBQXVCO0lBQ2xDLFlBQVk7S0FDVixHQUFHO0tBQ0gsbUJBQW1CO0tBQ25CLHFCQUFxQjtLQUN0QjtJQUNGLENBQUM7QUFVRixrQkFUeUI7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
|
|
220
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJVc2VyRXZlbnRDYXRlZ29yeSIsIkxvZ2dlciIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwiaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIiwicXVldWVVc2VyRXZlbnRBdG9tIiwicmVwbHlFdmVudENhdGVnb3J5QXRvbSIsImZvcm1TdWJtaXRBdG9tIiwidXNlQW1wbGl0dWRlIiwidXNlV2lkZ2V0SW50ZXJhY3Rpb24iLCJXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJXaWRnZXRJbnRlcmFjdGlvblR5cGUiLCJTcGlmZnlNZXRyaWNzRXZlbnROYW1lIiwiTWVzc2FnZVJvbGUiLCJNZXNzYWdlVHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29tcG9uZW50IHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgYmFja2VuZCBBUEkgdG8gZ2V0IHRoZSByZXNwb25zZXMgZnJvbSB0aGUgc2FsZXMgYWdlbnQuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICBGb3JtU3VibWl0dGVkQXR0cmlidXRlcyxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBTdWdnZXN0aW9uLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBhbmFseXRpY3NDb250ZXh0QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyBmb3JtU3VibWl0QXRvbSwgcmVwbHlFdmVudENhdGVnb3J5QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0JztcbmltcG9ydCB7IHF1ZXVlVXNlckV2ZW50QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VXaWRnZXRJbnRlcmFjdGlvbiB9IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbic7XG5pbXBvcnQge1xuICBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCxcbiAgV2lkZ2V0SW50ZXJhY3Rpb25UeXBlLFxufSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24vdHlwZXMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IFRSQUNLRURfVVNFUl9FVkVOVFMgPSBbXG4gIFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQsXG4gIFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0LFxuXTtcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignY2hhdEFQSScpO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4gdm9pZDtcbiAgbG9nVXNlckV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gdm9pZDtcbiAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKFxuICAgIHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sXG4gICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICApID0+IHZvaWQ7XG4gIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkOiAoe1xuICAgIHF1ZXJ5LFxuICAgIHVzZXJUeXBlZCxcbiAgICBkaXNwbGF5TG9jYXRpb24sXG4gIH06IHtcbiAgICBxdWVyeTogc3RyaW5nO1xuICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjM7XG4gIH0pID0+IHZvaWQ7XG4gIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSSA9ICh3aWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCkgPT4ge1xuICAvLyBUT0RPOiBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRyaWdnZXIgYm90aCB0aGUgbmVjZXNzYXJ5IGFtcGxpdHVkZSBldmVudHMgYW5kIGluaXRpYXRlIHRoZVxuICAvLyBuZWNlc3NhcnkgYWN0aW9ucyB0byB0cmlnZ2VyIHRoZSBiYWNrZW5kIEFQSVxuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFuYWx5dGljc0NvbnRleHRBdG9tKTtcbiAgY29uc3QgaGFzUGFyc2VkVmFyaWFudEluZm8gPSB1c2VBdG9tVmFsdWUoaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tKTtcbiAgY29uc3QgcXVldWVVc2VyRXZlbnQgPSB1c2VTZXRBdG9tKHF1ZXVlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IHNldFJlcGx5RXZlbnRDYXRlZ29yeSA9IHVzZVNldEF0b20ocmVwbHlFdmVudENhdGVnb3J5QXRvbSk7XG4gIGNvbnN0IHNldEZvcm1TdWJtaXQgPSB1c2VTZXRBdG9tKGZvcm1TdWJtaXRBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgeyB0cmFja1dpZGdldEludGVyYWN0aW9uIH0gPSB1c2VXaWRnZXRJbnRlcmFjdGlvbigpO1xuICBjb25zdCBjb250ZXh0V2lkZ2V0ID0gd2lkZ2V0IHx8IFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50LkZMT0FUSU5HX0NIQVQ7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgY29udGV4dCwgdHJhY2tFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgbG9nVXNlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBVc2VyRXZlbnQpID0+IHtcbiAgICAgIGlmICghaGFzUGFyc2VkVmFyaWFudEluZm8pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ2hhc1BhcnNlZFZhcmlhbnRJbmZvIGlzIGZhbHNlLCBub3QgbG9nZ2luZyB1c2VyIGV2ZW50JywgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoVFJBQ0tFRF9VU0VSX0VWRU5UUy5pbmNsdWRlcyhldmVudC5jYXRlZ29yeSkpIHtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBoYXNQYXJzZWRWYXJpYW50SW5mbywgcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnRdLFxuICApO1xuICBjb25zdCBvblN1Z2dlc3Rpb25DbGlja2VkID0gdXNlQ2FsbGJhY2soXG4gICAgKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMykgPT4ge1xuICAgICAgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbih7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbixcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogY29udGV4dFdpZGdldCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb246IFdpZGdldEludGVyYWN0aW9uVHlwZS5TVUdHRVNUSU9OX0NMSUNLRUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25fY2xpY2tlZDoge1xuICAgICAgICAgICAgICBzdWdnZXN0aW9uX2lkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgbWVzc2FnZV9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBtZXNzYWdlX3JvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgbWVzc2FnZV90eXBlOiBNZXNzYWdlVHlwZS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICAgaXNfYW5zd2VyOiBzdWdnZXN0aW9uLmlzQW5zd2VyLFxuICAgICAgICAgICAgZGlzcGxheV9sb2NhdGlvbjogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAndHJpZ2dlci53aWRnZXQnOiBkaXNwbGF5TG9jYXRpb24sIC8vIFRoaXMgaXMgZmFpcmx5IGZpbmVncmFpbmVkLCBidXQgdGhhdCBtYXkgYmUgb2tcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAnc3VnZ2VzdGlvbicsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0Jzogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknOiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY3JlYXRlZF9hdCc6IHN1Z2dlc3Rpb24uY3JlYXRlZEF0LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faXNfYW5zd2VyJzogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAnY2hhdC51c2VyX3R5cGVkJzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBzdWdnZXN0aW9uSWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudCwgY29udGV4dF0sXG4gICk7XG4gIGNvbnN0IG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHF1ZXJ5LFxuICAgICAgdXNlclR5cGVkLFxuICAgICAgZGlzcGxheUxvY2F0aW9uLFxuICAgIH06IHtcbiAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjM7XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcblxuICAgICAgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbih7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbixcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogY29udGV4dFdpZGdldCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb246IFdpZGdldEludGVyYWN0aW9uVHlwZS5NRVNTQUdFX1NVQk1JVFRFRCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb25fZGF0YToge1xuICAgICAgICAgICAgbWVzc2FnZV9zdWJtaXR0ZWQ6IHtcbiAgICAgICAgICAgICAgcmVxdWVzdF90ZXh0OiBxdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRVc2VyTWVzc2FnZUlucHV0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlcl90eXBlZDogdXNlclR5cGVkLFxuICAgICAgICAgIG1lc3NhZ2VfaWQ6IGV2ZW50SWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBxdWVyeSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAndHJpZ2dlci53aWRnZXQnOiBkaXNwbGF5TG9jYXRpb24sXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3RleHQnLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHF1ZXJ5LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfY3JlYXRlZF9hdCc6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAnY2hhdC51c2VyX3R5cGVkJzogdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50LCBjb250ZXh0XSxcbiAgKTtcbiAgY29uc3Qgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHtcbiAgICAgIHNldFJlcGx5RXZlbnRDYXRlZ29yeShVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKTtcbiAgICAgIHNldEZvcm1TdWJtaXQoZm9ybSk7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ2Zvcm0nLFxuICAgICAgICAgICdjaGF0LmZvcm1fcmVzcG9uc2VfaWQnOiBmb3JtLmZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICdjaGF0LmZvcm1fdHlwZSc6IGZvcm0uZm9ybVR5cGUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczogZm9ybSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbc2V0UmVwbHlFdmVudENhdGVnb3J5LCBzZXRGb3JtU3VibWl0LCB0cmFja0V2ZW50LCBjb250ZXh0LCBxdWV1ZVVzZXJFdmVudF0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLE1BQU0sc0JBQXNCO0NBQzFCQSxrREFBa0I7Q0FDbEJBLGtEQUFrQjtDQUNsQkEsa0RBQWtCO0NBQ25CO0FBRUQsTUFBTSxTQUFTLElBQUlDLHVCQUFPLFVBQVU7QUFvQnBDLE1BQWEsd0JBQXdCLFdBQXdDO0NBRzNFLE1BQU0sa0NBQXVCQyxxQ0FBcUI7Q0FDbEQsTUFBTSwrQ0FBb0NDLHlDQUF5QjtDQUNuRSxNQUFNLHVDQUE0QkMsd0NBQW1CO0NBQ3JELE1BQU0sOENBQW1DQyxvREFBdUI7Q0FDaEUsTUFBTSxzQ0FBMkJDLDRDQUFlO0NBQ2hELE1BQU0sRUFBRSxlQUFlQyx1Q0FBYztDQUNyQyxNQUFNLEVBQUUsMkJBQTJCQyxtREFBc0I7Q0FDekQsTUFBTSxnQkFBZ0IsVUFBVUMsaUVBQTJCO0FBdU0zRCxRQUFPO0VBQ0wsc0NBck1DLEVBQUUsd0JBQWtFO0dBQ25FLE1BQU0sd0JBQWdCO0FBQ3RCLGNBQVc7SUFDVCxXQUFXQywwQ0FBdUI7SUFDbEMsWUFBWTtLQUNWLEdBQUc7S0FDSCxt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
|
|
@@ -24,6 +24,7 @@ const TRACKED_USER_EVENTS = [
|
|
|
24
24
|
UserEventCategory.PdpVisit,
|
|
25
25
|
UserEventCategory.PlpVisit
|
|
26
26
|
];
|
|
27
|
+
const logger = new logger_default("chatAPI");
|
|
27
28
|
const useSalesAgentChatAPI = (widget) => {
|
|
28
29
|
const context = useAtomValue(analyticsContextAtom);
|
|
29
30
|
const hasParsedVariantInfo = useAtomValue(hasParsedVariantInfoAtom);
|
|
@@ -60,7 +61,7 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
60
61
|
]),
|
|
61
62
|
logUserEvent: useCallback((event) => {
|
|
62
63
|
if (!hasParsedVariantInfo) {
|
|
63
|
-
|
|
64
|
+
logger.logWarn("hasParsedVariantInfo is false, not logging user event", void 0, { event });
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
67
|
if (TRACKED_USER_EVENTS.includes(event.category)) trackEvent({
|
|
@@ -215,4 +216,4 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
215
216
|
|
|
216
217
|
//#endregion
|
|
217
218
|
export { useSalesAgentChatAPI };
|
|
218
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgU3VnZ2VzdGlvbixcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgYW5hbHl0aWNzQ29udGV4dEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgZm9ybVN1Ym1pdEF0b20sIHJlcGx5RXZlbnRDYXRlZ29yeUF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdCc7XG5pbXBvcnQgeyBxdWV1ZVVzZXJFdmVudEF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgdXNlV2lkZ2V0SW50ZXJhY3Rpb24gfSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24nO1xuaW1wb3J0IHtcbiAgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQsXG4gIFdpZGdldEludGVyYWN0aW9uVHlwZSxcbn0gZnJvbSAnc3JjL2hvb2tzL1dpZGdldEludGVyYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIHVzZUFtcGxpdHVkZSB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuXG5jb25zdCBUUkFDS0VEX1VTRVJfRVZFTlRTID0gW1xuICBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQsXG4gIFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0LFxuICBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdCxcbl07XG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB2b2lkO1xuICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoXG4gICAgc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbixcbiAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMsXG4gICkgPT4gdm9pZDtcbiAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7XG4gICAgcXVlcnksXG4gICAgdXNlclR5cGVkLFxuICAgIGRpc3BsYXlMb2NhdGlvbixcbiAgfToge1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMztcbiAgfSkgPT4gdm9pZDtcbiAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQ6IChmb3JtOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRDaGF0QVBJID0gKHdpZGdldD86IFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50KSA9PiB7XG4gIC8vIFRPRE86IEVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgdHJpZ2dlciBib3RoIHRoZSBuZWNlc3NhcnkgYW1wbGl0dWRlIGV2ZW50cyBhbmQgaW5pdGlhdGUgdGhlXG4gIC8vIG5lY2Vzc2FyeSBhY3Rpb25zIHRvIHRyaWdnZXIgdGhlIGJhY2tlbmQgQVBJXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYW5hbHl0aWNzQ29udGV4dEF0b20pO1xuICBjb25zdCBoYXNQYXJzZWRWYXJpYW50SW5mbyA9IHVzZUF0b21WYWx1ZShoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBxdWV1ZVVzZXJFdmVudCA9IHVzZVNldEF0b20ocXVldWVVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3Qgc2V0UmVwbHlFdmVudENhdGVnb3J5ID0gdXNlU2V0QXRvbShyZXBseUV2ZW50Q2F0ZWdvcnlBdG9tKTtcbiAgY29uc3Qgc2V0Rm9ybVN1Ym1pdCA9IHVzZVNldEF0b20oZm9ybVN1Ym1pdEF0b20pO1xuICBjb25zdCB7IHRyYWNrRXZlbnQgfSA9IHVzZUFtcGxpdHVkZSgpO1xuICBjb25zdCB7IHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24gfSA9IHVzZVdpZGdldEludGVyYWN0aW9uKCk7XG4gIGNvbnN0IGNvbnRleHRXaWRnZXQgPSB3aWRnZXQgfHwgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQuRkxPQVRJTkdfQ0hBVDtcblxuICBjb25zdCBsb2dQYWdlVmlzaXQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3BhZ2VfdmlzaXQnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCBjb250ZXh0LCB0cmFja0V2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKCFoYXNQYXJzZWRWYXJpYW50SW5mbykge1xuICAgICAgICBMb2dnZXIubG9nV2FybihcbiAgICAgICAgICAnW2Vudml2ZS1haV0gaGFzUGFyc2VkVmFyaWFudEluZm8gaXMgZmFsc2UsIG5vdCBsb2dnaW5nIHVzZXIgZXZlbnQnLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB7IGV2ZW50IH0sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChUUkFDS0VEX1VTRVJfRVZFTlRTLmluY2x1ZGVzKGV2ZW50LmNhdGVnb3J5KSkge1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudC5ldmVudElkLFxuICAgICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3BhZ2VfdmlzaXQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW2NvbnRleHQsIGhhc1BhcnNlZFZhcmlhbnRJbmZvLCBxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uU3VnZ2VzdGlvbkNsaWNrZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbiwgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzKSA9PiB7XG4gICAgICB0cmFja1dpZGdldEludGVyYWN0aW9uKHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldEludGVyYWN0aW9uLFxuICAgICAgICB0cmlnZ2VyOiB7XG4gICAgICAgICAgd2lkZ2V0OiBjb250ZXh0V2lkZ2V0LFxuICAgICAgICAgIHdpZGdldF9pbnRlcmFjdGlvbjogV2lkZ2V0SW50ZXJhY3Rpb25UeXBlLlNVR0dFU1RJT05fQ0xJQ0tFRCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb25fZGF0YToge1xuICAgICAgICAgICAgc3VnZ2VzdGlvbl9jbGlja2VkOiB7XG4gICAgICAgICAgICAgIHN1Z2dlc3Rpb25faWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0U3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBtZXNzYWdlX2lkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgIG1lc3NhZ2Vfcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6IE1lc3NhZ2VUeXBlLlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICAgIG1lc3NhZ2VfbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHN1Z2dlc3Rpb24uY29udGVudCxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IHN1Z2dlc3Rpb24uY3JlYXRlZEF0LFxuICAgICAgICAgICAgY2F0ZWdvcnk6IHN1Z2dlc3Rpb24uY2F0ZWdvcnksXG4gICAgICAgICAgICBpc19hbnN3ZXI6IHN1Z2dlc3Rpb24uaXNBbnN3ZXIsXG4gICAgICAgICAgICBkaXNwbGF5X2xvY2F0aW9uOiBkaXNwbGF5TG9jYXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICd0cmlnZ2VyLndpZGdldCc6IGRpc3BsYXlMb2NhdGlvbiwgLy8gVGhpcyBpcyBmYWlybHkgZmluZWdyYWluZWQsIGJ1dCB0aGF0IG1heSBiZSBva1xuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdzdWdnZXN0aW9uJyxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pZCc6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9jYXRlZ29yeSc6IHN1Z2dlc3Rpb24uY2F0ZWdvcnksXG4gICAgICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9jcmVhdGVkX2F0Jzogc3VnZ2VzdGlvbi5jcmVhdGVkQXQsXG4gICAgICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pc19hbnN3ZXInOiBzdWdnZXN0aW9uLmlzQW5zd2VyLFxuICAgICAgICAgICdjaGF0LnVzZXJfdHlwZWQnOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50LCBjb250ZXh0XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgcXVlcnksXG4gICAgICB1c2VyVHlwZWQsXG4gICAgICBkaXNwbGF5TG9jYXRpb24sXG4gICAgfToge1xuICAgICAgcXVlcnk6IHN0cmluZztcbiAgICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICAgIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMztcbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuXG4gICAgICB0cmFja1dpZGdldEludGVyYWN0aW9uKHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldEludGVyYWN0aW9uLFxuICAgICAgICB0cmlnZ2VyOiB7XG4gICAgICAgICAgd2lkZ2V0OiBjb250ZXh0V2lkZ2V0LFxuICAgICAgICAgIHdpZGdldF9pbnRlcmFjdGlvbjogV2lkZ2V0SW50ZXJhY3Rpb25UeXBlLk1FU1NBR0VfU1VCTUlUVEVELFxuICAgICAgICAgIHdpZGdldF9pbnRlcmFjdGlvbl9kYXRhOiB7XG4gICAgICAgICAgICBtZXNzYWdlX3N1Ym1pdHRlZDoge1xuICAgICAgICAgICAgICByZXF1ZXN0X3RleHQ6IHF1ZXJ5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFVzZXJNZXNzYWdlSW5wdXQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyX3R5cGVkOiB1c2VyVHlwZWQsXG4gICAgICAgICAgbWVzc2FnZV9pZDogZXZlbnRJZCxcbiAgICAgICAgICBtZXNzYWdlX3JvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgbWVzc2FnZV90eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgIG1lc3NhZ2VfbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHF1ZXJ5LFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgdXNlcl90eXBlZDogdXNlclR5cGVkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICd0cmlnZ2VyLndpZGdldCc6IGRpc3BsYXlMb2NhdGlvbixcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAndGV4dCcsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0JzogcXVlcnksXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9jcmVhdGVkX2F0JzogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICdjaGF0LnVzZXJfdHlwZWQnOiB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHVzZXJUeXBlZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnQsIGNvbnRleHRdLFxuICApO1xuICBjb25zdCBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChmb3JtOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4ge1xuICAgICAgc2V0UmVwbHlFdmVudENhdGVnb3J5KFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQpO1xuICAgICAgc2V0Rm9ybVN1Ym1pdChmb3JtKTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAnZm9ybScsXG4gICAgICAgICAgJ2NoYXQuZm9ybV9yZXNwb25zZV9pZCc6IGZvcm0uZm9ybVJlc3BvbnNlSWQsXG4gICAgICAgICAgJ2NoYXQuZm9ybV90eXBlJzogZm9ybS5mb3JtVHlwZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiBmb3JtLFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtzZXRSZXBseUV2ZW50Q2F0ZWdvcnksIHNldEZvcm1TdWJtaXQsIHRyYWNrRXZlbnQsIGNvbnRleHQsIHF1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQSxNQUFNLHNCQUFzQjtDQUMxQixrQkFBa0I7Q0FDbEIsa0JBQWtCO0NBQ2xCLGtCQUFrQjtDQUNuQjtBQW9CRCxNQUFhLHdCQUF3QixXQUF3QztDQUczRSxNQUFNLFVBQVUsYUFBYSxxQkFBcUI7Q0FDbEQsTUFBTSx1QkFBdUIsYUFBYSx5QkFBeUI7Q0FDbkUsTUFBTSxpQkFBaUIsV0FBVyxtQkFBbUI7Q0FDckQsTUFBTSx3QkFBd0IsV0FBVyx1QkFBdUI7Q0FDaEUsTUFBTSxnQkFBZ0IsV0FBVyxlQUFlO0NBQ2hELE1BQU0sRUFBRSxlQUFlLGNBQWM7Q0FDckMsTUFBTSxFQUFFLDJCQUEyQixzQkFBc0I7Q0FDekQsTUFBTSxnQkFBZ0IsVUFBVSwyQkFBMkI7QUF5TTNELFFBQU87RUFDTCxjQXhNbUIsYUFDbEIsRUFBRSx3QkFBa0U7R0FDbkUsTUFBTSxVQUFVQSxJQUFNO0FBQ3RCLGNBQVc7SUFDVCxXQUFXLHVCQUF1QjtJQUNsQyxZQUFZO0tBQ1YsR0FBRztLQUNILG1CQUFtQjtLQUNuQixxQkFBcUI7S0FDdEI7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCO0lBQ0EsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0tBQ1YsS0FBSyxPQUFPLFNBQVM7S0FDckI7S0FDRDtJQUNGLENBQ29CO0tBRXZCO0dBQUM7R0FBZ0I7R0FBUztHQUFXLENBQ3RDO0VBa0xDLGNBaExtQixhQUNsQixVQUFxQjtBQUNwQixPQUFJLENBQUMsc0JBQXNCO0FBQ3pCLG1CQUFPLFFBQ0wscUVBQ0EsUUFDQSxFQUFFLE9BQU8sQ0FDVjtBQUNEOztBQUVGLE9BQUksb0JBQW9CLFNBQVMsTUFBTSxTQUFTLENBQzlDLFlB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
|
|
219
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgU3VnZ2VzdGlvbixcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgYW5hbHl0aWNzQ29udGV4dEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgZm9ybVN1Ym1pdEF0b20sIHJlcGx5RXZlbnRDYXRlZ29yeUF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdCc7XG5pbXBvcnQgeyBxdWV1ZVVzZXJFdmVudEF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgdXNlV2lkZ2V0SW50ZXJhY3Rpb24gfSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24nO1xuaW1wb3J0IHtcbiAgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQsXG4gIFdpZGdldEludGVyYWN0aW9uVHlwZSxcbn0gZnJvbSAnc3JjL2hvb2tzL1dpZGdldEludGVyYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIHVzZUFtcGxpdHVkZSB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuXG5jb25zdCBUUkFDS0VEX1VTRVJfRVZFTlRTID0gW1xuICBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQsXG4gIFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0LFxuICBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdCxcbl07XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2NoYXRBUEknKTtcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChcbiAgICBzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLFxuICAgIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHtcbiAgICBxdWVyeSxcbiAgICB1c2VyVHlwZWQsXG4gICAgZGlzcGxheUxvY2F0aW9uLFxuICB9OiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzO1xuICB9KSA9PiB2b2lkO1xuICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudENoYXRBUEkgPSAod2lkZ2V0PzogV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQpID0+IHtcbiAgLy8gVE9ETzogRWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0cmlnZ2VyIGJvdGggdGhlIG5lY2Vzc2FyeSBhbXBsaXR1ZGUgZXZlbnRzIGFuZCBpbml0aWF0ZSB0aGVcbiAgLy8gbmVjZXNzYXJ5IGFjdGlvbnMgdG8gdHJpZ2dlciB0aGUgYmFja2VuZCBBUElcbiAgY29uc3QgY29udGV4dCA9IHVzZUF0b21WYWx1ZShhbmFseXRpY3NDb250ZXh0QXRvbSk7XG4gIGNvbnN0IGhhc1BhcnNlZFZhcmlhbnRJbmZvID0gdXNlQXRvbVZhbHVlKGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSk7XG4gIGNvbnN0IHF1ZXVlVXNlckV2ZW50ID0gdXNlU2V0QXRvbShxdWV1ZVVzZXJFdmVudEF0b20pO1xuICBjb25zdCBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkgPSB1c2VTZXRBdG9tKHJlcGx5RXZlbnRDYXRlZ29yeUF0b20pO1xuICBjb25zdCBzZXRGb3JtU3VibWl0ID0gdXNlU2V0QXRvbShmb3JtU3VibWl0QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG4gIGNvbnN0IHsgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbiB9ID0gdXNlV2lkZ2V0SW50ZXJhY3Rpb24oKTtcbiAgY29uc3QgY29udGV4dFdpZGdldCA9IHdpZGdldCB8fCBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudC5GTE9BVElOR19DSEFUO1xuXG4gIGNvbnN0IGxvZ1BhZ2VWaXNpdCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIGNvbnRleHQsIHRyYWNrRXZlbnRdLFxuICApO1xuXG4gIGNvbnN0IGxvZ1VzZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogVXNlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWhhc1BhcnNlZFZhcmlhbnRJbmZvKSB7XG4gICAgICAgIGxvZ2dlci5sb2dXYXJuKCdoYXNQYXJzZWRWYXJpYW50SW5mbyBpcyBmYWxzZSwgbm90IGxvZ2dpbmcgdXNlciBldmVudCcsIHVuZGVmaW5lZCwge1xuICAgICAgICAgIGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKFRSQUNLRURfVVNFUl9FVkVOVFMuaW5jbHVkZXMoZXZlbnQuY2F0ZWdvcnkpKSB7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbY29udGV4dCwgaGFzUGFyc2VkVmFyaWFudEluZm8sIHF1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLCBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMpID0+IHtcbiAgICAgIHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24oe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb24sXG4gICAgICAgIHRyaWdnZXI6IHtcbiAgICAgICAgICB3aWRnZXQ6IGNvbnRleHRXaWRnZXQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uOiBXaWRnZXRJbnRlcmFjdGlvblR5cGUuU1VHR0VTVElPTl9DTElDS0VELFxuICAgICAgICAgIHdpZGdldF9pbnRlcmFjdGlvbl9kYXRhOiB7XG4gICAgICAgICAgICBzdWdnZXN0aW9uX2NsaWNrZWQ6IHtcbiAgICAgICAgICAgICAgc3VnZ2VzdGlvbl9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIG1lc3NhZ2VfaWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogc3VnZ2VzdGlvbi5jcmVhdGVkQXQsXG4gICAgICAgICAgICBjYXRlZ29yeTogc3VnZ2VzdGlvbi5jYXRlZ29yeSxcbiAgICAgICAgICAgIGlzX2Fuc3dlcjogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAgIGRpc3BsYXlfbG9jYXRpb246IGRpc3BsYXlMb2NhdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ3RyaWdnZXIud2lkZ2V0JzogZGlzcGxheUxvY2F0aW9uLCAvLyBUaGlzIGlzIGZhaXJseSBmaW5lZ3JhaW5lZCwgYnV0IHRoYXQgbWF5IGJlIG9rXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3N1Z2dlc3Rpb24nLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHN1Z2dlc3Rpb24uY29udGVudCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJzogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2NhdGVnb3J5Jzogc3VnZ2VzdGlvbi5jYXRlZ29yeSxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2NyZWF0ZWRfYXQnOiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAnY2hhdC5zdWdnZXN0aW9uX2lzX2Fuc3dlcic6IHN1Z2dlc3Rpb24uaXNBbnN3ZXIsXG4gICAgICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgc3VnZ2VzdGlvbklkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgIGNvbnRlbnQ6IHN1Z2dlc3Rpb24uY29udGVudCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnQsIGNvbnRleHRdLFxuICApO1xuICBjb25zdCBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICBxdWVyeSxcbiAgICAgIHVzZXJUeXBlZCxcbiAgICAgIGRpc3BsYXlMb2NhdGlvbixcbiAgICB9OiB7XG4gICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzO1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG5cbiAgICAgIHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24oe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb24sXG4gICAgICAgIHRyaWdnZXI6IHtcbiAgICAgICAgICB3aWRnZXQ6IGNvbnRleHRXaWRnZXQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uOiBXaWRnZXRJbnRlcmFjdGlvblR5cGUuTUVTU0FHRV9TVUJNSVRURUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2Vfc3VibWl0dGVkOiB7XG4gICAgICAgICAgICAgIHJlcXVlc3RfdGV4dDogcXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0VXNlck1lc3NhZ2VJbnB1dCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX2lkOiBldmVudElkLFxuICAgICAgICAgIG1lc3NhZ2Vfcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogcXVlcnksXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB1c2VyX3R5cGVkOiB1c2VyVHlwZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ3RyaWdnZXIud2lkZ2V0JzogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICd0ZXh0JyxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiBxdWVyeSxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2NyZWF0ZWRfYXQnOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IHVzZXJUeXBlZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudCwgY29udGV4dF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB7XG4gICAgICBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkoVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCk7XG4gICAgICBzZXRGb3JtU3VibWl0KGZvcm0pO1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdmb3JtJyxcbiAgICAgICAgICAnY2hhdC5mb3JtX3Jlc3BvbnNlX2lkJzogZm9ybS5mb3JtUmVzcG9uc2VJZCxcbiAgICAgICAgICAnY2hhdC5mb3JtX3R5cGUnOiBmb3JtLmZvcm1UeXBlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IGZvcm0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3NldFJlcGx5RXZlbnRDYXRlZ29yeSwgc2V0Rm9ybVN1Ym1pdCwgdHJhY2tFdmVudCwgY29udGV4dCwgcXVldWVVc2VyRXZlbnRdLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLE1BQU0sc0JBQXNCO0NBQzFCLGtCQUFrQjtDQUNsQixrQkFBa0I7Q0FDbEIsa0JBQWtCO0NBQ25CO0FBRUQsTUFBTSxTQUFTLElBQUlBLGVBQU8sVUFBVTtBQW9CcEMsTUFBYSx3QkFBd0IsV0FBd0M7Q0FHM0UsTUFBTSxVQUFVLGFBQWEscUJBQXFCO0NBQ2xELE1BQU0sdUJBQXVCLGFBQWEseUJBQXlCO0NBQ25FLE1BQU0saUJBQWlCLFdBQVcsbUJBQW1CO0NBQ3JELE1BQU0sd0JBQXdCLFdBQVcsdUJBQXVCO0NBQ2hFLE1BQU0sZ0JBQWdCLFdBQVcsZUFBZTtDQUNoRCxNQUFNLEVBQUUsZUFBZSxjQUFjO0NBQ3JDLE1BQU0sRUFBRSwyQkFBMkIsc0JBQXNCO0NBQ3pELE1BQU0sZ0JBQWdCLFVBQVUsMkJBQTJCO0FBdU0zRCxRQUFPO0VBQ0wsY0F0TW1CLGFBQ2xCLEVBQUUsd0JBQWtFO0dBQ25FLE1BQU0sVUFBVUMsSUFBTTtBQUN0QixjQUFXO0lBQ1QsV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWLEdBQUc7S0FDSCxtQkFBbUI7S0FDbkIscUJBQXFCO0tBQ3RCO0lBQ0YsQ0FBQztBQVVGLGtCQVR5QjtJQUN2QjtJQUNBLFVBQVUsa0JBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWLEtBQUssT0FBTyxTQUFTO0tBQ3JCO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QjtHQUFDO0dBQWdCO0dBQVM7R0FBVyxDQUN0QztFQWdMQyxjQTlLbUIsYUFDbEIsVUFBcUI7QUFDcEIsT0FBSSxDQUFDLHNCQUFzQjtBQUN6QixXQUFPLFFBQVEseURBQXlELFFBQVcsRUFDakYsT0FDRCxDQUFD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
|
|
@@ -15,6 +15,7 @@ let jotai = require("jotai");
|
|
|
15
15
|
|
|
16
16
|
//#region src/contexts/salesAgentContext/salesAgentContext.tsx
|
|
17
17
|
const SalesAgentContext = (0, react.createContext)(void 0);
|
|
18
|
+
const logger = new require_logger.default("salesAgentContext");
|
|
18
19
|
const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
19
20
|
const userEvents = (0, jotai.useAtomValue)(require_messageQueue.userEventQueueAtom);
|
|
20
21
|
const userQueueEventCount = (0, jotai.useAtomValue)(require_messageQueue.userQueueEventCountAtom);
|
|
@@ -45,7 +46,7 @@ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
|
45
46
|
setIsInitialized(true);
|
|
46
47
|
requestPayload.userEvents?.map((userEvent) => markUserEventsProcessed([userEvent.eventId]));
|
|
47
48
|
} catch (error) {
|
|
48
|
-
|
|
49
|
+
logger.logError("error sending message", error);
|
|
49
50
|
}
|
|
50
51
|
}, [
|
|
51
52
|
getStreamingResponses,
|
|
@@ -115,7 +116,7 @@ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
|
115
116
|
if (!isHydrated) try {
|
|
116
117
|
await hydrateMessages();
|
|
117
118
|
} catch (error) {
|
|
118
|
-
|
|
119
|
+
logger.logError("error hydrating messages", error);
|
|
119
120
|
} finally {
|
|
120
121
|
setIsHydrated(true);
|
|
121
122
|
}
|
|
@@ -172,4 +173,4 @@ const useSalesAgent = (contextWidget) => {
|
|
|
172
173
|
//#endregion
|
|
173
174
|
exports.SalesAgentProvider = SalesAgentProvider;
|
|
174
175
|
exports.useSalesAgent = useSalesAgent;
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwiY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlIiwiYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQiLCJyZXNwb25zZVN0cmVhbWluZ0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwidXNlU2FsZXNBZ2VudENoYXRBUEkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICBzdWdnZXN0aW9ucz86IFN1Z2dlc3Rpb25bXTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudFByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG1vY2tEYXRhPzogTW9ja1NhbGVzQWdlbnREYXRhO1xufVxuXG5leHBvcnQgY29uc3QgU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgbW9ja0RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IHVzZXJFdmVudHMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgdXNlclF1ZXVlRXZlbnRDb3VudCA9IHVzZUF0b21WYWx1ZSh1c2VyUXVldWVFdmVudENvdW50QXRvbSk7XG4gIGNvbnN0IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkID0gdXNlU2V0QXRvbShwcm9jZXNzVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc0h5ZHJhdGVkLCBzZXRJc0h5ZHJhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICBjb25zdCBpc1NlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCBtb2NrIGRhdGEgaW4gcHJldmlldyBtb2RlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZpZXdNb2RlICYmIG1vY2tEYXRhKSB7XG4gICAgICBpZiAobW9ja0RhdGEubWVzc2FnZXMpIHtcbiAgICAgICAgc2V0TWVzc2FnZXMobW9ja0RhdGEubWVzc2FnZXMpO1xuICAgICAgfVxuICAgICAgaWYgKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKSB7XG4gICAgICAgIHNldFN1Z2dlc3Rpb25zKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKTtcbiAgICAgIH1cbiAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG4gICAgfVxuICB9LCBbcHJldmlld01vZGUsIG1vY2tEYXRhLCBzZXRNZXNzYWdlcywgc2V0U3VnZ2VzdGlvbnMsIHNldElzSW5pdGlhbGl6ZWRdKTtcblxuICAvLyBUT0RPOiBFbnN1cmUgdGhhdCBhbXBsaXR1ZGUgZXZlbnRzIGFyZSBiZWluZyBlbWl0dGVkXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBzdHJlYW1pbmcgcmVzcG9uc2VzIHRvIGZ1bmN0aW9uXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBoeWRyYXRpb24gb2YgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGJhY2tlbmQgb24gaW5pdGlhbGl6YXRpb25cbiAgY29uc3Qgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3RQYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyhyZXF1ZXN0UGF5bG9hZCk7XG4gICAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBwZW5kaW5nIG1lc3NhZ2UgZnJvbSB0aGUgdXNlciBldmVudHNcbiAgICAgICAgcmVxdWVzdFBheWxvYWQudXNlckV2ZW50cz8ubWFwKHVzZXJFdmVudCA9PiBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZChbdXNlckV2ZW50LmV2ZW50SWRdKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBMb2dnZXIubG9nRXJyb3IoJ1tlbnZpdmUtYWldIGVycm9yIHNlbmRpbmcgbWVzc2FnZScsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtnZXRTdHJlYW1pbmdSZXNwb25zZXMsIHNldElzSW5pdGlhbGl6ZWQsIG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkXSxcbiAgKTtcblxuICAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGV2ZW50IGxvb3AgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgYmFja2VuZCBBUElcbiAgLy8gSXQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBtZXNzYWdlcyB0byBiZSBzZW50IHRvIHRoZSBiYWNrZW5kXG4gIC8vIEl0IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2VzIHRvIHRoZSBiYWNrZW5kIGFuZCByZWNlaXZpbmcgdGhlIHJlc3BvbnNlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNraXAgYmFja2VuZCBjb21tdW5pY2F0aW9uIGluIHByZXZpZXcgbW9kZVxuICAgIGlmIChwcmV2aWV3TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBXYWl0IGZvciB0aGUgbWVzc2FnZXMgdG8gYmUgaHlkcmF0ZWQgYmVmb3JlIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmRcbiAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDAgJiYgIWlzU2VuZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCkge1xuICAgICAgICAgIGNvbnN0IHsgZm9ybVJlc3BvbnNlSWQsIGZpbGxlZFNjaGVtYSB9ID0gdXNlckV2ZW50LmF0dHJpYnV0ZXM7XG4gICAgICAgICAgc2V0TWVzc2FnZXMocHJldk1lc3NhZ2VzU3RhdGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVN1Ym1pdHRlZENvbnRlbnQgPSBidWlsZEZvcm1TdWJtaXR0ZWREaXNwbGF5Q29udGVudChcbiAgICAgICAgICAgICAgcHJldk1lc3NhZ2VzU3RhdGUsXG4gICAgICAgICAgICAgIGZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICAgICBmaWxsZWRTY2hlbWEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgbmV3VXNlck1lc3NhZ2UgPSBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UodXNlckV2ZW50LCBmb3JtU3VibWl0dGVkQ29udGVudCk7XG4gICAgICAgICAgICBjb25zdCB0dXJuc1dpdGhvdXRGb3JtID0gcHJldk1lc3NhZ2VzU3RhdGVcbiAgICAgICAgICAgICAgLm1hcCh0dXJuID0+XG4gICAgICAgICAgICAgICAgdHVybi5maWx0ZXIobXNnID0+ICEobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlLkZvcm0gJiYgbXNnLmlkID09PSBmb3JtUmVzcG9uc2VJZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIodHVybiA9PiB0dXJuLmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50dXJuc1dpdGhvdXRGb3JtLCBbbmV3VXNlck1lc3NhZ2VdXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGlzU2VuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgaXNIeWRyYXRlZCxcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3VnZ2VzdGlvbnMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBzZXRNZXNzYWdlcyxcbiAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQsXG4gICAgc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgdXNlckV2ZW50cyxcbiAgICB1c2VyUXVldWVFdmVudENvdW50LFxuICAgIHByZXZpZXdNb2RlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0SHlkcmF0aW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBoeWRyYXRpbmcgbWVzc2FnZXMnLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNIeWRyYXRlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgc3RhcnRIeWRyYXRpb24oKTtcbiAgfSwgW2lzSW5pdGlhbGl6ZWQsIGh5ZHJhdGVNZXNzYWdlcywgcHJldmlld01vZGUsIGlzSHlkcmF0ZWRdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKGNvbnRleHRXaWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoY29udGV4dFdpZGdldCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSxNQUFNLDZDQUEwRCxPQUFVO0FBUTFFLE1BQWFBLHNCQUF5RCxFQUNwRSxVQUNBLGNBQWMsT0FDZCxlQUNJO0NBQ0osTUFBTSxxQ0FBMEJDLHdDQUFtQjtDQUNuRCxNQUFNLDhDQUFtQ0MsNkNBQXdCO0NBQ2pFLE1BQU0sZ0RBQXFDQywwQ0FBcUI7Q0FDaEUsTUFBTSxDQUFDLFlBQVkscUNBQTBCLE1BQU07Q0FDbkQsTUFBTSxDQUFDLGVBQWUsdUNBQTRCQyw2Q0FBZ0I7Q0FDbEUsTUFBTSxrQkFBa0JDLDJEQUEwQjtDQUNsRCxNQUFNLG9DQUF5QkMsMENBQWE7Q0FDNUMsTUFBTSx1Q0FBNEJDLDZDQUFnQjtDQUVsRCxNQUFNLEVBQUUsdUJBQXVCLHVCQUF1QixnQkFBZ0Isb0JBQ3BFQyxnREFBc0I7Q0FFeEIsTUFBTSxpQ0FBc0IsTUFBTTtBQUdsQyw0QkFBZ0I7QUFDZCxNQUFJLGVBQWUsVUFBVTtBQUMzQixPQUFJLFNBQVMsU0FDWCxhQUFZLFNBQVMsU0FBUztBQUVoQyxPQUFJLFNBQVMsWUFDWCxnQkFBZSxTQUFTLFlBQVk7QUFFdEMsb0JBQWlCLEtBQUs7O0lBRXZCO0VBQUM7RUFBYTtFQUFVO0VBQWE7RUFBZ0I7RUFBaUIsQ0FBQztDQU8xRSxNQUFNLCtDQUNKLE9BQU8sbUJBQXVDO0FBQzVDLE1BQUk7QUFDRixTQUFNLHNCQUFzQixlQUFlO0FBQzNDLG9CQUFpQixLQUFLO0FBR3RCLGtCQUFlLFlBQVksS0FBSSxjQUFhLHdCQUF3QixDQUFDLFVBQVUsUUFBUSxDQUFDLENBQUM7V0FDbEYsT0FBTztBQUNkLDBCQUFPLFNBQVMscUNBQXFDLE1BQU07O0lBRy9EO0VBQUM7RUFBdUI7RUFBa0I7RUFBd0IsQ0FDbkU7QUFLRCw0QkFBZ0I7QUFFZCxNQUFJLFlBQ0Y7QUFHRixNQUFJLENBQUMsV0FDSDtBQUdGLE1BQUksc0JBQXNCLEtBQUssQ0FBQyxhQUFhLFNBQVM7QUFDcEQsZ0JBQWEsVUFBVTtHQUN2QixNQUFNLGdCQUFnQixXQUFXLE1BQU0sR0FBRyxvQkFBb0I7QUFFOUQsaUJBQWMsU0FBUSxjQUFhO0FBQ2pDLFFBQUksYUFBYSxVQUFVLGFBQWFDLGtEQUFrQixZQUFZO0tBQ3BFLE1BQU1DLGFBQXNCO01BQzFCLElBQUksVUFBVTtNQUNkLE1BQU1DLDRCQUFZO01BQ2xCLE1BQU1DLDRCQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsT0FDL0I7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFcEQsUUFBSSxhQUFhLFVBQVUsYUFBYUgsa0RBQWtCLG1CQUFtQjtLQUMzRSxNQUFNQyxhQUFzQjtNQUMxQixJQUFJLFVBQVU7TUFDZCxNQUFNQyw0QkFBWTtNQUNsQixNQUFNQyw0QkFBWTtNQUNsQixXQUFXLFVBQVU7TUFDckIsVUFBVSxFQUNSLFNBQVMsVUFBVSxXQUFXLFdBQVcsSUFDMUM7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFcEQsUUFBSSxhQUFhLFVBQVUsYUFBYUgsa0RBQWtCLGVBQWU7S0FDdkUsTUFBTSxFQUFFLGdCQUFnQixpQkFBaUIsVUFBVTtBQUNuRCxrQkFBWSxzQkFBcUI7TUFNL0IsTUFBTSxpQkFBaUJJLDBEQUErQixXQUx6QkMsNERBQzNCLG1CQUNBLGdCQUNBLGFBQ0QsQ0FDcUY7QUFNdEYsYUFBTyxDQUFDLEdBTGlCLGtCQUN0QixLQUFJLFNBQ0gsS0FBSyxRQUFPLFFBQU8sRUFBRSxJQUFJLFNBQVNGLDRCQUFZLFFBQVEsSUFBSSxPQUFPLGdCQUFnQixDQUNsRixDQUNBLFFBQU8sU0FBUSxLQUFLLFNBQVMsRUFBRSxFQUNMLENBQUMsZUFBZSxDQUFDO09BQzlDOztLQUVKO0FBRUYseUJBQ0Usc0JBQXNCO0lBQ3BCLFlBQVk7SUFDWixrQkFBa0IsZ0JBQWdCO0lBQ25DLENBQUMsQ0FDSCxDQUFDLGNBQWM7QUFDZCxpQkFBYSxVQUFVO0tBQ3ZCO2FBQ08sY0FDVCxnQkFDRSxzQkFBc0I7R0FDcEIsWUFBWSxFQUFFO0dBQ2Qsa0JBQWtCLGdCQUFnQjtHQUNuQyxDQUFDLENBQ0g7SUFFRjtFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCQUFnQjtFQUNoQjtFQUNBO0VBQ0E7RUFDRCxDQUFDO0FBRUYsNEJBQWdCO0VBQ2QsTUFBTSxpQkFBaUIsWUFBWTtBQUVqQyxPQUFJLFlBQ0Y7QUFHRixPQUFJLENBQUMsV0FFSCxLQUFJO0FBQ0YsVUFBTSxpQkFBaUI7WUFDaEIsT0FBTztBQUNkLDJCQUFPLFNBQVMsd0NBQXdDLE1BQU07YUFDdEQ7QUFDUixrQkFBYyxLQUFLOzs7QUFJekIsa0JBQWdCO0lBQ2Y7RUFBQztFQUFlO0VBQWlCO0VBQWE7RUFBVyxDQUFDO0FBRTdELFFBQU8sMkNBQUMsa0JBQWtCO0VBQVMsT0FBTztFQUFZO0dBQXNDOztBQUc5RixNQUFhLGlCQUFpQixrQkFBMkQ7Q0FDdkYsTUFBTSxtQ0FBd0JOLDBDQUFhO0NBQzNDLE1BQU0sc0NBQTJCQyw2Q0FBZ0I7Q0FDakQsTUFBTSwwQ0FBK0JOLHdDQUFtQjtDQUN4RCxNQUFNLDhDQUFtQ2MsbURBQXNCO0NBQy9ELE1BQU0sNENBQWlDQyxpREFBb0I7Q0FDM0QsTUFBTSx3Q0FBNkJaLDZDQUFnQjtDQUNuRCxNQUFNLEVBQ0osY0FDQSxjQUNBLHFCQUNBLHlCQUNBLDRCQUNFYSxxQ0FBcUIsY0FBYztBQTZCdkMsaUNBM0I2QztBQUMzQyxTQUFPO0dBQ0w7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0lBQ0E7RUFDRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsQ0FBQyJ9
|
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwiY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlIiwiYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQiLCJyZXNwb25zZVN0cmVhbWluZ0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwidXNlU2FsZXNBZ2VudENoYXRBUEkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICBzdWdnZXN0aW9ucz86IFN1Z2dlc3Rpb25bXTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ3NhbGVzQWdlbnRDb250ZXh0Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudFByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG1vY2tEYXRhPzogTW9ja1NhbGVzQWdlbnREYXRhO1xufVxuXG5leHBvcnQgY29uc3QgU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgbW9ja0RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IHVzZXJFdmVudHMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgdXNlclF1ZXVlRXZlbnRDb3VudCA9IHVzZUF0b21WYWx1ZSh1c2VyUXVldWVFdmVudENvdW50QXRvbSk7XG4gIGNvbnN0IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkID0gdXNlU2V0QXRvbShwcm9jZXNzVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc0h5ZHJhdGVkLCBzZXRJc0h5ZHJhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICBjb25zdCBpc1NlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCBtb2NrIGRhdGEgaW4gcHJldmlldyBtb2RlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZpZXdNb2RlICYmIG1vY2tEYXRhKSB7XG4gICAgICBpZiAobW9ja0RhdGEubWVzc2FnZXMpIHtcbiAgICAgICAgc2V0TWVzc2FnZXMobW9ja0RhdGEubWVzc2FnZXMpO1xuICAgICAgfVxuICAgICAgaWYgKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKSB7XG4gICAgICAgIHNldFN1Z2dlc3Rpb25zKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKTtcbiAgICAgIH1cbiAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG4gICAgfVxuICB9LCBbcHJldmlld01vZGUsIG1vY2tEYXRhLCBzZXRNZXNzYWdlcywgc2V0U3VnZ2VzdGlvbnMsIHNldElzSW5pdGlhbGl6ZWRdKTtcblxuICAvLyBUT0RPOiBFbnN1cmUgdGhhdCBhbXBsaXR1ZGUgZXZlbnRzIGFyZSBiZWluZyBlbWl0dGVkXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBzdHJlYW1pbmcgcmVzcG9uc2VzIHRvIGZ1bmN0aW9uXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBoeWRyYXRpb24gb2YgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGJhY2tlbmQgb24gaW5pdGlhbGl6YXRpb25cbiAgY29uc3Qgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3RQYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyhyZXF1ZXN0UGF5bG9hZCk7XG4gICAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBwZW5kaW5nIG1lc3NhZ2UgZnJvbSB0aGUgdXNlciBldmVudHNcbiAgICAgICAgcmVxdWVzdFBheWxvYWQudXNlckV2ZW50cz8ubWFwKHVzZXJFdmVudCA9PiBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZChbdXNlckV2ZW50LmV2ZW50SWRdKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ2Vycm9yIHNlbmRpbmcgbWVzc2FnZScsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtnZXRTdHJlYW1pbmdSZXNwb25zZXMsIHNldElzSW5pdGlhbGl6ZWQsIG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkXSxcbiAgKTtcblxuICAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGV2ZW50IGxvb3AgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgYmFja2VuZCBBUElcbiAgLy8gSXQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBtZXNzYWdlcyB0byBiZSBzZW50IHRvIHRoZSBiYWNrZW5kXG4gIC8vIEl0IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2VzIHRvIHRoZSBiYWNrZW5kIGFuZCByZWNlaXZpbmcgdGhlIHJlc3BvbnNlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNraXAgYmFja2VuZCBjb21tdW5pY2F0aW9uIGluIHByZXZpZXcgbW9kZVxuICAgIGlmIChwcmV2aWV3TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBXYWl0IGZvciB0aGUgbWVzc2FnZXMgdG8gYmUgaHlkcmF0ZWQgYmVmb3JlIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmRcbiAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDAgJiYgIWlzU2VuZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCkge1xuICAgICAgICAgIGNvbnN0IHsgZm9ybVJlc3BvbnNlSWQsIGZpbGxlZFNjaGVtYSB9ID0gdXNlckV2ZW50LmF0dHJpYnV0ZXM7XG4gICAgICAgICAgc2V0TWVzc2FnZXMocHJldk1lc3NhZ2VzU3RhdGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVN1Ym1pdHRlZENvbnRlbnQgPSBidWlsZEZvcm1TdWJtaXR0ZWREaXNwbGF5Q29udGVudChcbiAgICAgICAgICAgICAgcHJldk1lc3NhZ2VzU3RhdGUsXG4gICAgICAgICAgICAgIGZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICAgICBmaWxsZWRTY2hlbWEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgbmV3VXNlck1lc3NhZ2UgPSBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UodXNlckV2ZW50LCBmb3JtU3VibWl0dGVkQ29udGVudCk7XG4gICAgICAgICAgICBjb25zdCB0dXJuc1dpdGhvdXRGb3JtID0gcHJldk1lc3NhZ2VzU3RhdGVcbiAgICAgICAgICAgICAgLm1hcCh0dXJuID0+XG4gICAgICAgICAgICAgICAgdHVybi5maWx0ZXIobXNnID0+ICEobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlLkZvcm0gJiYgbXNnLmlkID09PSBmb3JtUmVzcG9uc2VJZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIodHVybiA9PiB0dXJuLmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50dXJuc1dpdGhvdXRGb3JtLCBbbmV3VXNlck1lc3NhZ2VdXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGlzU2VuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgaXNIeWRyYXRlZCxcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3VnZ2VzdGlvbnMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBzZXRNZXNzYWdlcyxcbiAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQsXG4gICAgc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgdXNlckV2ZW50cyxcbiAgICB1c2VyUXVldWVFdmVudENvdW50LFxuICAgIHByZXZpZXdNb2RlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0SHlkcmF0aW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBoeWRyYXRpbmcgbWVzc2FnZXMnLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNIeWRyYXRlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgc3RhcnRIeWRyYXRpb24oKTtcbiAgfSwgW2lzSW5pdGlhbGl6ZWQsIGh5ZHJhdGVNZXNzYWdlcywgcHJldmlld01vZGUsIGlzSHlkcmF0ZWRdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKGNvbnRleHRXaWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoY29udGV4dFdpZGdldCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSxNQUFNLDZD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
|
|
@@ -14,6 +14,7 @@ import { useAtom, useAtomValue, useSetAtom } from "jotai";
|
|
|
14
14
|
|
|
15
15
|
//#region src/contexts/salesAgentContext/salesAgentContext.tsx
|
|
16
16
|
const SalesAgentContext = createContext(void 0);
|
|
17
|
+
const logger = new logger_default("salesAgentContext");
|
|
17
18
|
const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
18
19
|
const userEvents = useAtomValue(userEventQueueAtom);
|
|
19
20
|
const userQueueEventCount = useAtomValue(userQueueEventCountAtom);
|
|
@@ -44,7 +45,7 @@ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
|
44
45
|
setIsInitialized(true);
|
|
45
46
|
requestPayload.userEvents?.map((userEvent) => markUserEventsProcessed([userEvent.eventId]));
|
|
46
47
|
} catch (error) {
|
|
47
|
-
|
|
48
|
+
logger.logError("error sending message", error);
|
|
48
49
|
}
|
|
49
50
|
}, [
|
|
50
51
|
getStreamingResponses,
|
|
@@ -114,7 +115,7 @@ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
|
114
115
|
if (!isHydrated) try {
|
|
115
116
|
await hydrateMessages();
|
|
116
117
|
} catch (error) {
|
|
117
|
-
|
|
118
|
+
logger.logError("error hydrating messages", error);
|
|
118
119
|
} finally {
|
|
119
120
|
setIsHydrated(true);
|
|
120
121
|
}
|
|
@@ -170,4 +171,4 @@ const useSalesAgent = (contextWidget) => {
|
|
|
170
171
|
|
|
171
172
|
//#endregion
|
|
172
173
|
export { SalesAgentProvider, useSalesAgent };
|
|
173
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICBzdWdnZXN0aW9ucz86IFN1Z2dlc3Rpb25bXTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudFByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG1vY2tEYXRhPzogTW9ja1NhbGVzQWdlbnREYXRhO1xufVxuXG5leHBvcnQgY29uc3QgU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgbW9ja0RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IHVzZXJFdmVudHMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgdXNlclF1ZXVlRXZlbnRDb3VudCA9IHVzZUF0b21WYWx1ZSh1c2VyUXVldWVFdmVudENvdW50QXRvbSk7XG4gIGNvbnN0IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkID0gdXNlU2V0QXRvbShwcm9jZXNzVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc0h5ZHJhdGVkLCBzZXRJc0h5ZHJhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICBjb25zdCBpc1NlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCBtb2NrIGRhdGEgaW4gcHJldmlldyBtb2RlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZpZXdNb2RlICYmIG1vY2tEYXRhKSB7XG4gICAgICBpZiAobW9ja0RhdGEubWVzc2FnZXMpIHtcbiAgICAgICAgc2V0TWVzc2FnZXMobW9ja0RhdGEubWVzc2FnZXMpO1xuICAgICAgfVxuICAgICAgaWYgKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKSB7XG4gICAgICAgIHNldFN1Z2dlc3Rpb25zKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKTtcbiAgICAgIH1cbiAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG4gICAgfVxuICB9LCBbcHJldmlld01vZGUsIG1vY2tEYXRhLCBzZXRNZXNzYWdlcywgc2V0U3VnZ2VzdGlvbnMsIHNldElzSW5pdGlhbGl6ZWRdKTtcblxuICAvLyBUT0RPOiBFbnN1cmUgdGhhdCBhbXBsaXR1ZGUgZXZlbnRzIGFyZSBiZWluZyBlbWl0dGVkXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBzdHJlYW1pbmcgcmVzcG9uc2VzIHRvIGZ1bmN0aW9uXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBoeWRyYXRpb24gb2YgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGJhY2tlbmQgb24gaW5pdGlhbGl6YXRpb25cbiAgY29uc3Qgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3RQYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyhyZXF1ZXN0UGF5bG9hZCk7XG4gICAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBwZW5kaW5nIG1lc3NhZ2UgZnJvbSB0aGUgdXNlciBldmVudHNcbiAgICAgICAgcmVxdWVzdFBheWxvYWQudXNlckV2ZW50cz8ubWFwKHVzZXJFdmVudCA9PiBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZChbdXNlckV2ZW50LmV2ZW50SWRdKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBMb2dnZXIubG9nRXJyb3IoJ1tlbnZpdmUtYWldIGVycm9yIHNlbmRpbmcgbWVzc2FnZScsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtnZXRTdHJlYW1pbmdSZXNwb25zZXMsIHNldElzSW5pdGlhbGl6ZWQsIG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkXSxcbiAgKTtcblxuICAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGV2ZW50IGxvb3AgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgYmFja2VuZCBBUElcbiAgLy8gSXQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBtZXNzYWdlcyB0byBiZSBzZW50IHRvIHRoZSBiYWNrZW5kXG4gIC8vIEl0IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2VzIHRvIHRoZSBiYWNrZW5kIGFuZCByZWNlaXZpbmcgdGhlIHJlc3BvbnNlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNraXAgYmFja2VuZCBjb21tdW5pY2F0aW9uIGluIHByZXZpZXcgbW9kZVxuICAgIGlmIChwcmV2aWV3TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBXYWl0IGZvciB0aGUgbWVzc2FnZXMgdG8gYmUgaHlkcmF0ZWQgYmVmb3JlIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmRcbiAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDAgJiYgIWlzU2VuZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCkge1xuICAgICAgICAgIGNvbnN0IHsgZm9ybVJlc3BvbnNlSWQsIGZpbGxlZFNjaGVtYSB9ID0gdXNlckV2ZW50LmF0dHJpYnV0ZXM7XG4gICAgICAgICAgc2V0TWVzc2FnZXMocHJldk1lc3NhZ2VzU3RhdGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVN1Ym1pdHRlZENvbnRlbnQgPSBidWlsZEZvcm1TdWJtaXR0ZWREaXNwbGF5Q29udGVudChcbiAgICAgICAgICAgICAgcHJldk1lc3NhZ2VzU3RhdGUsXG4gICAgICAgICAgICAgIGZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICAgICBmaWxsZWRTY2hlbWEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgbmV3VXNlck1lc3NhZ2UgPSBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UodXNlckV2ZW50LCBmb3JtU3VibWl0dGVkQ29udGVudCk7XG4gICAgICAgICAgICBjb25zdCB0dXJuc1dpdGhvdXRGb3JtID0gcHJldk1lc3NhZ2VzU3RhdGVcbiAgICAgICAgICAgICAgLm1hcCh0dXJuID0+XG4gICAgICAgICAgICAgICAgdHVybi5maWx0ZXIobXNnID0+ICEobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlLkZvcm0gJiYgbXNnLmlkID09PSBmb3JtUmVzcG9uc2VJZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIodHVybiA9PiB0dXJuLmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50dXJuc1dpdGhvdXRGb3JtLCBbbmV3VXNlck1lc3NhZ2VdXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGlzU2VuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgaXNIeWRyYXRlZCxcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3VnZ2VzdGlvbnMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBzZXRNZXNzYWdlcyxcbiAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQsXG4gICAgc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgdXNlckV2ZW50cyxcbiAgICB1c2VyUXVldWVFdmVudENvdW50LFxuICAgIHByZXZpZXdNb2RlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0SHlkcmF0aW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBoeWRyYXRpbmcgbWVzc2FnZXMnLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNIeWRyYXRlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgc3RhcnRIeWRyYXRpb24oKTtcbiAgfSwgW2lzSW5pdGlhbGl6ZWQsIGh5ZHJhdGVNZXNzYWdlcywgcHJldmlld01vZGUsIGlzSHlkcmF0ZWRdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKGNvbnRleHRXaWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoY29udGV4dFdpZGdldCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBK0NBLE1BQU0sb0JBQW9CLGNBQXNDLE9BQVU7QUFRMUUsTUFBYUEsc0JBQXlELEVBQ3BFLFVBQ0EsY0FBYyxPQUNkLGVBQ0k7Q0FDSixNQUFNLGFBQWEsYUFBYSxtQkFBbUI7Q0FDbkQsTUFBTSxzQkFBc0IsYUFBYSx3QkFBd0I7Q0FDakUsTUFBTSwwQkFBMEIsV0FBVyxxQkFBcUI7Q0FDaEUsTUFBTSxDQUFDLFlBQVksaUJBQWlCLFNBQVMsTUFBTTtDQUNuRCxNQUFNLENBQUMsZUFBZSxvQkFBb0IsUUFBUSxnQkFBZ0I7Q0FDbEUsTUFBTSxrQkFBa0IsMEJBQTBCO0NBQ2xELE1BQU0sY0FBYyxXQUFXLGFBQWE7Q0FDNUMsTUFBTSxpQkFBaUIsV0FBVyxnQkFBZ0I7Q0FFbEQsTUFBTSxFQUFFLHVCQUF1Qix1QkFBdUIsZ0JBQWdCLG9CQUNwRSxzQkFBc0I7Q0FFeEIsTUFBTSxlQUFlLE9BQU8sTUFBTTtBQUdsQyxpQkFBZ0I7QUFDZCxNQUFJLGVBQWUsVUFBVTtBQUMzQixPQUFJLFNBQVMsU0FDWCxhQUFZLFNBQVMsU0FBUztBQUVoQyxPQUFJLFNBQVMsWUFDWCxnQkFBZSxTQUFTLFlBQVk7QUFFdEMsb0JBQWlCLEtBQUs7O0lBRXZCO0VBQUM7RUFBYTtFQUFVO0VBQWE7RUFBZ0I7RUFBaUIsQ0FBQztDQU8xRSxNQUFNLHdCQUF3QixZQUM1QixPQUFPLG1CQUF1QztBQUM1QyxNQUFJO0FBQ0YsU0FBTSxzQkFBc0IsZUFBZTtBQUMzQyxvQkFBaUIsS0FBSztBQUd0QixrQkFBZSxZQUFZLEtBQUksY0FBYSx3QkFBd0IsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1dBQ2xGLE9BQU87QUFDZCxrQkFBTyxTQUFTLHFDQUFxQyxNQUFNOztJQUcvRDtFQUFDO0VBQXVCO0VBQWtCO0VBQXdCLENBQ25FO0FBS0QsaUJBQWdCO0FBRWQsTUFBSSxZQUNGO0FBR0YsTUFBSSxDQUFDLFdBQ0g7QUFHRixNQUFJLHNCQUFzQixLQUFLLENBQUMsYUFBYSxTQUFTO0FBQ3BELGdCQUFhLFVBQVU7R0FDdkIsTUFBTSxnQkFBZ0IsV0FBVyxNQUFNLEdBQUcsb0JBQW9CO0FBRTlELGlCQUFjLFNBQVEsY0FBYTtBQUNqQyxRQUFJLGFBQWEsVUFBVSxhQUFhLGtCQUFrQixZQUFZO0tBQ3BFLE1BQU1DLGFBQXNCO01BQzFCLElBQUksVUFBVTtNQUNkLE1BQU0sWUFBWTtNQUNsQixNQUFNLFlBQVk7TUFDbEIsV0FBVyxVQUFVO01BQ3JCLFVBQVUsRUFDUixTQUFTLFVBQVUsV0FBVyxPQUMvQjtNQUNGO0FBQ0Qsa0JBQVksWUFBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztBQUVwRCxRQUFJLGFBQWEsVUFBVSxhQUFhLGtCQUFrQixtQkFBbUI7S0FDM0UsTUFBTUEsYUFBc0I7TUFDMUIsSUFBSSxVQUFVO01BQ2QsTUFBTSxZQUFZO01BQ2xCLE1BQU0sWUFBWTtNQUNsQixXQUFXLFVBQVU7TUFDckIsVUFBVSxFQUNSLFNBQVMsVUFBVSxXQUFXLFdBQVcsSUFDMUM7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFcEQsUUFBSSxhQUFhLFVBQVUsYUFBYSxrQkFBa0IsZUFBZTtLQUN2RSxNQUFNLEVBQUUsZ0JBQWdCLGlCQUFpQixVQUFVO0FBQ25ELGtCQUFZLHNCQUFxQjtNQU0vQixNQUFNLGlCQUFpQiwrQkFBK0IsV0FMekIsaUNBQzNCLG1CQUNBLGdCQUNBLGFBQ0QsQ0FDcUY7QUFNdEYsYUFBTyxDQUFDLEdBTGlCLGtCQUN0QixLQUFJLFNBQ0gsS0FBSyxRQUFPLFFBQU8sRUFBRSxJQUFJLFNBQVMsWUFBWSxRQUFRLElBQUksT0FBTyxnQkFBZ0IsQ0FDbEYsQ0FDQSxRQUFPLFNBQVEsS0FBSyxTQUFTLEVBQUUsRUFDTCxDQUFDLGVBQWUsQ0FBQztPQUM5Qzs7S0FFSjtBQUVGLHlCQUNFLHNCQUFzQjtJQUNwQixZQUFZO0lBQ1osa0JBQWtCLGdCQUFnQjtJQUNuQyxDQUFDLENBQ0gsQ0FBQyxjQUFjO0FBQ2QsaUJBQWEsVUFBVTtLQUN2QjthQUNPLGNBQ1QsZ0JBQ0Usc0JBQXNCO0dBQ3BCLFlBQVksRUFBRTtHQUNkLGtCQUFrQixnQkFBZ0I7R0FDbkMsQ0FBQyxDQUNIO0lBRUY7RUFDRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQkFBZ0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0QsQ0FBQztBQUVGLGlCQUFnQjtFQUNkLE1BQU0saUJBQWlCLFlBQVk7QUFFakMsT0FBSSxZQUNGO0FBR0YsT0FBSSxDQUFDLFdBRUgsS0FBSTtBQUNGLFVBQU0saUJBQWlCO1lBQ2hCLE9BQU87QUFDZCxtQkFBTyxTQUFTLHdDQUF3QyxNQUFNO2FBQ3REO0FBQ1Isa0JBQWMsS0FBSzs7O0FBSXpCLGtCQUFnQjtJQUNmO0VBQUM7RUFBZTtFQUFpQjtFQUFhO0VBQVcsQ0FBQztBQUU3RCxRQUFPLG9CQUFDLGtCQUFrQjtFQUFTLE9BQU87RUFBWTtHQUFzQzs7QUFHOUYsTUFBYSxpQkFBaUIsa0JBQTJEO0NBQ3ZGLE1BQU0sV0FBVyxhQUFhLGFBQWE7Q0FDM0MsTUFBTSxjQUFjLGFBQWEsZ0JBQWdCO0NBQ2pELE1BQU0sa0JBQWtCLGFBQWEsbUJBQW1CO0NBQ3hELE1BQU0sc0JBQXNCLGFBQWEsc0JBQXNCO0NBQy9ELE1BQU0sb0JBQW9CLGFBQWEsb0JBQW9CO0NBQzNELE1BQU0sZ0JBQWdCLGFBQWEsZ0JBQWdCO0NBQ25ELE1BQU0sRUFDSixjQUNBLGNBQ0EscUJBQ0EseUJBQ0EsNEJBQ0UscUJBQXFCLGNBQWM7QUE2QnZDLFFBM0IrQixjQUFjO0FBQzNDLFNBQU87R0FDTDtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7SUFDQTtFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDIn0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0SW50ZXJhY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICBzdWdnZXN0aW9ucz86IFN1Z2dlc3Rpb25bXTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ3NhbGVzQWdlbnRDb250ZXh0Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudFByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG1vY2tEYXRhPzogTW9ja1NhbGVzQWdlbnREYXRhO1xufVxuXG5leHBvcnQgY29uc3QgU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgbW9ja0RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IHVzZXJFdmVudHMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgdXNlclF1ZXVlRXZlbnRDb3VudCA9IHVzZUF0b21WYWx1ZSh1c2VyUXVldWVFdmVudENvdW50QXRvbSk7XG4gIGNvbnN0IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkID0gdXNlU2V0QXRvbShwcm9jZXNzVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc0h5ZHJhdGVkLCBzZXRJc0h5ZHJhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICBjb25zdCBpc1NlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCBtb2NrIGRhdGEgaW4gcHJldmlldyBtb2RlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZpZXdNb2RlICYmIG1vY2tEYXRhKSB7XG4gICAgICBpZiAobW9ja0RhdGEubWVzc2FnZXMpIHtcbiAgICAgICAgc2V0TWVzc2FnZXMobW9ja0RhdGEubWVzc2FnZXMpO1xuICAgICAgfVxuICAgICAgaWYgKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKSB7XG4gICAgICAgIHNldFN1Z2dlc3Rpb25zKG1vY2tEYXRhLnN1Z2dlc3Rpb25zKTtcbiAgICAgIH1cbiAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG4gICAgfVxuICB9LCBbcHJldmlld01vZGUsIG1vY2tEYXRhLCBzZXRNZXNzYWdlcywgc2V0U3VnZ2VzdGlvbnMsIHNldElzSW5pdGlhbGl6ZWRdKTtcblxuICAvLyBUT0RPOiBFbnN1cmUgdGhhdCBhbXBsaXR1ZGUgZXZlbnRzIGFyZSBiZWluZyBlbWl0dGVkXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBzdHJlYW1pbmcgcmVzcG9uc2VzIHRvIGZ1bmN0aW9uXG5cbiAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBoeWRyYXRpb24gb2YgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGJhY2tlbmQgb24gaW5pdGlhbGl6YXRpb25cbiAgY29uc3Qgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3RQYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyhyZXF1ZXN0UGF5bG9hZCk7XG4gICAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBwZW5kaW5nIG1lc3NhZ2UgZnJvbSB0aGUgdXNlciBldmVudHNcbiAgICAgICAgcmVxdWVzdFBheWxvYWQudXNlckV2ZW50cz8ubWFwKHVzZXJFdmVudCA9PiBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZChbdXNlckV2ZW50LmV2ZW50SWRdKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ2Vycm9yIHNlbmRpbmcgbWVzc2FnZScsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtnZXRTdHJlYW1pbmdSZXNwb25zZXMsIHNldElzSW5pdGlhbGl6ZWQsIG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkXSxcbiAgKTtcblxuICAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGV2ZW50IGxvb3AgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgYmFja2VuZCBBUElcbiAgLy8gSXQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBtZXNzYWdlcyB0byBiZSBzZW50IHRvIHRoZSBiYWNrZW5kXG4gIC8vIEl0IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2VzIHRvIHRoZSBiYWNrZW5kIGFuZCByZWNlaXZpbmcgdGhlIHJlc3BvbnNlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNraXAgYmFja2VuZCBjb21tdW5pY2F0aW9uIGluIHByZXZpZXcgbW9kZVxuICAgIGlmIChwcmV2aWV3TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBXYWl0IGZvciB0aGUgbWVzc2FnZXMgdG8gYmUgaHlkcmF0ZWQgYmVmb3JlIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmRcbiAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDAgJiYgIWlzU2VuZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCkge1xuICAgICAgICAgIGNvbnN0IHsgZm9ybVJlc3BvbnNlSWQsIGZpbGxlZFNjaGVtYSB9ID0gdXNlckV2ZW50LmF0dHJpYnV0ZXM7XG4gICAgICAgICAgc2V0TWVzc2FnZXMocHJldk1lc3NhZ2VzU3RhdGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVN1Ym1pdHRlZENvbnRlbnQgPSBidWlsZEZvcm1TdWJtaXR0ZWREaXNwbGF5Q29udGVudChcbiAgICAgICAgICAgICAgcHJldk1lc3NhZ2VzU3RhdGUsXG4gICAgICAgICAgICAgIGZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICAgICBmaWxsZWRTY2hlbWEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgbmV3VXNlck1lc3NhZ2UgPSBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UodXNlckV2ZW50LCBmb3JtU3VibWl0dGVkQ29udGVudCk7XG4gICAgICAgICAgICBjb25zdCB0dXJuc1dpdGhvdXRGb3JtID0gcHJldk1lc3NhZ2VzU3RhdGVcbiAgICAgICAgICAgICAgLm1hcCh0dXJuID0+XG4gICAgICAgICAgICAgICAgdHVybi5maWx0ZXIobXNnID0+ICEobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlLkZvcm0gJiYgbXNnLmlkID09PSBmb3JtUmVzcG9uc2VJZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIodHVybiA9PiB0dXJuLmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50dXJuc1dpdGhvdXRGb3JtLCBbbmV3VXNlck1lc3NhZ2VdXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGlzU2VuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgaXNIeWRyYXRlZCxcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3VnZ2VzdGlvbnMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBzZXRNZXNzYWdlcyxcbiAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQsXG4gICAgc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgdXNlckV2ZW50cyxcbiAgICB1c2VyUXVldWVFdmVudENvdW50LFxuICAgIHByZXZpZXdNb2RlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0SHlkcmF0aW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzSHlkcmF0ZWQpIHtcbiAgICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBoeWRyYXRpbmcgbWVzc2FnZXMnLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNIeWRyYXRlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgc3RhcnRIeWRyYXRpb24oKTtcbiAgfSwgW2lzSW5pdGlhbGl6ZWQsIGh5ZHJhdGVNZXNzYWdlcywgcHJldmlld01vZGUsIGlzSHlkcmF0ZWRdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKGNvbnRleHRXaWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoY29udGV4dFdpZGdldCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBK0NBLE1BQU0sb0JBQW9CLGNBQXNDLE9BQVU7QUFFMUUsTUFBTSxTQUFTLElBQUlBLGVBQU8sb0JBQW9CO0FBUTlDLE1BQWFDLHNCQUF5RCxFQUNwRSxVQUNBLGNBQWMsT0FDZCxlQUNJO0NBQ0osTUFBTSxhQUFhLGFBQWEsbUJBQW1CO0NBQ25ELE1BQU0sc0JBQXNCLGFBQWEsd0JBQXdCO0NBQ2pFLE1BQU0sMEJBQTBCLFdBQVcscUJBQXFCO0NBQ2hFLE1BQU0sQ0FBQyxZQUFZLGlCQUFpQixTQUFTLE1BQU07Q0FDbkQsTUFBTSxDQUFDLGVBQWUsb0JBQW9CLFFBQVEsZ0JBQWdCO0NBQ2xFLE1BQU0sa0JBQWtCLDBCQUEwQjtDQUNsRCxNQUFNLGNBQWMsV0FBVyxhQUFhO0NBQzVDLE1BQU0saUJBQWlCLFdBQVcsZ0JBQWdCO0NBRWxELE1BQU0sRUFBRSx1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
|
|
@@ -22,6 +22,7 @@ let jotai = require("jotai");
|
|
|
22
22
|
let uuid = require("uuid");
|
|
23
23
|
|
|
24
24
|
//#region src/contexts/salesAgentContext/salesAgentService.ts
|
|
25
|
+
const logger = new require_logger.default("salesAgentService");
|
|
25
26
|
const inputPropsToTrackingProps = (payload) => {
|
|
26
27
|
const [userEvent] = payload.userEvents || [];
|
|
27
28
|
if (userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.SuggestionClicked) return {
|
|
@@ -118,7 +119,7 @@ const processStreamingResponse = async (stream, messageInterceptor, setMessages,
|
|
|
118
119
|
if (message.type === require_message.MessageType.Review) responseAnalytics["chat.review_cards_returned"] = (responseAnalytics["chat.review_cards_returned"] || 0) + 1;
|
|
119
120
|
lastMessage = updateMessageState(message, lastMessage, setMessages);
|
|
120
121
|
} catch (error) {
|
|
121
|
-
|
|
122
|
+
logger.logWarn("Failed to generate responses from stream", error, {
|
|
122
123
|
lastResponse: lastMessage,
|
|
123
124
|
response
|
|
124
125
|
});
|
|
@@ -214,4 +215,4 @@ const useSalesAgentService = () => {
|
|
|
214
215
|
|
|
215
216
|
//#endregion
|
|
216
217
|
exports.useSalesAgentService = useSalesAgentService;
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJyZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+IiwibWVzc2FnZUZyb21SZXNwb25zZSIsImVycm9yOiB1bmtub3duIiwidXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlIiwicmVxdWVzdEZhaWx1cmVBdG9tIiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInJlc3BvbnNlU3RyZWFtaW5nQXRvbSIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJzdWNjZXNzZnVsUmVzcG9uc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQiLCJDb21tZXJjZUFwaUNsaWVudCIsInJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGlvblBhcmFtcyxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21RdWVyeUV2ZW50LCBtZXNzYWdlRnJvbVJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3V0aWxzJztcbmltcG9ydCB7IGFwcERldGFpbHNBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBhbmFseXRpY3NDb250ZXh0QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQge1xuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlcXVlc3RGYWlsdXJlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlSW50ZXJjZXB0b3IgfSBmcm9tICdzcmMvaW50ZXJjZXB0b3JzL3VzZU1lc3NhZ2VJbnRlcmNlcHRvcic7XG5pbXBvcnQge1xuICBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLFxuICBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLFxufSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgU3RhdHVzQ29kZUVycm9yIH0gZnJvbSAnLi9zdGF0dXNDb2RlRXJyb3InO1xuXG5pbnRlcmZhY2UgU2FsZXNBZ2VudFNlcnZpY2Uge1xuICBjcmVhdGVSZXNwb25zZVBheWxvYWQ6IChwYXlsb2FkOiB7XG4gICAgdXNlckV2ZW50czogVXNlckV2ZW50W107XG4gICAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIH0pID0+IE5leHRNZXNzYWdlUmVxdWVzdDtcbiAgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzOiAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBnZXRTdWdnZXN0aW9uczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgaHlkcmF0ZU1lc3NhZ2VzOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jb25zdCBpbnB1dFByb3BzVG9UcmFja2luZ1Byb3BzID0gKFxuICBwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QsXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFt1c2VyRXZlbnRdID0gcGF5bG9hZC51c2VyRXZlbnRzIHx8IFtdO1xuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlX2lkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3N1Z2dlc3Rpb25fY2xpY2tlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50LFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlX2lkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3F1ZXJ5X3R5cGVkJyxcbiAgICAgIHVzZXJfcXVlcnk6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHt9O1xufTtcblxuY29uc3QgaW5wdXRQcm9wc1RvRW52aXZlVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3N1Z2dlc3Rpb24nLFxuICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0JzogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCxcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy5zdWdnZXN0aW9uSWQsXG4gICAgICAnY2hhdC51c2VyX3R5cGVkJzogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICd0ZXh0JyxcbiAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnVzZXJUeXBlZCxcbiAgICB9O1xuICB9XG4gIGlmIChcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCB8fFxuICAgIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQgfHxcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0XG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRRdWVyeVBhcmFtID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICByZXR1cm4gdXJsT2JqLnNlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbn07XG5cbmNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChfZXJyb3I6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICBpZiAoX2Vycm9yIGluc3RhbmNlb2YgU3RhdHVzQ29kZUVycm9yKSB7XG4gICAgaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjMpIHtcbiAgICAgIHJldHVybiAnRHVlIHRvIHZpb2xhdGlvbiBvZiB0ZXJtcyBhbmQgc2VydmljZXMsIHRoaXMgc2Vzc2lvbiBoYXMgYmVlbiB0ZXJtaW5hdGVkLic7XG4gICAgfVxuICAgIC8vIEtlZXBpbmcgdGhlIDQyOSBlcnJvciBtZXNzYWdlcyBhcyB0aGUgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGZvciBub3cuXG4gICAgLy8gaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjkpIHtcbiAgICAvLyAgIHJldHVybiBcIkknbSBzb3JyeSEgVGhlIHN5c3RlbSBpcyBidXN5IHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLlwiO1xuICAgIC8vIH1cbiAgfVxuXG4gIHJldHVybiBcIkknbSBzb3JyeSEgSSdtIGhhdmluZyB0cm91YmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHJlZnJlc2ggdGhlIHBhZ2Ugb3IgdHJ5IGFnYWluIGluIGEgbW9tZW50LlwiO1xufTtcblxuY29uc3QgaGFuZGxlU3RyZWFtaW5nRXJyb3IgPSAoXG4gIF9lcnJvcjogdW5rbm93bixcbiAgc2V0UmVxdWVzdEZhaWx1cmU6IChmYWlsZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbikgPT4ge1xuICBzZXRSZXF1ZXN0RmFpbHVyZSh0cnVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2UoX2Vycm9yKTtcbiAgc2V0TWVzc2FnZXMocHJldiA9PiBbXG4gICAgLi4ucHJldixcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLkFzc2lzdGFudCxcbiAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuVGV4dCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICBdKTtcbn07XG5cbmNvbnN0IHVwZGF0ZU1lc3NhZ2VTdGF0ZSA9IChcbiAgbWVzc2FnZTogTWVzc2FnZSxcbiAgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbik6IE1lc3NhZ2UgPT4ge1xuICBpZiAobGFzdE1lc3NhZ2UgPT0gbnVsbCkge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYsIFttZXNzYWdlXV0pO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIGlmIChsYXN0TWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5UZXh0ICYmIG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCkge1xuICAgIGNvbnN0IG5ld01lc3NhZ2UgPSB7XG4gICAgICAuLi5sYXN0TWVzc2FnZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLmxhc3RNZXNzYWdlLm1ldGFkYXRhLFxuICAgICAgICBjb250ZW50OiBsYXN0TWVzc2FnZS5tZXRhZGF0YS5jb250ZW50ICsgbWVzc2FnZS5tZXRhZGF0YS5jb250ZW50LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbGFzdFR1cm4gPSBwcmV2W3ByZXYubGVuZ3RoIC0gMV07XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksXG4gICAgICAgIFsuLi5sYXN0VHVybi5zbGljZSgwLCBsYXN0VHVybi5sZW5ndGggLSAxKSwgbmV3TWVzc2FnZV0sXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICB9XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYuc2xpY2UoMCwgcHJldi5sZW5ndGggLSAxKSwgWy4uLnByZXZbcHJldi5sZW5ndGggLSAxXSwgbWVzc2FnZV1dKTtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG5jb25zdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UgPSBhc3luYyAoXG4gIHN0cmVhbTogQXN5bmNJdGVyYWJsZTxSZXNwb25zZT4sXG4gIG1lc3NhZ2VJbnRlcmNlcHRvcjogeyBpbnRlcmNlcHQ6IChyZXNwb25zZT86IFJlc3BvbnNlKSA9PiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmc6IChyZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbikgPT4gdm9pZCxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+PiA9PiB7XG4gIGxldCBsYXN0TWVzc2FnZTogTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmcodHJ1ZSk7XG4gIGNvbnN0IHJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmdbXT4gPSB7fTtcbiAgY29uc3QgcHJvZHVjdElkcyA9IFtdO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcmVzcG9uc2Ugb2Ygc3RyZWFtKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXNzYWdlSW50ZXJjZXB0b3IuaW50ZXJjZXB0KHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXNwb25zZSBmcm9tIHN0cmVhbScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZUZyb21SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gdHJhbnNmb3JtIEFQSSByZXNwb25zZSB0byBjbGllbnQgbWVzc2FnZScpO1xuICAgICAgfVxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdCkge1xuICAgICAgICBjb25zdCBjYXJkc0NvdW50ZXIgPSAocmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9jYXJkc19yZXR1cm5lZCddIGFzIG51bWJlcikgfHwgMDtcbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9jYXJkc19yZXR1cm5lZCddID0gY2FyZHNDb3VudGVyICsgMTtcblxuICAgICAgICBjb25zdCBwcm9kdWN0SWRzID0gcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnXSBhcyBzdHJpbmdbXTtcbiAgICAgICAgaWYgKCFwcm9kdWN0SWRzKSB7XG4gICAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnXSA9IFttZXNzYWdlLm1ldGFkYXRhLmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9kdWN0SWRzLnB1c2gobWVzc2FnZS5tZXRhZGF0YS5pZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlJldmlldykge1xuICAgICAgICBjb25zdCBjYXJkc0NvdW50ZXIgPSAocmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJ10gYXMgbnVtYmVyKSB8fCAwO1xuICAgICAgICByZXNwb25zZUFuYWx5dGljc1snY2hhdC5yZXZpZXdfY2FyZHNfcmV0dXJuZWQnXSA9IGNhcmRzQ291bnRlciArIDE7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIHN1cHBvcnQgZm9yIENoYXRTZWFyY2ggbWVzc2FnZXMgYXQgdGhlIGN1cnJlbnQgdGltZS5cbiAgICAgIC8vIFBlcmhhcHMgd2UgYWRkIHN1cHBvcnQgYmFjayBpbiB0aGUgZnV0dXJlXG4gICAgICAvLyBpZiAobWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5Qcm9kdWN0U2VhcmNoKSB7XG4gICAgICAvLyAgIGhhbmRsZVNlYXJjaFJlc3VsdHMobWVzc2FnZSk7XG4gICAgICAvLyAgIGhhc1NlYXJjaFJlc3VsdHMgPSB0cnVlO1xuICAgICAgLy8gICBzZXRTZWFyY2hJc0xvYWRpbmcoZmFsc2UpOyAvLyBVcGRhdGUgc2VhcmNoIGxvYWRpbmcgaW1tZWRpYXRlbHkgd2hlbiByZXN1bHRzIGFyZSBkZXRlY3RlZFxuICAgICAgLy8gfVxuXG4gICAgICBsYXN0TWVzc2FnZSA9IHVwZGF0ZU1lc3NhZ2VTdGF0ZShtZXNzYWdlLCBsYXN0TWVzc2FnZSEsIHNldE1lc3NhZ2VzKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgTG9nZ2VyLmxvZ1dhcm4oYFtzcGlmZnktYWldIEZhaWxlZCB0byBnZW5lcmF0ZSByZXNwb25zZXMgZnJvbSBzdHJlYW1gLCBlcnJvciwge1xuICAgICAgICBsYXN0UmVzcG9uc2U6IGxhc3RNZXNzYWdlLFxuICAgICAgICByZXNwb25zZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlQW5hbHl0aWNzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRTZXJ2aWNlOiAoKSA9PiBTYWxlc0FnZW50U2VydmljZSA9ICgpID0+IHtcbiAgY29uc3Qgc2V0UmVxdWVzdEZhaWx1cmUgPSB1c2VTZXRBdG9tKHJlcXVlc3RGYWlsdXJlQXRvbSk7XG4gIGNvbnN0IHNldE1lc3NhZ2VzID0gdXNlU2V0QXRvbShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzZXRTdWdnZXN0aW9ucyA9IHVzZVNldEF0b20oc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3Qgc2V0UGVuZGluZ1Jlc3BvbnNlID0gdXNlU2V0QXRvbShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3Qgc2V0UmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VTZXRBdG9tKHJlc3BvbnNlU3RyZWFtaW5nQXRvbSk7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRleHQgPSB1c2VBdG9tVmFsdWUoYW5hbHl0aWNzQ29udGV4dEF0b20pO1xuICBjb25zdCBtZXNzYWdlSW50ZXJjZXB0b3IgPSB1c2VNZXNzYWdlSW50ZXJjZXB0b3IoKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UoKTtcbiAgY29uc3QgY29udGV4dCA9IHVzZUF0b21WYWx1ZShhcHBEZXRhaWxzQXRvbSk7XG5cbiAgY29uc3QgY3JlYXRlUmVzcG9uc2VQYXlsb2FkID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHVzZXJFdmVudHMsXG4gICAgICBnZW5lcmF0aW9uUGFyYW1zLFxuICAgIH06IHtcbiAgICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgICAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gICAgfSk6IE5leHRNZXNzYWdlUmVxdWVzdCA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSBmZWF0dXJlRmxhZ1NlcnZpY2U/LmZlYXR1cmVGbGFnU2VydmljZT8uZ2V0RmVhdHVyZUZsYWdzKCkgfHwge307XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlQ29uZmlnVmVyc2lvbiA9XG4gICAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICAgIGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG92ZXJyaWRlTW9kZWxEYXRldGltZSA9IGdldFF1ZXJ5UGFyYW0oJ292ZXJyaWRlX21vZGVsX2RhdGV0aW1lJykgfHwgdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgdXNlckV2ZW50cyxcbiAgICAgICAgZmVhdHVyZUZsYWdzLFxuICAgICAgICBnZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICAgIG92ZXJyaWRlTW9kZWxEYXRldGltZSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBbY29udGV4dCwgZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2VdLFxuICApO1xuXG4gIGNvbnN0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICBsZXQgc3VjY2Vzc2Z1bFJlc3BvbnNlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlKHRydWUpO1xuICAgICAgc2V0U3VnZ2VzdGlvbnMoW10pO1xuICAgICAgY29uc3Qgc3RyZWFtID0gQ29tbWVyY2VBcGlDbGllbnQuZ2V0TmV4dFJlc3BvbnNlU3RyZWFtaW5nKHBheWxvYWQpO1xuICAgICAgbGV0IHJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFJlcXVlc3RGYWlsdXJlKGZhbHNlKTtcblxuICAgICAgICByZXNwb25zZUFuYWx5dGljcyA9IGF3YWl0IHByb2Nlc3NTdHJlYW1pbmdSZXNwb25zZShcbiAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgbWVzc2FnZUludGVyY2VwdG9yLFxuICAgICAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgICApO1xuICAgICAgICBzdWNjZXNzZnVsUmVzcG9uc2UgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgQ2hyb21lIEV4dGVuc2lvbiBjb21tdW5pY2F0aW9uXG4gICAgICAgIC8vIGF3YWl0IGxvZ0J1bmRsZUV2ZW50KHtcbiAgICAgICAgLy8gICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9TVUNDRVNTJyxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgIH0sXG4gICAgICAgIC8vIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBnZXR0aW5nIHN0cmVhbWluZyByZXNwb25zZXMnLCBlKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgIC8vIExvZyBmYWlsZWQgbmV4dF9yZXNwb25zZXMgY2FsbFxuICAgICAgICAvLyBjb25zdCByZXNwb25zZVRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdlcnJvcicsXG4gICAgICAgIC8vICAgZXZlbnQ6ICdORVhUX1JFU1BPTlNFX0ZBSUxFRCcsXG4gICAgICAgIC8vICAgbWVzc2FnZTogYEZhaWxlZCB0byBnZXQgc3RyZWFtaW5nIHJlc3BvbnNlOiAke2V9YCxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgICAgZXJyb3I6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcblxuICAgICAgICBoYW5kbGVTdHJlYW1pbmdFcnJvcihlLCBzZXRSZXF1ZXN0RmFpbHVyZSwgc2V0TWVzc2FnZXMpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgLy8gTG9nIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRBc3Npc3RhbnRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICByZXNwb25zZVRpbWVNczogcmVzcG9uc2VUaW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBzdWNjZXNzZnVsX3Jlc3BvbnNlOiBzdWNjZXNzZnVsUmVzcG9uc2UsXG4gICAgICAgICAgICAuLi5pbnB1dFByb3BzVG9UcmFja2luZ1Byb3BzKHBheWxvYWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlc3BvbnNlLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIC4uLmFuYWx5dGljc0NvbnRleHQsXG4gICAgICAgICAgICAnY2hhdC5yZXNwb25zZV90aW1lX21zJzogcmVzcG9uc2VUaW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAuLi5pbnB1dFByb3BzVG9FbnZpdmVUcmFja2luZ1Byb3BzKHBheWxvYWQpLFxuICAgICAgICAgICAgLi4ucmVzcG9uc2VBbmFseXRpY3MsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFBlbmRpbmdSZXNwb25zZShmYWxzZSk7XG4gICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nKGZhbHNlKTtcbiAgICAgICAgLy8gbG9nUGVyZk1ldHJpYyhQZXJmTWV0cmljc0V2ZW50cy5GaXJzdFJlc3BvbnNlQ29tcGxldGVkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFuYWx5dGljc0NvbnRleHQsXG4gICAgICB0cmFja0V2ZW50LFxuICAgICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICAvLyBsb2dQZXJmTWV0cmljLFxuICAgICAgc2V0UmVxdWVzdEZhaWx1cmUsXG4gICAgICBzZXRTdWdnZXN0aW9ucyxcbiAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlLFxuICAgIF0sXG4gICk7XG5cbiAgY29uc3QgZ2V0U3VnZ2VzdGlvbnMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBuZXdTdWdnZXN0aW9ucyA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRTdWdnZXN0aW9ucyhwYXlsb2FkKTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKG5ld1N1Z2dlc3Rpb25zKTtcbiAgICB9LFxuICAgIFtzZXRTdWdnZXN0aW9uc10sXG4gICk7XG5cbiAgY29uc3QgaHlkcmF0ZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgb3JnSWQsIGNoYXRJZCwgdXNlcklkIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHsgbWVzc2FnZXM6IGV4aXN0aW5nTWVzc2FnZXMgfSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldFJlc3BvbnNlcyhcbiAgICAgIG9yZ0lkLFxuICAgICAgY2hhdElkLFxuICAgICAgdXNlcklkLFxuICAgICk7XG4gICAgc2V0TWVzc2FnZXMoWy4uLmV4aXN0aW5nTWVzc2FnZXNdKTtcbiAgfSwgW2NvbnRleHQsIHNldE1lc3NhZ2VzXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGh5ZHJhdGVNZXNzYWdlcyxcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZDQSxNQUFNLDZCQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQSxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxZQUFZLFVBQVU7RUFDdEIsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsS0FBSSxVQUFVLGFBQWFBLGtEQUFrQixXQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILFFBQU8sRUFBRTs7QUFHWCxNQUFNLG1DQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQSxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxxQkFBcUI7RUFDckIsbUJBQW1CLFVBQVU7RUFDN0IscUJBQXFCLFVBQVUsV0FBVztFQUMxQyxzQkFBc0IsVUFBVSxXQUFXO0VBQzNDLG1CQUFtQjtFQUNwQjtBQUVILEtBQUksVUFBVSxhQUFhQSxrREFBa0IsV0FDM0MsUUFBTztFQUNMLHFCQUFxQjtFQUNyQixtQkFBbUIsVUFBVTtFQUM3QixxQkFBcUIsVUFBVSxXQUFXO0VBQzFDLG1CQUFtQixVQUFVLFdBQVc7RUFDekM7QUFFSCxLQUNFLFVBQVUsYUFBYUEsa0RBQWtCLGFBQ3pDLFVB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
|
|
218
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJyZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+IiwibWVzc2FnZUZyb21SZXNwb25zZSIsImVycm9yOiB1bmtub3duIiwidXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlIiwicmVxdWVzdEZhaWx1cmVBdG9tIiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInJlc3BvbnNlU3RyZWFtaW5nQXRvbSIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJzdWNjZXNzZnVsUmVzcG9uc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQiLCJDb21tZXJjZUFwaUNsaWVudCIsInJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGlvblBhcmFtcyxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21SZXNwb25zZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscyc7XG5pbXBvcnQgeyBhcHBEZXRhaWxzQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgYW5hbHl0aWNzQ29udGV4dEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHtcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXF1ZXN0RmFpbHVyZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUludGVyY2VwdG9yIH0gZnJvbSAnc3JjL2ludGVyY2VwdG9ycy91c2VNZXNzYWdlSW50ZXJjZXB0b3InO1xuaW1wb3J0IHtcbiAgRW52aXZlTWV0cmljc0V2ZW50TmFtZSxcbiAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSxcbn0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVFcnJvciB9IGZyb20gJy4vc3RhdHVzQ29kZUVycm9yJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignc2FsZXNBZ2VudFNlcnZpY2UnKTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRTZXJ2aWNlIHtcbiAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkOiAocGF5bG9hZDoge1xuICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICB9KSA9PiBOZXh0TWVzc2FnZVJlcXVlc3Q7XG4gIGdldFN0cmVhbWluZ1Jlc3BvbnNlczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0U3VnZ2VzdGlvbnM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGh5ZHJhdGVNZXNzYWdlczogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuY29uc3QgaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdzdWdnZXN0aW9uX2NsaWNrZWQnLFxuICAgICAgdXNlcl9xdWVyeTogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCxcbiAgICB9O1xuICB9XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdxdWVyeV90eXBlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbmNvbnN0IGlucHV0UHJvcHNUb0Vudml2ZVRyYWNraW5nUHJvcHMgPSAoXG4gIHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW3VzZXJFdmVudF0gPSBwYXlsb2FkLnVzZXJFdmVudHMgfHwgW107XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdzdWdnZXN0aW9uJyxcbiAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQsXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJzogdXNlckV2ZW50LmF0dHJpYnV0ZXMuc3VnZ2VzdGlvbklkLFxuICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IGZhbHNlLFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgIHJldHVybiB7XG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAndGV4dCcsXG4gICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy51c2VyVHlwZWQsXG4gICAgfTtcbiAgfVxuICBpZiAoXG4gICAgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQgfHxcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0IHx8XG4gICAgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdFxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3BhZ2VfdmlzaXQnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UXVlcnlQYXJhbSA9IChrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgcmV0dXJuIHVybE9iai5zZWFyY2hQYXJhbXMuZ2V0KGtleSk7XG59O1xuXG5jb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoX2Vycm9yOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgaWYgKF9lcnJvciBpbnN0YW5jZW9mIFN0YXR1c0NvZGVFcnJvcikge1xuICAgIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDIzKSB7XG4gICAgICByZXR1cm4gJ0R1ZSB0byB2aW9sYXRpb24gb2YgdGVybXMgYW5kIHNlcnZpY2VzLCB0aGlzIHNlc3Npb24gaGFzIGJlZW4gdGVybWluYXRlZC4nO1xuICAgIH1cbiAgICAvLyBLZWVwaW5nIHRoZSA0MjkgZXJyb3IgbWVzc2FnZXMgYXMgdGhlIGdlbmVyaWMgZXJyb3IgbWVzc2FnZSBmb3Igbm93LlxuICAgIC8vIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDI5KSB7XG4gICAgLy8gICByZXR1cm4gXCJJJ20gc29ycnkhIFRoZSBzeXN0ZW0gaXMgYnVzeSByaWdodCBub3cuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy5cIjtcbiAgICAvLyB9XG4gIH1cblxuICByZXR1cm4gXCJJJ20gc29ycnkhIEknbSBoYXZpbmcgdHJvdWJsZSByaWdodCBub3cuIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHRyeSBhZ2FpbiBpbiBhIG1vbWVudC5cIjtcbn07XG5cbmNvbnN0IGhhbmRsZVN0cmVhbWluZ0Vycm9yID0gKFxuICBfZXJyb3I6IHVua25vd24sXG4gIHNldFJlcXVlc3RGYWlsdXJlOiAoZmFpbGVkOiBib29sZWFuKSA9PiB2b2lkLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pID0+IHtcbiAgc2V0UmVxdWVzdEZhaWx1cmUodHJ1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlKF9lcnJvcik7XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gW1xuICAgIC4uLnByZXYsXG4gICAgW1xuICAgICAge1xuICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Bc3Npc3RhbnQsXG4gICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlRleHQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGNvbnRlbnQ6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgXSk7XG59O1xuXG5jb25zdCB1cGRhdGVNZXNzYWdlU3RhdGUgPSAoXG4gIG1lc3NhZ2U6IE1lc3NhZ2UsXG4gIGxhc3RNZXNzYWdlOiBNZXNzYWdlLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pOiBNZXNzYWdlID0+IHtcbiAgaWYgKGxhc3RNZXNzYWdlID09IG51bGwpIHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LCBbbWVzc2FnZV1dKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuICBpZiAobGFzdE1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCAmJiBtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlRleHQpIHtcbiAgICBjb25zdCBuZXdNZXNzYWdlID0ge1xuICAgICAgLi4ubGFzdE1lc3NhZ2UsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAuLi5sYXN0TWVzc2FnZS5tZXRhZGF0YSxcbiAgICAgICAgY29udGVudDogbGFzdE1lc3NhZ2UubWV0YWRhdGEuY29udGVudCArIG1lc3NhZ2UubWV0YWRhdGEuY29udGVudCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGxhc3RUdXJuID0gcHJldltwcmV2Lmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucHJldi5zbGljZSgwLCBwcmV2Lmxlbmd0aCAtIDEpLFxuICAgICAgICBbLi4ubGFzdFR1cm4uc2xpY2UoMCwgbGFzdFR1cm4ubGVuZ3RoIC0gMSksIG5ld01lc3NhZ2VdLFxuICAgICAgXTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3TWVzc2FnZTtcbiAgfVxuICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksIFsuLi5wcmV2W3ByZXYubGVuZ3RoIC0gMV0sIG1lc3NhZ2VdXSk7XG4gIHJldHVybiBtZXNzYWdlO1xufTtcblxuY29uc3QgcHJvY2Vzc1N0cmVhbWluZ1Jlc3BvbnNlID0gYXN5bmMgKFxuICBzdHJlYW06IEFzeW5jSXRlcmFibGU8UmVzcG9uc2U+LFxuICBtZXNzYWdlSW50ZXJjZXB0b3I6IHsgaW50ZXJjZXB0OiAocmVzcG9uc2U/OiBSZXNwb25zZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nOiAocmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW4pID0+IHZvaWQsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZ1tdPj4gPT4ge1xuICBsZXQgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nKHRydWUpO1xuICBjb25zdCByZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+ID0ge307XG4gIGNvbnN0IHByb2R1Y3RJZHMgPSBbXTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IHJlc3BvbnNlIG9mIHN0cmVhbSkge1xuICAgIHRyeSB7XG4gICAgICBpZiAobWVzc2FnZUludGVyY2VwdG9yLmludGVyY2VwdChyZXNwb25zZSkpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVzcG9uc2UgZnJvbSBzdHJlYW0nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG1lc3NhZ2VGcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBBUEkgcmVzcG9uc2UgdG8gY2xpZW50IG1lc3NhZ2UnKTtcbiAgICAgIH1cbiAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlByb2R1Y3QpIHtcbiAgICAgICAgY29uc3QgY2FyZHNDb3VudGVyID0gKHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnXSBhcyBudW1iZXIpIHx8IDA7XG4gICAgICAgIHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnXSA9IGNhcmRzQ291bnRlciArIDE7XG5cbiAgICAgICAgY29uc3QgcHJvZHVjdElkcyA9IHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJ10gYXMgc3RyaW5nW107XG4gICAgICAgIGlmICghcHJvZHVjdElkcykge1xuICAgICAgICAgIHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJ10gPSBbbWVzc2FnZS5tZXRhZGF0YS5pZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvZHVjdElkcy5wdXNoKG1lc3NhZ2UubWV0YWRhdGEuaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5SZXZpZXcpIHtcbiAgICAgICAgY29uc3QgY2FyZHNDb3VudGVyID0gKHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnJldmlld19jYXJkc19yZXR1cm5lZCddIGFzIG51bWJlcikgfHwgMDtcbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJ10gPSBjYXJkc0NvdW50ZXIgKyAxO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBzdXBwb3J0IGZvciBDaGF0U2VhcmNoIG1lc3NhZ2VzIGF0IHRoZSBjdXJyZW50IHRpbWUuXG4gICAgICAvLyBQZXJoYXBzIHdlIGFkZCBzdXBwb3J0IGJhY2sgaW4gdGhlIGZ1dHVyZVxuICAgICAgLy8gaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdFNlYXJjaCkge1xuICAgICAgLy8gICBoYW5kbGVTZWFyY2hSZXN1bHRzKG1lc3NhZ2UpO1xuICAgICAgLy8gICBoYXNTZWFyY2hSZXN1bHRzID0gdHJ1ZTtcbiAgICAgIC8vICAgc2V0U2VhcmNoSXNMb2FkaW5nKGZhbHNlKTsgLy8gVXBkYXRlIHNlYXJjaCBsb2FkaW5nIGltbWVkaWF0ZWx5IHdoZW4gcmVzdWx0cyBhcmUgZGV0ZWN0ZWRcbiAgICAgIC8vIH1cblxuICAgICAgbGFzdE1lc3NhZ2UgPSB1cGRhdGVNZXNzYWdlU3RhdGUobWVzc2FnZSwgbGFzdE1lc3NhZ2UhLCBzZXRNZXNzYWdlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGxvZ2dlci5sb2dXYXJuKCdGYWlsZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2VzIGZyb20gc3RyZWFtJywgZXJyb3IsIHtcbiAgICAgICAgbGFzdFJlc3BvbnNlOiBsYXN0TWVzc2FnZSxcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcoZmFsc2UpO1xuICB9XG4gIHJldHVybiByZXNwb25zZUFuYWx5dGljcztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50U2VydmljZTogKCkgPT4gU2FsZXNBZ2VudFNlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IHNldFJlcXVlc3RGYWlsdXJlID0gdXNlU2V0QXRvbShyZXF1ZXN0RmFpbHVyZUF0b20pO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHNldFBlbmRpbmdSZXNwb25zZSA9IHVzZVNldEF0b20ocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IHNldFJlc3BvbnNlU3RyZWFtaW5nID0gdXNlU2V0QXRvbShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBhbmFseXRpY3NDb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFuYWx5dGljc0NvbnRleHRBdG9tKTtcbiAgY29uc3QgbWVzc2FnZUludGVyY2VwdG9yID0gdXNlTWVzc2FnZUludGVyY2VwdG9yKCk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYXBwRGV0YWlsc0F0b20pO1xuXG4gIGNvbnN0IGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB1c2VyRXZlbnRzLFxuICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB9OiB7XG4gICAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIH0pOiBOZXh0TWVzc2FnZVJlcXVlc3QgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBvdmVycmlkZU1vZGVsRGF0ZXRpbWUgPSBnZXRRdWVyeVBhcmFtKCdvdmVycmlkZV9tb2RlbF9kYXRldGltZScpIHx8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHMsXG4gICAgICAgIGZlYXR1cmVGbGFncyxcbiAgICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICBvdmVycmlkZU1vZGVsRGF0ZXRpbWUsXG4gICAgICB9O1xuICAgIH0sXG4gICAgW2NvbnRleHQsIGZlYXR1cmVGbGFnU2VydmljZT8uZmVhdHVyZUZsYWdTZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgbGV0IHN1Y2Nlc3NmdWxSZXNwb25zZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSh0cnVlKTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRSZXNwb25zZVN0cmVhbWluZyhwYXlsb2FkKTtcbiAgICAgIGxldCByZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICBzZXRSZXF1ZXN0RmFpbHVyZShmYWxzZSk7XG5cbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3MgPSBhd2FpdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UoXG4gICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgICAgICBzZXRNZXNzYWdlcyxcbiAgICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgICAgKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gdHJ1ZTtcblxuICAgICAgICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIENocm9tZSBFeHRlbnNpb24gY29tbXVuaWNhdGlvblxuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgICAgLy8gICBldmVudDogJ05FWFRfUkVTUE9OU0VfU1VDQ0VTUycsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgZ2V0dGluZyBzdHJlYW1pbmcgcmVzcG9uc2VzJywgZSk7XG4gICAgICAgIHN1Y2Nlc3NmdWxSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAvLyBMb2cgZmFpbGVkIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgLy8gYXdhaXQgbG9nQnVuZGxlRXZlbnQoe1xuICAgICAgICAvLyAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9GQUlMRUQnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gZ2V0IHN0cmVhbWluZyByZXNwb25zZTogJHtlfWAsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICAgIGVycm9yOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSksXG4gICAgICAgIC8vICAgfSxcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgaGFuZGxlU3RyZWFtaW5nRXJyb3IoZSwgc2V0UmVxdWVzdEZhaWx1cmUsIHNldE1lc3NhZ2VzKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIC8vIExvZyBuZXh0X3Jlc3BvbnNlcyBjYWxsXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0QXNzaXN0YW50UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgcmVzcG9uc2VUaW1lTXM6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgc3VjY2Vzc2Z1bF9yZXNwb25zZTogc3VjY2Vzc2Z1bFJlc3BvbnNlLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAuLi5hbmFseXRpY3NDb250ZXh0LFxuICAgICAgICAgICAgJ2NoYXQucmVzcG9uc2VfdGltZV9tcyc6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvRW52aXZlVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICAgIC4uLnJlc3BvbnNlQW5hbHl0aWNzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRQZW5kaW5nUmVzcG9uc2UoZmFsc2UpO1xuICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gICAgICAgIC8vIGxvZ1BlcmZNZXRyaWMoUGVyZk1ldHJpY3NFdmVudHMuRmlyc3RSZXNwb25zZUNvbXBsZXRlZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhbmFseXRpY3NDb250ZXh0LFxuICAgICAgdHJhY2tFdmVudCxcbiAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgLy8gbG9nUGVyZk1ldHJpYyxcbiAgICAgIHNldFJlcXVlc3RGYWlsdXJlLFxuICAgICAgc2V0U3VnZ2VzdGlvbnMsXG4gICAgICBtZXNzYWdlSW50ZXJjZXB0b3IsXG4gICAgICBzZXRNZXNzYWdlcyxcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSxcbiAgICBdLFxuICApO1xuXG4gIGNvbnN0IGdldFN1Z2dlc3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgbmV3U3VnZ2VzdGlvbnMgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0U3VnZ2VzdGlvbnMocGF5bG9hZCk7XG4gICAgICBzZXRTdWdnZXN0aW9ucyhuZXdTdWdnZXN0aW9ucyk7XG4gICAgfSxcbiAgICBbc2V0U3VnZ2VzdGlvbnNdLFxuICApO1xuXG4gIGNvbnN0IGh5ZHJhdGVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IG9yZ0lkLCBjaGF0SWQsIHVzZXJJZCB9ID0gY29udGV4dDtcbiAgICBjb25zdCB7IG1lc3NhZ2VzOiBleGlzdGluZ01lc3NhZ2VzIH0gPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRSZXNwb25zZXMoXG4gICAgICBvcmdJZCxcbiAgICAgIGNoYXRJZCxcbiAgICAgIHVzZXJJZCxcbiAgICApO1xuICAgIHNldE1lc3NhZ2VzKFsuLi5leGlzdGluZ01lc3NhZ2VzXSk7XG4gIH0sIFtjb250ZXh0LCBzZXRNZXNzYWdlc10pO1xuXG4gIHJldHVybiB7XG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN0cmVhbWluZ1Jlc3BvbnNlcyxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBoeWRyYXRlTWVzc2FnZXMsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQ0EsTUFBTSxTQUFTLElBQUlBLHVCQUFPLG9CQUFvQjtBQVk5QyxNQUFNLDZCQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQyxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxZQUFZLFVBQVU7RUFDdEIsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsS0FBSSxVQUFVLGFBQWFBLGtEQUFrQixXQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILFFBQU8sRUFBRTs7QUFHWCxNQUFNLG1DQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQSxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxxQkFBcUI7RUFDckIsbUJBQW1CLFVBQVU7RUFDN0IscUJBQXFCLFVBQVUsV0FBVztFQUMxQyxzQkFBc0IsVUFBVSxXQUFXO0VBQzNDLG1CQUFtQjtFQUNwQjtBQUVILEtBQUksVUFBVSxhQUFhQSxrREFBa0IsV0FDM0MsUUFBTztFQUNMLHFCQUFxQjtFQUNyQixtQkFBbUIsVUFBVTtFQUM3QixxQkFBcUIsVUFBVSxXQUFXO0VBQzFD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
|