@envive-ai/react-hooks 0.3.63 → 0.3.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/application/models/featureGates.cjs +2 -2
  2. package/dist/application/models/featureGates.d.cts +2 -2
  3. package/dist/application/models/featureGates.d.ts +2 -2
  4. package/dist/application/models/featureGates.js +2 -2
  5. package/dist/application/utils/elementObserver.d.cts +2 -2
  6. package/dist/atoms/app/index.d.cts +7 -7
  7. package/dist/atoms/app/index.d.ts +1 -1
  8. package/dist/atoms/app/variant.d.ts +6 -6
  9. package/dist/atoms/chat/chatState.d.cts +19 -19
  10. package/dist/atoms/chat/chatState.d.ts +19 -19
  11. package/dist/atoms/chat/form.d.cts +2 -2
  12. package/dist/atoms/chat/form.d.ts +3 -3
  13. package/dist/atoms/chat/index.d.ts +3 -3
  14. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  15. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  16. package/dist/atoms/chat/messageQueue.d.ts +7 -7
  17. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  18. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  19. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  20. package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
  21. package/dist/atoms/chat/replies.d.cts +3 -3
  22. package/dist/atoms/chat/suggestions.d.ts +3 -3
  23. package/dist/atoms/envive/enviveConfig.d.cts +14 -14
  24. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  25. package/dist/atoms/org/customerService.d.cts +6 -6
  26. package/dist/atoms/org/customerService.d.ts +6 -6
  27. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  28. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  29. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  30. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  31. package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
  32. package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
  33. package/dist/atoms/search/types.d.cts +1 -1
  34. package/dist/atoms/search/utils.d.cts +1 -1
  35. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  36. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  37. package/dist/contexts/pageContext/pageContext.cjs +12 -24
  38. package/dist/contexts/pageContext/pageContext.js +12 -24
  39. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  40. package/dist/contexts/types.d.cts +1 -1
  41. package/dist/contexts/types.d.ts +1 -1
  42. package/dist/contexts/typesV3.cjs +8 -1
  43. package/dist/contexts/typesV3.d.cts +23 -6
  44. package/dist/contexts/typesV3.d.ts +23 -6
  45. package/dist/contexts/typesV3.js +8 -2
  46. package/dist/hooks/Intersection/useIntersection.cjs +9 -2
  47. package/dist/hooks/Intersection/useIntersection.d.cts +2 -2
  48. package/dist/hooks/Intersection/useIntersection.d.ts +2 -2
  49. package/dist/hooks/Intersection/useIntersection.js +9 -2
  50. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  51. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +12 -3
  52. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +2 -1
  53. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +2 -1
  54. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +13 -4
  55. package/dist/hooks/WidgetLoadDiagnostics/index.cjs +4 -0
  56. package/dist/hooks/WidgetLoadDiagnostics/index.d.cts +2 -0
  57. package/dist/hooks/WidgetLoadDiagnostics/index.d.ts +2 -0
  58. package/dist/hooks/WidgetLoadDiagnostics/index.js +3 -0
  59. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.cjs +122 -0
  60. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.cts +48 -0
  61. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts +48 -0
  62. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.js +120 -0
  63. package/dist/hooks/utils.d.cts +1 -1
  64. package/dist/hooks/utils.d.ts +1 -1
  65. package/dist/services/amplitudeService/eventNames.cjs +2 -1
  66. package/dist/services/amplitudeService/eventNames.d.cts +2 -1
  67. package/dist/services/amplitudeService/eventNames.d.ts +2 -1
  68. package/dist/services/amplitudeService/eventNames.js +2 -1
  69. package/dist/services/enviveConfigService/enviveConfigService.cjs +21 -35
  70. package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -2
  71. package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -2
  72. package/dist/services/enviveConfigService/enviveConfigService.js +21 -35
  73. package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +15 -16
  74. package/dist/services/enviveConfigService/fetchBootstrapConfig.js +15 -16
  75. package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +1 -69
  76. package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -69
  77. package/dist/services/featureFlagService/index.cjs +7 -5
  78. package/dist/services/featureFlagService/index.d.cts +2 -1
  79. package/dist/services/featureFlagService/index.d.ts +2 -1
  80. package/dist/services/featureFlagService/index.js +7 -5
  81. package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +3 -2
  82. package/dist/services/ga4ProjectionService/ga4EventSchema.js +3 -2
  83. package/dist/services/hardcopyService/hardcopyService.cjs +12 -3
  84. package/dist/services/hardcopyService/hardcopyService.d.cts +3 -1
  85. package/dist/services/hardcopyService/hardcopyService.d.ts +3 -1
  86. package/dist/services/hardcopyService/hardcopyService.js +12 -3
  87. package/package.json +5 -1
  88. package/src/application/models/featureGates.ts +11 -8
  89. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +4 -59
  90. package/src/contexts/pageContext/pageContext.tsx +20 -41
  91. package/src/contexts/typesV3.ts +22 -4
  92. package/src/hooks/Intersection/useIntersection.ts +11 -0
  93. package/src/hooks/TrackComponentVisibleEvent/__tests__/useTrackComponentVisibleEvent.test.tsx +64 -0
  94. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +23 -4
  95. package/src/hooks/WidgetLoadDiagnostics/__tests__/useWidgetLoadDiagnostics.test.ts +161 -0
  96. package/src/hooks/WidgetLoadDiagnostics/index.ts +5 -0
  97. package/src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts +178 -0
  98. package/src/services/amplitudeService/eventNames.ts +4 -0
  99. package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +72 -158
  100. package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +111 -13
  101. package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +161 -490
  102. package/src/services/enviveConfigService/enviveConfigService.ts +51 -87
  103. package/src/services/enviveConfigService/fetchBootstrapConfig.ts +74 -66
  104. package/src/services/enviveConfigService/fetchGraphQLConfig.ts +0 -120
  105. package/src/services/featureFlagService/__tests__/getFeatureFlagOverrides.test.ts +54 -0
  106. package/src/services/featureFlagService/index.ts +19 -6
  107. package/src/services/ga4ProjectionService/ga4EventSchema.ts +5 -0
  108. package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +16 -5
  109. package/src/services/hardcopyService/hardcopyService.ts +10 -2
  110. package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +0 -42
  111. package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +0 -41
  112. package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +0 -55
@@ -21,8 +21,9 @@ declare class FeatureFlagService {
21
21
  getFeatureFlags: () => Record<string, boolean>;
22
22
  getFullFlagValue: (featureGate: FeatureGates) => FullFlagValue;
23
23
  getFullFlagValues: () => Record<string, FullFlagValue>;
24
+ static getFeatureFlagOverrides(): Record<string, boolean>;
24
25
  static persistFeatureGateOverrides(): void;
25
26
  }
26
27
  //#endregion
27
28
  export { FeatureFlagService, FullFlagValue };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlL2luZGV4LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gICAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gICAgaW5pdGlhbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RvcmVkX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGZlYXR1cmVHYXRlcztcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pO1xuICAgIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBpc0ZlYXR1cmVHYXRlRW5hYmxlZDogKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IGJvb2xlYW47XG4gICAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZDogKCkgPT4gYm9vbGVhbjtcbiAgICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIGdldEZ1bGxGbGFnVmFsdWU6IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBGdWxsRmxhZ1ZhbHVlO1xuICAgIGdldEZ1bGxGbGFnVmFsdWVzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPjtcbiAgICBzdGF0aWMgcGVyc2lzdEZlYXR1cmVHYXRlT3ZlcnJpZGVzKCk6IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLGdCQUFnQixDQUFDLElBQUc7QUFDL0IsSUFBVyxxQkFBVTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlL2luZGV4LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gICAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gICAgaW5pdGlhbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RvcmVkX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGZlYXR1cmVHYXRlcztcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pO1xuICAgIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBpc0ZlYXR1cmVHYXRlRW5hYmxlZDogKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IGJvb2xlYW47XG4gICAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZDogKCkgPT4gYm9vbGVhbjtcbiAgICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIGdldEZ1bGxGbGFnVmFsdWU6IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBGdWxsRmxhZ1ZhbHVlO1xuICAgIGdldEZ1bGxGbGFnVmFsdWVzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPjtcbiAgICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxnQkFBZ0IsQ0FBQyxJQUFHO0FBQy9CLElBQVcscUJBQVU7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
@@ -86,16 +86,18 @@ var FeatureFlagService = class FeatureFlagService {
86
86
  return storedOverride;
87
87
  }
88
88
  }
89
- static persistFeatureGateOverrides() {
90
- if (typeof window === "undefined" || typeof window.localStorage === "undefined") return;
91
- const overrides = Object.values(FeatureGates).map((featureGate) => [featureGate, FeatureFlagService.getFeatureFlagOverride(featureGate)]).filter(([, value]) => value !== void 0).reduce((acc, [key, value]) => ({
89
+ static getFeatureFlagOverrides() {
90
+ return Object.values(FeatureGates).map((featureGate) => [featureGate, FeatureFlagService.getFeatureFlagOverride(featureGate)]).filter(([, value]) => value !== void 0).reduce((acc, [key, value]) => ({
92
91
  ...acc,
93
92
  [key]: value
94
93
  }), {});
95
- window.localStorage.setItem(FEATURE_FLAGS_STORAGE_KEY, JSON.stringify(overrides));
94
+ }
95
+ static persistFeatureGateOverrides() {
96
+ if (typeof window === "undefined" || typeof window.localStorage === "undefined") return;
97
+ window.localStorage.setItem(FEATURE_FLAGS_STORAGE_KEY, JSON.stringify(FeatureFlagService.getFeatureFlagOverrides()));
96
98
  }
97
99
  };
98
100
 
99
101
  //#endregion
100
102
  export { FeatureFlagService };
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJmZWF0dXJlR2F0ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5cbmNvbnN0IEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVkgPSAnc3BpZmZ5LWZlYXR1cmUtZmxhZ3MnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZWF0dXJlRmxhZ1NlcnZpY2UnKTtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gS2VwdCBmcmVlIG9mIFJlYWN0IGltcG9ydHM6IHRoZSBpbmplY3Rpb24gYnVuZGxlIGNvbnN0cnVjdHMgdGhpcyBzZXJ2aWNlXG4vLyBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciB0byBsb2FkIHRoZSBSZWFjdCBhcHAsIGFuZCBwdWxsaW5nIFJlYWN0IGludG9cbi8vIHRoYXQgcHJlLWNvbmZpZyBjb2RlIHBhdGggd291bGQgcHV0IGl0IG9uIHRoZSBlYWdlciBjcml0aWNhbCBjaHVuay5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXM6IGVycm9yIHBhcnNpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBxdWVyeU92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHF1ZXJ5T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBVUkwgcGFyYW0uIE5ldyB2YWx1ZTogJHtxdWVyeU92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHF1ZXJ5T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmICh3aW5kb3dPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHdpbmRvdyBwYXJhbS4gTmV3IHZhbHVlOiAke3dpbmRvd092ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHdpbmRvd092ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZE92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoc3RvcmVkT3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBzdG9yZWQgdmFsdWUuIE5ldyB2YWx1ZTogJHtzdG9yZWRPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdG9yZWRPdmVycmlkZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcblxuICAgIGNvbnN0IGZlYXR1cmVGbGFnT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKGZlYXR1cmVGbGFnT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgaWYgKGdhdGVWYWx1ZSA9PSBudWxsIHx8IGdhdGVWYWx1ZS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSB2YWx1ZSBpcyB1bmRlZmluZWQgLSByZXR1cm5pbmcgZmFsc2VgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGdhdGVWYWx1ZS52YWx1ZTtcbiAgfTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdGFuZGFyZCBvdmVycmlkZXMgd29yayBhcyBleHBlY3RlZFxuICBpc0NsaWVudFNlc3Npb25FbmFibGVkID0gKCk6IGJvb2xlYW4gPT5cbiAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Jc0NsaWVudFNlc3Npb25FbmFibGVkKTtcblxuICBnZXRGZWF0dXJlRmxhZ3MgPSAoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZSA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogRnVsbEZsYWdWYWx1ZSA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuICAgIHJldHVybiB7XG4gICAgICByZXNvbHZlZDogdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBpbml0aWFsOiBnYXRlVmFsdWU/LnZhbHVlLFxuICAgICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgc3RvcmVkX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgIH07XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZXMgPSAoKTogUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4gPT4ge1xuICAgIGNvbnN0IGZlYXR1cmVHYXRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgdGhpcy5nZXRGdWxsRmxhZ1ZhbHVlKGZlYXR1cmVHYXRlKSxcbiAgICBdKTtcblxuICAgIHJldHVybiBmZWF0dXJlR2F0ZXMubGVuZ3RoID4gMFxuICAgICAgPyBmZWF0dXJlR2F0ZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+PigoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBlbnRyeSBhcyBbRmVhdHVyZUdhdGVzLCBGdWxsRmxhZ1ZhbHVlXTtcbiAgICAgICAgICBpZiAobmFtZSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtgZmVhdHVyZV9nYXRlLiR7bmFtZX1gXTogdmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICA6IHt9O1xuICB9O1xuXG4gIHN0YXRpYyBwZXJzaXN0RmVhdHVyZUdhdGVPdmVycmlkZXMoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvdmVycmlkZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgIC5tYXAoXG4gICAgICAgIGZlYXR1cmVHYXRlID0+XG4gICAgICAgICAgW2ZlYXR1cmVHYXRlLCBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSldIGFzIGNvbnN0LFxuICAgICAgKVxuICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXldOiB2YWx1ZSEgfSksIHt9KTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkob3ZlcnJpZGVzKSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQU0sNEJBQTRCO0FBRWxDLE1BQU0sU0FBUyxJQUFJQSxlQUFPLHFCQUFxQjtBQWEvQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBa0YxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxXQUFPLFNBQ0wsb0NBQW9DLFlBQVksdUNBQ2pEO0FBQ0QsV0FBTzs7QUFFVCxVQUFPLFVBQVU7O3NDQUtqQixLQUFLLHFCQUFxQixhQUFhLHVCQUF1QjsrQkFFZjtBQUMvQyxVQUFPLE9BQU8sWUFDWixPQUFPLE9BQU8sYUFBYSxDQUFDLEtBQUssZ0JBQThCLENBQzdELGFBQ0EsS0FBSyxxQkFBcUIsWUFBWSxDQUN2QyxDQUFDLENBQ0g7OzJCQUdpQixnQkFBNkM7R0FDL0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlB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
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJmZWF0dXJlR2F0ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5cbmNvbnN0IEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVkgPSAnc3BpZmZ5LWZlYXR1cmUtZmxhZ3MnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZWF0dXJlRmxhZ1NlcnZpY2UnKTtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gS2VwdCBmcmVlIG9mIFJlYWN0IGltcG9ydHM6IHRoZSBpbmplY3Rpb24gYnVuZGxlIGNvbnN0cnVjdHMgdGhpcyBzZXJ2aWNlXG4vLyBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciB0byBsb2FkIHRoZSBSZWFjdCBhcHAsIGFuZCBwdWxsaW5nIFJlYWN0IGludG9cbi8vIHRoYXQgcHJlLWNvbmZpZyBjb2RlIHBhdGggd291bGQgcHV0IGl0IG9uIHRoZSBlYWdlciBjcml0aWNhbCBjaHVuay5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXM6IGVycm9yIHBhcnNpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBxdWVyeU92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHF1ZXJ5T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBVUkwgcGFyYW0uIE5ldyB2YWx1ZTogJHtxdWVyeU92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHF1ZXJ5T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmICh3aW5kb3dPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHdpbmRvdyBwYXJhbS4gTmV3IHZhbHVlOiAke3dpbmRvd092ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHdpbmRvd092ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZE92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoc3RvcmVkT3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBzdG9yZWQgdmFsdWUuIE5ldyB2YWx1ZTogJHtzdG9yZWRPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdG9yZWRPdmVycmlkZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcblxuICAgIGNvbnN0IGZlYXR1cmVGbGFnT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKGZlYXR1cmVGbGFnT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgaWYgKGdhdGVWYWx1ZSA9PSBudWxsIHx8IGdhdGVWYWx1ZS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSB2YWx1ZSBpcyB1bmRlZmluZWQgLSByZXR1cm5pbmcgZmFsc2VgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGdhdGVWYWx1ZS52YWx1ZTtcbiAgfTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdGFuZGFyZCBvdmVycmlkZXMgd29yayBhcyBleHBlY3RlZFxuICBpc0NsaWVudFNlc3Npb25FbmFibGVkID0gKCk6IGJvb2xlYW4gPT5cbiAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Jc0NsaWVudFNlc3Npb25FbmFibGVkKTtcblxuICBnZXRGZWF0dXJlRmxhZ3MgPSAoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZSA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogRnVsbEZsYWdWYWx1ZSA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuICAgIHJldHVybiB7XG4gICAgICByZXNvbHZlZDogdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBpbml0aWFsOiBnYXRlVmFsdWU/LnZhbHVlLFxuICAgICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgc3RvcmVkX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgIH07XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZXMgPSAoKTogUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4gPT4ge1xuICAgIGNvbnN0IGZlYXR1cmVHYXRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgdGhpcy5nZXRGdWxsRmxhZ1ZhbHVlKGZlYXR1cmVHYXRlKSxcbiAgICBdKTtcblxuICAgIHJldHVybiBmZWF0dXJlR2F0ZXMubGVuZ3RoID4gMFxuICAgICAgPyBmZWF0dXJlR2F0ZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+PigoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBlbnRyeSBhcyBbRmVhdHVyZUdhdGVzLCBGdWxsRmxhZ1ZhbHVlXTtcbiAgICAgICAgICBpZiAobmFtZSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtgZmVhdHVyZV9nYXRlLiR7bmFtZX1gXTogdmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICA6IHt9O1xuICB9O1xuXG4gIC8vIE9ubHkgdGhlIGdhdGVzIHRoZSBjbGllbnQgYWN0dWFsbHkgb3ZlcnJpZGVzIChxdWVyeSBwYXJhbSAvIHdpbmRvdyAvIHN0b3JlZCksXG4gIC8vIHdpdGggdGhlIHVuLW92ZXJyaWRkZW4gb25lcyBsZWZ0IG91dCBlbnRpcmVseSDigJQgTk9UIHJlc29sdmVkIHRvIGZhbHNlLiBUaGlzXG4gIC8vIGlzIHdoYXQgL3YxL3Nlc3Npb24vYm9vdHN0cmFwJ3MgdXJsX3Jlc29sdmluZyB3YW50czogdGhlIHNlcnZlciByZXNvbHZlcyB0aGVcbiAgLy8gcmVhbCBnYXRlIHZhbHVlcyBpdHNlbGYgYW5kIG1lcmdlcyB0aGlzIG1hcCBPVkVSIHRoZW0sIHNvIGEgZnVsbCBtYXAgb2ZcbiAgLy8gcmVzb2x2ZWQgdmFsdWVzIHdvdWxkIGNsb2JiZXIgdGhlIHNlcnZlcidzIGdhdGVzIHdpdGggdGhlIGNsaWVudCdzICh3aGljaCxcbiAgLy8gb24gdGhlIGJvb3RzdHJhcC1vbmx5IHBhdGgsIGhhcyBubyBzZXJ2ZXIgdmFsdWVzIHRvIHJlc29sdmUgZnJvbSkuIEFuIGVtcHR5XG4gIC8vIG1hcCAodGhlIGNvbW1vbiBjYXNlIOKAlCBubyBvdmVycmlkZXMpIGxlYXZlcyB0aGUgc2VydmVyJ3MgZ2F0ZXMgdW50b3VjaGVkLlxuICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgIC5tYXAoXG4gICAgICAgIGZlYXR1cmVHYXRlID0+XG4gICAgICAgICAgW2ZlYXR1cmVHYXRlLCBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSldIGFzIGNvbnN0LFxuICAgICAgKVxuICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXldOiB2YWx1ZSEgfSksIHt9KTtcbiAgfVxuXG4gIHN0YXRpYyBwZXJzaXN0RmVhdHVyZUdhdGVPdmVycmlkZXMoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGVzKCkpLFxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQU0sNEJBQTRCO0FBRWxDLE1BQU0sU0FBUyxJQUFJQSxlQUFPLHFCQUFxQjtBQWEvQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBa0YxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxXQUFPLFNBQ0wsb0NBQW9DLFlBQVksdUNBQ2pEO0FBQ0QsV0FBTzs7QUFFVCxVQUFPLFVBQVU7O3NDQUtqQixLQUFLLHFCQUFxQixhQUFhLHVCQUF1QjsrQkFFZjtBQUMvQyxVQUFPLE9BQU8sWUFDWixPQUFPLE9BQU8sYUFBYSxDQUFDLEtBQUssZ0JBQThCLENBQzdELGFBQ0EsS0FBSyxxQkFBcUIsWUFBWSxDQUN2QyxDQUFDLENBQ0g7OzJCQUdpQixnQkFBNkM7R0FDL0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7QUFDM0UsVUFBTztJQUNMLFVBQVUsS0FBSyxxQkFBcUIsWUFBWTtJQUNoRCxTQUFTLFdBQVc7SUFDcEIsc0JBQXNCLG1CQUFtQixrQ0FBa0MsWUFBWTtJQUN2Rix1QkFBdUIsbUJBQW1CLDhCQUE4QixZQUFZO0lBQ3BGLGlCQUFpQixtQkFBbUIsOEJBQThCLFlBQVk7SUFDL0U7O2lDQUdzRDtHQUN2RCxNQUFNQyxpQkFBZSxPQUFPLE9BQU8sYUFBYSxDQUFDLEtBQUss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
@@ -111,9 +111,10 @@ const GA4_EVENT_SCHEMA = {
111
111
  },
112
112
  [require_eventNames.EnviveMetricsEventName.WidgetTextRequest]: { gaEventName: null },
113
113
  [require_eventNames.EnviveMetricsEventName.WidgetTextResponse]: { gaEventName: null },
114
- [require_eventNames.EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null }
114
+ [require_eventNames.EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null },
115
+ [require_eventNames.EnviveMetricsEventName.Diagnostics]: { gaEventName: null }
115
116
  };
116
117
 
117
118
  //#endregion
118
119
  exports.GA4_EVENT_SCHEMA = GA4_EVENT_SCHEMA;
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuY2pzIiwibmFtZXMiOlsiV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlM6IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24iLCJHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4iLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dhNFByb2plY3Rpb25TZXJ2aWNlL2dhNEV2ZW50U2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR0E0IEV2ZW50IFNjaGVtYSDigJQgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgRW52aXZlIOKGkiBHQTQgcHJvamVjdGlvbi5cbiAqXG4gKiBFdmVyeSBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIE1VU1QgaGF2ZSBhbiBlbnRyeSBoZXJlLiBUaGUgUmVjb3JkIHR5cGUgZW5mb3JjZXNcbiAqIHRoaXMgYXQgY29tcGlsZSB0aW1lIOKAlCBhZGRpbmcgYSBuZXcgZW51bSBtZW1iZXIgd2l0aG91dCBhIHNjaGVtYSBlbnRyeSB3aWxsXG4gKiBjYXVzZSBhIFR5cGVTY3JpcHQgZXJyb3IuXG4gKlxuICogIyMgSG93IHRvIHVwZGF0ZSB0aGlzIGZpbGVcbiAqXG4gKiBXaGVuIGFkZGluZyBvciBtb2RpZnlpbmcgZXZlbnQgcHJvcGVydGllcywgZGVjaWRlIHdoZXRoZXIgdGhleSBiZWxvbmcgaW4gYGFsbG93ZWRGaWVsZHNgIHVzaW5nIHRoZXNlIGNyaXRlcmlhOlxuICogLSAqKkxvdyBjYXJkaW5hbGl0eSoqIOKAlCBhdm9pZCB1bmJvdW5kZWQgdmFsdWVzIChmcmVlIHRleHQsIElEcywgVVJMcywgdGltZXN0YW1wcykuXG4gKiAtICoqTm9uLXNlbnNpdGl2ZSoqIOKAlCBubyBQSUksIHVzZXIgaW5wdXQgdGV4dCwgb3IgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cbiAqIC0gKipGbGF0IHNjYWxhcioqIOKAlCBHQTQgY3VzdG9tIGRpbWVuc2lvbnMgYXJlIGZsYXQgc3RyaW5ncy9udW1iZXJzL2Jvb2xlYW5zLlxuICogICBOZXN0ZWQgb2JqZWN0cyBzaG91bGQgTk9UIGJlIGFkZGVkOyBleHRyYWN0IHNwZWNpZmljIHN1Yi1maWVsZHMgaW5zdGVhZC5cbiAqIC0gKipTbmFrZV9jYXNlIGtleSoqIOKAlCBtdXN0IGFscmVhZHkgYmUgZG90LW5vdGF0aW9uIHNuYWtlX2Nhc2UgKGUuZy4gYGNoYXQudXNlcl90eXBlZGApLlxuICogLSAqKkFuYWx5dGljYWxseSB1c2VmdWwqKiDigJQgdGhlIGZpZWxkIHNob3VsZCBlbmFibGUgbWVhbmluZ2Z1bCBmaWx0ZXJpbmcvc2VnbWVudGF0aW9uXG4gKiAgIGZvciBtZXJjaGFudHMgaW4gdGhlaXIgR0E0IGRhc2hib2FyZHMuXG4gKlxuICogSWYgZXhjbHVkZWQgZnJvbSBgYWxsb3dlZEZpZWxkc2AsIHRoZSBwcm9qZWN0aW9uIGxheWVyIHdpbGwgYXV0b21hdGljYWxseSBkcm9wIGl0LlxuICpcbiAqIElGIElOIERPVUJULCBET04nVCBIRVNJVEFURSBUTyBSRUFDSCBPVVQgVE8gVEhFIEFOQUxZVElDUyBURUFNISEhXG4gKi9cbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlL2V2ZW50TmFtZXMnO1xuXG4vKipcbiAqIERlZmluZXMgd2hpY2ggZmllbGRzIHRvIGV4dHJhY3QgZnJvbSBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25fZGF0YWBcbiAqIGZvciBhIGdpdmVuIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgdmFsdWUuXG4gKlxuICogS2V5OiB0aGUgdmFsdWUgb2YgYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uYCAoZS5nLiBcIndpZGdldF9jb2xsYXBzZWRcIilcbiAqIFZhbHVlOiBtYXBwaW5nIG9mIHsgZ2E0RmxhdEtleTogc291cmNlRmllbGRJbldpZGdldEludGVyYWN0aW9uRGF0YSB9XG4gKi9cbmV4cG9ydCB0eXBlIFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24gPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuZXhwb3J0IGludGVyZmFjZSBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKipcbiAgICogV2hlbiBwcmVzZW50LCB1c2VkIGluc3RlYWQgb2YgYGFsbG93ZWRGaWVsZHNgIHRvIGJvdGggZmlsdGVyIGFuZCByZW5hbWUgZmllbGRzLlxuICAgKiBLZXk6IHRoZSBkZXNpcmVkIEdBNCBwYXJhbWV0ZXIgbmFtZS4gVmFsdWU6IHRoZSBzb3VyY2UgZG90LW5vdGF0aW9uIGtleSBpbiBldmVudFByb3BzLlxuICAgKi9cbiAgZmllbGRQcm9qZWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb25zPzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHQTRFeGNsdWRlZEV2ZW50Q29uZmlnIHtcbiAgZ2FFdmVudE5hbWU6IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIEdBNEV2ZW50U2NoZW1hRW50cnkgPSBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyB8IEdBNEV4Y2x1ZGVkRXZlbnRDb25maWc7XG5cbmNvbnN0IFdJREdFVF9JTlRFUkFDVElPTl9EQVRBX1BST0pFQ1RJT05TOiBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uID0ge1xuICB3aWRnZXRfY29sbGFwc2VkOiB7IGludGVyYWN0aW9uX2NvbGxhcHNlX3NvdXJjZTogJ3dpZGdldF9jb2xsYXBzZWQuY29sbGFwc2Vfc291cmNlJyB9LFxuICBwcm9kdWN0X2NhcmRfY2xpY2tlZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAncHJvZHVjdF9jYXJkX2NsaWNrZWQucHJvZHVjdF9pZCcgfSxcbiAgc3VnZ2VzdGlvbl9zY3JvbGxlZDogeyBpbnRlcmFjdGlvbl9zdWdnZXN0aW9uX2lkOiAnc3VnZ2VzdGlvbl9zY3JvbGxlZC5zdWdnZXN0aW9uX2lkJyB9LFxuICB2YXJpYW50X3NlbGVjdG9yX29wZW5lZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAndmFyaWFudF9zZWxlY3Rvcl9vcGVuZWQucHJvZHVjdF9pZCcgfSxcbiAgLy8gb3B0aW9uX3ZhbHVlIGlzIGludGVudGlvbmFsbHkgZXhjbHVkZWQg4oCUIG1lcmNoYW50LWRlZmluZWQgdmFsdWVzIGFyZSBoaWdoIGNhcmRpbmFsaXR5XG4gIHZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkOiB7XG4gICAgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkLnByb2R1Y3RfaWQnLFxuICAgIGludGVyYWN0aW9uX29wdGlvbl9uYW1lOiAndmFyaWFudF9vcHRpb25fc2VsZWN0ZWQub3B0aW9uX25hbWUnLFxuICB9LFxuICB2YXJpYW50X3NlbGVjdG9yX2Rpc21pc3NlZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAndmFyaWFudF9zZWxlY3Rvcl9kaXNtaXNzZWQucHJvZHVjdF9pZCcgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4gPSB7XG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFJlbmRlcmVkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3dpZGdldF9yZW5kZXJlZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW10sXG4gICAgZmllbGRQcm9qZWN0aW9uczoge1xuICAgICAgcGFnZV90eXBlOiAnY29udGV4dC5wYWdlX3R5cGUnLFxuICAgICAgcGFnZV9pZDogJ2NvbnRleHQucGFnZV9pZCcsXG4gICAgICBzdXJmYWNlOiAnY29udGV4dC5zdXJmYWNlJyxcbiAgICAgIHdpZGdldDogJ3RyaWdnZXIud2lkZ2V0JyxcbiAgICAgIHdpZGdldF9yb2xlOiAndHJpZ2dlci53aWRnZXRfcm9sZScsXG4gICAgfSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbl06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV93aWRnZXRfaW50ZXJhY3Rpb24nLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgc3VyZmFjZTogJ2NvbnRleHQuc3VyZmFjZScsXG4gICAgICB3aWRnZXQ6ICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICBpbnRlcmFjdGlvbl90eXBlOiAndHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb24nLFxuICAgICAgaW50ZXJhY3Rpb25fY2xhc3M6ICd0cmlnZ2VyLmludGVyYWN0aW9uX2NsYXNzJyxcbiAgICAgIHdpZGdldF9yb2xlOiAndHJpZ2dlci53aWRnZXRfcm9sZScsXG4gICAgfSxcbiAgICB3aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uczogV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlMsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3RdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfY2hhdF9yZXF1ZXN0JyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAncGFnZV90eXBlJyxcbiAgICAgICdwYWdlX2lkJyxcbiAgICAgICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnLFxuICAgICAgLy8gJ2NoYXQucmVxdWVzdF90ZXh0JywgLy8gVGhpcyBpcyBoaWdoIGNhcmRpbmFsaXR5IGFuZCBwb3RlbnRpYWxseSBQSUkgYnV0IHdlIG1pZ2h0IHdhbnQgdG8gaW5jbHVkZSBpdCBsYXRlclxuICAgICAgJ2NoYXQudXNlcl90eXBlZCcsXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9jYXRlZ29yeScsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY3JlYXRlZF9hdCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25faXNfYW5zd2VyJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuZm9ybV90eXBlJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgIF0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlc3BvbnNlXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2NoYXRfcmVzcG9uc2UnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtcbiAgICAgICdwYWdlX3R5cGUnLFxuICAgICAgJ3BhZ2VfaWQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0JywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCAobWF5YmUgaXQgc2hvdWxkJ250IGJlPz8/KVxuICAgICAgJ2NoYXQudXNlcl90eXBlZCcsXG4gICAgICAnY2hhdC5yZXNwb25zZV90aW1lX21zJyxcbiAgICAgICdjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnLFxuICAgICAgJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnLFxuICAgICAgJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJyxcbiAgICBdLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkVudml2ZUluaXRpYWxpemVkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2luaXRpYWxpemVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAnZW52aXJvbm1lbnQuc2FsZXNfYWdlbnRfZW5hYmxlZCcsXG4gICAgICAnZW52aXJvbm1lbnQuZW52aXZlX2VuYWJsZWQnLFxuICAgICAgLy8gJ2Vudmlyb25tZW50LnNlYXJjaF9lbmFibGVkJywgLy8gRm9yIG5vdywgc2VhcmNoIGlzIG5vdCBpbXBsZW1lbnRlZC4gV2Ugd2lsbCBhZGQgaXQgbGF0ZXIuXG4gICAgICAncGVyZm9ybWFuY2Uuc3RhcnRfdGltZV9tcycsXG4gICAgICAncGVyZm9ybWFuY2UuaW5pdGlhbGl6ZV90aW1lX21zJyxcbiAgICBdLFxuICB9LFxuXG4gIC8vIFRoaXMgZXZlbnQgaXMgbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5QYWdlVmlld2VkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3BhZ2VfY29udGV4dF9ldmFsdWF0ZWQnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgY29udGV4dF9zdXBwb3J0ZWQ6ICdjb250ZXh0LnN1cHBvcnRlZCcsXG4gICAgICBjb250ZXh0X3JlYWR5OiAnY29udGV4dC5yZWFkeScsXG4gICAgICBjb250ZXh0X3BhZ2VfdmFyaWFudF9pZDogJ2NvbnRleHQucGFnZV92YXJpYW50X2lkJyxcbiAgICAgIGVudmlyb25tZW50X2Vudml2ZV9lbmFibGVkOiAnZW52aXJvbm1lbnQuZW52aXZlX2VuYWJsZWQnLFxuICAgIH0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3RdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRDbGlja2VkXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtEQSxNQUFNQSxzQ0FBdUU7Q0FDM0Usa0JBQWtCLEVBQUUsNkJBQTZCLG9DQUFvQztDQUNyRixzQkFBc0IsRUFBRSx3QkFBd0IsbUNBQW1DO0NBQ25GLHFCQUFxQixFQUFFLDJCQUEyQixxQ0FBcUM7Q0FDdkYseUJBQXlCLEVBQUUsd0JBQXdCLHNDQUFzQztDQUV6Rix5QkFBeUI7RUFDdkIsd0JBQXdCO0VBQ3hCLHlCQUF5QjtFQUMxQjtDQUNELDRCQUE0QixFQUFFLHdCQUF3Qix5Q0FBeUM7Q0FDaEc7QUFFRCxNQUFhQyxtQkFBd0U7RUFDbEZDLDBDQUF1QixpQkFBaUI7RUFDdkMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxTQUFTO0dBQ1QsUUFBUTtHQUNSLGFBQWE7R0FDZDtFQUNGO0VBRUFBLDBDQUF1QixvQkFBb0I7RUFDMUMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxTQUFTO0dBQ1QsUUFBUTtHQUNSLGtCQUFrQjtHQUNsQixtQkFBbUI7R0FDbkIsYUFBYTtHQUNkO0VBQ0Qsa0NBQWtDO0VBQ25DO0VBRUFBLDBDQUF1QixjQUFjO0VBQ3BDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUNBO0dBQ0E7R0FFQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNGO0VBRUFBLDBDQUF1QixlQUFlO0VBQ3JDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQUEsMENBQXVCLG9CQUFvQjtFQUMxQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FFQTtHQUNBO0dBQ0Q7RUFDRjtFQUdBQSwwQ0FBdUIsYUFBYTtFQUNuQyxhQUFhO0VBQ2IsZUFBZSxFQUFFO0VBQ2pCLGtCQUFrQjtHQUNoQixXQUFXO0dBQ1gsU0FBUztHQUNULG1CQUFtQjtHQUNuQixlQUFlO0dBQ2YseUJBQXlCO0dBQ3pCLDRCQUE0QjtHQUM3QjtFQUNGO0VBRUFBLDBDQUF1QixvQkFBb0IsRUFDMUMsYUFBYSxNQUNkO0VBRUFBLDBDQUF1QixxQkFBcUIsRUFDM0MsYUFBYSxNQUNkO0VBRUFBLDBDQUF1QixvQkFBb0IsRUFDMUMsYUFBYSxNQUNkO0NBQ0YifQ==
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuY2pzIiwibmFtZXMiOlsiV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlM6IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24iLCJHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4iLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dhNFByb2plY3Rpb25TZXJ2aWNlL2dhNEV2ZW50U2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR0E0IEV2ZW50IFNjaGVtYSDigJQgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgRW52aXZlIOKGkiBHQTQgcHJvamVjdGlvbi5cbiAqXG4gKiBFdmVyeSBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIE1VU1QgaGF2ZSBhbiBlbnRyeSBoZXJlLiBUaGUgUmVjb3JkIHR5cGUgZW5mb3JjZXNcbiAqIHRoaXMgYXQgY29tcGlsZSB0aW1lIOKAlCBhZGRpbmcgYSBuZXcgZW51bSBtZW1iZXIgd2l0aG91dCBhIHNjaGVtYSBlbnRyeSB3aWxsXG4gKiBjYXVzZSBhIFR5cGVTY3JpcHQgZXJyb3IuXG4gKlxuICogIyMgSG93IHRvIHVwZGF0ZSB0aGlzIGZpbGVcbiAqXG4gKiBXaGVuIGFkZGluZyBvciBtb2RpZnlpbmcgZXZlbnQgcHJvcGVydGllcywgZGVjaWRlIHdoZXRoZXIgdGhleSBiZWxvbmcgaW4gYGFsbG93ZWRGaWVsZHNgIHVzaW5nIHRoZXNlIGNyaXRlcmlhOlxuICogLSAqKkxvdyBjYXJkaW5hbGl0eSoqIOKAlCBhdm9pZCB1bmJvdW5kZWQgdmFsdWVzIChmcmVlIHRleHQsIElEcywgVVJMcywgdGltZXN0YW1wcykuXG4gKiAtICoqTm9uLXNlbnNpdGl2ZSoqIOKAlCBubyBQSUksIHVzZXIgaW5wdXQgdGV4dCwgb3IgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cbiAqIC0gKipGbGF0IHNjYWxhcioqIOKAlCBHQTQgY3VzdG9tIGRpbWVuc2lvbnMgYXJlIGZsYXQgc3RyaW5ncy9udW1iZXJzL2Jvb2xlYW5zLlxuICogICBOZXN0ZWQgb2JqZWN0cyBzaG91bGQgTk9UIGJlIGFkZGVkOyBleHRyYWN0IHNwZWNpZmljIHN1Yi1maWVsZHMgaW5zdGVhZC5cbiAqIC0gKipTbmFrZV9jYXNlIGtleSoqIOKAlCBtdXN0IGFscmVhZHkgYmUgZG90LW5vdGF0aW9uIHNuYWtlX2Nhc2UgKGUuZy4gYGNoYXQudXNlcl90eXBlZGApLlxuICogLSAqKkFuYWx5dGljYWxseSB1c2VmdWwqKiDigJQgdGhlIGZpZWxkIHNob3VsZCBlbmFibGUgbWVhbmluZ2Z1bCBmaWx0ZXJpbmcvc2VnbWVudGF0aW9uXG4gKiAgIGZvciBtZXJjaGFudHMgaW4gdGhlaXIgR0E0IGRhc2hib2FyZHMuXG4gKlxuICogSWYgZXhjbHVkZWQgZnJvbSBgYWxsb3dlZEZpZWxkc2AsIHRoZSBwcm9qZWN0aW9uIGxheWVyIHdpbGwgYXV0b21hdGljYWxseSBkcm9wIGl0LlxuICpcbiAqIElGIElOIERPVUJULCBET04nVCBIRVNJVEFURSBUTyBSRUFDSCBPVVQgVE8gVEhFIEFOQUxZVElDUyBURUFNISEhXG4gKi9cbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlL2V2ZW50TmFtZXMnO1xuXG4vKipcbiAqIERlZmluZXMgd2hpY2ggZmllbGRzIHRvIGV4dHJhY3QgZnJvbSBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25fZGF0YWBcbiAqIGZvciBhIGdpdmVuIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgdmFsdWUuXG4gKlxuICogS2V5OiB0aGUgdmFsdWUgb2YgYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uYCAoZS5nLiBcIndpZGdldF9jb2xsYXBzZWRcIilcbiAqIFZhbHVlOiBtYXBwaW5nIG9mIHsgZ2E0RmxhdEtleTogc291cmNlRmllbGRJbldpZGdldEludGVyYWN0aW9uRGF0YSB9XG4gKi9cbmV4cG9ydCB0eXBlIFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24gPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuZXhwb3J0IGludGVyZmFjZSBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKipcbiAgICogV2hlbiBwcmVzZW50LCB1c2VkIGluc3RlYWQgb2YgYGFsbG93ZWRGaWVsZHNgIHRvIGJvdGggZmlsdGVyIGFuZCByZW5hbWUgZmllbGRzLlxuICAgKiBLZXk6IHRoZSBkZXNpcmVkIEdBNCBwYXJhbWV0ZXIgbmFtZS4gVmFsdWU6IHRoZSBzb3VyY2UgZG90LW5vdGF0aW9uIGtleSBpbiBldmVudFByb3BzLlxuICAgKi9cbiAgZmllbGRQcm9qZWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb25zPzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHQTRFeGNsdWRlZEV2ZW50Q29uZmlnIHtcbiAgZ2FFdmVudE5hbWU6IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIEdBNEV2ZW50U2NoZW1hRW50cnkgPSBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyB8IEdBNEV4Y2x1ZGVkRXZlbnRDb25maWc7XG5cbmNvbnN0IFdJREdFVF9JTlRFUkFDVElPTl9EQVRBX1BST0pFQ1RJT05TOiBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uID0ge1xuICB3aWRnZXRfY29sbGFwc2VkOiB7IGludGVyYWN0aW9uX2NvbGxhcHNlX3NvdXJjZTogJ3dpZGdldF9jb2xsYXBzZWQuY29sbGFwc2Vfc291cmNlJyB9LFxuICBwcm9kdWN0X2NhcmRfY2xpY2tlZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAncHJvZHVjdF9jYXJkX2NsaWNrZWQucHJvZHVjdF9pZCcgfSxcbiAgc3VnZ2VzdGlvbl9zY3JvbGxlZDogeyBpbnRlcmFjdGlvbl9zdWdnZXN0aW9uX2lkOiAnc3VnZ2VzdGlvbl9zY3JvbGxlZC5zdWdnZXN0aW9uX2lkJyB9LFxuICB2YXJpYW50X3NlbGVjdG9yX29wZW5lZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAndmFyaWFudF9zZWxlY3Rvcl9vcGVuZWQucHJvZHVjdF9pZCcgfSxcbiAgLy8gb3B0aW9uX3ZhbHVlIGlzIGludGVudGlvbmFsbHkgZXhjbHVkZWQg4oCUIG1lcmNoYW50LWRlZmluZWQgdmFsdWVzIGFyZSBoaWdoIGNhcmRpbmFsaXR5XG4gIHZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkOiB7XG4gICAgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkLnByb2R1Y3RfaWQnLFxuICAgIGludGVyYWN0aW9uX29wdGlvbl9uYW1lOiAndmFyaWFudF9vcHRpb25fc2VsZWN0ZWQub3B0aW9uX25hbWUnLFxuICB9LFxuICB2YXJpYW50X3NlbGVjdG9yX2Rpc21pc3NlZDogeyBpbnRlcmFjdGlvbl9wcm9kdWN0X2lkOiAndmFyaWFudF9zZWxlY3Rvcl9kaXNtaXNzZWQucHJvZHVjdF9pZCcgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4gPSB7XG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFJlbmRlcmVkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3dpZGdldF9yZW5kZXJlZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW10sXG4gICAgZmllbGRQcm9qZWN0aW9uczoge1xuICAgICAgcGFnZV90eXBlOiAnY29udGV4dC5wYWdlX3R5cGUnLFxuICAgICAgcGFnZV9pZDogJ2NvbnRleHQucGFnZV9pZCcsXG4gICAgICBzdXJmYWNlOiAnY29udGV4dC5zdXJmYWNlJyxcbiAgICAgIHdpZGdldDogJ3RyaWdnZXIud2lkZ2V0JyxcbiAgICAgIHdpZGdldF9yb2xlOiAndHJpZ2dlci53aWRnZXRfcm9sZScsXG4gICAgfSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbl06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV93aWRnZXRfaW50ZXJhY3Rpb24nLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgc3VyZmFjZTogJ2NvbnRleHQuc3VyZmFjZScsXG4gICAgICB3aWRnZXQ6ICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICBpbnRlcmFjdGlvbl90eXBlOiAndHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb24nLFxuICAgICAgaW50ZXJhY3Rpb25fY2xhc3M6ICd0cmlnZ2VyLmludGVyYWN0aW9uX2NsYXNzJyxcbiAgICAgIHdpZGdldF9yb2xlOiAndHJpZ2dlci53aWRnZXRfcm9sZScsXG4gICAgfSxcbiAgICB3aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uczogV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlMsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3RdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfY2hhdF9yZXF1ZXN0JyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAncGFnZV90eXBlJyxcbiAgICAgICdwYWdlX2lkJyxcbiAgICAgICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnLFxuICAgICAgLy8gJ2NoYXQucmVxdWVzdF90ZXh0JywgLy8gVGhpcyBpcyBoaWdoIGNhcmRpbmFsaXR5IGFuZCBwb3RlbnRpYWxseSBQSUkgYnV0IHdlIG1pZ2h0IHdhbnQgdG8gaW5jbHVkZSBpdCBsYXRlclxuICAgICAgJ2NoYXQudXNlcl90eXBlZCcsXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9jYXRlZ29yeScsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY3JlYXRlZF9hdCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25faXNfYW5zd2VyJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuZm9ybV90eXBlJywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgIF0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlc3BvbnNlXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2NoYXRfcmVzcG9uc2UnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtcbiAgICAgICdwYWdlX3R5cGUnLFxuICAgICAgJ3BhZ2VfaWQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0JywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCAobWF5YmUgaXQgc2hvdWxkJ250IGJlPz8/KVxuICAgICAgJ2NoYXQudXNlcl90eXBlZCcsXG4gICAgICAnY2hhdC5yZXNwb25zZV90aW1lX21zJyxcbiAgICAgICdjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnLFxuICAgICAgJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnLFxuICAgICAgJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJyxcbiAgICBdLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkVudml2ZUluaXRpYWxpemVkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2luaXRpYWxpemVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAnZW52aXJvbm1lbnQuc2FsZXNfYWdlbnRfZW5hYmxlZCcsXG4gICAgICAnZW52aXJvbm1lbnQuZW52aXZlX2VuYWJsZWQnLFxuICAgICAgLy8gJ2Vudmlyb25tZW50LnNlYXJjaF9lbmFibGVkJywgLy8gRm9yIG5vdywgc2VhcmNoIGlzIG5vdCBpbXBsZW1lbnRlZC4gV2Ugd2lsbCBhZGQgaXQgbGF0ZXIuXG4gICAgICAncGVyZm9ybWFuY2Uuc3RhcnRfdGltZV9tcycsXG4gICAgICAncGVyZm9ybWFuY2UuaW5pdGlhbGl6ZV90aW1lX21zJyxcbiAgICBdLFxuICB9LFxuXG4gIC8vIFRoaXMgZXZlbnQgaXMgbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5QYWdlVmlld2VkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3BhZ2VfY29udGV4dF9ldmFsdWF0ZWQnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgY29udGV4dF9zdXBwb3J0ZWQ6ICdjb250ZXh0LnN1cHBvcnRlZCcsXG4gICAgICBjb250ZXh0X3JlYWR5OiAnY29udGV4dC5yZWFkeScsXG4gICAgICBjb250ZXh0X3BhZ2VfdmFyaWFudF9pZDogJ2NvbnRleHQucGFnZV92YXJpYW50X2lkJyxcbiAgICAgIGVudmlyb25tZW50X2Vudml2ZV9lbmFibGVkOiAnZW52aXJvbm1lbnQuZW52aXZlX2VuYWJsZWQnLFxuICAgIH0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3RdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRDbGlja2VkXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIC8vIEludGVybmFsIGVuZyBvcGVyYXRpb25hbCBtb25pdG9yaW5nIOKAlCBuZXZlciBwcm9qZWN0ZWQgdG8gbWVyY2hhbnQgR0E0LlxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5EaWFnbm9zdGljc106IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrREEsTUFBTUEsc0NBQXVFO0NBQzNFLGtCQUFrQixFQUFFLDZCQUE2QixvQ0FBb0M7Q0FDckYsc0JBQXNCLEVBQUUsd0JBQXdCLG1DQUFtQztDQUNuRixxQkFBcUIsRUFBRSwyQkFBMkIscUNBQXFDO0NBQ3ZGLHlCQUF5QixFQUFFLHdCQUF3QixzQ0FBc0M7Q0FFekYseUJBQXlCO0VBQ3ZCLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDMUI7Q0FDRCw0QkFBNEIsRUFBRSx3QkFBd0IseUNBQXlDO0NBQ2hHO0FBRUQsTUFBYUMsbUJBQXdFO0VBQ2xGQywwQ0FBdUIsaUJBQWlCO0VBQ3ZDLGFBQWE7RUFDYixlQUFlLEVBQUU7RUFDakIsa0JBQWtCO0dBQ2hCLFdBQVc7R0FDWCxTQUFTO0dBQ1QsU0FBUztHQUNULFFBQVE7R0FDUixhQUFhO0dBQ2Q7RUFDRjtFQUVBQSwwQ0FBdUIsb0JBQW9CO0VBQzFDLGFBQWE7RUFDYixlQUFlLEVBQUU7RUFDakIsa0JBQWtCO0dBQ2hCLFdBQVc7R0FDWCxTQUFTO0dBQ1QsU0FBUztHQUNULFFBQVE7R0FDUixrQkFBa0I7R0FDbEIsbUJBQW1CO0dBQ25CLGFBQWE7R0FDZDtFQUNELGtDQUFrQztFQUNuQztFQUVBQSwwQ0FBdUIsY0FBYztFQUNwQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FDQTtHQUNBO0dBRUE7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7RUFDRjtFQUVBQSwwQ0FBdUIsZUFBZTtFQUNyQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNGO0VBRUFBLDBDQUF1QixvQkFBb0I7RUFDMUMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBRUE7R0FDQTtHQUNEO0VBQ0Y7RUFHQUEsMENBQXVCLGFBQWE7RUFDbkMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxtQkFBbUI7R0FDbkIsZUFBZTtHQUNmLHlCQUF5QjtHQUN6Qiw0QkFBNEI7R0FDN0I7RUFDRjtFQUVBQSwwQ0FBdUIsb0JBQW9CLEVBQzFDLGFBQWEsTUFDZDtFQUVBQSwwQ0FBdUIscUJBQXFCLEVBQzNDLGFBQWEsTUFDZDtFQUVBQSwwQ0FBdUIsb0JBQW9CLEVBQzFDLGFBQWEsTUFDZDtFQUdBQSwwQ0FBdUIsY0FBYyxFQUNwQyxhQUFhLE1BQ2Q7Q0FDRiJ9
@@ -111,9 +111,10 @@ const GA4_EVENT_SCHEMA = {
111
111
  },
112
112
  [EnviveMetricsEventName.WidgetTextRequest]: { gaEventName: null },
113
113
  [EnviveMetricsEventName.WidgetTextResponse]: { gaEventName: null },
114
- [EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null }
114
+ [EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null },
115
+ [EnviveMetricsEventName.Diagnostics]: { gaEventName: null }
115
116
  };
116
117
 
117
118
  //#endregion
118
119
  export { GA4_EVENT_SCHEMA };
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuanMiLCJuYW1lcyI6WyJXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiIsIkdBNF9FVkVOVF9TQ0hFTUE6IFJlY29yZDxFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBHQTRFdmVudFNjaGVtYUVudHJ5PiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9nYTRQcm9qZWN0aW9uU2VydmljZS9nYTRFdmVudFNjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdBNCBFdmVudCBTY2hlbWEg4oCUIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIEVudml2ZSDihpIgR0E0IHByb2plY3Rpb24uXG4gKlxuICogRXZlcnkgRW52aXZlTWV0cmljc0V2ZW50TmFtZSBNVVNUIGhhdmUgYW4gZW50cnkgaGVyZS4gVGhlIFJlY29yZCB0eXBlIGVuZm9yY2VzXG4gKiB0aGlzIGF0IGNvbXBpbGUgdGltZSDigJQgYWRkaW5nIGEgbmV3IGVudW0gbWVtYmVyIHdpdGhvdXQgYSBzY2hlbWEgZW50cnkgd2lsbFxuICogY2F1c2UgYSBUeXBlU2NyaXB0IGVycm9yLlxuICpcbiAqICMjIEhvdyB0byB1cGRhdGUgdGhpcyBmaWxlXG4gKlxuICogV2hlbiBhZGRpbmcgb3IgbW9kaWZ5aW5nIGV2ZW50IHByb3BlcnRpZXMsIGRlY2lkZSB3aGV0aGVyIHRoZXkgYmVsb25nIGluIGBhbGxvd2VkRmllbGRzYCB1c2luZyB0aGVzZSBjcml0ZXJpYTpcbiAqIC0gKipMb3cgY2FyZGluYWxpdHkqKiDigJQgYXZvaWQgdW5ib3VuZGVkIHZhbHVlcyAoZnJlZSB0ZXh0LCBJRHMsIFVSTHMsIHRpbWVzdGFtcHMpLlxuICogLSAqKk5vbi1zZW5zaXRpdmUqKiDigJQgbm8gUElJLCB1c2VyIGlucHV0IHRleHQsIG9yIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG4gKiAtICoqRmxhdCBzY2FsYXIqKiDigJQgR0E0IGN1c3RvbSBkaW1lbnNpb25zIGFyZSBmbGF0IHN0cmluZ3MvbnVtYmVycy9ib29sZWFucy5cbiAqICAgTmVzdGVkIG9iamVjdHMgc2hvdWxkIE5PVCBiZSBhZGRlZDsgZXh0cmFjdCBzcGVjaWZpYyBzdWItZmllbGRzIGluc3RlYWQuXG4gKiAtICoqU25ha2VfY2FzZSBrZXkqKiDigJQgbXVzdCBhbHJlYWR5IGJlIGRvdC1ub3RhdGlvbiBzbmFrZV9jYXNlIChlLmcuIGBjaGF0LnVzZXJfdHlwZWRgKS5cbiAqIC0gKipBbmFseXRpY2FsbHkgdXNlZnVsKiog4oCUIHRoZSBmaWVsZCBzaG91bGQgZW5hYmxlIG1lYW5pbmdmdWwgZmlsdGVyaW5nL3NlZ21lbnRhdGlvblxuICogICBmb3IgbWVyY2hhbnRzIGluIHRoZWlyIEdBNCBkYXNoYm9hcmRzLlxuICpcbiAqIElmIGV4Y2x1ZGVkIGZyb20gYGFsbG93ZWRGaWVsZHNgLCB0aGUgcHJvamVjdGlvbiBsYXllciB3aWxsIGF1dG9tYXRpY2FsbHkgZHJvcCBpdC5cbiAqXG4gKiBJRiBJTiBET1VCVCwgRE9OJ1QgSEVTSVRBVEUgVE8gUkVBQ0ggT1VUIFRPIFRIRSBBTkFMWVRJQ1MgVEVBTSEhIVxuICovXG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzJztcblxuLyoqXG4gKiBEZWZpbmVzIHdoaWNoIGZpZWxkcyB0byBleHRyYWN0IGZyb20gYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uX2RhdGFgXG4gKiBmb3IgYSBnaXZlbiBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25gIHZhbHVlLlxuICpcbiAqIEtleTogdGhlIHZhbHVlIG9mIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgKGUuZy4gXCJ3aWRnZXRfY29sbGFwc2VkXCIpXG4gKiBWYWx1ZTogbWFwcGluZyBvZiB7IGdhNEZsYXRLZXk6IHNvdXJjZUZpZWxkSW5XaWRnZXRJbnRlcmFjdGlvbkRhdGEgfVxuICovXG5leHBvcnQgdHlwZSBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uID0gUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0UHJvamVjdGVkRXZlbnRDb25maWcge1xuICBnYUV2ZW50TmFtZTogc3RyaW5nO1xuICBhbGxvd2VkRmllbGRzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFdoZW4gcHJlc2VudCwgdXNlZCBpbnN0ZWFkIG9mIGBhbGxvd2VkRmllbGRzYCB0byBib3RoIGZpbHRlciBhbmQgcmVuYW1lIGZpZWxkcy5cbiAgICogS2V5OiB0aGUgZGVzaXJlZCBHQTQgcGFyYW1ldGVyIG5hbWUuIFZhbHVlOiB0aGUgc291cmNlIGRvdC1ub3RhdGlvbiBrZXkgaW4gZXZlbnRQcm9wcy5cbiAgICovXG4gIGZpZWxkUHJvamVjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB3aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9ucz86IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0RXhjbHVkZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBHQTRFdmVudFNjaGVtYUVudHJ5ID0gR0E0UHJvamVjdGVkRXZlbnRDb25maWcgfCBHQTRFeGNsdWRlZEV2ZW50Q29uZmlnO1xuXG5jb25zdCBXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiA9IHtcbiAgd2lkZ2V0X2NvbGxhcHNlZDogeyBpbnRlcmFjdGlvbl9jb2xsYXBzZV9zb3VyY2U6ICd3aWRnZXRfY29sbGFwc2VkLmNvbGxhcHNlX3NvdXJjZScgfSxcbiAgcHJvZHVjdF9jYXJkX2NsaWNrZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3Byb2R1Y3RfY2FyZF9jbGlja2VkLnByb2R1Y3RfaWQnIH0sXG4gIHN1Z2dlc3Rpb25fc2Nyb2xsZWQ6IHsgaW50ZXJhY3Rpb25fc3VnZ2VzdGlvbl9pZDogJ3N1Z2dlc3Rpb25fc2Nyb2xsZWQuc3VnZ2VzdGlvbl9pZCcgfSxcbiAgdmFyaWFudF9zZWxlY3Rvcl9vcGVuZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfc2VsZWN0b3Jfb3BlbmVkLnByb2R1Y3RfaWQnIH0sXG4gIC8vIG9wdGlvbl92YWx1ZSBpcyBpbnRlbnRpb25hbGx5IGV4Y2x1ZGVkIOKAlCBtZXJjaGFudC1kZWZpbmVkIHZhbHVlcyBhcmUgaGlnaCBjYXJkaW5hbGl0eVxuICB2YXJpYW50X29wdGlvbl9zZWxlY3RlZDoge1xuICAgIGludGVyYWN0aW9uX3Byb2R1Y3RfaWQ6ICd2YXJpYW50X29wdGlvbl9zZWxlY3RlZC5wcm9kdWN0X2lkJyxcbiAgICBpbnRlcmFjdGlvbl9vcHRpb25fbmFtZTogJ3ZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkLm9wdGlvbl9uYW1lJyxcbiAgfSxcbiAgdmFyaWFudF9zZWxlY3Rvcl9kaXNtaXNzZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfc2VsZWN0b3JfZGlzbWlzc2VkLnByb2R1Y3RfaWQnIH0sXG59O1xuXG5leHBvcnQgY29uc3QgR0E0X0VWRU5UX1NDSEVNQTogUmVjb3JkPEVudml2ZU1ldHJpY3NFdmVudE5hbWUsIEdBNEV2ZW50U2NoZW1hRW50cnk+ID0ge1xuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRSZW5kZXJlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV93aWRnZXRfcmVuZGVyZWQnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgc3VyZmFjZTogJ2NvbnRleHQuc3VyZmFjZScsXG4gICAgICB3aWRnZXQ6ICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICB3aWRnZXRfcm9sZTogJ3RyaWdnZXIud2lkZ2V0X3JvbGUnLFxuICAgIH0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb25dOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfd2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXSxcbiAgICBmaWVsZFByb2plY3Rpb25zOiB7XG4gICAgICBwYWdlX3R5cGU6ICdjb250ZXh0LnBhZ2VfdHlwZScsXG4gICAgICBwYWdlX2lkOiAnY29udGV4dC5wYWdlX2lkJyxcbiAgICAgIHN1cmZhY2U6ICdjb250ZXh0LnN1cmZhY2UnLFxuICAgICAgd2lkZ2V0OiAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgaW50ZXJhY3Rpb25fdHlwZTogJ3RyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICAgIGludGVyYWN0aW9uX2NsYXNzOiAndHJpZ2dlci5pbnRlcmFjdGlvbl9jbGFzcycsXG4gICAgICB3aWRnZXRfcm9sZTogJ3RyaWdnZXIud2lkZ2V0X3JvbGUnLFxuICAgIH0sXG4gICAgd2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbnM6IFdJREdFVF9JTlRFUkFDVElPTl9EQVRBX1BST0pFQ1RJT05TLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0XToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2NoYXRfcmVxdWVzdCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ3BhZ2VfdHlwZScsXG4gICAgICAncGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJyxcbiAgICAgIC8vICdjaGF0LnJlcXVlc3RfdGV4dCcsIC8vIFRoaXMgaXMgaGlnaCBjYXJkaW5hbGl0eSBhbmQgcG90ZW50aWFsbHkgUElJIGJ1dCB3ZSBtaWdodCB3YW50IHRvIGluY2x1ZGUgaXQgbGF0ZXJcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pZCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2NyZWF0ZWRfYXQnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lzX2Fuc3dlcicsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LmZvcm1fdHlwZScsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICBdLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXNwb25zZV06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9jaGF0X3Jlc3BvbnNlJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAncGFnZV90eXBlJyxcbiAgICAgICdwYWdlX2lkJyxcbiAgICAgICd0cmlnZ2VyLndpZGdldCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgKG1heWJlIGl0IHNob3VsZCdudCBiZT8/PylcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQucmVzcG9uc2VfdGltZV9tcycsXG4gICAgICAnY2hhdC5wcm9kdWN0X2NhcmRzX3JldHVybmVkJyxcbiAgICAgICdjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJyxcbiAgICAgICdjaGF0LnJldmlld19jYXJkc19yZXR1cm5lZCcsXG4gICAgXSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5FbnZpdmVJbml0aWFsaXplZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9pbml0aWFsaXplZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2Vudmlyb25tZW50LnNhbGVzX2FnZW50X2VuYWJsZWQnLFxuICAgICAgJ2Vudmlyb25tZW50LmVudml2ZV9lbmFibGVkJyxcbiAgICAgIC8vICdlbnZpcm9ubWVudC5zZWFyY2hfZW5hYmxlZCcsIC8vIEZvciBub3csIHNlYXJjaCBpcyBub3QgaW1wbGVtZW50ZWQuIFdlIHdpbGwgYWRkIGl0IGxhdGVyLlxuICAgICAgJ3BlcmZvcm1hbmNlLnN0YXJ0X3RpbWVfbXMnLFxuICAgICAgJ3BlcmZvcm1hbmNlLmluaXRpYWxpemVfdGltZV9tcycsXG4gICAgXSxcbiAgfSxcblxuICAvLyBUaGlzIGV2ZW50IGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuUGFnZVZpZXdlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9wYWdlX2NvbnRleHRfZXZhbHVhdGVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXSxcbiAgICBmaWVsZFByb2plY3Rpb25zOiB7XG4gICAgICBwYWdlX3R5cGU6ICdjb250ZXh0LnBhZ2VfdHlwZScsXG4gICAgICBwYWdlX2lkOiAnY29udGV4dC5wYWdlX2lkJyxcbiAgICAgIGNvbnRleHRfc3VwcG9ydGVkOiAnY29udGV4dC5zdXBwb3J0ZWQnLFxuICAgICAgY29udGV4dF9yZWFkeTogJ2NvbnRleHQucmVhZHknLFxuICAgICAgY29udGV4dF9wYWdlX3ZhcmlhbnRfaWQ6ICdjb250ZXh0LnBhZ2VfdmFyaWFudF9pZCcsXG4gICAgICBlbnZpcm9ubWVudF9lbnZpdmVfZW5hYmxlZDogJ2Vudmlyb25tZW50LmVudml2ZV9lbmFibGVkJyxcbiAgICB9LFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXF1ZXN0XToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXNwb25zZV06IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0Q2xpY2tlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrREEsTUFBTUEsc0NBQXVFO0NBQzNFLGtCQUFrQixFQUFFLDZCQUE2QixvQ0FBb0M7Q0FDckYsc0JBQXNCLEVBQUUsd0JBQXdCLG1DQUFtQztDQUNuRixxQkFBcUIsRUFBRSwyQkFBMkIscUNBQXFDO0NBQ3ZGLHlCQUF5QixFQUFFLHdCQUF3QixzQ0FBc0M7Q0FFekYseUJBQXlCO0VBQ3ZCLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDMUI7Q0FDRCw0QkFBNEIsRUFBRSx3QkFBd0IseUNBQXlDO0NBQ2hHO0FBRUQsTUFBYUMsbUJBQXdFO0VBQ2xGLHVCQUF1QixpQkFBaUI7RUFDdkMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxTQUFTO0dBQ1QsUUFBUTtHQUNSLGFBQWE7R0FDZDtFQUNGO0VBRUEsdUJBQXVCLG9CQUFvQjtFQUMxQyxhQUFhO0VBQ2IsZUFBZSxFQUFFO0VBQ2pCLGtCQUFrQjtHQUNoQixXQUFXO0dBQ1gsU0FBUztHQUNULFNBQVM7R0FDVCxRQUFRO0dBQ1Isa0JBQWtCO0dBQ2xCLG1CQUFtQjtHQUNuQixhQUFhO0dBQ2Q7RUFDRCxrQ0FBa0M7RUFDbkM7RUFFQSx1QkFBdUIsY0FBYztFQUNwQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FDQTtHQUNBO0dBRUE7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7RUFDRjtFQUVBLHVCQUF1QixlQUFlO0VBQ3JDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQSx1QkFBdUIsb0JBQW9CO0VBQzFDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUVBO0dBQ0E7R0FDRDtFQUNGO0VBR0EsdUJBQXVCLGFBQWE7RUFDbkMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxtQkFBbUI7R0FDbkIsZUFBZTtHQUNmLHlCQUF5QjtHQUN6Qiw0QkFBNEI7R0FDN0I7RUFDRjtFQUVBLHVCQUF1QixvQkFBb0IsRUFDMUMsYUFBYSxNQUNkO0VBRUEsdUJBQXVCLHFCQUFxQixFQUMzQyxhQUFhLE1BQ2Q7RUFFQSx1QkFBdUIsb0JBQW9CLEVBQzFDLGFBQWEsTUFDZDtDQUNGIn0=
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuanMiLCJuYW1lcyI6WyJXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiIsIkdBNF9FVkVOVF9TQ0hFTUE6IFJlY29yZDxFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBHQTRFdmVudFNjaGVtYUVudHJ5PiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9nYTRQcm9qZWN0aW9uU2VydmljZS9nYTRFdmVudFNjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdBNCBFdmVudCBTY2hlbWEg4oCUIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIEVudml2ZSDihpIgR0E0IHByb2plY3Rpb24uXG4gKlxuICogRXZlcnkgRW52aXZlTWV0cmljc0V2ZW50TmFtZSBNVVNUIGhhdmUgYW4gZW50cnkgaGVyZS4gVGhlIFJlY29yZCB0eXBlIGVuZm9yY2VzXG4gKiB0aGlzIGF0IGNvbXBpbGUgdGltZSDigJQgYWRkaW5nIGEgbmV3IGVudW0gbWVtYmVyIHdpdGhvdXQgYSBzY2hlbWEgZW50cnkgd2lsbFxuICogY2F1c2UgYSBUeXBlU2NyaXB0IGVycm9yLlxuICpcbiAqICMjIEhvdyB0byB1cGRhdGUgdGhpcyBmaWxlXG4gKlxuICogV2hlbiBhZGRpbmcgb3IgbW9kaWZ5aW5nIGV2ZW50IHByb3BlcnRpZXMsIGRlY2lkZSB3aGV0aGVyIHRoZXkgYmVsb25nIGluIGBhbGxvd2VkRmllbGRzYCB1c2luZyB0aGVzZSBjcml0ZXJpYTpcbiAqIC0gKipMb3cgY2FyZGluYWxpdHkqKiDigJQgYXZvaWQgdW5ib3VuZGVkIHZhbHVlcyAoZnJlZSB0ZXh0LCBJRHMsIFVSTHMsIHRpbWVzdGFtcHMpLlxuICogLSAqKk5vbi1zZW5zaXRpdmUqKiDigJQgbm8gUElJLCB1c2VyIGlucHV0IHRleHQsIG9yIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG4gKiAtICoqRmxhdCBzY2FsYXIqKiDigJQgR0E0IGN1c3RvbSBkaW1lbnNpb25zIGFyZSBmbGF0IHN0cmluZ3MvbnVtYmVycy9ib29sZWFucy5cbiAqICAgTmVzdGVkIG9iamVjdHMgc2hvdWxkIE5PVCBiZSBhZGRlZDsgZXh0cmFjdCBzcGVjaWZpYyBzdWItZmllbGRzIGluc3RlYWQuXG4gKiAtICoqU25ha2VfY2FzZSBrZXkqKiDigJQgbXVzdCBhbHJlYWR5IGJlIGRvdC1ub3RhdGlvbiBzbmFrZV9jYXNlIChlLmcuIGBjaGF0LnVzZXJfdHlwZWRgKS5cbiAqIC0gKipBbmFseXRpY2FsbHkgdXNlZnVsKiog4oCUIHRoZSBmaWVsZCBzaG91bGQgZW5hYmxlIG1lYW5pbmdmdWwgZmlsdGVyaW5nL3NlZ21lbnRhdGlvblxuICogICBmb3IgbWVyY2hhbnRzIGluIHRoZWlyIEdBNCBkYXNoYm9hcmRzLlxuICpcbiAqIElmIGV4Y2x1ZGVkIGZyb20gYGFsbG93ZWRGaWVsZHNgLCB0aGUgcHJvamVjdGlvbiBsYXllciB3aWxsIGF1dG9tYXRpY2FsbHkgZHJvcCBpdC5cbiAqXG4gKiBJRiBJTiBET1VCVCwgRE9OJ1QgSEVTSVRBVEUgVE8gUkVBQ0ggT1VUIFRPIFRIRSBBTkFMWVRJQ1MgVEVBTSEhIVxuICovXG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzJztcblxuLyoqXG4gKiBEZWZpbmVzIHdoaWNoIGZpZWxkcyB0byBleHRyYWN0IGZyb20gYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uX2RhdGFgXG4gKiBmb3IgYSBnaXZlbiBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25gIHZhbHVlLlxuICpcbiAqIEtleTogdGhlIHZhbHVlIG9mIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgKGUuZy4gXCJ3aWRnZXRfY29sbGFwc2VkXCIpXG4gKiBWYWx1ZTogbWFwcGluZyBvZiB7IGdhNEZsYXRLZXk6IHNvdXJjZUZpZWxkSW5XaWRnZXRJbnRlcmFjdGlvbkRhdGEgfVxuICovXG5leHBvcnQgdHlwZSBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uID0gUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0UHJvamVjdGVkRXZlbnRDb25maWcge1xuICBnYUV2ZW50TmFtZTogc3RyaW5nO1xuICBhbGxvd2VkRmllbGRzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFdoZW4gcHJlc2VudCwgdXNlZCBpbnN0ZWFkIG9mIGBhbGxvd2VkRmllbGRzYCB0byBib3RoIGZpbHRlciBhbmQgcmVuYW1lIGZpZWxkcy5cbiAgICogS2V5OiB0aGUgZGVzaXJlZCBHQTQgcGFyYW1ldGVyIG5hbWUuIFZhbHVlOiB0aGUgc291cmNlIGRvdC1ub3RhdGlvbiBrZXkgaW4gZXZlbnRQcm9wcy5cbiAgICovXG4gIGZpZWxkUHJvamVjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB3aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9ucz86IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0RXhjbHVkZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBHQTRFdmVudFNjaGVtYUVudHJ5ID0gR0E0UHJvamVjdGVkRXZlbnRDb25maWcgfCBHQTRFeGNsdWRlZEV2ZW50Q29uZmlnO1xuXG5jb25zdCBXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiA9IHtcbiAgd2lkZ2V0X2NvbGxhcHNlZDogeyBpbnRlcmFjdGlvbl9jb2xsYXBzZV9zb3VyY2U6ICd3aWRnZXRfY29sbGFwc2VkLmNvbGxhcHNlX3NvdXJjZScgfSxcbiAgcHJvZHVjdF9jYXJkX2NsaWNrZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3Byb2R1Y3RfY2FyZF9jbGlja2VkLnByb2R1Y3RfaWQnIH0sXG4gIHN1Z2dlc3Rpb25fc2Nyb2xsZWQ6IHsgaW50ZXJhY3Rpb25fc3VnZ2VzdGlvbl9pZDogJ3N1Z2dlc3Rpb25fc2Nyb2xsZWQuc3VnZ2VzdGlvbl9pZCcgfSxcbiAgdmFyaWFudF9zZWxlY3Rvcl9vcGVuZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfc2VsZWN0b3Jfb3BlbmVkLnByb2R1Y3RfaWQnIH0sXG4gIC8vIG9wdGlvbl92YWx1ZSBpcyBpbnRlbnRpb25hbGx5IGV4Y2x1ZGVkIOKAlCBtZXJjaGFudC1kZWZpbmVkIHZhbHVlcyBhcmUgaGlnaCBjYXJkaW5hbGl0eVxuICB2YXJpYW50X29wdGlvbl9zZWxlY3RlZDoge1xuICAgIGludGVyYWN0aW9uX3Byb2R1Y3RfaWQ6ICd2YXJpYW50X29wdGlvbl9zZWxlY3RlZC5wcm9kdWN0X2lkJyxcbiAgICBpbnRlcmFjdGlvbl9vcHRpb25fbmFtZTogJ3ZhcmlhbnRfb3B0aW9uX3NlbGVjdGVkLm9wdGlvbl9uYW1lJyxcbiAgfSxcbiAgdmFyaWFudF9zZWxlY3Rvcl9kaXNtaXNzZWQ6IHsgaW50ZXJhY3Rpb25fcHJvZHVjdF9pZDogJ3ZhcmlhbnRfc2VsZWN0b3JfZGlzbWlzc2VkLnByb2R1Y3RfaWQnIH0sXG59O1xuXG5leHBvcnQgY29uc3QgR0E0X0VWRU5UX1NDSEVNQTogUmVjb3JkPEVudml2ZU1ldHJpY3NFdmVudE5hbWUsIEdBNEV2ZW50U2NoZW1hRW50cnk+ID0ge1xuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRSZW5kZXJlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV93aWRnZXRfcmVuZGVyZWQnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtdLFxuICAgIGZpZWxkUHJvamVjdGlvbnM6IHtcbiAgICAgIHBhZ2VfdHlwZTogJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgIHBhZ2VfaWQ6ICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgc3VyZmFjZTogJ2NvbnRleHQuc3VyZmFjZScsXG4gICAgICB3aWRnZXQ6ICd0cmlnZ2VyLndpZGdldCcsXG4gICAgICB3aWRnZXRfcm9sZTogJ3RyaWdnZXIud2lkZ2V0X3JvbGUnLFxuICAgIH0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb25dOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfd2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXSxcbiAgICBmaWVsZFByb2plY3Rpb25zOiB7XG4gICAgICBwYWdlX3R5cGU6ICdjb250ZXh0LnBhZ2VfdHlwZScsXG4gICAgICBwYWdlX2lkOiAnY29udGV4dC5wYWdlX2lkJyxcbiAgICAgIHN1cmZhY2U6ICdjb250ZXh0LnN1cmZhY2UnLFxuICAgICAgd2lkZ2V0OiAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgaW50ZXJhY3Rpb25fdHlwZTogJ3RyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICAgIGludGVyYWN0aW9uX2NsYXNzOiAndHJpZ2dlci5pbnRlcmFjdGlvbl9jbGFzcycsXG4gICAgICB3aWRnZXRfcm9sZTogJ3RyaWdnZXIud2lkZ2V0X3JvbGUnLFxuICAgIH0sXG4gICAgd2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbnM6IFdJREdFVF9JTlRFUkFDVElPTl9EQVRBX1BST0pFQ1RJT05TLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0XToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2NoYXRfcmVxdWVzdCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ3BhZ2VfdHlwZScsXG4gICAgICAncGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJyxcbiAgICAgIC8vICdjaGF0LnJlcXVlc3RfdGV4dCcsIC8vIFRoaXMgaXMgaGlnaCBjYXJkaW5hbGl0eSBhbmQgcG90ZW50aWFsbHkgUElJIGJ1dCB3ZSBtaWdodCB3YW50IHRvIGluY2x1ZGUgaXQgbGF0ZXJcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pZCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2NyZWF0ZWRfYXQnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lzX2Fuc3dlcicsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LmZvcm1fdHlwZScsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICBdLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXNwb25zZV06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9jaGF0X3Jlc3BvbnNlJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAncGFnZV90eXBlJyxcbiAgICAgICdwYWdlX2lkJyxcbiAgICAgICd0cmlnZ2VyLndpZGdldCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgKG1heWJlIGl0IHNob3VsZCdudCBiZT8/PylcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQucmVzcG9uc2VfdGltZV9tcycsXG4gICAgICAnY2hhdC5wcm9kdWN0X2NhcmRzX3JldHVybmVkJyxcbiAgICAgICdjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJyxcbiAgICAgICdjaGF0LnJldmlld19jYXJkc19yZXR1cm5lZCcsXG4gICAgXSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5FbnZpdmVJbml0aWFsaXplZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9pbml0aWFsaXplZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2Vudmlyb25tZW50LnNhbGVzX2FnZW50X2VuYWJsZWQnLFxuICAgICAgJ2Vudmlyb25tZW50LmVudml2ZV9lbmFibGVkJyxcbiAgICAgIC8vICdlbnZpcm9ubWVudC5zZWFyY2hfZW5hYmxlZCcsIC8vIEZvciBub3csIHNlYXJjaCBpcyBub3QgaW1wbGVtZW50ZWQuIFdlIHdpbGwgYWRkIGl0IGxhdGVyLlxuICAgICAgJ3BlcmZvcm1hbmNlLnN0YXJ0X3RpbWVfbXMnLFxuICAgICAgJ3BlcmZvcm1hbmNlLmluaXRpYWxpemVfdGltZV9tcycsXG4gICAgXSxcbiAgfSxcblxuICAvLyBUaGlzIGV2ZW50IGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuUGFnZVZpZXdlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9wYWdlX2NvbnRleHRfZXZhbHVhdGVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXSxcbiAgICBmaWVsZFByb2plY3Rpb25zOiB7XG4gICAgICBwYWdlX3R5cGU6ICdjb250ZXh0LnBhZ2VfdHlwZScsXG4gICAgICBwYWdlX2lkOiAnY29udGV4dC5wYWdlX2lkJyxcbiAgICAgIGNvbnRleHRfc3VwcG9ydGVkOiAnY29udGV4dC5zdXBwb3J0ZWQnLFxuICAgICAgY29udGV4dF9yZWFkeTogJ2NvbnRleHQucmVhZHknLFxuICAgICAgY29udGV4dF9wYWdlX3ZhcmlhbnRfaWQ6ICdjb250ZXh0LnBhZ2VfdmFyaWFudF9pZCcsXG4gICAgICBlbnZpcm9ubWVudF9lbnZpdmVfZW5hYmxlZDogJ2Vudmlyb25tZW50LmVudml2ZV9lbmFibGVkJyxcbiAgICB9LFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXF1ZXN0XToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXNwb25zZV06IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0Q2xpY2tlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcblxuICAvLyBJbnRlcm5hbCBlbmcgb3BlcmF0aW9uYWwgbW9uaXRvcmluZyDigJQgbmV2ZXIgcHJvamVjdGVkIHRvIG1lcmNoYW50IEdBNC5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuRGlhZ25vc3RpY3NdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0RBLE1BQU1BLHNDQUF1RTtDQUMzRSxrQkFBa0IsRUFBRSw2QkFBNkIsb0NBQW9DO0NBQ3JGLHNCQUFzQixFQUFFLHdCQUF3QixtQ0FBbUM7Q0FDbkYscUJBQXFCLEVBQUUsMkJBQTJCLHFDQUFxQztDQUN2Rix5QkFBeUIsRUFBRSx3QkFBd0Isc0NBQXNDO0NBRXpGLHlCQUF5QjtFQUN2Qix3QkFBd0I7RUFDeEIseUJBQXlCO0VBQzFCO0NBQ0QsNEJBQTRCLEVBQUUsd0JBQXdCLHlDQUF5QztDQUNoRztBQUVELE1BQWFDLG1CQUF3RTtFQUNsRix1QkFBdUIsaUJBQWlCO0VBQ3ZDLGFBQWE7RUFDYixlQUFlLEVBQUU7RUFDakIsa0JBQWtCO0dBQ2hCLFdBQVc7R0FDWCxTQUFTO0dBQ1QsU0FBUztHQUNULFFBQVE7R0FDUixhQUFhO0dBQ2Q7RUFDRjtFQUVBLHVCQUF1QixvQkFBb0I7RUFDMUMsYUFBYTtFQUNiLGVBQWUsRUFBRTtFQUNqQixrQkFBa0I7R0FDaEIsV0FBVztHQUNYLFNBQVM7R0FDVCxTQUFTO0dBQ1QsUUFBUTtHQUNSLGtCQUFrQjtHQUNsQixtQkFBbUI7R0FDbkIsYUFBYTtHQUNkO0VBQ0Qsa0NBQWtDO0VBQ25DO0VBRUEsdUJBQXVCLGNBQWM7RUFDcEMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUVBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQSx1QkFBdUIsZUFBZTtFQUNyQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNGO0VBRUEsdUJBQXVCLG9CQUFvQjtFQUMxQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FFQTtHQUNBO0dBQ0Q7RUFDRjtFQUdBLHVCQUF1QixhQUFhO0VBQ25DLGFBQWE7RUFDYixlQUFlLEVBQUU7RUFDakIsa0JBQWtCO0dBQ2hCLFdBQVc7R0FDWCxTQUFTO0dBQ1QsbUJBQW1CO0dBQ25CLGVBQWU7R0FDZix5QkFBeUI7R0FDekIsNEJBQTRCO0dBQzdCO0VBQ0Y7RUFFQSx1QkFBdUIsb0JBQW9CLEVBQzFDLGFBQWEsTUFDZDtFQUVBLHVCQUF1QixxQkFBcUIsRUFDM0MsYUFBYSxNQUNkO0VBRUEsdUJBQXVCLG9CQUFvQixFQUMxQyxhQUFhLE1BQ2Q7RUFHQSx1QkFBdUIsY0FBYyxFQUNwQyxhQUFhLE1BQ2Q7Q0FDRiJ9
@@ -204,6 +204,7 @@ var HardcopyService = class {
204
204
  request_id: widgetTextRequest.requestId
205
205
  }
206
206
  });
207
+ let fallbackReason;
207
208
  try {
208
209
  const response = await withTimeout(require_application_commerce_api.default.getHardcopy(widgetTextRequest), HARDCOPY_TIMEOUT_MS);
209
210
  if (response) {
@@ -219,15 +220,23 @@ var HardcopyService = class {
219
220
  ...response.aiSuggestionsAttributionBySlot ? { ai_suggestions_attribution_by_slot: response.aiSuggestionsAttributionBySlot } : {}
220
221
  }
221
222
  });
222
- return convertedResponse;
223
+ return {
224
+ ...convertedResponse,
225
+ servedFrom: "api"
226
+ };
223
227
  }
224
228
  } catch (error) {
225
229
  logger.logError("error getting hardcopy from backend", error);
230
+ fallbackReason = error instanceof Error && error.message.includes("timed out") ? "timeout" : "error";
226
231
  }
227
232
  const mockResponse = MOCK_HARDCOPY_RESPONSE[request.widgetType];
228
233
  if (mockResponse) {
229
234
  logger.logDebug("no real response, using mock", mockResponse);
230
- return mockResponse;
235
+ return {
236
+ ...mockResponse,
237
+ servedFrom: "static",
238
+ fallbackReason: fallbackReason ?? "error"
239
+ };
231
240
  }
232
241
  throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
233
242
  }
@@ -249,4 +258,4 @@ exports.HARDCOPY_TIMEOUT_MS = HARDCOPY_TIMEOUT_MS;
249
258
  exports.HardcopyService = HardcopyService;
250
259
  exports.MOCK_HARDCOPY_RESPONSE = MOCK_HARDCOPY_RESPONSE;
251
260
  exports.MockHardcopyService = MockHardcopyService;
252
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsInRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiIsIk1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+IiwiV2lkZ2V0VHlwZVYzIiwidG9DYW1lbENhc2UiLCJjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZyIsImdldFF1ZXJ5UGFyYW0iLCJnZXRBdG9tU3RvcmUiLCJyZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSIsIndpZGdldFRleHRSZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCIsIndpcmVXaWRnZXRUeXBlOiBzdHJpbmciLCJjb3JlV2lkZ2V0VHlwZVRvQXBpV2lkZ2V0VHlwZSIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJDb21tZXJjZUFwaUNsaWVudCIsIm92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvaGFyZGNvcHlTZXJ2aWNlL2hhcmRjb3B5U2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgeyBXaWRnZXRTdHJpbmcsIFdpZGdldFRleHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFdpZGdldFRleHRSZXF1ZXN0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dFJlcXVlc3QnO1xuaW1wb3J0IHsgdG9DYW1lbENhc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgY29yZVdpZGdldFR5cGVUb0FwaVdpZGdldFR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvd2lkZ2V0VGV4dFJlcXVlc3RUb0FwaVJlcXVlc3QnO1xuaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBBcHBEZXRhaWxzIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBnZXRBdG9tU3RvcmUgfSBmcm9tICdzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZSc7XG5pbXBvcnQgeyByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbic7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBUcmFja0V2ZW50UGFyYW1zIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5U2VydmljZScpO1xuXG4vLyBMb25nZXN0IGEgaGFyZGNvcHkgcmVxdWVzdCBtYXkgaGFuZyBiZWZvcmUgd2Ugc3RvcCB3YWl0aW5nIGZvciBpdC4gVGhlIGJhY2tlbmQtZXJyb3Jcbi8vIHBhdGggYmVsb3cgYWxyZWFkeSBmYWxscyBiYWNrIHRvIHN0YXRpYyBjb3B5LCBidXQgYSByZXF1ZXN0IHRoYXQgbmV2ZXIgc2V0dGxlcyBhdCBhbGxcbi8vIG5ldmVyIHJlYWNoZXMgdGhhdCBjYXRjaCDigJQgaXQgbGVmdCB0aGUgd2lkZ2V0J3MgbG9hZGluZyBsYXRjaCB1bnJlc29sdmVkIGZvcmV2ZXIsIHdoaWNoXG4vLyBpcyB0aGUgXCJQTFAgc3RheWluZyBpbiBsb2FkaW5nIHN0YXRlXCIgZmFpbHVyZS4gUmFjaW5nIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhpcyB0aW1lb3V0XG4vLyB0dXJucyBhIGhhbmcgaW50byB0aGUgc2FtZSBmYWxsYmFjayBwYXRoIGFuIGVycm9yIHRha2VzLCBzbyB0aGUgd2lkZ2V0IGFsd2F5cyBsZWF2ZXMgaXRzXG4vLyBsb2FkaW5nIHN0YXRlLlxuLy9cbi8vIEtlcHQgdW5kZXIgdGhlIH40LTVzIGF0IHdoaWNoIHNlc3Npb24gcmVwbGF5cyBzaG93IHNob3BwZXJzIGFiYW5kb24gYSBzdGlsbC1sb2FkaW5nXG4vLyB3aWRnZXQ6IGEgcmVzY3VlIHRoYXQgZmlyZXMgYWZ0ZXIgdGhleSd2ZSBsZWZ0IGhlbHBzIG5vIG9uZS4gV2hlbiBpdCBmaXJlcywgdGhlIGNhdGNoXG4vLyBiZWxvdyBsb2dzIGFuIGVycm9yIChtZXNzYWdlIGluY2x1ZGVzIFwidGltZWQgb3V0XCIpIOKAlCB0aGF0IGxvZyBpcyB0aGUgc2lnbmFsIG1vbml0b3Jpbmdcbi8vIGNhbiBjb3VudCB0byBtZWFzdXJlIGhvdyBvZnRlbiBoYXJkY29weSBzdGFsbHMuXG5leHBvcnQgY29uc3QgSEFSRENPUFlfVElNRU9VVF9NUyA9IDQwMDA7XG5cbi8vIFJlamVjdCBpZiBgcHJvbWlzZWAgaGFzIG5vdCBzZXR0bGVkIHdpdGhpbiBgbXNgLiBUaGUgdW5kZXJseWluZyByZXF1ZXN0IGlzIG5vdCBhYm9ydGVkXG4vLyAoYSBsYXRlIHJlc3BvbnNlIGlzIHNpbXBseSBkaXNjYXJkZWQpIOKAlCB0aGUgb25seSBnb2FsIGlzIHRvIHN0b3AgKndhaXRpbmcqLCBzbyB0aGVcbi8vIGNhbGxlcidzIGVycm9yIGhhbmRsaW5nIGNhbiBydW4uXG5jb25zdCB3aXRoVGltZW91dCA9IDxUPihwcm9taXNlOiBQcm9taXNlPFQ+LCBtczogbnVtYmVyKTogUHJvbWlzZTxUPiA9PiB7XG4gIGxldCB0aW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT4ge1xuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKGBoYXJkY29weSByZXF1ZXN0IHRpbWVkIG91dCBhZnRlciAke21zfW1zYCkpLCBtcyk7XG4gIH0pO1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtwcm9taXNlLCB0aW1lb3V0XSkuZmluYWxseSgoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpKSBhcyBQcm9taXNlPFQ+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuXG5leHBvcnQgdHlwZSBIYXJkY29weVJlc3BvbnNlID0ge1xuICByZXNwb25zZUlkOiBzdHJpbmc7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHJhd1ZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFdpZGdldFN0cmluZyB8IFdpZGdldFN0cmluZ1tdPjtcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElIYXJkY29weVNlcnZpY2Uge1xuICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5U2VydmljZUNvbmZpZyB7XG4gIGdldEFwcERldGFpbHM6ICgpID0+IEFwcERldGFpbHM7XG4gIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHRyYWNrRXZlbnQ/OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBTYW1wbGUgcmVzcG9uc2VzIHVzZWQgYm90aCBhcyBmYWxsYmFjayB3aGVuIHRoZSBiYWNrZW5kIGZhaWxzIGFuZCBieSBNb2NrSGFyZGNvcHlTZXJ2aWNlLlxuZXhwb3J0IGNvbnN0IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+ID0ge1xuICBbV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogdXVpZCgpLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnTmVlZCBzb21lIGhlbHA/JyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBudW1iZXJPZkN1c3RvbWVyc1RleHQ6ICcxMjMgY3VzdG9tZXJzJyxcbiAgICAgIGN1c3RvbWVyUXVlcnlUZXh0OiAnZm91bmQgd2hhdCB0aGV5IHdlcmUgbG9va2luZyBmb3IuLi4nLFxuICAgICAgcHJpbWFyeUJ1dHRvblRleHQ6ICdTdGFydCBzaG9wcGluZycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25UaXRsZVRleHQ6ICdQb3B1bGFyIHNlYXJjaGVzJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaHkgc2hvdWxkIEkgYnV5IGZyb20geW91PycsXG4gICAgICAgICdIb3cgZG8gSSByZXR1cm4gYW4gaXRlbT8nLFxuICAgICAgICAnTmV3IGFycml2YWxzJyxcbiAgICAgICAgJ1NhbGUgaXRlbXMnLFxuICAgICAgICAnUG9wdWxhciBpdGVtcycsXG4gICAgICBdLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgaGVhZGxpbmVUZXh0OiAnTmVlZCBoZWxwIGZpbmRpbmcnLFxuICAgICAgYW5pbWF0ZWRUZXh0U2VxdWVuY2U6IFtcbiAgICAgICAgJ3RoZSBwZXJmZWN0IGdpZnQgZm9yIHlvdXIgbG92ZWQgb25lcz8nLFxuICAgICAgICAnc29tZXRoaW5nIHNwZWNpYWwgZm9yIHRoZSBob2xpZGF5cz8nLFxuICAgICAgICAndGhlIGlkZWFsIHByZXNlbnQgZm9yIHNvbWVvbmUgc3BlY2lhbD8nLFxuICAgICAgXSxcbiAgICAgIGhpbnRUZXh0OiAnQXNrIG1lIGFueXRoaW5nJyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRBcmlhTGFiZWw6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdDb21wYXJpc29uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgY29tcGFyaW5nPycsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uc1RleHRzOiBbJ0hlbHAgbWUgZmluZCBhIHByb2R1Y3QnLCBcIldoYXQncyBvbiB5b3VyIG1pbmQ/XCIsICdUYWxrIHRvIGEgaHVtYW4nXSxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIGhlYWRsaW5lOiAnRGlzY292ZXIgWW91ciBQZXJmZWN0IFN0eWxlJyxcbiAgICAgIGFuaW1hdGVkVGV4dDogW1xuICAgICAgICAndGhlIHBlcmZlY3Qgb3V0Zml0IGZvciBhbnkgb2NjYXNpb24nLFxuICAgICAgICAndHJlbmRpbmcgZmFzaGlvbiB0aGF0IGZpdHMgeW91ciBsaWZlc3R5bGUnLFxuICAgICAgICAncXVhbGl0eSBwaWVjZXMgdGhhdCBsYXN0JyxcbiAgICAgIF0sXG4gICAgICBwcm9tcHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZsb2F0aW5nQ2hhdFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICAgIGxlZnRUb2dnbGVMYWJlbDogJ1Nob3Agd2l0aCBBSScsXG4gICAgICByaWdodFRvZ2dsZUxhYmVsOiAnTGl2ZSBzdXBwb3J0JyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZ1bGxQYWdlU2FsZXNBZ2VudFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICAgIHdlbGNvbWVPdmVybGF5TGlua0xpc3RUaXRsZTogJ0V4cGxvcmUgbW9yZScsXG4gICAgfSxcbiAgfSxcbn07XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+ICh7XG4gIHJlc3BvbnNlSWQ6IHJlc3BvbnNlLnJlc3BvbnNlSWQsXG4gIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgcmF3VmFsdWVzOiByZXNwb25zZS52YWx1ZXMsXG4gIHZhbHVlczogT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgIHRvQ2FtZWxDYXNlKGtleSksXG4gICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgIF0pLFxuICApLFxufSk7XG5cbmV4cG9ydCBjbGFzcyBIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+IHtcbiAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRBdG9tU3RvcmUoKS5nZXQocmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbkF0b20pIHx8XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QgPSB7XG4gICAgICByZXF1ZXN0SWQ6IHV1aWQoKSxcbiAgICAgIHdpZGdldFR5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29uZmlnLmdldEFwcERldGFpbHMoKSxcbiAgICAgIGZlYXR1cmVGbGFnczogdGhpcy5jb25maWcuZ2V0RmVhdHVyZUZsYWdzKCksXG4gICAgICBsYW5ndWFnZTogbmF2aWdhdG9yLmxhbmd1YWdlc1swXSB8fCAnZW4nLFxuICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9O1xuXG4gICAgLy8gVGhlIFdpZGdldCBUZXh0IGV2ZW50cyBtdXN0IGNhcnJ5IHRoZSBBUEktZmFjaW5nICh0cmFuc2xhdGVkKSB3aWRnZXQgdHlwZSwgbm90IHRoZVxuICAgIC8vIGludGVybmFsIG9uZTogdGhlIEFJLXN1Z2dlc3Rpb25zIGFjY291bnRpbmcgam9pbnMgdGhlc2UgZXZlbnRzIGFnYWluc3QgdGhlIGJhY2tlbmRcbiAgICAvLyByZWdpc3RyeSwgd2hpY2ggaXMga2V5ZWQgYnkgdGhlIHdpcmUgdHlwZSAoZS5nLiBQcm9kdWN0Q2FyZFYzIGlzIHNlbnQg4oCUIGFuZCBzdG9yZWQg4oCUXG4gICAgLy8gYXMgSW1hZ2VQcm9tcHRDYXJkVjMpLiBTdGFtcGluZyB0aGUgaW50ZXJuYWwgbmFtZSBoZXJlIHplcm9lZCB0aG9zZSBzdGF0cy4gQW5cbiAgICAvLyB1bm1hcHBlZCB0eXBlIGtlZXBzIHRoZSBpbnRlcm5hbCBuYW1lIOKAlCBhbmFseXRpY3MgbXVzdCBuZXZlciBibG9jayBzZXJ2aW5nLlxuICAgIGxldCB3aXJlV2lkZ2V0VHlwZTogc3RyaW5nID0gcmVxdWVzdC53aWRnZXRUeXBlO1xuICAgIHRyeSB7XG4gICAgICB3aXJlV2lkZ2V0VHlwZSA9IGNvcmVXaWRnZXRUeXBlVG9BcGlXaWRnZXRUeXBlKHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ25vIHdpcmUgbWFwcGluZyBmb3Igd2lkZ2V0IHR5cGUg4oCUIGtlZXBpbmcgaW50ZXJuYWwgbmFtZScsIHtcbiAgICAgICAgd2lkZ2V0VHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcudHJhY2tFdmVudD8uKHtcbiAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdCxcbiAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgd2lkZ2V0X3R5cGU6IHdpcmVXaWRnZXRUeXBlLFxuICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgd2l0aFRpbWVvdXQoXG4gICAgICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEhhcmRjb3B5KHdpZGdldFRleHRSZXF1ZXN0KSxcbiAgICAgICAgSEFSRENPUFlfVElNRU9VVF9NUyxcbiAgICAgICk7XG4gICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgY29udmVydGVkUmVzcG9uc2UgPSBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdjb252ZXJ0ZWQgcmVzcG9uc2UnLCBjb252ZXJ0ZWRSZXNwb25zZSk7XG4gICAgICAgIHRoaXMuY29uZmlnLnRyYWNrRXZlbnQ/Lih7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICB3aWRnZXRfdHlwZTogd2lyZVdpZGdldFR5cGUsXG4gICAgICAgICAgICByZXNwb25zZV9pZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgICAgICAgICAgIHdpZGdldF90ZXh0OiByZXNwb25zZS52YWx1ZXMsXG4gICAgICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICAgICAgICAvLyBXaGljaCBtZXRob2Qgc2VydmVkIGVhY2ggb3ZlcnJpZGRlbiBzbG90IOKAlCB0cmFpbmluZy9hdHRyaWJ1dGlvblxuICAgICAgICAgICAgLy8gcmVhZHMgdGhpcyBmcm9tIHRoZSBhbmFseXRpY3MgZXZlbnQ7IHBhc3NlZCB0aHJvdWdoIHZlcmJhdGltLlxuICAgICAgICAgICAgLi4uKHJlc3BvbnNlLmFpU3VnZ2VzdGlvbnNBdHRyaWJ1dGlvbkJ5U2xvdFxuICAgICAgICAgICAgICA/IHsgYWlfc3VnZ2VzdGlvbnNfYXR0cmlidXRpb25fYnlfc2xvdDogcmVzcG9uc2UuYWlTdWdnZXN0aW9uc0F0dHJpYnV0aW9uQnlTbG90IH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb252ZXJ0ZWRSZXNwb25zZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBnZXR0aW5nIGhhcmRjb3B5IGZyb20gYmFja2VuZCcsIGVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2NrUmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgaWYgKG1vY2tSZXNwb25zZSkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyByZWFsIHJlc3BvbnNlLCB1c2luZyBtb2NrJywgbW9ja1Jlc3BvbnNlKTtcbiAgICAgIHJldHVybiBtb2NrUmVzcG9uc2U7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7fSkge31cblxuICBhc3luYyBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+IHtcbiAgICBjb25zdCBmYWxsYmFja1dpZGdldFR5cGUgPVxuICAgICAgcmVxdWVzdC53aWRnZXRUeXBlID09PSBXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWM1xuICAgICAgICA/IFdpZGdldFR5cGVWMy5JbWFnZVByb21wdENhcmRWM1xuICAgICAgICA6IHJlcXVlc3Qud2lkZ2V0VHlwZTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgIHRoaXMub3ZlcnJpZGVzW3JlcXVlc3Qud2lkZ2V0VHlwZV0gPz9cbiAgICAgIHRoaXMub3ZlcnJpZGVzW2ZhbGxiYWNrV2lkZ2V0VHlwZV0gPz9cbiAgICAgIE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcblxuICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxrQkFBa0I7QUFhNUMsTUFBYSxzQkFBc0I7QUFLbkMsTUFBTSxlQUFrQixTQUFxQixPQUEyQjtDQUN0RSxJQUFJQztDQUNKLE1BQU0sVUFBVSxJQUFJLFNBQWdCLEdBQUcsV0FBVztBQUNoRCxVQUFRLGlCQUFpQix1QkFBTyxJQUFJLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRztHQUMzRjtBQUNGLFFBQU8sUUFBUSxLQUFLLENBQUMsU0FBUyxRQUFRLENBQUMsQ0FBQyxjQUFjLGFBQWEsTUFBTSxDQUFDOztBQTBCNUUsTUFBYUMseUJBQTBFO0VBQ3BGQyxzQ0FBYSxtQkFBbUI7RUFDL0IsMEJBQWtCO0VBQ2xCLFVBQVU7RUFDVixRQUFRLEVBQ04sbUJBQW1CO0dBQ2pCO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRCxFQUNGO0VBQ0Y7RUFDQUEsc0NBQWEseUJBQXlCO0VBQ3JDLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWixtQkFBbUI7SUFDakI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNEO0dBQ0Y7RUFDRjtFQUNBQSxzQ0FBYSxnQkFBZ0I7RUFDNUIsWUFBWTtFQUNaLFVBQVU7RUFDVixRQUFRO0dBQ04sWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixtQkFBbUI7R0FDbkIsbUJBQW1CO0dBQ25CLDBCQUEwQjtHQUMxQixzQkFBc0I7SUFDcEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNEO0dBQ0QsMEJBQTBCO0dBQzNCO0VBQ0Y7RUFDQUEsc0NBQWEsb0JBQW9CO0VBQ2hDLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWixjQUFj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
261
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsInRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiIsIk1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+IiwiV2lkZ2V0VHlwZVYzIiwidG9DYW1lbENhc2UiLCJjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZyIsImdldFF1ZXJ5UGFyYW0iLCJnZXRBdG9tU3RvcmUiLCJyZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSIsIndpZGdldFRleHRSZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCIsIndpcmVXaWRnZXRUeXBlOiBzdHJpbmciLCJjb3JlV2lkZ2V0VHlwZVRvQXBpV2lkZ2V0VHlwZSIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJmYWxsYmFja1JlYXNvbjogJ3RpbWVvdXQnIHwgJ2Vycm9yJyB8IHVuZGVmaW5lZCIsIkNvbW1lcmNlQXBpQ2xpZW50Iiwib3ZlcnJpZGVzOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9oYXJkY29weVNlcnZpY2UvaGFyZGNvcHlTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCBDb21tZXJjZUFwaUNsaWVudCBmcm9tICdzcmMvYXBwbGljYXRpb24vY29tbWVyY2UtYXBpJztcbmltcG9ydCB7IFdpZGdldFN0cmluZywgV2lkZ2V0VGV4dCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VGV4dFJlcXVlc3QgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0UmVxdWVzdCc7XG5pbXBvcnQgeyB0b0NhbWVsQ2FzZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbHMvc25ha2VUb0NhbWVsVHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgZ2V0UXVlcnlQYXJhbSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscyc7XG5pbXBvcnQgeyBjb3JlV2lkZ2V0VHlwZVRvQXBpV2lkZ2V0VHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscy93aWRnZXRUZXh0UmVxdWVzdFRvQXBpUmVxdWVzdCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IEFwcERldGFpbHMgfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IGdldEF0b21TdG9yZSB9IGZyb20gJ3NyYy9hdG9tcy9hdG9tU3RvcmUvYXRvbVN0b3JlJztcbmltcG9ydCB7IHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9yZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUsIFRyYWNrRXZlbnRQYXJhbXMgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignaGFyZGNvcHlTZXJ2aWNlJyk7XG5cbi8vIExvbmdlc3QgYSBoYXJkY29weSByZXF1ZXN0IG1heSBoYW5nIGJlZm9yZSB3ZSBzdG9wIHdhaXRpbmcgZm9yIGl0LiBUaGUgYmFja2VuZC1lcnJvclxuLy8gcGF0aCBiZWxvdyBhbHJlYWR5IGZhbGxzIGJhY2sgdG8gc3RhdGljIGNvcHksIGJ1dCBhIHJlcXVlc3QgdGhhdCBuZXZlciBzZXR0bGVzIGF0IGFsbFxuLy8gbmV2ZXIgcmVhY2hlcyB0aGF0IGNhdGNoIOKAlCBpdCBsZWZ0IHRoZSB3aWRnZXQncyBsb2FkaW5nIGxhdGNoIHVucmVzb2x2ZWQgZm9yZXZlciwgd2hpY2hcbi8vIGlzIHRoZSBcIlBMUCBzdGF5aW5nIGluIGxvYWRpbmcgc3RhdGVcIiBmYWlsdXJlLiBSYWNpbmcgdGhlIHJlcXVlc3QgYWdhaW5zdCB0aGlzIHRpbWVvdXRcbi8vIHR1cm5zIGEgaGFuZyBpbnRvIHRoZSBzYW1lIGZhbGxiYWNrIHBhdGggYW4gZXJyb3IgdGFrZXMsIHNvIHRoZSB3aWRnZXQgYWx3YXlzIGxlYXZlcyBpdHNcbi8vIGxvYWRpbmcgc3RhdGUuXG4vL1xuLy8gS2VwdCB1bmRlciB0aGUgfjQtNXMgYXQgd2hpY2ggc2Vzc2lvbiByZXBsYXlzIHNob3cgc2hvcHBlcnMgYWJhbmRvbiBhIHN0aWxsLWxvYWRpbmdcbi8vIHdpZGdldDogYSByZXNjdWUgdGhhdCBmaXJlcyBhZnRlciB0aGV5J3ZlIGxlZnQgaGVscHMgbm8gb25lLiBXaGVuIGl0IGZpcmVzLCB0aGUgY2F0Y2hcbi8vIGJlbG93IGxvZ3MgYW4gZXJyb3IgKG1lc3NhZ2UgaW5jbHVkZXMgXCJ0aW1lZCBvdXRcIikg4oCUIHRoYXQgbG9nIGlzIHRoZSBzaWduYWwgbW9uaXRvcmluZ1xuLy8gY2FuIGNvdW50IHRvIG1lYXN1cmUgaG93IG9mdGVuIGhhcmRjb3B5IHN0YWxscy5cbmV4cG9ydCBjb25zdCBIQVJEQ09QWV9USU1FT1VUX01TID0gNDAwMDtcblxuLy8gUmVqZWN0IGlmIGBwcm9taXNlYCBoYXMgbm90IHNldHRsZWQgd2l0aGluIGBtc2AuIFRoZSB1bmRlcmx5aW5nIHJlcXVlc3QgaXMgbm90IGFib3J0ZWRcbi8vIChhIGxhdGUgcmVzcG9uc2UgaXMgc2ltcGx5IGRpc2NhcmRlZCkg4oCUIHRoZSBvbmx5IGdvYWwgaXMgdG8gc3RvcCAqd2FpdGluZyosIHNvIHRoZVxuLy8gY2FsbGVyJ3MgZXJyb3IgaGFuZGxpbmcgY2FuIHJ1bi5cbmNvbnN0IHdpdGhUaW1lb3V0ID0gPFQ+KHByb21pc2U6IFByb21pc2U8VD4sIG1zOiBudW1iZXIpOiBQcm9taXNlPFQ+ID0+IHtcbiAgbGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgY29uc3QgdGltZW91dCA9IG5ldyBQcm9taXNlPG5ldmVyPigoXywgcmVqZWN0KSA9PiB7XG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYGhhcmRjb3B5IHJlcXVlc3QgdGltZWQgb3V0IGFmdGVyICR7bXN9bXNgKSksIG1zKTtcbiAgfSk7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW3Byb21pc2UsIHRpbWVvdXRdKS5maW5hbGx5KCgpID0+IGNsZWFyVGltZW91dCh0aW1lcikpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5UmVxdWVzdCB7XG4gIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgdXNlckV2ZW50OiBVc2VyRXZlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gIHJlc3BvbnNlSWQ6IHN0cmluZztcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgcmF3VmFsdWVzPzogUmVjb3JkPHN0cmluZywgV2lkZ2V0U3RyaW5nIHwgV2lkZ2V0U3RyaW5nW10+O1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbiAgLy8gSG93IHRoZSBjb3B5IHdhcyBzZXJ2ZWQsIGZvciB3aWRnZXQtbG9hZCBkaWFnbm9zdGljczogJ2FwaScgPSBsaXZlIGJhY2tlbmQgcmVzcG9uc2UsXG4gIC8vICdzdGF0aWMnID0gZmVsbCBiYWNrIHRvIHRoZSBidW5kbGVkIE1PQ0tfSEFSRENPUFlfUkVTUE9OU0UgYWZ0ZXIgYSBiYWNrZW5kIGVycm9yIG9yIHRpbWVvdXQuXG4gIHNlcnZlZEZyb20/OiAnYXBpJyB8ICdzdGF0aWMnO1xuICBmYWxsYmFja1JlYXNvbj86ICd0aW1lb3V0JyB8ICdlcnJvcic7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElIYXJkY29weVNlcnZpY2Uge1xuICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5U2VydmljZUNvbmZpZyB7XG4gIGdldEFwcERldGFpbHM6ICgpID0+IEFwcERldGFpbHM7XG4gIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHRyYWNrRXZlbnQ/OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBTYW1wbGUgcmVzcG9uc2VzIHVzZWQgYm90aCBhcyBmYWxsYmFjayB3aGVuIHRoZSBiYWNrZW5kIGZhaWxzIGFuZCBieSBNb2NrSGFyZGNvcHlTZXJ2aWNlLlxuZXhwb3J0IGNvbnN0IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+ID0ge1xuICBbV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogdXVpZCgpLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnTmVlZCBzb21lIGhlbHA/JyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBudW1iZXJPZkN1c3RvbWVyc1RleHQ6ICcxMjMgY3VzdG9tZXJzJyxcbiAgICAgIGN1c3RvbWVyUXVlcnlUZXh0OiAnZm91bmQgd2hhdCB0aGV5IHdlcmUgbG9va2luZyBmb3IuLi4nLFxuICAgICAgcHJpbWFyeUJ1dHRvblRleHQ6ICdTdGFydCBzaG9wcGluZycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25UaXRsZVRleHQ6ICdQb3B1bGFyIHNlYXJjaGVzJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaHkgc2hvdWxkIEkgYnV5IGZyb20geW91PycsXG4gICAgICAgICdIb3cgZG8gSSByZXR1cm4gYW4gaXRlbT8nLFxuICAgICAgICAnTmV3IGFycml2YWxzJyxcbiAgICAgICAgJ1NhbGUgaXRlbXMnLFxuICAgICAgICAnUG9wdWxhciBpdGVtcycsXG4gICAgICBdLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgaGVhZGxpbmVUZXh0OiAnTmVlZCBoZWxwIGZpbmRpbmcnLFxuICAgICAgYW5pbWF0ZWRUZXh0U2VxdWVuY2U6IFtcbiAgICAgICAgJ3RoZSBwZXJmZWN0IGdpZnQgZm9yIHlvdXIgbG92ZWQgb25lcz8nLFxuICAgICAgICAnc29tZXRoaW5nIHNwZWNpYWwgZm9yIHRoZSBob2xpZGF5cz8nLFxuICAgICAgICAndGhlIGlkZWFsIHByZXNlbnQgZm9yIHNvbWVvbmUgc3BlY2lhbD8nLFxuICAgICAgXSxcbiAgICAgIGhpbnRUZXh0OiAnQXNrIG1lIGFueXRoaW5nJyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRBcmlhTGFiZWw6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdDb21wYXJpc29uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgY29tcGFyaW5nPycsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uc1RleHRzOiBbJ0hlbHAgbWUgZmluZCBhIHByb2R1Y3QnLCBcIldoYXQncyBvbiB5b3VyIG1pbmQ/XCIsICdUYWxrIHRvIGEgaHVtYW4nXSxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIGhlYWRsaW5lOiAnRGlzY292ZXIgWW91ciBQZXJmZWN0IFN0eWxlJyxcbiAgICAgIGFuaW1hdGVkVGV4dDogW1xuICAgICAgICAndGhlIHBlcmZlY3Qgb3V0Zml0IGZvciBhbnkgb2NjYXNpb24nLFxuICAgICAgICAndHJlbmRpbmcgZmFzaGlvbiB0aGF0IGZpdHMgeW91ciBsaWZlc3R5bGUnLFxuICAgICAgICAncXVhbGl0eSBwaWVjZXMgdGhhdCBsYXN0JyxcbiAgICAgIF0sXG4gICAgICBwcm9tcHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZsb2F0aW5nQ2hhdFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICAgIGxlZnRUb2dnbGVMYWJlbDogJ1Nob3Agd2l0aCBBSScsXG4gICAgICByaWdodFRvZ2dsZUxhYmVsOiAnTGl2ZSBzdXBwb3J0JyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZ1bGxQYWdlU2FsZXNBZ2VudFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICAgIHdlbGNvbWVPdmVybGF5TGlua0xpc3RUaXRsZTogJ0V4cGxvcmUgbW9yZScsXG4gICAgfSxcbiAgfSxcbn07XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+ICh7XG4gIHJlc3BvbnNlSWQ6IHJlc3BvbnNlLnJlc3BvbnNlSWQsXG4gIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgcmF3VmFsdWVzOiByZXNwb25zZS52YWx1ZXMsXG4gIHZhbHVlczogT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgIHRvQ2FtZWxDYXNlKGtleSksXG4gICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgIF0pLFxuICApLFxufSk7XG5cbmV4cG9ydCBjbGFzcyBIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+IHtcbiAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRBdG9tU3RvcmUoKS5nZXQocmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbkF0b20pIHx8XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QgPSB7XG4gICAgICByZXF1ZXN0SWQ6IHV1aWQoKSxcbiAgICAgIHdpZGdldFR5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29uZmlnLmdldEFwcERldGFpbHMoKSxcbiAgICAgIGZlYXR1cmVGbGFnczogdGhpcy5jb25maWcuZ2V0RmVhdHVyZUZsYWdzKCksXG4gICAgICBsYW5ndWFnZTogbmF2aWdhdG9yLmxhbmd1YWdlc1swXSB8fCAnZW4nLFxuICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9O1xuXG4gICAgLy8gVGhlIFdpZGdldCBUZXh0IGV2ZW50cyBtdXN0IGNhcnJ5IHRoZSBBUEktZmFjaW5nICh0cmFuc2xhdGVkKSB3aWRnZXQgdHlwZSwgbm90IHRoZVxuICAgIC8vIGludGVybmFsIG9uZTogdGhlIEFJLXN1Z2dlc3Rpb25zIGFjY291bnRpbmcgam9pbnMgdGhlc2UgZXZlbnRzIGFnYWluc3QgdGhlIGJhY2tlbmRcbiAgICAvLyByZWdpc3RyeSwgd2hpY2ggaXMga2V5ZWQgYnkgdGhlIHdpcmUgdHlwZSAoZS5nLiBQcm9kdWN0Q2FyZFYzIGlzIHNlbnQg4oCUIGFuZCBzdG9yZWQg4oCUXG4gICAgLy8gYXMgSW1hZ2VQcm9tcHRDYXJkVjMpLiBTdGFtcGluZyB0aGUgaW50ZXJuYWwgbmFtZSBoZXJlIHplcm9lZCB0aG9zZSBzdGF0cy4gQW5cbiAgICAvLyB1bm1hcHBlZCB0eXBlIGtlZXBzIHRoZSBpbnRlcm5hbCBuYW1lIOKAlCBhbmFseXRpY3MgbXVzdCBuZXZlciBibG9jayBzZXJ2aW5nLlxuICAgIGxldCB3aXJlV2lkZ2V0VHlwZTogc3RyaW5nID0gcmVxdWVzdC53aWRnZXRUeXBlO1xuICAgIHRyeSB7XG4gICAgICB3aXJlV2lkZ2V0VHlwZSA9IGNvcmVXaWRnZXRUeXBlVG9BcGlXaWRnZXRUeXBlKHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ25vIHdpcmUgbWFwcGluZyBmb3Igd2lkZ2V0IHR5cGUg4oCUIGtlZXBpbmcgaW50ZXJuYWwgbmFtZScsIHtcbiAgICAgICAgd2lkZ2V0VHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcudHJhY2tFdmVudD8uKHtcbiAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdCxcbiAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgd2lkZ2V0X3R5cGU6IHdpcmVXaWRnZXRUeXBlLFxuICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gUmVhc29uIHRoZSBBUEkgcGF0aCBmYWlsZWQsIHN1cmZhY2VkIG9uIHRoZSBzdGF0aWMgZmFsbGJhY2sgZm9yIHdpZGdldC1sb2FkIGRpYWdub3N0aWNzLlxuICAgIGxldCBmYWxsYmFja1JlYXNvbjogJ3RpbWVvdXQnIHwgJ2Vycm9yJyB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB3aXRoVGltZW91dChcbiAgICAgICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SGFyZGNvcHkod2lkZ2V0VGV4dFJlcXVlc3QpLFxuICAgICAgICBIQVJEQ09QWV9USU1FT1VUX01TLFxuICAgICAgKTtcbiAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRSZXNwb25zZSA9IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ2NvbnZlcnRlZCByZXNwb25zZScsIGNvbnZlcnRlZFJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5jb25maWcudHJhY2tFdmVudD8uKHtcbiAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHdpZGdldF90eXBlOiB3aXJlV2lkZ2V0VHlwZSxcbiAgICAgICAgICAgIHJlc3BvbnNlX2lkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgICAgICAgICAgd2lkZ2V0X3RleHQ6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICAgICAgICAgIHJlcXVlc3RfaWQ6IHdpZGdldFRleHRSZXF1ZXN0LnJlcXVlc3RJZCxcbiAgICAgICAgICAgIC8vIFdoaWNoIG1ldGhvZCBzZXJ2ZWQgZWFjaCBvdmVycmlkZGVuIHNsb3Qg4oCUIHRyYWluaW5nL2F0dHJpYnV0aW9uXG4gICAgICAgICAgICAvLyByZWFkcyB0aGlzIGZyb20gdGhlIGFuYWx5dGljcyBldmVudDsgcGFzc2VkIHRocm91Z2ggdmVyYmF0aW0uXG4gICAgICAgICAgICAuLi4ocmVzcG9uc2UuYWlTdWdnZXN0aW9uc0F0dHJpYnV0aW9uQnlTbG90XG4gICAgICAgICAgICAgID8geyBhaV9zdWdnZXN0aW9uc19hdHRyaWJ1dGlvbl9ieV9zbG90OiByZXNwb25zZS5haVN1Z2dlc3Rpb25zQXR0cmlidXRpb25CeVNsb3QgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29udmVydGVkUmVzcG9uc2UsIHNlcnZlZEZyb206ICdhcGknIH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZXJyb3IgZ2V0dGluZyBoYXJkY29weSBmcm9tIGJhY2tlbmQnLCBlcnJvcik7XG4gICAgICBmYWxsYmFja1JlYXNvbiA9XG4gICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5pbmNsdWRlcygndGltZWQgb3V0JykgPyAndGltZW91dCcgOiAnZXJyb3InO1xuICAgIH1cblxuICAgIGNvbnN0IG1vY2tSZXNwb25zZSA9IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcbiAgICBpZiAobW9ja1Jlc3BvbnNlKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ25vIHJlYWwgcmVzcG9uc2UsIHVzaW5nIG1vY2snLCBtb2NrUmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHsgLi4ubW9ja1Jlc3BvbnNlLCBzZXJ2ZWRGcm9tOiAnc3RhdGljJywgZmFsbGJhY2tSZWFzb246IGZhbGxiYWNrUmVhc29uID8/ICdlcnJvcicgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcnJpZGVzOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiA9IHt9KSB7fVxuXG4gIGFzeW5jIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT4ge1xuICAgIGNvbnN0IGZhbGxiYWNrV2lkZ2V0VHlwZSA9XG4gICAgICByZXF1ZXN0LndpZGdldFR5cGUgPT09IFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXG4gICAgICAgID8gV2lkZ2V0VHlwZVYzLkltYWdlUHJvbXB0Q2FyZFYzXG4gICAgICAgIDogcmVxdWVzdC53aWRnZXRUeXBlO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgdGhpcy5vdmVycmlkZXNbcmVxdWVzdC53aWRnZXRUeXBlXSA/P1xuICAgICAgdGhpcy5vdmVycmlkZXNbZmFsbGJhY2tXaWRnZXRUeXBlXSA/P1xuICAgICAgTU9DS19IQVJEQ09QWV9SRVNQT05TRVtyZXF1ZXN0LndpZGdldFR5cGVdO1xuXG4gICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLGtCQUFrQjtBQWE1QyxNQUFhLHNCQUFzQjtBQUtuQyxNQUFNLGVBQWtC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
@@ -15,6 +15,8 @@ type HardcopyResponse = {
15
15
  language: string;
16
16
  rawValues?: Record<string, WidgetString | WidgetString[]>;
17
17
  values: Record<string, string | string[]>;
18
+ servedFrom?: 'api' | 'static';
19
+ fallbackReason?: 'timeout' | 'error';
18
20
  };
19
21
  interface IHardcopyService {
20
22
  getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
@@ -37,4 +39,4 @@ declare class MockHardcopyService implements IHardcopyService {
37
39
  }
38
40
  //#endregion
39
41
  export { HARDCOPY_TIMEOUT_MS, HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9oYXJkY29weVNlcnZpY2UvaGFyZGNvcHlTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2lkZ2V0U3RyaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEFwcERldGFpbHMgfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFRyYWNrRXZlbnRQYXJhbXMgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEhBUkRDT1BZX1RJTUVPVVRfTVMgPSA0MDAwO1xuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICAgIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gICAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgcmF3VmFsdWVzPzogUmVjb3JkPHN0cmluZywgV2lkZ2V0U3RyaW5nIHwgV2lkZ2V0U3RyaW5nW10+O1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUhhcmRjb3B5U2VydmljZSB7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlTZXJ2aWNlQ29uZmlnIHtcbiAgICBnZXRBcHBEZXRhaWxzOiAoKSA9PiBBcHBEZXRhaWxzO1xuICAgIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdHJhY2tFdmVudD86IChwYXJhbXM6IFRyYWNrRXZlbnRQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PjtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEhhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSGFyZGNvcHlTZXJ2aWNlQ29uZmlnKTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgb3ZlcnJpZGVzO1xuICAgIGNvbnN0cnVjdG9yKG92ZXJyaWRlcz86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+KTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0EsSUFBVyxzQkFBc0IsQ0FBQyxJQUFJO0FBQ3RDLElBQVcsa0JBQWtCO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDakMsSUFBVyxtQkFBaUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDNUIsSUFBVyxtQkFBYTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDeEIsSUFBQSx3QkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNBLElBQVcseUJBQW9CO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQy9CLElBQVcsa0JBQVc7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN0QixJQUFXLHNCQUFTO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9oYXJkY29weVNlcnZpY2UvaGFyZGNvcHlTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2lkZ2V0U3RyaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEFwcERldGFpbHMgfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFRyYWNrRXZlbnRQYXJhbXMgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEhBUkRDT1BZX1RJTUVPVVRfTVMgPSA0MDAwO1xuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICAgIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gICAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgcmF3VmFsdWVzPzogUmVjb3JkPHN0cmluZywgV2lkZ2V0U3RyaW5nIHwgV2lkZ2V0U3RyaW5nW10+O1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xuICAgIHNlcnZlZEZyb20/OiAnYXBpJyB8ICdzdGF0aWMnO1xuICAgIGZhbGxiYWNrUmVhc29uPzogJ3RpbWVvdXQnIHwgJ2Vycm9yJztcbn07XG5leHBvcnQgaW50ZXJmYWNlIElIYXJkY29weVNlcnZpY2Uge1xuICAgIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5U2VydmljZUNvbmZpZyB7XG4gICAgZ2V0QXBwRGV0YWlsczogKCkgPT4gQXBwRGV0YWlscztcbiAgICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHRyYWNrRXZlbnQ/OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGNvbmZpZztcbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZyk7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIE1vY2tIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG92ZXJyaWRlcztcbiAgICBjb25zdHJ1Y3RvcihvdmVycmlkZXM/OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+Pik7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLElBQVcsc0JBQXNCLENBQUMsSUFBSTtBQUN0QyxJQUFXLGtCQUFrQjtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQ2pDLElBQVcsbUJBQWlCO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQzVCLElBQVcsbUJBQWE7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hCLElBQUEsd0JBQUE7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDQSxJQUFXLHlCQUFvQjtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUMvQixJQUFXLGtCQUFXO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDdEIsSUFBVyxzQkFBUztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
@@ -15,6 +15,8 @@ type HardcopyResponse = {
15
15
  language: string;
16
16
  rawValues?: Record<string, WidgetString | WidgetString[]>;
17
17
  values: Record<string, string | string[]>;
18
+ servedFrom?: 'api' | 'static';
19
+ fallbackReason?: 'timeout' | 'error';
18
20
  };
19
21
  interface IHardcopyService {
20
22
  getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
@@ -37,4 +39,4 @@ declare class MockHardcopyService implements IHardcopyService {
37
39
  }
38
40
  //#endregion
39
41
  export { HARDCOPY_TIMEOUT_MS, HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZS9oYXJkY29weVNlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaWRnZXRTdHJpbmcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgQXBwRGV0YWlscyB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgVHJhY2tFdmVudFBhcmFtcyB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgSEFSRENPUFlfVElNRU9VVF9NUyA9IDQwMDA7XG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5UmVxdWVzdCB7XG4gICAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICAgIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgICByZXNwb25zZUlkOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gICAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG59O1xuZXhwb3J0IGludGVyZmFjZSBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVNlcnZpY2VDb25maWcge1xuICAgIGdldEFwcERldGFpbHM6ICgpID0+IEFwcERldGFpbHM7XG4gICAgZ2V0RmVhdHVyZUZsYWdzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICB0cmFja0V2ZW50PzogKHBhcmFtczogVHJhY2tFdmVudFBhcmFtcykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gICAgcHJpdmF0ZSBjb25maWc7XG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWcpO1xuICAgIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBNb2NrSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gICAgcHJpdmF0ZSBvdmVycmlkZXM7XG4gICAgY29uc3RydWN0b3Iob3ZlcnJpZGVzPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4pO1xuICAgIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQSxJQUFXLHNCQUFzQixDQUFDLElBQUk7QUFDdEMsSUFBVyxrQkFBa0I7Q0FBQztPQUFHO09BQUE7Q0FBQTtBQUNqQyxJQUFXLG1CQUFpQjtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUM1QixJQUFXLG1CQUFhO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFBLHdCQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ0EsSUFBVyx5QkFBb0I7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDL0IsSUFBVyxrQkFBVztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3RCLElBQVcsc0JBQVM7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZS9oYXJkY29weVNlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaWRnZXRTdHJpbmcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgQXBwRGV0YWlscyB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgVHJhY2tFdmVudFBhcmFtcyB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgSEFSRENPUFlfVElNRU9VVF9NUyA9IDQwMDA7XG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5UmVxdWVzdCB7XG4gICAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICAgIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgICByZXNwb25zZUlkOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gICAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG4gICAgc2VydmVkRnJvbT86ICdhcGknIHwgJ3N0YXRpYyc7XG4gICAgZmFsbGJhY2tSZWFzb24/OiAndGltZW91dCcgfCAnZXJyb3InO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUhhcmRjb3B5U2VydmljZSB7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlTZXJ2aWNlQ29uZmlnIHtcbiAgICBnZXRBcHBEZXRhaWxzOiAoKSA9PiBBcHBEZXRhaWxzO1xuICAgIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdHJhY2tFdmVudD86IChwYXJhbXM6IFRyYWNrRXZlbnRQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PjtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEhhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSGFyZGNvcHlTZXJ2aWNlQ29uZmlnKTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgb3ZlcnJpZGVzO1xuICAgIGNvbnN0cnVjdG9yKG92ZXJyaWRlcz86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+KTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0EsSUFBVyxzQkFBc0IsQ0FBQyxJQUFJO0FBQ3RDLElBQVcsa0JBQWtCO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDakMsSUFBVyxtQkFBaUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDNUIsSUFBVyxtQkFBYTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDeEIsSUFBQSx3QkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNBLElBQVcseUJBQW9CO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQy9CLElBQVcsa0JBQVc7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN0QixJQUFXLHNCQUFTO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
@@ -203,6 +203,7 @@ var HardcopyService = class {
203
203
  request_id: widgetTextRequest.requestId
204
204
  }
205
205
  });
206
+ let fallbackReason;
206
207
  try {
207
208
  const response = await withTimeout(commerce_api_default.getHardcopy(widgetTextRequest), HARDCOPY_TIMEOUT_MS);
208
209
  if (response) {
@@ -218,15 +219,23 @@ var HardcopyService = class {
218
219
  ...response.aiSuggestionsAttributionBySlot ? { ai_suggestions_attribution_by_slot: response.aiSuggestionsAttributionBySlot } : {}
219
220
  }
220
221
  });
221
- return convertedResponse;
222
+ return {
223
+ ...convertedResponse,
224
+ servedFrom: "api"
225
+ };
222
226
  }
223
227
  } catch (error) {
224
228
  logger.logError("error getting hardcopy from backend", error);
229
+ fallbackReason = error instanceof Error && error.message.includes("timed out") ? "timeout" : "error";
225
230
  }
226
231
  const mockResponse = MOCK_HARDCOPY_RESPONSE[request.widgetType];
227
232
  if (mockResponse) {
228
233
  logger.logDebug("no real response, using mock", mockResponse);
229
- return mockResponse;
234
+ return {
235
+ ...mockResponse,
236
+ servedFrom: "static",
237
+ fallbackReason: fallbackReason ?? "error"
238
+ };
230
239
  }
231
240
  throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
232
241
  }
@@ -245,4 +254,4 @@ var MockHardcopyService = class {
245
254
 
246
255
  //#endregion
247
256
  export { HARDCOPY_TIMEOUT_MS, HardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
248
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwidGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJ1dWlkIiwiY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWciLCJ3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QiLCJ3aXJlV2lkZ2V0VHlwZTogc3RyaW5nIiwiQ29tbWVyY2VBcGlDbGllbnQiLCJvdmVycmlkZXM6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZS9oYXJkY29weVNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBnZXRRdWVyeVBhcmFtIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3V0aWxzJztcbmltcG9ydCB7IGNvcmVXaWRnZXRUeXBlVG9BcGlXaWRnZXRUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3V0aWxzL3dpZGdldFRleHRSZXF1ZXN0VG9BcGlSZXF1ZXN0JztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgQXBwRGV0YWlscyB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgZ2V0QXRvbVN0b3JlIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZS9hdG9tU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbkF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL3Jlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb24nO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSwgVHJhY2tFdmVudFBhcmFtcyB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdoYXJkY29weVNlcnZpY2UnKTtcblxuLy8gTG9uZ2VzdCBhIGhhcmRjb3B5IHJlcXVlc3QgbWF5IGhhbmcgYmVmb3JlIHdlIHN0b3Agd2FpdGluZyBmb3IgaXQuIFRoZSBiYWNrZW5kLWVycm9yXG4vLyBwYXRoIGJlbG93IGFscmVhZHkgZmFsbHMgYmFjayB0byBzdGF0aWMgY29weSwgYnV0IGEgcmVxdWVzdCB0aGF0IG5ldmVyIHNldHRsZXMgYXQgYWxsXG4vLyBuZXZlciByZWFjaGVzIHRoYXQgY2F0Y2gg4oCUIGl0IGxlZnQgdGhlIHdpZGdldCdzIGxvYWRpbmcgbGF0Y2ggdW5yZXNvbHZlZCBmb3JldmVyLCB3aGljaFxuLy8gaXMgdGhlIFwiUExQIHN0YXlpbmcgaW4gbG9hZGluZyBzdGF0ZVwiIGZhaWx1cmUuIFJhY2luZyB0aGUgcmVxdWVzdCBhZ2FpbnN0IHRoaXMgdGltZW91dFxuLy8gdHVybnMgYSBoYW5nIGludG8gdGhlIHNhbWUgZmFsbGJhY2sgcGF0aCBhbiBlcnJvciB0YWtlcywgc28gdGhlIHdpZGdldCBhbHdheXMgbGVhdmVzIGl0c1xuLy8gbG9hZGluZyBzdGF0ZS5cbi8vXG4vLyBLZXB0IHVuZGVyIHRoZSB+NC01cyBhdCB3aGljaCBzZXNzaW9uIHJlcGxheXMgc2hvdyBzaG9wcGVycyBhYmFuZG9uIGEgc3RpbGwtbG9hZGluZ1xuLy8gd2lkZ2V0OiBhIHJlc2N1ZSB0aGF0IGZpcmVzIGFmdGVyIHRoZXkndmUgbGVmdCBoZWxwcyBubyBvbmUuIFdoZW4gaXQgZmlyZXMsIHRoZSBjYXRjaFxuLy8gYmVsb3cgbG9ncyBhbiBlcnJvciAobWVzc2FnZSBpbmNsdWRlcyBcInRpbWVkIG91dFwiKSDigJQgdGhhdCBsb2cgaXMgdGhlIHNpZ25hbCBtb25pdG9yaW5nXG4vLyBjYW4gY291bnQgdG8gbWVhc3VyZSBob3cgb2Z0ZW4gaGFyZGNvcHkgc3RhbGxzLlxuZXhwb3J0IGNvbnN0IEhBUkRDT1BZX1RJTUVPVVRfTVMgPSA0MDAwO1xuXG4vLyBSZWplY3QgaWYgYHByb21pc2VgIGhhcyBub3Qgc2V0dGxlZCB3aXRoaW4gYG1zYC4gVGhlIHVuZGVybHlpbmcgcmVxdWVzdCBpcyBub3QgYWJvcnRlZFxuLy8gKGEgbGF0ZSByZXNwb25zZSBpcyBzaW1wbHkgZGlzY2FyZGVkKSDigJQgdGhlIG9ubHkgZ29hbCBpcyB0byBzdG9wICp3YWl0aW5nKiwgc28gdGhlXG4vLyBjYWxsZXIncyBlcnJvciBoYW5kbGluZyBjYW4gcnVuLlxuY29uc3Qgd2l0aFRpbWVvdXQgPSA8VD4ocHJvbWlzZTogUHJvbWlzZTxUPiwgbXM6IG51bWJlcik6IFByb21pc2U8VD4gPT4ge1xuICBsZXQgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBjb25zdCB0aW1lb3V0ID0gbmV3IFByb21pc2U8bmV2ZXI+KChfLCByZWplY3QpID0+IHtcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihgaGFyZGNvcHkgcmVxdWVzdCB0aW1lZCBvdXQgYWZ0ZXIgJHttc31tc2ApKSwgbXMpO1xuICB9KTtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbcHJvbWlzZSwgdGltZW91dF0pLmZpbmFsbHkoKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyKSkgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVNlcnZpY2VDb25maWcge1xuICBnZXRBcHBEZXRhaWxzOiAoKSA9PiBBcHBEZXRhaWxzO1xuICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB0cmFja0V2ZW50PzogKHBhcmFtczogVHJhY2tFdmVudFBhcmFtcykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuLy8gU2FtcGxlIHJlc3BvbnNlcyB1c2VkIGJvdGggYXMgZmFsbGJhY2sgd2hlbiB0aGUgYmFja2VuZCBmYWlscyBhbmQgYnkgTW9ja0hhcmRjb3B5U2VydmljZS5cbmV4cG9ydCBjb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiA9IHtcbiAgW1dpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6IHV1aWQoKSxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgbnVtYmVyT2ZDdXN0b21lcnNUZXh0OiAnMTIzIGN1c3RvbWVycycsXG4gICAgICBjdXN0b21lclF1ZXJ5VGV4dDogJ2ZvdW5kIHdoYXQgdGhleSB3ZXJlIGxvb2tpbmcgZm9yLi4uJyxcbiAgICAgIHByaW1hcnlCdXR0b25UZXh0OiAnU3RhcnQgc2hvcHBpbmcnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGl0bGVUZXh0OiAnUG9wdWxhciBzZWFyY2hlcycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25UZXh0czogW1xuICAgICAgICAnV2h5IHNob3VsZCBJIGJ1eSBmcm9tIHlvdT8nLFxuICAgICAgICAnSG93IGRvIEkgcmV0dXJuIGFuIGl0ZW0/JyxcbiAgICAgICAgJ05ldyBhcnJpdmFscycsXG4gICAgICAgICdTYWxlIGl0ZW1zJyxcbiAgICAgICAgJ1BvcHVsYXIgaXRlbXMnLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBmaW5kaW5nJyxcbiAgICAgIGFuaW1hdGVkVGV4dFNlcXVlbmNlOiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBnaWZ0IGZvciB5b3VyIGxvdmVkIG9uZXM/JyxcbiAgICAgICAgJ3NvbWV0aGluZyBzcGVjaWFsIGZvciB0aGUgaG9saWRheXM/JyxcbiAgICAgICAgJ3RoZSBpZGVhbCBwcmVzZW50IGZvciBzb21lb25lIHNwZWNpYWw/JyxcbiAgICAgIF0sXG4gICAgICBoaW50VGV4dDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICBdLFxuICAgICAgdGV4dEZpZWxkQXJpYUxhYmVsOiAnQXNrIG1lIGFueXRoaW5nJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3Q29tcGFyaXNvblYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgaGVhZGxpbmVUZXh0OiAnTmVlZCBoZWxwIGNvbXBhcmluZz8nLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3TG9hZGluZ1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnTmVlZCBzb21lIGhlbHA/JyxcbiAgICAgIHByb21wdEJ1dHRvbnNUZXh0czogWydIZWxwIG1lIGZpbmQgYSBwcm9kdWN0JywgXCJXaGF0J3Mgb24geW91ciBtaW5kP1wiLCAnVGFsayB0byBhIGh1bWFuJ10sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBoZWFkbGluZTogJ0Rpc2NvdmVyIFlvdXIgUGVyZmVjdCBTdHlsZScsXG4gICAgICBhbmltYXRlZFRleHQ6IFtcbiAgICAgICAgJ3RoZSBwZXJmZWN0IG91dGZpdCBmb3IgYW55IG9jY2FzaW9uJyxcbiAgICAgICAgJ3RyZW5kaW5nIGZhc2hpb24gdGhhdCBmaXRzIHlvdXIgbGlmZXN0eWxlJyxcbiAgICAgICAgJ3F1YWxpdHkgcGllY2VzIHRoYXQgbGFzdCcsXG4gICAgICBdLFxuICAgICAgcHJvbXB0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgICBwbGFjZWhvbGRlcjogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5GbG9hdGluZ0NoYXRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgICAgZGlzY2xhaW1lclRleHQ6ICdUaGlzIGlzIGEgZGlzY2xhaW1lci4uLicsXG4gICAgICBsZWZ0VG9nZ2xlTGFiZWw6ICdTaG9wIHdpdGggQUknLFxuICAgICAgcmlnaHRUb2dnbGVMYWJlbDogJ0xpdmUgc3VwcG9ydCcsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5GdWxsUGFnZVNhbGVzQWdlbnRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgICAgZGlzY2xhaW1lclRleHQ6ICdUaGlzIGlzIGEgZGlzY2xhaW1lci4uLicsXG4gICAgICB3ZWxjb21lT3ZlcmxheUxpbmtMaXN0VGl0bGU6ICdFeHBsb3JlIG1vcmUnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlID0gKHJlc3BvbnNlOiBXaWRnZXRUZXh0KTogSGFyZGNvcHlSZXNwb25zZSA9PiAoe1xuICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICBsYW5ndWFnZTogcmVzcG9uc2UubGFuZ3VhZ2UsXG4gIHJhd1ZhbHVlczogcmVzcG9uc2UudmFsdWVzLFxuICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhyZXNwb25zZS52YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbXG4gICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgdmFsdWUubGVuZ3RoID09PSAxID8gdmFsdWVbMF0udmFsdWUgOiB2YWx1ZS5tYXAodiA9PiB2LnZhbHVlKSxcbiAgICBdKSxcbiAgKSxcbn0pO1xuXG5leHBvcnQgY2xhc3MgSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWcpIHt9XG5cbiAgYXN5bmMgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiB7XG4gICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgZ2V0QXRvbVN0b3JlKCkuZ2V0KHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tKSB8fFxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgd2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0ID0ge1xuICAgICAgcmVxdWVzdElkOiB1dWlkKCksXG4gICAgICB3aWRnZXRUeXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbmZpZy5nZXRBcHBEZXRhaWxzKCksXG4gICAgICBmZWF0dXJlRmxhZ3M6IHRoaXMuY29uZmlnLmdldEZlYXR1cmVGbGFncygpLFxuICAgICAgbGFuZ3VhZ2U6IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gfHwgJ2VuJyxcbiAgICAgIG92ZXJyaWRlQ29uZmlnVmVyc2lvbixcbiAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcblxuICAgIC8vIFRoZSBXaWRnZXQgVGV4dCBldmVudHMgbXVzdCBjYXJyeSB0aGUgQVBJLWZhY2luZyAodHJhbnNsYXRlZCkgd2lkZ2V0IHR5cGUsIG5vdCB0aGVcbiAgICAvLyBpbnRlcm5hbCBvbmU6IHRoZSBBSS1zdWdnZXN0aW9ucyBhY2NvdW50aW5nIGpvaW5zIHRoZXNlIGV2ZW50cyBhZ2FpbnN0IHRoZSBiYWNrZW5kXG4gICAgLy8gcmVnaXN0cnksIHdoaWNoIGlzIGtleWVkIGJ5IHRoZSB3aXJlIHR5cGUgKGUuZy4gUHJvZHVjdENhcmRWMyBpcyBzZW50IOKAlCBhbmQgc3RvcmVkIOKAlFxuICAgIC8vIGFzIEltYWdlUHJvbXB0Q2FyZFYzKS4gU3RhbXBpbmcgdGhlIGludGVybmFsIG5hbWUgaGVyZSB6ZXJvZWQgdGhvc2Ugc3RhdHMuIEFuXG4gICAgLy8gdW5tYXBwZWQgdHlwZSBrZWVwcyB0aGUgaW50ZXJuYWwgbmFtZSDigJQgYW5hbHl0aWNzIG11c3QgbmV2ZXIgYmxvY2sgc2VydmluZy5cbiAgICBsZXQgd2lyZVdpZGdldFR5cGU6IHN0cmluZyA9IHJlcXVlc3Qud2lkZ2V0VHlwZTtcbiAgICB0cnkge1xuICAgICAgd2lyZVdpZGdldFR5cGUgPSBjb3JlV2lkZ2V0VHlwZVRvQXBpV2lkZ2V0VHlwZShyZXF1ZXN0LndpZGdldFR5cGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyB3aXJlIG1hcHBpbmcgZm9yIHdpZGdldCB0eXBlIOKAlCBrZWVwaW5nIGludGVybmFsIG5hbWUnLCB7XG4gICAgICAgIHdpZGdldFR5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLnRyYWNrRXZlbnQ/Lih7XG4gICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3QsXG4gICAgICBldmVudFByb3BzOiB7XG4gICAgICAgIHdpZGdldF90eXBlOiB3aXJlV2lkZ2V0VHlwZSxcbiAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHdpdGhUaW1lb3V0KFxuICAgICAgICBDb21tZXJjZUFwaUNsaWVudC5nZXRIYXJkY29weSh3aWRnZXRUZXh0UmVxdWVzdCksXG4gICAgICAgIEhBUkRDT1BZX1RJTUVPVVRfTVMsXG4gICAgICApO1xuICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3BvbnNlID0gY29udmVydFRvSGFyZGNvcHlSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnY29udmVydGVkIHJlc3BvbnNlJywgY29udmVydGVkUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmNvbmZpZy50cmFja0V2ZW50Py4oe1xuICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgd2lkZ2V0X3R5cGU6IHdpcmVXaWRnZXRUeXBlLFxuICAgICAgICAgICAgcmVzcG9uc2VfaWQ6IHJlc3BvbnNlLnJlc3BvbnNlSWQsXG4gICAgICAgICAgICB3aWRnZXRfdGV4dDogcmVzcG9uc2UudmFsdWVzLFxuICAgICAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgICAgICAgLy8gV2hpY2ggbWV0aG9kIHNlcnZlZCBlYWNoIG92ZXJyaWRkZW4gc2xvdCDigJQgdHJhaW5pbmcvYXR0cmlidXRpb25cbiAgICAgICAgICAgIC8vIHJlYWRzIHRoaXMgZnJvbSB0aGUgYW5hbHl0aWNzIGV2ZW50OyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAgICAgICAgICAgIC4uLihyZXNwb25zZS5haVN1Z2dlc3Rpb25zQXR0cmlidXRpb25CeVNsb3RcbiAgICAgICAgICAgICAgPyB7IGFpX3N1Z2dlc3Rpb25zX2F0dHJpYnV0aW9uX2J5X3Nsb3Q6IHJlc3BvbnNlLmFpU3VnZ2VzdGlvbnNBdHRyaWJ1dGlvbkJ5U2xvdCB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29udmVydGVkUmVzcG9uc2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZXJyb3IgZ2V0dGluZyBoYXJkY29weSBmcm9tIGJhY2tlbmQnLCBlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgbW9ja1Jlc3BvbnNlID0gTU9DS19IQVJEQ09QWV9SRVNQT05TRVtyZXF1ZXN0LndpZGdldFR5cGVdO1xuICAgIGlmIChtb2NrUmVzcG9uc2UpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1Zygnbm8gcmVhbCByZXNwb25zZSwgdXNpbmcgbW9jaycsIG1vY2tSZXNwb25zZSk7XG4gICAgICByZXR1cm4gbW9ja1Jlc3BvbnNlO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVycmlkZXM6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+ID0ge30pIHt9XG5cbiAgYXN5bmMgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiB7XG4gICAgY29uc3QgZmFsbGJhY2tXaWRnZXRUeXBlID1cbiAgICAgIHJlcXVlc3Qud2lkZ2V0VHlwZSA9PT0gV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNcbiAgICAgICAgPyBXaWRnZXRUeXBlVjMuSW1hZ2VQcm9tcHRDYXJkVjNcbiAgICAgICAgOiByZXF1ZXN0LndpZGdldFR5cGU7XG5cbiAgICBjb25zdCByZXNwb25zZSA9XG4gICAgICB0aGlzLm92ZXJyaWRlc1tyZXF1ZXN0LndpZGdldFR5cGVdID8/XG4gICAgICB0aGlzLm92ZXJyaWRlc1tmYWxsYmFja1dpZGdldFR5cGVdID8/XG4gICAgICBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG5cbiAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7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
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwidGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJ1dWlkIiwiY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWciLCJ3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QiLCJ3aXJlV2lkZ2V0VHlwZTogc3RyaW5nIiwiZmFsbGJhY2tSZWFzb246ICd0aW1lb3V0JyB8ICdlcnJvcicgfCB1bmRlZmluZWQiLCJDb21tZXJjZUFwaUNsaWVudCIsIm92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvaGFyZGNvcHlTZXJ2aWNlL2hhcmRjb3B5U2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgeyBXaWRnZXRTdHJpbmcsIFdpZGdldFRleHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFdpZGdldFRleHRSZXF1ZXN0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dFJlcXVlc3QnO1xuaW1wb3J0IHsgdG9DYW1lbENhc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgY29yZVdpZGdldFR5cGVUb0FwaVdpZGdldFR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvd2lkZ2V0VGV4dFJlcXVlc3RUb0FwaVJlcXVlc3QnO1xuaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBBcHBEZXRhaWxzIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBnZXRBdG9tU3RvcmUgfSBmcm9tICdzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZSc7XG5pbXBvcnQgeyByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbic7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBUcmFja0V2ZW50UGFyYW1zIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5U2VydmljZScpO1xuXG4vLyBMb25nZXN0IGEgaGFyZGNvcHkgcmVxdWVzdCBtYXkgaGFuZyBiZWZvcmUgd2Ugc3RvcCB3YWl0aW5nIGZvciBpdC4gVGhlIGJhY2tlbmQtZXJyb3Jcbi8vIHBhdGggYmVsb3cgYWxyZWFkeSBmYWxscyBiYWNrIHRvIHN0YXRpYyBjb3B5LCBidXQgYSByZXF1ZXN0IHRoYXQgbmV2ZXIgc2V0dGxlcyBhdCBhbGxcbi8vIG5ldmVyIHJlYWNoZXMgdGhhdCBjYXRjaCDigJQgaXQgbGVmdCB0aGUgd2lkZ2V0J3MgbG9hZGluZyBsYXRjaCB1bnJlc29sdmVkIGZvcmV2ZXIsIHdoaWNoXG4vLyBpcyB0aGUgXCJQTFAgc3RheWluZyBpbiBsb2FkaW5nIHN0YXRlXCIgZmFpbHVyZS4gUmFjaW5nIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhpcyB0aW1lb3V0XG4vLyB0dXJucyBhIGhhbmcgaW50byB0aGUgc2FtZSBmYWxsYmFjayBwYXRoIGFuIGVycm9yIHRha2VzLCBzbyB0aGUgd2lkZ2V0IGFsd2F5cyBsZWF2ZXMgaXRzXG4vLyBsb2FkaW5nIHN0YXRlLlxuLy9cbi8vIEtlcHQgdW5kZXIgdGhlIH40LTVzIGF0IHdoaWNoIHNlc3Npb24gcmVwbGF5cyBzaG93IHNob3BwZXJzIGFiYW5kb24gYSBzdGlsbC1sb2FkaW5nXG4vLyB3aWRnZXQ6IGEgcmVzY3VlIHRoYXQgZmlyZXMgYWZ0ZXIgdGhleSd2ZSBsZWZ0IGhlbHBzIG5vIG9uZS4gV2hlbiBpdCBmaXJlcywgdGhlIGNhdGNoXG4vLyBiZWxvdyBsb2dzIGFuIGVycm9yIChtZXNzYWdlIGluY2x1ZGVzIFwidGltZWQgb3V0XCIpIOKAlCB0aGF0IGxvZyBpcyB0aGUgc2lnbmFsIG1vbml0b3Jpbmdcbi8vIGNhbiBjb3VudCB0byBtZWFzdXJlIGhvdyBvZnRlbiBoYXJkY29weSBzdGFsbHMuXG5leHBvcnQgY29uc3QgSEFSRENPUFlfVElNRU9VVF9NUyA9IDQwMDA7XG5cbi8vIFJlamVjdCBpZiBgcHJvbWlzZWAgaGFzIG5vdCBzZXR0bGVkIHdpdGhpbiBgbXNgLiBUaGUgdW5kZXJseWluZyByZXF1ZXN0IGlzIG5vdCBhYm9ydGVkXG4vLyAoYSBsYXRlIHJlc3BvbnNlIGlzIHNpbXBseSBkaXNjYXJkZWQpIOKAlCB0aGUgb25seSBnb2FsIGlzIHRvIHN0b3AgKndhaXRpbmcqLCBzbyB0aGVcbi8vIGNhbGxlcidzIGVycm9yIGhhbmRsaW5nIGNhbiBydW4uXG5jb25zdCB3aXRoVGltZW91dCA9IDxUPihwcm9taXNlOiBQcm9taXNlPFQ+LCBtczogbnVtYmVyKTogUHJvbWlzZTxUPiA9PiB7XG4gIGxldCB0aW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT4ge1xuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKGBoYXJkY29weSByZXF1ZXN0IHRpbWVkIG91dCBhZnRlciAke21zfW1zYCkpLCBtcyk7XG4gIH0pO1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtwcm9taXNlLCB0aW1lb3V0XSkuZmluYWxseSgoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpKSBhcyBQcm9taXNlPFQ+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuXG5leHBvcnQgdHlwZSBIYXJkY29weVJlc3BvbnNlID0ge1xuICByZXNwb25zZUlkOiBzdHJpbmc7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHJhd1ZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFdpZGdldFN0cmluZyB8IFdpZGdldFN0cmluZ1tdPjtcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG4gIC8vIEhvdyB0aGUgY29weSB3YXMgc2VydmVkLCBmb3Igd2lkZ2V0LWxvYWQgZGlhZ25vc3RpY3M6ICdhcGknID0gbGl2ZSBiYWNrZW5kIHJlc3BvbnNlLFxuICAvLyAnc3RhdGljJyA9IGZlbGwgYmFjayB0byB0aGUgYnVuZGxlZCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFIGFmdGVyIGEgYmFja2VuZCBlcnJvciBvciB0aW1lb3V0LlxuICBzZXJ2ZWRGcm9tPzogJ2FwaScgfCAnc3RhdGljJztcbiAgZmFsbGJhY2tSZWFzb24/OiAndGltZW91dCcgfCAnZXJyb3InO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVNlcnZpY2VDb25maWcge1xuICBnZXRBcHBEZXRhaWxzOiAoKSA9PiBBcHBEZXRhaWxzO1xuICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB0cmFja0V2ZW50PzogKHBhcmFtczogVHJhY2tFdmVudFBhcmFtcykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuLy8gU2FtcGxlIHJlc3BvbnNlcyB1c2VkIGJvdGggYXMgZmFsbGJhY2sgd2hlbiB0aGUgYmFja2VuZCBmYWlscyBhbmQgYnkgTW9ja0hhcmRjb3B5U2VydmljZS5cbmV4cG9ydCBjb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiA9IHtcbiAgW1dpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6IHV1aWQoKSxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgbnVtYmVyT2ZDdXN0b21lcnNUZXh0OiAnMTIzIGN1c3RvbWVycycsXG4gICAgICBjdXN0b21lclF1ZXJ5VGV4dDogJ2ZvdW5kIHdoYXQgdGhleSB3ZXJlIGxvb2tpbmcgZm9yLi4uJyxcbiAgICAgIHByaW1hcnlCdXR0b25UZXh0OiAnU3RhcnQgc2hvcHBpbmcnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGl0bGVUZXh0OiAnUG9wdWxhciBzZWFyY2hlcycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25UZXh0czogW1xuICAgICAgICAnV2h5IHNob3VsZCBJIGJ1eSBmcm9tIHlvdT8nLFxuICAgICAgICAnSG93IGRvIEkgcmV0dXJuIGFuIGl0ZW0/JyxcbiAgICAgICAgJ05ldyBhcnJpdmFscycsXG4gICAgICAgICdTYWxlIGl0ZW1zJyxcbiAgICAgICAgJ1BvcHVsYXIgaXRlbXMnLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBmaW5kaW5nJyxcbiAgICAgIGFuaW1hdGVkVGV4dFNlcXVlbmNlOiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBnaWZ0IGZvciB5b3VyIGxvdmVkIG9uZXM/JyxcbiAgICAgICAgJ3NvbWV0aGluZyBzcGVjaWFsIGZvciB0aGUgaG9saWRheXM/JyxcbiAgICAgICAgJ3RoZSBpZGVhbCBwcmVzZW50IGZvciBzb21lb25lIHNwZWNpYWw/JyxcbiAgICAgIF0sXG4gICAgICBoaW50VGV4dDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICBdLFxuICAgICAgdGV4dEZpZWxkQXJpYUxhYmVsOiAnQXNrIG1lIGFueXRoaW5nJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3Q29tcGFyaXNvblYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgaGVhZGxpbmVUZXh0OiAnTmVlZCBoZWxwIGNvbXBhcmluZz8nLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3TG9hZGluZ1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnTmVlZCBzb21lIGhlbHA/JyxcbiAgICAgIHByb21wdEJ1dHRvbnNUZXh0czogWydIZWxwIG1lIGZpbmQgYSBwcm9kdWN0JywgXCJXaGF0J3Mgb24geW91ciBtaW5kP1wiLCAnVGFsayB0byBhIGh1bWFuJ10sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBoZWFkbGluZTogJ0Rpc2NvdmVyIFlvdXIgUGVyZmVjdCBTdHlsZScsXG4gICAgICBhbmltYXRlZFRleHQ6IFtcbiAgICAgICAgJ3RoZSBwZXJmZWN0IG91dGZpdCBmb3IgYW55IG9jY2FzaW9uJyxcbiAgICAgICAgJ3RyZW5kaW5nIGZhc2hpb24gdGhhdCBmaXRzIHlvdXIgbGlmZXN0eWxlJyxcbiAgICAgICAgJ3F1YWxpdHkgcGllY2VzIHRoYXQgbGFzdCcsXG4gICAgICBdLFxuICAgICAgcHJvbXB0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgICBwbGFjZWhvbGRlcjogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5GbG9hdGluZ0NoYXRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgICAgZGlzY2xhaW1lclRleHQ6ICdUaGlzIGlzIGEgZGlzY2xhaW1lci4uLicsXG4gICAgICBsZWZ0VG9nZ2xlTGFiZWw6ICdTaG9wIHdpdGggQUknLFxuICAgICAgcmlnaHRUb2dnbGVMYWJlbDogJ0xpdmUgc3VwcG9ydCcsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5GdWxsUGFnZVNhbGVzQWdlbnRWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgICAgZGlzY2xhaW1lclRleHQ6ICdUaGlzIGlzIGEgZGlzY2xhaW1lci4uLicsXG4gICAgICB3ZWxjb21lT3ZlcmxheUxpbmtMaXN0VGl0bGU6ICdFeHBsb3JlIG1vcmUnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlID0gKHJlc3BvbnNlOiBXaWRnZXRUZXh0KTogSGFyZGNvcHlSZXNwb25zZSA9PiAoe1xuICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICBsYW5ndWFnZTogcmVzcG9uc2UubGFuZ3VhZ2UsXG4gIHJhd1ZhbHVlczogcmVzcG9uc2UudmFsdWVzLFxuICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhyZXNwb25zZS52YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbXG4gICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgdmFsdWUubGVuZ3RoID09PSAxID8gdmFsdWVbMF0udmFsdWUgOiB2YWx1ZS5tYXAodiA9PiB2LnZhbHVlKSxcbiAgICBdKSxcbiAgKSxcbn0pO1xuXG5leHBvcnQgY2xhc3MgSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWcpIHt9XG5cbiAgYXN5bmMgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiB7XG4gICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgZ2V0QXRvbVN0b3JlKCkuZ2V0KHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tKSB8fFxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgd2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0ID0ge1xuICAgICAgcmVxdWVzdElkOiB1dWlkKCksXG4gICAgICB3aWRnZXRUeXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbmZpZy5nZXRBcHBEZXRhaWxzKCksXG4gICAgICBmZWF0dXJlRmxhZ3M6IHRoaXMuY29uZmlnLmdldEZlYXR1cmVGbGFncygpLFxuICAgICAgbGFuZ3VhZ2U6IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gfHwgJ2VuJyxcbiAgICAgIG92ZXJyaWRlQ29uZmlnVmVyc2lvbixcbiAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcblxuICAgIC8vIFRoZSBXaWRnZXQgVGV4dCBldmVudHMgbXVzdCBjYXJyeSB0aGUgQVBJLWZhY2luZyAodHJhbnNsYXRlZCkgd2lkZ2V0IHR5cGUsIG5vdCB0aGVcbiAgICAvLyBpbnRlcm5hbCBvbmU6IHRoZSBBSS1zdWdnZXN0aW9ucyBhY2NvdW50aW5nIGpvaW5zIHRoZXNlIGV2ZW50cyBhZ2FpbnN0IHRoZSBiYWNrZW5kXG4gICAgLy8gcmVnaXN0cnksIHdoaWNoIGlzIGtleWVkIGJ5IHRoZSB3aXJlIHR5cGUgKGUuZy4gUHJvZHVjdENhcmRWMyBpcyBzZW50IOKAlCBhbmQgc3RvcmVkIOKAlFxuICAgIC8vIGFzIEltYWdlUHJvbXB0Q2FyZFYzKS4gU3RhbXBpbmcgdGhlIGludGVybmFsIG5hbWUgaGVyZSB6ZXJvZWQgdGhvc2Ugc3RhdHMuIEFuXG4gICAgLy8gdW5tYXBwZWQgdHlwZSBrZWVwcyB0aGUgaW50ZXJuYWwgbmFtZSDigJQgYW5hbHl0aWNzIG11c3QgbmV2ZXIgYmxvY2sgc2VydmluZy5cbiAgICBsZXQgd2lyZVdpZGdldFR5cGU6IHN0cmluZyA9IHJlcXVlc3Qud2lkZ2V0VHlwZTtcbiAgICB0cnkge1xuICAgICAgd2lyZVdpZGdldFR5cGUgPSBjb3JlV2lkZ2V0VHlwZVRvQXBpV2lkZ2V0VHlwZShyZXF1ZXN0LndpZGdldFR5cGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyB3aXJlIG1hcHBpbmcgZm9yIHdpZGdldCB0eXBlIOKAlCBrZWVwaW5nIGludGVybmFsIG5hbWUnLCB7XG4gICAgICAgIHdpZGdldFR5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLnRyYWNrRXZlbnQ/Lih7XG4gICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3QsXG4gICAgICBldmVudFByb3BzOiB7XG4gICAgICAgIHdpZGdldF90eXBlOiB3aXJlV2lkZ2V0VHlwZSxcbiAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFJlYXNvbiB0aGUgQVBJIHBhdGggZmFpbGVkLCBzdXJmYWNlZCBvbiB0aGUgc3RhdGljIGZhbGxiYWNrIGZvciB3aWRnZXQtbG9hZCBkaWFnbm9zdGljcy5cbiAgICBsZXQgZmFsbGJhY2tSZWFzb246ICd0aW1lb3V0JyB8ICdlcnJvcicgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgd2l0aFRpbWVvdXQoXG4gICAgICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEhhcmRjb3B5KHdpZGdldFRleHRSZXF1ZXN0KSxcbiAgICAgICAgSEFSRENPUFlfVElNRU9VVF9NUyxcbiAgICAgICk7XG4gICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgY29udmVydGVkUmVzcG9uc2UgPSBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdjb252ZXJ0ZWQgcmVzcG9uc2UnLCBjb252ZXJ0ZWRSZXNwb25zZSk7XG4gICAgICAgIHRoaXMuY29uZmlnLnRyYWNrRXZlbnQ/Lih7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICB3aWRnZXRfdHlwZTogd2lyZVdpZGdldFR5cGUsXG4gICAgICAgICAgICByZXNwb25zZV9pZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgICAgICAgICAgIHdpZGdldF90ZXh0OiByZXNwb25zZS52YWx1ZXMsXG4gICAgICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICAgICAgICAvLyBXaGljaCBtZXRob2Qgc2VydmVkIGVhY2ggb3ZlcnJpZGRlbiBzbG90IOKAlCB0cmFpbmluZy9hdHRyaWJ1dGlvblxuICAgICAgICAgICAgLy8gcmVhZHMgdGhpcyBmcm9tIHRoZSBhbmFseXRpY3MgZXZlbnQ7IHBhc3NlZCB0aHJvdWdoIHZlcmJhdGltLlxuICAgICAgICAgICAgLi4uKHJlc3BvbnNlLmFpU3VnZ2VzdGlvbnNBdHRyaWJ1dGlvbkJ5U2xvdFxuICAgICAgICAgICAgICA/IHsgYWlfc3VnZ2VzdGlvbnNfYXR0cmlidXRpb25fYnlfc2xvdDogcmVzcG9uc2UuYWlTdWdnZXN0aW9uc0F0dHJpYnV0aW9uQnlTbG90IH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IC4uLmNvbnZlcnRlZFJlc3BvbnNlLCBzZXJ2ZWRGcm9tOiAnYXBpJyB9O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIubG9nRXJyb3IoJ2Vycm9yIGdldHRpbmcgaGFyZGNvcHkgZnJvbSBiYWNrZW5kJywgZXJyb3IpO1xuICAgICAgZmFsbGJhY2tSZWFzb24gPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJ3RpbWVkIG91dCcpID8gJ3RpbWVvdXQnIDogJ2Vycm9yJztcbiAgICB9XG5cbiAgICBjb25zdCBtb2NrUmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgaWYgKG1vY2tSZXNwb25zZSkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyByZWFsIHJlc3BvbnNlLCB1c2luZyBtb2NrJywgbW9ja1Jlc3BvbnNlKTtcbiAgICAgIHJldHVybiB7IC4uLm1vY2tSZXNwb25zZSwgc2VydmVkRnJvbTogJ3N0YXRpYycsIGZhbGxiYWNrUmVhc29uOiBmYWxsYmFja1JlYXNvbiA/PyAnZXJyb3InIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7fSkge31cblxuICBhc3luYyBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+IHtcbiAgICBjb25zdCBmYWxsYmFja1dpZGdldFR5cGUgPVxuICAgICAgcmVxdWVzdC53aWRnZXRUeXBlID09PSBXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWM1xuICAgICAgICA/IFdpZGdldFR5cGVWMy5JbWFnZVByb21wdENhcmRWM1xuICAgICAgICA6IHJlcXVlc3Qud2lkZ2V0VHlwZTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgIHRoaXMub3ZlcnJpZGVzW3JlcXVlc3Qud2lkZ2V0VHlwZV0gPz9cbiAgICAgIHRoaXMub3ZlcnJpZGVzW2ZhbGxiYWNrV2lkZ2V0VHlwZV0gPz9cbiAgICAgIE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcblxuICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTSxTQUFTLElBQUlBLGVBQU8sa0JBQWtCO0FBYTVDLE1BQWEsc0JBQXNCO0FBS25DLE1BQU0sZUFBa0IsU0FBcUIsT0FBMkI7Q0FDdEUsSUFBSUM7Q0FDSixNQUFNLFVBQVUsSUFBSSxTQUFnQixHQUFHLFdBQVc7QUFDaEQsVUFBUSxpQkFBaUIsdUJBQU8sSUFBSSxNQUFNLG9DQUFvQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUc7R0FDM0Y7QUFDRixRQUFPLFFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envive-ai/react-hooks",
3
- "version": "0.3.63",
3
+ "version": "0.3.65",
4
4
  "description": "React hooks for connecting to Envive AI services.",
5
5
  "keywords": [
6
6
  "react",
@@ -414,6 +414,10 @@
414
414
  "import": "./dist/hooks/WidgetInteraction/utils.js",
415
415
  "require": "./dist/hooks/WidgetInteraction/utils.cjs"
416
416
  },
417
+ "./hooks/WidgetLoadDiagnostics": {
418
+ "import": "./dist/hooks/WidgetLoadDiagnostics/index.js",
419
+ "require": "./dist/hooks/WidgetLoadDiagnostics/index.cjs"
420
+ },
417
421
  "./interceptors": {
418
422
  "import": "./dist/interceptors/index.js",
419
423
  "require": "./dist/interceptors/index.cjs"
@@ -37,13 +37,16 @@ export enum FeatureGates {
37
37
  // ships, so an org can run the storefront without opting pdp/plp into variant_b.
38
38
  IsAiSuggestionsStorefrontEnabled = 'is_ai_suggestions_storefront_enabled',
39
39
  IsVoiceInputEnabled = 'is_voice_input_enabled',
40
- // Resets the chat/conversation context to the new product when a PDP variant/color change
41
- // updates the URL client-side (history.pushState/replaceState) without a full reload.
42
- // Default OFF; enabled per-org via Statsig (initially Naturalizer) to de-risk rollout.
43
- IsPdpVariantContextResetEnabled = 'is_pdp_variant_context_reset_enabled',
44
- // Statsig experiments / unified getWidgetConfig endpoint migration. When
45
- // true, EnviveConfigService calls getWidgetConfig (experiment-aware)
46
- // instead of the legacy getProductsConfigByVersion / getColorsAndFrontend
47
- // path.
40
+ // The unified-config endpoint migration. The FE no longer branches on this to
41
+ // pick a config path — EnviveConfigService always calls /v1/session/bootstrap.
42
+ // The gate still governs SERVER-SIDE behavior (experiment_assignments population
43
+ // + config-version resolution), and the FE forwards a client-side override of it
44
+ // to bootstrap's url_resolving as a page-variant lever.
48
45
  UseUnifiedConfig = 'use_unified_config',
46
+ // Kill switch for the [Envive] Diagnostics widget-load events (mount / outcome / stall).
47
+ // Diagnostics are ON by default for every org so we can gather a cross-merchant baseline and
48
+ // tell whether one merchant's stuck rate is anomalous. Set this gate true — globally or
49
+ // per-org, via Statsig — to shut them off (e.g. after the data-gathering window, or if the
50
+ // volume is a problem).
51
+ IsWidgetDiagnosticsDisabled = 'is_widget_diagnostics_disabled',
49
52
  }