@dynatrace/rum-javascript-sdk 1.329.5 → 1.331.5

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 (70) hide show
  1. package/README.md +8 -8
  2. package/dist/testing/install.js +4 -1
  3. package/dist/testing/test.js +105 -15
  4. package/dist/types/index-typedoc.d.ts +1 -0
  5. package/dist/types/index-typedoc.js +2 -1
  6. package/dist/types/internal/beacon-query.d.ts +4 -1
  7. package/dist/types/internal/beacon-query.js +4 -1
  8. package/dist/types/rum-events/event-context/event-context.d.ts +3 -0
  9. package/dist/types/rum-events/event-context/event-context.js +1 -1
  10. package/dist/types/rum-events/event-updates.d.ts +3 -0
  11. package/dist/types/rum-events/event-updates.js +1 -1
  12. package/dist/types/rum-events/index.d.ts +1 -0
  13. package/dist/types/rum-events/index.js +2 -1
  14. package/dist/types/rum-events/json-event.d.ts +5 -8
  15. package/dist/types/rum-events/json-event.js +1 -1
  16. package/dist/types/rum-events/rum-biz-event.d.ts +8 -4
  17. package/dist/types/rum-events/rum-biz-event.js +2 -8
  18. package/dist/types/rum-events/rum-event-keys.d.ts +342 -0
  19. package/dist/types/rum-events/rum-event-keys.js +469 -0
  20. package/dist/types/rum-events/rum-event.d.ts +4 -3
  21. package/dist/types/rum-events/rum-event.js +1 -1
  22. package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +36 -9
  23. package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +21 -5
  24. package/dist/types/rum-events/rum-long-task-event.d.ts +15 -16
  25. package/dist/types/rum-events/rum-long-task-event.js +2 -10
  26. package/dist/types/rum-events/rum-page-summary-event.d.ts +109 -166
  27. package/dist/types/rum-events/rum-page-summary-event.js +2 -88
  28. package/dist/types/rum-events/rum-selfmonitoring-event.d.ts +13 -11
  29. package/dist/types/rum-events/rum-selfmonitoring-event.js +1 -7
  30. package/dist/types/rum-events/rum-session-properties-event.d.ts +4 -3
  31. package/dist/types/rum-events/rum-session-properties-event.js +1 -1
  32. package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.d.ts +6 -6
  33. package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.js +1 -1
  34. package/dist/types/rum-events/rum-standalone-exception-event.d.ts +6 -6
  35. package/dist/types/rum-events/rum-standalone-exception-event.js +1 -1
  36. package/dist/types/rum-events/rum-standalone-navigation-event.d.ts +11 -7
  37. package/dist/types/rum-events/rum-standalone-navigation-event.js +2 -5
  38. package/dist/types/rum-events/rum-user-action-event.d.ts +96 -86
  39. package/dist/types/rum-events/rum-user-action-event.js +22 -37
  40. package/dist/types/rum-events/rum-user-interaction-event.d.ts +126 -152
  41. package/dist/types/rum-events/rum-user-interaction-event.js +4 -90
  42. package/dist/types/rum-events/rum-visibility-change-event.d.ts +12 -9
  43. package/dist/types/rum-events/rum-visibility-change-event.js +2 -6
  44. package/dist/types/rum-events/rum-web-request-event.d.ts +84 -105
  45. package/dist/types/rum-events/rum-web-request-event.js +9 -57
  46. package/dist/types/rum-events/schema-versions.d.ts +1 -1
  47. package/dist/types/rum-events/schema-versions.js +2 -2
  48. package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.d.ts +18 -30
  49. package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.js +3 -22
  50. package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.d.ts +12 -18
  51. package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.js +2 -19
  52. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.d.ts +6 -6
  53. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.js +1 -10
  54. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +50 -94
  55. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -75
  56. package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.d.ts +7 -8
  57. package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.js +2 -10
  58. package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.d.ts +10 -10
  59. package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.js +5 -15
  60. package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.d.ts +8 -4
  61. package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.js +2 -5
  62. package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.d.ts +7 -7
  63. package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.js +2 -9
  64. package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.d.ts +7 -7
  65. package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.js +2 -9
  66. package/dist/types/user-actions/user-action-end-event.d.ts +2 -2
  67. package/dist/types/user-actions/user-action-end-event.js +1 -1
  68. package/docs/testing.md +92 -0
  69. package/docs/types.md +1 -1
  70. package/package.json +4 -3
@@ -1,9 +1,9 @@
1
- import type { CharacteristicsFieldsKeys, GeneralRumEventFields, GeneralRumEventFieldsKeys } from "./shared-namespaces-and-fields/general-rum-event-fields.js";
2
- import type { CLSMetric, CLSPaintMetricStatus, ErrorCountSummaryFields, FIDMetric, FIDPaintMetricStatus, INPMetric, INPPaintMetricStatus, LCPMetric, LCPPaintMetricStatus, LongTaskMetric, LongTaskMetricStatus, RUMPageSummaryEventKeys } from "./rum-page-summary-event.js";
1
+ import type { CLSMetric, CLSPaintMetricStatus, ErrorCountSummaryFields, FIDMetric, FIDPaintMetricStatus, INPMetric, INPPaintMetricStatus, LCPMetric, LCPPaintMetricStatus, LongTaskMetric, LongTaskMetricStatus } from "./rum-page-summary-event.js";
3
2
  import type { eventContextSymbol, RUMNavigationUserActionEventContext, RUMRequestUserActionEventContext } from "./event-context/event-context.js";
4
- import type { RUMClickActionEvent, RUMUserInteractionEventKeys } from "./rum-user-interaction-event.js";
5
- import type { RUMInternalRequestFieldsKeys, RUMResourceTimingBasedWebRequestEvent, TraceContextFields } from "./rum-web-request-event.js";
6
- import type { RequestFieldsKeys } from "./shared-namespaces-and-fields/index.js";
3
+ import type { GeneralRumEventFields } from "./shared-namespaces-and-fields/general-rum-event-fields.js";
4
+ import type { RUMClickActionEvent } from "./rum-user-interaction-event.js";
5
+ import type { RumEventKeys } from "./rum-event-keys.js";
6
+ import type { RUMResourceTimingBasedWebRequestEvent } from "./rum-web-request-event.js";
7
7
  import type { RUMStandaloneNavigationEvent } from "./rum-standalone-navigation-event.js";
8
8
  import type { SCHEMA_VERSION } from "./schema-versions.js";
9
9
  /**
@@ -14,36 +14,59 @@ export type WebVitalsDisabledStatus = "disabled";
14
14
  /**
15
15
  * @inline
16
16
  */
17
- type ExtendedCLSMetric = Omit<CLSMetric, RUMPageSummaryEventKeys.CLS$STATUS> & {
18
- [RUMPageSummaryEventKeys.CLS$STATUS]: CLSPaintMetricStatus | WebVitalsDisabledStatus;
17
+ type ExtendedCLSMetric = Omit<CLSMetric, RumEventKeys.CLS$STATUS> & {
18
+ [RumEventKeys.CLS$STATUS]: CLSPaintMetricStatus | WebVitalsDisabledStatus;
19
19
  };
20
20
  /**
21
21
  * @inline
22
22
  */
23
- type ExtendedFIDMetric = Omit<FIDMetric, RUMPageSummaryEventKeys.FID$STATUS> & {
24
- [RUMPageSummaryEventKeys.FID$STATUS]: FIDPaintMetricStatus | WebVitalsDisabledStatus;
23
+ type ExtendedFIDMetric = Omit<FIDMetric, RumEventKeys.FID$STATUS> & {
24
+ [RumEventKeys.FID$STATUS]: FIDPaintMetricStatus | WebVitalsDisabledStatus;
25
25
  };
26
26
  /**
27
27
  * @inline
28
28
  */
29
- type ExtendedINPMetric = Omit<INPMetric, RUMPageSummaryEventKeys.INP$STATUS> & {
30
- [RUMPageSummaryEventKeys.INP$STATUS]: INPPaintMetricStatus | WebVitalsDisabledStatus;
29
+ type ExtendedINPMetric = Omit<INPMetric, RumEventKeys.INP$STATUS> & {
30
+ [RumEventKeys.INP$STATUS]: INPPaintMetricStatus | WebVitalsDisabledStatus;
31
31
  };
32
32
  /**
33
33
  * @inline
34
34
  */
35
- type ExtendedLCPMetric = Omit<LCPMetric, RUMPageSummaryEventKeys.LCP$STATUS> & {
36
- [RUMPageSummaryEventKeys.LCP$STATUS]: LCPPaintMetricStatus | WebVitalsDisabledStatus;
35
+ type ExtendedLCPMetric = Omit<LCPMetric, RumEventKeys.LCP$STATUS> & {
36
+ [RumEventKeys.LCP$STATUS]: LCPPaintMetricStatus | WebVitalsDisabledStatus;
37
37
  };
38
38
  /**
39
39
  * @inline
40
40
  */
41
- type ExtendedLongTaskMetric = Omit<LongTaskMetric, RUMPageSummaryEventKeys.LONG_TASK$STATUS> & {
42
- [RUMPageSummaryEventKeys.LONG_TASK$STATUS]: LongTaskMetricStatus | WebVitalsDisabledStatus;
41
+ type ExtendedLongTaskMetric = Omit<LongTaskMetric, RumEventKeys.LONG_TASK$STATUS> & {
42
+ [RumEventKeys.LONG_TASK$STATUS]: LongTaskMetricStatus | WebVitalsDisabledStatus;
43
43
  };
44
44
  export type UserActionWebVitals = ExtendedCLSMetric & ExtendedFIDMetric & ExtendedINPMetric & ExtendedLCPMetric & ExtendedLongTaskMetric;
45
- export type UserInteractionEventParts = Pick<RUMClickActionEvent, RUMUserInteractionEventKeys.DOM_EVENT$IS_TRUSTED | RUMUserInteractionEventKeys.INTERACTION$NAME | RUMUserInteractionEventKeys.UI_ELEMENT$CUSTOM_NAME | RUMUserInteractionEventKeys.UI_ELEMENT$NAME | RUMUserInteractionEventKeys.UI_ELEMENT$NAME_ORIGIN | RUMUserInteractionEventKeys.UI_ELEMENT$TAG_NAME>;
46
- type UserActionRequestPartFields = Pick<RUMResourceTimingBasedWebRequestEvent, RequestFieldsKeys.NETWORK$PROTOCOL$NAME | RequestFieldsKeys.URL$FULL | RUMInternalRequestFieldsKeys.REQUEST$SERVER_TIMING_HINT | RUMInternalRequestFieldsKeys.REQUEST$TRACE_CONTEXT_HINT | TraceContextFields.SPAN$ID | TraceContextFields.TRACE$ID | TraceContextFields.TRACE$IS_SAMPLED>;
45
+ /**
46
+ * @internal
47
+ */
48
+ export type UserInteractionEventParts = Pick<RUMClickActionEvent, RumEventKeys.DOM_EVENT$IS_TRUSTED | RumEventKeys.INTERACTION$NAME | RumEventKeys.UI_ELEMENT$CUSTOM_NAME | RumEventKeys.UI_ELEMENT$DETECTED_NAME | RumEventKeys.UI_ELEMENT$NAME_ORIGIN | RumEventKeys.UI_ELEMENT$TAG_NAME>;
49
+ type UserActionRequestPartFields = Pick<RUMResourceTimingBasedWebRequestEvent, RumEventKeys.NETWORK$PROTOCOL$NAME | RumEventKeys.URL$FULL | RumEventKeys.REQUEST$SERVER_TIMING_HINT | RumEventKeys.REQUEST$TRACE_CONTEXT_HINT | RumEventKeys.SPAN$ID | RumEventKeys.TRACE$ID | RumEventKeys.TRACE$IS_SAMPLED>;
50
+ /**
51
+ * The type of user action.
52
+ *
53
+ * @category User Actions
54
+ * @experimental
55
+ */
56
+ export declare const enum UserActionType {
57
+ /**
58
+ * A user action created via the API.
59
+ */
60
+ API = "api",
61
+ /**
62
+ * A user action triggered by a soft navigation.
63
+ */
64
+ SOFT_NAVIGATION = "soft_navigation",
65
+ /**
66
+ * A user action triggered by an XHR request.
67
+ */
68
+ XHR = "xhr"
69
+ }
47
70
  /**
48
71
  * The reasons a user action can complete with.
49
72
  *
@@ -84,86 +107,71 @@ export declare const enum UserActionCompleteReason {
84
107
  */
85
108
  TIMEOUT = "timeout"
86
109
  }
87
- export declare const enum RUMUserActionEventKeys {
88
- USER_ACTION$COMPLETE_REASON = "user_action.complete_reason",
89
- USER_ACTION$CUSTOM_NAME = "user_action.custom_name",
90
- USER_ACTION$INSTANCE_ID = "user_action.instance_id",
91
- USER_ACTION$INTERRUPTED_BY_INSTANCE_ID = "user_action.interrupted_by_instance_id",
92
- USER_ACTION$INTERRUPTED_INSTANCE_ID = "user_action.interrupted_instance_id",
93
- USER_ACTION$MUTATION_COUNT = "user_action.mutation_count",
94
- USER_ACTION$REQUESTS$COUNT = "user_action.requests.count",
95
- USER_ACTION$REQUESTS$DATA_URL_REQUEST_COUNT = "user_action.requests.data_url_request_count",
96
- USER_ACTION$REQUESTS$PENDING_REQUEST_COUNT = "user_action.requests.pending_request_count",
97
- USER_ACTION$RESOURCES$AUDIO$COUNT = "user_action.resources.audio.count",
98
- USER_ACTION$RESOURCES$BEACON$COUNT = "user_action.resources.beacon.count",
99
- USER_ACTION$RESOURCES$BODY$COUNT = "user_action.resources.body.count",
100
- USER_ACTION$RESOURCES$COUNT = "user_action.resources.count",
101
- USER_ACTION$RESOURCES$CSS$COUNT = "user_action.resources.css.count",
102
- USER_ACTION$RESOURCES$EARLY_HINT$COUNT = "user_action.resources.early-hint.count",
103
- USER_ACTION$RESOURCES$EMBED$COUNT = "user_action.resources.embed.count",
104
- USER_ACTION$RESOURCES$FETCH$COUNT = "user_action.resources.fetch.count",
105
- USER_ACTION$RESOURCES$FRAME$COUNT = "user_action.resources.frame.count",
106
- USER_ACTION$RESOURCES$ICON$COUNT = "user_action.resources.icon.count",
107
- USER_ACTION$RESOURCES$IFRAME$COUNT = "user_action.resources.iframe.count",
108
- USER_ACTION$RESOURCES$IMAGE$COUNT = "user_action.resources.image.count",
109
- USER_ACTION$RESOURCES$IMG$COUNT = "user_action.resources.img.count",
110
- USER_ACTION$RESOURCES$INPUT$COUNT = "user_action.resources.input.count",
111
- USER_ACTION$RESOURCES$LINK$COUNT = "user_action.resources.link.count",
112
- USER_ACTION$RESOURCES$NAVIGATION$COUNT = "user_action.resources.navigation.count",
113
- USER_ACTION$RESOURCES$OBJECT$COUNT = "user_action.resources.object.count",
114
- USER_ACTION$RESOURCES$OTHER$COUNT = "user_action.resources.other.count",
115
- USER_ACTION$RESOURCES$PING$COUNT = "user_action.resources.ping.count",
116
- USER_ACTION$RESOURCES$SCRIPT$COUNT = "user_action.resources.script.count",
117
- USER_ACTION$RESOURCES$TRACK$COUNT = "user_action.resources.track.count",
118
- USER_ACTION$RESOURCES$VIDEO$COUNT = "user_action.resources.video.count",
119
- USER_ACTION$RESOURCES$XMLHTTPREQUEST$COUNT = "user_action.resources.xmlhttprequest.count"
120
- }
110
+ /**
111
+ * User action fields.
112
+ *
113
+ * @ignore
114
+ */
115
+ export type RUMUserActionEventKeys = RumEventKeys.USER_ACTION$COMPLETE_REASON | RumEventKeys.USER_ACTION$CUSTOM_NAME | RumEventKeys.USER_ACTION$INSTANCE_ID | RumEventKeys.USER_ACTION$INTERRUPTED_BY_INSTANCE_ID | RumEventKeys.USER_ACTION$INTERRUPTED_INSTANCE_ID | RumEventKeys.USER_ACTION$MUTATION_COUNT | RumEventKeys.USER_ACTION$REQUESTS$COUNT | RumEventKeys.USER_ACTION$REQUESTS$DATA_URL_REQUEST_COUNT | RumEventKeys.USER_ACTION$REQUESTS$PENDING_REQUEST_COUNT | RumEventKeys.USER_ACTION$RESOURCES$AUDIO$COUNT | RumEventKeys.USER_ACTION$RESOURCES$BEACON$COUNT | RumEventKeys.USER_ACTION$RESOURCES$BODY$COUNT | RumEventKeys.USER_ACTION$RESOURCES$COUNT | RumEventKeys.USER_ACTION$RESOURCES$CSS$COUNT | RumEventKeys.USER_ACTION$RESOURCES$EARLY_HINT$COUNT | RumEventKeys.USER_ACTION$RESOURCES$EMBED$COUNT | RumEventKeys.USER_ACTION$RESOURCES$FETCH$COUNT | RumEventKeys.USER_ACTION$RESOURCES$FRAME$COUNT | RumEventKeys.USER_ACTION$RESOURCES$ICON$COUNT | RumEventKeys.USER_ACTION$RESOURCES$IFRAME$COUNT | RumEventKeys.USER_ACTION$RESOURCES$IMAGE$COUNT | RumEventKeys.USER_ACTION$RESOURCES$IMG$COUNT | RumEventKeys.USER_ACTION$RESOURCES$INPUT$COUNT | RumEventKeys.USER_ACTION$RESOURCES$LINK$COUNT | RumEventKeys.USER_ACTION$RESOURCES$NAVIGATION$COUNT | RumEventKeys.USER_ACTION$RESOURCES$OBJECT$COUNT | RumEventKeys.USER_ACTION$RESOURCES$OTHER$COUNT | RumEventKeys.USER_ACTION$RESOURCES$PING$COUNT | RumEventKeys.USER_ACTION$RESOURCES$SCRIPT$COUNT | RumEventKeys.USER_ACTION$RESOURCES$TRACK$COUNT | RumEventKeys.USER_ACTION$RESOURCES$VIDEO$COUNT | RumEventKeys.USER_ACTION$RESOURCES$XMLHTTPREQUEST$COUNT | RumEventKeys.USER_ACTION$TYPE;
116
+ /**
117
+ * @category User Actions
118
+ * @experimental
119
+ */
121
120
  export interface BaseRUMUserActionEventRequestFields {
122
- [RUMUserActionEventKeys.USER_ACTION$REQUESTS$PENDING_REQUEST_COUNT]: number;
123
- [RUMUserActionEventKeys.USER_ACTION$REQUESTS$DATA_URL_REQUEST_COUNT]: number;
124
- [RUMUserActionEventKeys.USER_ACTION$REQUESTS$COUNT]: number;
121
+ [RumEventKeys.USER_ACTION$REQUESTS$PENDING_REQUEST_COUNT]: number;
122
+ [RumEventKeys.USER_ACTION$REQUESTS$DATA_URL_REQUEST_COUNT]: number;
123
+ [RumEventKeys.USER_ACTION$REQUESTS$COUNT]: number;
125
124
  }
125
+ /**
126
+ * @category User Actions
127
+ * @experimental
128
+ */
126
129
  export interface BaseRUMUserActionEventResourcesFields {
127
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$COUNT]: number;
128
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$AUDIO$COUNT]?: number;
129
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$BEACON$COUNT]?: number;
130
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$BODY$COUNT]?: number;
131
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$CSS$COUNT]?: number;
132
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$EARLY_HINT$COUNT]?: number;
133
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$EMBED$COUNT]?: number;
134
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$FETCH$COUNT]?: number;
135
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$FRAME$COUNT]?: number;
136
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$ICON$COUNT]?: number;
137
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$IFRAME$COUNT]?: number;
138
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$IMAGE$COUNT]?: number;
139
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$IMG$COUNT]?: number;
140
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$INPUT$COUNT]?: number;
141
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$LINK$COUNT]?: number;
142
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$NAVIGATION$COUNT]?: number;
143
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$OBJECT$COUNT]?: number;
144
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$OTHER$COUNT]?: number;
145
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$PING$COUNT]?: number;
146
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$SCRIPT$COUNT]?: number;
147
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$TRACK$COUNT]?: number;
148
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$VIDEO$COUNT]?: number;
149
- [RUMUserActionEventKeys.USER_ACTION$RESOURCES$XMLHTTPREQUEST$COUNT]?: number;
130
+ [RumEventKeys.USER_ACTION$RESOURCES$COUNT]: number;
131
+ [RumEventKeys.USER_ACTION$RESOURCES$AUDIO$COUNT]?: number;
132
+ [RumEventKeys.USER_ACTION$RESOURCES$BEACON$COUNT]?: number;
133
+ [RumEventKeys.USER_ACTION$RESOURCES$BODY$COUNT]?: number;
134
+ [RumEventKeys.USER_ACTION$RESOURCES$CSS$COUNT]?: number;
135
+ [RumEventKeys.USER_ACTION$RESOURCES$EARLY_HINT$COUNT]?: number;
136
+ [RumEventKeys.USER_ACTION$RESOURCES$EMBED$COUNT]?: number;
137
+ [RumEventKeys.USER_ACTION$RESOURCES$FETCH$COUNT]?: number;
138
+ [RumEventKeys.USER_ACTION$RESOURCES$FRAME$COUNT]?: number;
139
+ [RumEventKeys.USER_ACTION$RESOURCES$ICON$COUNT]?: number;
140
+ [RumEventKeys.USER_ACTION$RESOURCES$IFRAME$COUNT]?: number;
141
+ [RumEventKeys.USER_ACTION$RESOURCES$IMAGE$COUNT]?: number;
142
+ [RumEventKeys.USER_ACTION$RESOURCES$IMG$COUNT]?: number;
143
+ [RumEventKeys.USER_ACTION$RESOURCES$INPUT$COUNT]?: number;
144
+ [RumEventKeys.USER_ACTION$RESOURCES$LINK$COUNT]?: number;
145
+ [RumEventKeys.USER_ACTION$RESOURCES$NAVIGATION$COUNT]?: number;
146
+ [RumEventKeys.USER_ACTION$RESOURCES$OBJECT$COUNT]?: number;
147
+ [RumEventKeys.USER_ACTION$RESOURCES$OTHER$COUNT]?: number;
148
+ [RumEventKeys.USER_ACTION$RESOURCES$PING$COUNT]?: number;
149
+ [RumEventKeys.USER_ACTION$RESOURCES$SCRIPT$COUNT]?: number;
150
+ [RumEventKeys.USER_ACTION$RESOURCES$TRACK$COUNT]?: number;
151
+ [RumEventKeys.USER_ACTION$RESOURCES$VIDEO$COUNT]?: number;
152
+ [RumEventKeys.USER_ACTION$RESOURCES$XMLHTTPREQUEST$COUNT]?: number;
150
153
  }
154
+ /**
155
+ * @category User Actions
156
+ * @experimental
157
+ */
151
158
  export interface BaseRUMUserActionEvent extends GeneralRumEventFields, BaseRUMUserActionEventRequestFields, BaseRUMUserActionEventResourcesFields, ErrorCountSummaryFields, UserActionWebVitals {
152
- [CharacteristicsFieldsKeys.CHARACTERISTICS$HAS_USER_ACTION]: true;
153
- [GeneralRumEventFieldsKeys.DT$RUM$SCHEMA_VERSION]: typeof SCHEMA_VERSION;
154
- [RUMUserActionEventKeys.USER_ACTION$INSTANCE_ID]: string;
155
- [RUMUserActionEventKeys.USER_ACTION$MUTATION_COUNT]: number;
156
- [RUMUserActionEventKeys.USER_ACTION$COMPLETE_REASON]: UserActionCompleteReason;
157
- [RUMUserActionEventKeys.USER_ACTION$CUSTOM_NAME]?: string;
158
- [RUMUserActionEventKeys.USER_ACTION$INTERRUPTED_BY_INSTANCE_ID]?: string;
159
- [RUMUserActionEventKeys.USER_ACTION$INTERRUPTED_INSTANCE_ID]?: string;
159
+ [RumEventKeys.CHARACTERISTICS$HAS_USER_ACTION]: true;
160
+ [RumEventKeys.DT$RUM$SCHEMA_VERSION]: typeof SCHEMA_VERSION;
161
+ [RumEventKeys.USER_ACTION$INSTANCE_ID]: string;
162
+ [RumEventKeys.USER_ACTION$MUTATION_COUNT]: number;
163
+ [RumEventKeys.USER_ACTION$COMPLETE_REASON]: UserActionCompleteReason;
164
+ [RumEventKeys.USER_ACTION$CUSTOM_NAME]?: string;
165
+ [RumEventKeys.USER_ACTION$INTERRUPTED_BY_INSTANCE_ID]?: string;
166
+ [RumEventKeys.USER_ACTION$INTERRUPTED_INSTANCE_ID]?: string;
160
167
  }
161
168
  /**
162
169
  * @category User Actions
163
170
  * @experimental
164
171
  */
165
172
  export interface ApiUserActionJSONEvent extends BaseRUMUserActionEvent {
166
- [CharacteristicsFieldsKeys.CHARACTERISTICS$IS_API_REPORTED]: true;
173
+ [RumEventKeys.CHARACTERISTICS$IS_API_REPORTED]: true;
174
+ [RumEventKeys.USER_ACTION$TYPE]: UserActionType.API;
167
175
  }
168
176
  /**
169
177
  * @category User Actions
@@ -171,6 +179,7 @@ export interface ApiUserActionJSONEvent extends BaseRUMUserActionEvent {
171
179
  */
172
180
  export interface RequestUserActionJSONEvent extends BaseRUMUserActionEvent, UserInteractionEventParts, UserActionRequestPartFields {
173
181
  [eventContextSymbol]: RUMRequestUserActionEventContext;
182
+ [RumEventKeys.USER_ACTION$TYPE]: UserActionType.XHR;
174
183
  }
175
184
  /**
176
185
  * @category User Actions
@@ -178,6 +187,7 @@ export interface RequestUserActionJSONEvent extends BaseRUMUserActionEvent, User
178
187
  */
179
188
  export interface NavigationUserActionJSONEvent extends BaseRUMUserActionEvent, Partial<UserInteractionEventParts>, Omit<RUMStandaloneNavigationEvent, typeof eventContextSymbol> {
180
189
  [eventContextSymbol]: RUMNavigationUserActionEventContext;
190
+ [RumEventKeys.USER_ACTION$TYPE]: UserActionType.SOFT_NAVIGATION;
181
191
  }
182
192
  /**
183
193
  * @category User Actions
@@ -1,4 +1,24 @@
1
- // https://dt-rnd.atlassian.net/wiki/spaces/DEX/pages/1278313677/RUM+User+Action+Event
1
+ /**
2
+ * The type of user action.
3
+ *
4
+ * @category User Actions
5
+ * @experimental
6
+ */
7
+ export var UserActionType;
8
+ (function (UserActionType) {
9
+ /**
10
+ * A user action created via the API.
11
+ */
12
+ UserActionType["API"] = "api";
13
+ /**
14
+ * A user action triggered by a soft navigation.
15
+ */
16
+ UserActionType["SOFT_NAVIGATION"] = "soft_navigation";
17
+ /**
18
+ * A user action triggered by an XHR request.
19
+ */
20
+ UserActionType["XHR"] = "xhr";
21
+ })(UserActionType || (UserActionType = {}));
2
22
  /**
3
23
  * The reasons a user action can complete with.
4
24
  *
@@ -40,39 +60,4 @@ export var UserActionCompleteReason;
40
60
  */
41
61
  UserActionCompleteReason["TIMEOUT"] = "timeout";
42
62
  })(UserActionCompleteReason || (UserActionCompleteReason = {}));
43
- export var RUMUserActionEventKeys;
44
- (function (RUMUserActionEventKeys) {
45
- RUMUserActionEventKeys["USER_ACTION$COMPLETE_REASON"] = "user_action.complete_reason";
46
- RUMUserActionEventKeys["USER_ACTION$CUSTOM_NAME"] = "user_action.custom_name";
47
- RUMUserActionEventKeys["USER_ACTION$INSTANCE_ID"] = "user_action.instance_id";
48
- RUMUserActionEventKeys["USER_ACTION$INTERRUPTED_BY_INSTANCE_ID"] = "user_action.interrupted_by_instance_id";
49
- RUMUserActionEventKeys["USER_ACTION$INTERRUPTED_INSTANCE_ID"] = "user_action.interrupted_instance_id";
50
- RUMUserActionEventKeys["USER_ACTION$MUTATION_COUNT"] = "user_action.mutation_count";
51
- RUMUserActionEventKeys["USER_ACTION$REQUESTS$COUNT"] = "user_action.requests.count";
52
- RUMUserActionEventKeys["USER_ACTION$REQUESTS$DATA_URL_REQUEST_COUNT"] = "user_action.requests.data_url_request_count";
53
- RUMUserActionEventKeys["USER_ACTION$REQUESTS$PENDING_REQUEST_COUNT"] = "user_action.requests.pending_request_count";
54
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$AUDIO$COUNT"] = "user_action.resources.audio.count";
55
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$BEACON$COUNT"] = "user_action.resources.beacon.count";
56
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$BODY$COUNT"] = "user_action.resources.body.count";
57
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$COUNT"] = "user_action.resources.count";
58
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$CSS$COUNT"] = "user_action.resources.css.count";
59
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$EARLY_HINT$COUNT"] = "user_action.resources.early-hint.count";
60
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$EMBED$COUNT"] = "user_action.resources.embed.count";
61
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$FETCH$COUNT"] = "user_action.resources.fetch.count";
62
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$FRAME$COUNT"] = "user_action.resources.frame.count";
63
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$ICON$COUNT"] = "user_action.resources.icon.count";
64
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$IFRAME$COUNT"] = "user_action.resources.iframe.count";
65
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$IMAGE$COUNT"] = "user_action.resources.image.count";
66
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$IMG$COUNT"] = "user_action.resources.img.count";
67
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$INPUT$COUNT"] = "user_action.resources.input.count";
68
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$LINK$COUNT"] = "user_action.resources.link.count";
69
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$NAVIGATION$COUNT"] = "user_action.resources.navigation.count";
70
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$OBJECT$COUNT"] = "user_action.resources.object.count";
71
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$OTHER$COUNT"] = "user_action.resources.other.count";
72
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$PING$COUNT"] = "user_action.resources.ping.count";
73
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$SCRIPT$COUNT"] = "user_action.resources.script.count";
74
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$TRACK$COUNT"] = "user_action.resources.track.count";
75
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$VIDEO$COUNT"] = "user_action.resources.video.count";
76
- RUMUserActionEventKeys["USER_ACTION$RESOURCES$XMLHTTPREQUEST$COUNT"] = "user_action.resources.xmlhttprequest.count";
77
- })(RUMUserActionEventKeys || (RUMUserActionEventKeys = {}));
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLXVzZXItYWN0aW9uLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvcnVtLXVzZXItYWN0aW9uLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRjtBQWdHdEY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBa0Isd0JBaUNqQjtBQWpDRCxXQUFrQix3QkFBd0I7SUFDdEM7O09BRUc7SUFDSCxtREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGlFQUFxQyxDQUFBO0lBQ3JDOztPQUVHO0lBQ0gscUVBQXlDLENBQUE7SUFDekM7O09BRUc7SUFDSCxtRkFBdUQsQ0FBQTtJQUN2RDs7T0FFRztJQUNILDZFQUFpRCxDQUFBO0lBQ2pEOztPQUVHO0lBQ0gsdURBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCxtREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILCtDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFqQ2lCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFpQ3pDO0FBRUQsTUFBTSxDQUFOLElBQWtCLHNCQW9DakI7QUFwQ0QsV0FBa0Isc0JBQXNCO0lBQ3BDLHFGQUEyRCxDQUFBO0lBQzNELDZFQUFtRCxDQUFBO0lBRW5ELDZFQUFtRCxDQUFBO0lBQ25ELDJHQUFpRixDQUFBO0lBQ2pGLHFHQUEyRSxDQUFBO0lBQzNFLG1GQUF5RCxDQUFBO0lBRXpELG1GQUF5RCxDQUFBO0lBQ3pELHFIQUEyRixDQUFBO0lBQzNGLG1IQUF5RixDQUFBO0lBRXpGLGlHQUF1RSxDQUFBO0lBQ3ZFLG1HQUF5RSxDQUFBO0lBQ3pFLCtGQUFxRSxDQUFBO0lBQ3JFLHFGQUEyRCxDQUFBO0lBQzNELDZGQUFtRSxDQUFBO0lBQ25FLDJHQUFpRixDQUFBO0lBQ2pGLGlHQUF1RSxDQUFBO0lBQ3ZFLGlHQUF1RSxDQUFBO0lBQ3ZFLGlHQUF1RSxDQUFBO0lBQ3ZFLCtGQUFxRSxDQUFBO0lBQ3JFLG1HQUF5RSxDQUFBO0lBQ3pFLGlHQUF1RSxDQUFBO0lBQ3ZFLDZGQUFtRSxDQUFBO0lBQ25FLGlHQUF1RSxDQUFBO0lBQ3ZFLCtGQUFxRSxDQUFBO0lBQ3JFLDJHQUFpRixDQUFBO0lBQ2pGLG1HQUF5RSxDQUFBO0lBQ3pFLGlHQUF1RSxDQUFBO0lBQ3ZFLCtGQUFxRSxDQUFBO0lBQ3JFLG1HQUF5RSxDQUFBO0lBQ3pFLGlHQUF1RSxDQUFBO0lBQ3ZFLGlHQUF1RSxDQUFBO0lBQ3ZFLG1IQUF5RixDQUFBO0FBQzdGLENBQUMsRUFwQ2lCLHNCQUFzQixLQUF0QixzQkFBc0IsUUFvQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9kdC1ybmQuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9ERVgvcGFnZXMvMTI3ODMxMzY3Ny9SVU0rVXNlcitBY3Rpb24rRXZlbnRcblxuaW1wb3J0IHR5cGUge1xuICAgIENoYXJhY3RlcmlzdGljc0ZpZWxkc0tleXMsXG4gICAgR2VuZXJhbFJ1bUV2ZW50RmllbGRzLFxuICAgIEdlbmVyYWxSdW1FdmVudEZpZWxkc0tleXNcbn0gZnJvbSBcIi4vc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9nZW5lcmFsLXJ1bS1ldmVudC1maWVsZHMuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBDTFNNZXRyaWMsXG4gICAgQ0xTUGFpbnRNZXRyaWNTdGF0dXMsXG4gICAgRXJyb3JDb3VudFN1bW1hcnlGaWVsZHMsXG4gICAgRklETWV0cmljLFxuICAgIEZJRFBhaW50TWV0cmljU3RhdHVzLFxuICAgIElOUE1ldHJpYyxcbiAgICBJTlBQYWludE1ldHJpY1N0YXR1cyxcbiAgICBMQ1BNZXRyaWMsXG4gICAgTENQUGFpbnRNZXRyaWNTdGF0dXMsXG4gICAgTG9uZ1Rhc2tNZXRyaWMsXG4gICAgTG9uZ1Rhc2tNZXRyaWNTdGF0dXMsXG4gICAgUlVNUGFnZVN1bW1hcnlFdmVudEtleXNcbn0gZnJvbSBcIi4vcnVtLXBhZ2Utc3VtbWFyeS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICAgIGV2ZW50Q29udGV4dFN5bWJvbCxcbiAgICBSVU1OYXZpZ2F0aW9uVXNlckFjdGlvbkV2ZW50Q29udGV4dCxcbiAgICBSVU1SZXF1ZXN0VXNlckFjdGlvbkV2ZW50Q29udGV4dFxufSBmcm9tIFwiLi9ldmVudC1jb250ZXh0L2V2ZW50LWNvbnRleHQuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBSVU1DbGlja0FjdGlvbkV2ZW50LFxuICAgIFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50S2V5c1xufSBmcm9tIFwiLi9ydW0tdXNlci1pbnRlcmFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICAgIFJVTUludGVybmFsUmVxdWVzdEZpZWxkc0tleXMsXG4gICAgUlVNUmVzb3VyY2VUaW1pbmdCYXNlZFdlYlJlcXVlc3RFdmVudCxcbiAgICBUcmFjZUNvbnRleHRGaWVsZHNcbn0gZnJvbSBcIi4vcnVtLXdlYi1yZXF1ZXN0LWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RGaWVsZHNLZXlzIH0gZnJvbSBcIi4vc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50IH0gZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtbmF2aWdhdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTQ0hFTUFfVkVSU0lPTiB9IGZyb20gXCIuL3NjaGVtYS12ZXJzaW9ucy5qc1wiO1xuXG4vKipcbiAqIEBpbmxpbmVcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXMgPSBcImRpc2FibGVkXCI7XG4vKipcbiAqIEBpbmxpbmVcbiAqL1xudHlwZSBFeHRlbmRlZENMU01ldHJpYyA9IE9taXQ8Q0xTTWV0cmljLCBSVU1QYWdlU3VtbWFyeUV2ZW50S2V5cy5DTFMkU1RBVFVTPiAmIHtcbiAgICBbUlVNUGFnZVN1bW1hcnlFdmVudEtleXMuQ0xTJFNUQVRVU106IENMU1BhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRGSURNZXRyaWMgPSBPbWl0PEZJRE1ldHJpYywgUlVNUGFnZVN1bW1hcnlFdmVudEtleXMuRklEJFNUQVRVUz4gJiB7XG4gICAgW1JVTVBhZ2VTdW1tYXJ5RXZlbnRLZXlzLkZJRCRTVEFUVVNdOiBGSURQYWludE1ldHJpY1N0YXR1cyB8IFdlYlZpdGFsc0Rpc2FibGVkU3RhdHVzO1xufTtcbi8qKlxuICogQGlubGluZVxuICovXG50eXBlIEV4dGVuZGVkSU5QTWV0cmljID0gT21pdDxJTlBNZXRyaWMsIFJVTVBhZ2VTdW1tYXJ5RXZlbnRLZXlzLklOUCRTVEFUVVM+ICYge1xuICAgIFtSVU1QYWdlU3VtbWFyeUV2ZW50S2V5cy5JTlAkU1RBVFVTXTogSU5QUGFpbnRNZXRyaWNTdGF0dXMgfCBXZWJWaXRhbHNEaXNhYmxlZFN0YXR1cztcbn07XG4vKipcbiAqIEBpbmxpbmVcbiAqL1xudHlwZSBFeHRlbmRlZExDUE1ldHJpYyA9IE9taXQ8TENQTWV0cmljLCBSVU1QYWdlU3VtbWFyeUV2ZW50S2V5cy5MQ1AkU1RBVFVTPiAmIHtcbiAgICBbUlVNUGFnZVN1bW1hcnlFdmVudEtleXMuTENQJFNUQVRVU106IExDUFBhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRMb25nVGFza01ldHJpYyA9IE9taXQ8TG9uZ1Rhc2tNZXRyaWMsIFJVTVBhZ2VTdW1tYXJ5RXZlbnRLZXlzLkxPTkdfVEFTSyRTVEFUVVM+ICYge1xuICAgIFtSVU1QYWdlU3VtbWFyeUV2ZW50S2V5cy5MT05HX1RBU0skU1RBVFVTXTogTG9uZ1Rhc2tNZXRyaWNTdGF0dXMgfCBXZWJWaXRhbHNEaXNhYmxlZFN0YXR1cztcbn07XG5leHBvcnQgdHlwZSBVc2VyQWN0aW9uV2ViVml0YWxzID0gRXh0ZW5kZWRDTFNNZXRyaWMgJiBFeHRlbmRlZEZJRE1ldHJpYyAmIEV4dGVuZGVkSU5QTWV0cmljICYgRXh0ZW5kZWRMQ1BNZXRyaWMgJiBFeHRlbmRlZExvbmdUYXNrTWV0cmljO1xuXG5leHBvcnQgdHlwZSBVc2VySW50ZXJhY3Rpb25FdmVudFBhcnRzID0gUGljazxcbiAgICBSVU1DbGlja0FjdGlvbkV2ZW50LFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRXZlbnRLZXlzLkRPTV9FVkVOVCRJU19UUlVTVEVEXG4gICAgfCBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudEtleXMuSU5URVJBQ1RJT04kTkFNRVxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRXZlbnRLZXlzLlVJX0VMRU1FTlQkQ1VTVE9NX05BTUVcbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50S2V5cy5VSV9FTEVNRU5UJE5BTUVcbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50S2V5cy5VSV9FTEVNRU5UJE5BTUVfT1JJR0lOXG4gICAgfCBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudEtleXMuVUlfRUxFTUVOVCRUQUdfTkFNRVxuPjtcbnR5cGUgVXNlckFjdGlvblJlcXVlc3RQYXJ0RmllbGRzID0gUGljazxcbiAgICBSVU1SZXNvdXJjZVRpbWluZ0Jhc2VkV2ViUmVxdWVzdEV2ZW50LFxuICAgIHwgUmVxdWVzdEZpZWxkc0tleXMuTkVUV09SSyRQUk9UT0NPTCROQU1FXG4gICAgfCBSZXF1ZXN0RmllbGRzS2V5cy5VUkwkRlVMTFxuICAgIHwgUlVNSW50ZXJuYWxSZXF1ZXN0RmllbGRzS2V5cy5SRVFVRVNUJFNFUlZFUl9USU1JTkdfSElOVFxuICAgIHwgUlVNSW50ZXJuYWxSZXF1ZXN0RmllbGRzS2V5cy5SRVFVRVNUJFRSQUNFX0NPTlRFWFRfSElOVFxuICAgIHwgVHJhY2VDb250ZXh0RmllbGRzLlNQQU4kSURcbiAgICB8IFRyYWNlQ29udGV4dEZpZWxkcy5UUkFDRSRJRFxuICAgIHwgVHJhY2VDb250ZXh0RmllbGRzLlRSQUNFJElTX1NBTVBMRURcbj47XG5cbi8qKlxuICogVGhlIHJlYXNvbnMgYSB1c2VyIGFjdGlvbiBjYW4gY29tcGxldGUgd2l0aC5cbiAqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFVzZXJBY3Rpb25Db21wbGV0ZVJlYXNvbiB7XG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgYWN0aW9uIGNvbXBsZXRlZCBub3JtYWxseSBhZnRlciB0aGUgaW5hY3Rpdml0eSB0aHJlc2hvbGQuXG4gICAgICovXG4gICAgQ09NUExFVEVEID0gXCJjb21wbGV0ZWRcIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gd2FzIGNvbXBsZXRlZCB1c2luZyB0aGUgQVBJLlxuICAgICAqL1xuICAgIENPTVBMRVRFRF9CWV9BUEkgPSBcImNvbXBsZXRlZF9ieV9hcGlcIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gd2FzIGludGVycnVwdGVkIGJ5IEFQSS5cbiAgICAgKi9cbiAgICBJTlRFUlJVUFRFRF9CWV9BUEkgPSBcImludGVycnVwdGVkX2J5X2FwaVwiLFxuICAgIC8qKlxuICAgICAqIFRoZSB1c2VyIGFjdGlvbiB3YXMgaW50ZXJydXB0ZWQgYnkgYSBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIElOVEVSUlVQVEVEX0JZX05BVklHQVRJT04gPSBcImludGVycnVwdGVkX2J5X25hdmlnYXRpb25cIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gd2FzIGludGVycnVwdGVkIGJ5IGEgbmV3IHJlcXVlc3QuXG4gICAgICovXG4gICAgSU5URVJSVVBURURfQllfUkVRVUVTVCA9IFwiaW50ZXJydXB0ZWRfYnlfcmVxdWVzdFwiLFxuICAgIC8qKlxuICAgICAqIFRoZXJlIHdhcyBubyB1c2VyIGFjdGlvbiBvbiB0aGUgcGFnZS5cbiAgICAgKi9cbiAgICBOT19BQ1RJVklUWSA9IFwibm9fYWN0aXZpdHlcIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gY29tcGxldGVkIGJlY2F1c2UgdGhlIHBhZ2Ugd2FzIGRpc21pc3NlZC5cbiAgICAgKi9cbiAgICBQQUdFX0hJREUgPSBcInBhZ2VfaGlkZVwiLFxuICAgIC8qKlxuICAgICAqIFRoZSB1c2VyIGFjdGlvbiB0b29rIGxvbmdlciB0aGFuIHRoZSB0aW1lb3V0IGFuZCB3YXMgY29tcGxldGVkIGZvcmNlZnVsbHkuXG4gICAgICovXG4gICAgVElNRU9VVCA9IFwidGltZW91dFwiXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFJVTVVzZXJBY3Rpb25FdmVudEtleXMge1xuICAgIFVTRVJfQUNUSU9OJENPTVBMRVRFX1JFQVNPTiA9IFwidXNlcl9hY3Rpb24uY29tcGxldGVfcmVhc29uXCIsXG4gICAgVVNFUl9BQ1RJT04kQ1VTVE9NX05BTUUgPSBcInVzZXJfYWN0aW9uLmN1c3RvbV9uYW1lXCIsXG5cbiAgICBVU0VSX0FDVElPTiRJTlNUQU5DRV9JRCA9IFwidXNlcl9hY3Rpb24uaW5zdGFuY2VfaWRcIixcbiAgICBVU0VSX0FDVElPTiRJTlRFUlJVUFRFRF9CWV9JTlNUQU5DRV9JRCA9IFwidXNlcl9hY3Rpb24uaW50ZXJydXB0ZWRfYnlfaW5zdGFuY2VfaWRcIixcbiAgICBVU0VSX0FDVElPTiRJTlRFUlJVUFRFRF9JTlNUQU5DRV9JRCA9IFwidXNlcl9hY3Rpb24uaW50ZXJydXB0ZWRfaW5zdGFuY2VfaWRcIixcbiAgICBVU0VSX0FDVElPTiRNVVRBVElPTl9DT1VOVCA9IFwidXNlcl9hY3Rpb24ubXV0YXRpb25fY291bnRcIixcblxuICAgIFVTRVJfQUNUSU9OJFJFUVVFU1RTJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXF1ZXN0cy5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFUVVFU1RTJERBVEFfVVJMX1JFUVVFU1RfQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlcXVlc3RzLmRhdGFfdXJsX3JlcXVlc3RfY291bnRcIixcbiAgICBVU0VSX0FDVElPTiRSRVFVRVNUUyRQRU5ESU5HX1JFUVVFU1RfQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlcXVlc3RzLnBlbmRpbmdfcmVxdWVzdF9jb3VudFwiLFxuXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEFVRElPJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMuYXVkaW8uY291bnRcIixcbiAgICBVU0VSX0FDVElPTiRSRVNPVVJDRVMkQkVBQ09OJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMuYmVhY29uLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEJPRFkkQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5ib2R5LmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMuY291bnRcIixcbiAgICBVU0VSX0FDVElPTiRSRVNPVVJDRVMkQ1NTJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMuY3NzLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEVBUkxZX0hJTlQkQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5lYXJseS1oaW50LmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEVNQkVEJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMuZW1iZWQuY291bnRcIixcbiAgICBVU0VSX0FDVElPTiRSRVNPVVJDRVMkRkVUQ0gkQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5mZXRjaC5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFU09VUkNFUyRGUkFNRSRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLmZyYW1lLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElDT04kQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5pY29uLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElGUkFNRSRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLmlmcmFtZS5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFU09VUkNFUyRJTUFHRSRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLmltYWdlLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElNRyRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLmltZy5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFU09VUkNFUyRJTlBVVCRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLmlucHV0LmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJExJTkskQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5saW5rLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJE5BVklHQVRJT04kQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5uYXZpZ2F0aW9uLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJE9CSkVDVCRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLm9iamVjdC5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFU09VUkNFUyRPVEhFUiRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLm90aGVyLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFBJTkckQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy5waW5nLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFNDUklQVCRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLnNjcmlwdC5jb3VudFwiLFxuICAgIFVTRVJfQUNUSU9OJFJFU09VUkNFUyRUUkFDSyRDT1VOVCA9IFwidXNlcl9hY3Rpb24ucmVzb3VyY2VzLnRyYWNrLmNvdW50XCIsXG4gICAgVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFZJREVPJENPVU5UID0gXCJ1c2VyX2FjdGlvbi5yZXNvdXJjZXMudmlkZW8uY291bnRcIixcbiAgICBVU0VSX0FDVElPTiRSRVNPVVJDRVMkWE1MSFRUUFJFUVVFU1QkQ09VTlQgPSBcInVzZXJfYWN0aW9uLnJlc291cmNlcy54bWxodHRwcmVxdWVzdC5jb3VudFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVJVTVVzZXJBY3Rpb25FdmVudFJlcXVlc3RGaWVsZHMge1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFUVVFU1RTJFBFTkRJTkdfUkVRVUVTVF9DT1VOVF06IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVFVRVNUUyREQVRBX1VSTF9SRVFVRVNUX0NPVU5UXTogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFUVVFU1RTJENPVU5UXTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnRSZXNvdXJjZXNGaWVsZHMge1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRDT1VOVF06IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQVVESU8kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRCRUFDT04kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRCT0RZJENPVU5UXT86IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQ1NTJENPVU5UXT86IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRUFSTFlfSElOVCRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEVNQkVEJENPVU5UXT86IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRkVUQ0gkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRGUkFNRSRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElDT04kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRJRlJBTUUkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRJTUFHRSRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElNRyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElOUFVUJENPVU5UXT86IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkTElOSyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJE5BVklHQVRJT04kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRPQkpFQ1QkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRPVEhFUiRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFBJTkckQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRTQ1JJUFQkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRUUkFDSyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFZJREVPJENPVU5UXT86IG51bWJlcjtcbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkWE1MSFRUUFJFUVVFU1QkQ09VTlRdPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQgZXh0ZW5kcyBHZW5lcmFsUnVtRXZlbnRGaWVsZHMsIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnRSZXF1ZXN0RmllbGRzLCBCYXNlUlVNVXNlckFjdGlvbkV2ZW50UmVzb3VyY2VzRmllbGRzLCBFcnJvckNvdW50U3VtbWFyeUZpZWxkcywgVXNlckFjdGlvbldlYlZpdGFscyB7XG4gICAgW0NoYXJhY3RlcmlzdGljc0ZpZWxkc0tleXMuQ0hBUkFDVEVSSVNUSUNTJEhBU19VU0VSX0FDVElPTl06IHRydWU7XG4gICAgW0dlbmVyYWxSdW1FdmVudEZpZWxkc0tleXMuRFQkUlVNJFNDSEVNQV9WRVJTSU9OXTogdHlwZW9mIFNDSEVNQV9WRVJTSU9OO1xuXG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kSU5TVEFOQ0VfSURdOiBzdHJpbmc7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kTVVUQVRJT05fQ09VTlRdOiBudW1iZXI7XG5cbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRDT01QTEVURV9SRUFTT05dOiBVc2VyQWN0aW9uQ29tcGxldGVSZWFzb247XG5cbiAgICBbUlVNVXNlckFjdGlvbkV2ZW50S2V5cy5VU0VSX0FDVElPTiRDVVNUT01fTkFNRV0/OiBzdHJpbmc7XG4gICAgW1JVTVVzZXJBY3Rpb25FdmVudEtleXMuVVNFUl9BQ1RJT04kSU5URVJSVVBURURfQllfSU5TVEFOQ0VfSURdPzogc3RyaW5nO1xuICAgIFtSVU1Vc2VyQWN0aW9uRXZlbnRLZXlzLlVTRVJfQUNUSU9OJElOVEVSUlVQVEVEX0lOU1RBTkNFX0lEXT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpVXNlckFjdGlvbkpTT05FdmVudCBleHRlbmRzIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQge1xuICAgIFtDaGFyYWN0ZXJpc3RpY3NGaWVsZHNLZXlzLkNIQVJBQ1RFUklTVElDUyRJU19BUElfUkVQT1JURURdOiB0cnVlO1xufVxuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VXNlckFjdGlvbkpTT05FdmVudCBleHRlbmRzIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQsIFVzZXJJbnRlcmFjdGlvbkV2ZW50UGFydHMsIFVzZXJBY3Rpb25SZXF1ZXN0UGFydEZpZWxkcyB7XG4gICAgW2V2ZW50Q29udGV4dFN5bWJvbF06IFJVTVJlcXVlc3RVc2VyQWN0aW9uRXZlbnRDb250ZXh0O1xufVxuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uVXNlckFjdGlvbkpTT05FdmVudCBleHRlbmRzIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQsIFBhcnRpYWw8VXNlckludGVyYWN0aW9uRXZlbnRQYXJ0cz4sIE9taXQ8UlVNU3RhbmRhbG9uZU5hdmlnYXRpb25FdmVudCwgdHlwZW9mIGV2ZW50Q29udGV4dFN5bWJvbD4ge1xuICAgIFtldmVudENvbnRleHRTeW1ib2xdOiBSVU1OYXZpZ2F0aW9uVXNlckFjdGlvbkV2ZW50Q29udGV4dDtcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCB0eXBlIFJVTVVzZXJBY3Rpb25FdmVudCA9IEFwaVVzZXJBY3Rpb25KU09ORXZlbnQgfCBOYXZpZ2F0aW9uVXNlckFjdGlvbkpTT05FdmVudCB8IFJlcXVlc3RVc2VyQWN0aW9uSlNPTkV2ZW50O1xuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtLXVzZXItYWN0aW9uLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvcnVtLXVzZXItYWN0aW9uLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFrQixjQWFqQjtBQWJELFdBQWtCLGNBQWM7SUFDNUI7O09BRUc7SUFDSCw2QkFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCxxREFBbUMsQ0FBQTtJQUNuQzs7T0FFRztJQUNILDZCQUFXLENBQUE7QUFDZixDQUFDLEVBYmlCLGNBQWMsS0FBZCxjQUFjLFFBYS9CO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBa0Isd0JBaUNqQjtBQWpDRCxXQUFrQix3QkFBd0I7SUFDdEM7O09BRUc7SUFDSCxtREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGlFQUFxQyxDQUFBO0lBQ3JDOztPQUVHO0lBQ0gscUVBQXlDLENBQUE7SUFDekM7O09BRUc7SUFDSCxtRkFBdUQsQ0FBQTtJQUN2RDs7T0FFRztJQUNILDZFQUFpRCxDQUFBO0lBQ2pEOztPQUVHO0lBQ0gsdURBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCxtREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILCtDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFqQ2lCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFpQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9kdC1ybmQuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9ERVgvcGFnZXMvMTI3ODMxMzY3Ny9SVU0rVXNlcitBY3Rpb24rRXZlbnRcbi8qIGVzbGludC1kaXNhYmxlIEBkeW5hdHJhY2UvZGVtLWVzbGludC1ydWxlcy91bmlvbi10eXBlIC0tIGtlZXAgdGhpbmdzIGdyb3VwZWQgKi9cbmltcG9ydCB0eXBlIHtcbiAgICBDTFNNZXRyaWMsXG4gICAgQ0xTUGFpbnRNZXRyaWNTdGF0dXMsXG4gICAgRXJyb3JDb3VudFN1bW1hcnlGaWVsZHMsXG4gICAgRklETWV0cmljLFxuICAgIEZJRFBhaW50TWV0cmljU3RhdHVzLFxuICAgIElOUE1ldHJpYyxcbiAgICBJTlBQYWludE1ldHJpY1N0YXR1cyxcbiAgICBMQ1BNZXRyaWMsXG4gICAgTENQUGFpbnRNZXRyaWNTdGF0dXMsXG4gICAgTG9uZ1Rhc2tNZXRyaWMsXG4gICAgTG9uZ1Rhc2tNZXRyaWNTdGF0dXNcbn0gZnJvbSBcIi4vcnVtLXBhZ2Utc3VtbWFyeS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICAgIGV2ZW50Q29udGV4dFN5bWJvbCxcbiAgICBSVU1OYXZpZ2F0aW9uVXNlckFjdGlvbkV2ZW50Q29udGV4dCxcbiAgICBSVU1SZXF1ZXN0VXNlckFjdGlvbkV2ZW50Q29udGV4dFxufSBmcm9tIFwiLi9ldmVudC1jb250ZXh0L2V2ZW50LWNvbnRleHQuanNcIjtcbmltcG9ydCB0eXBlIHsgR2VuZXJhbFJ1bUV2ZW50RmllbGRzIH0gZnJvbSBcIi4vc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9nZW5lcmFsLXJ1bS1ldmVudC1maWVsZHMuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNQ2xpY2tBY3Rpb25FdmVudCB9IGZyb20gXCIuL3J1bS11c2VyLWludGVyYWN0aW9uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJ1bUV2ZW50S2V5cyB9IGZyb20gXCIuL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVJlc291cmNlVGltaW5nQmFzZWRXZWJSZXF1ZXN0RXZlbnQgfSBmcm9tIFwiLi9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNU3RhbmRhbG9uZU5hdmlnYXRpb25FdmVudCB9IGZyb20gXCIuL3J1bS1zdGFuZGFsb25lLW5hdmlnYXRpb24tZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgU0NIRU1BX1ZFUlNJT04gfSBmcm9tIFwiLi9zY2hlbWEtdmVyc2lvbnMuanNcIjtcblxuLyoqXG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKi9cbmV4cG9ydCB0eXBlIFdlYlZpdGFsc0Rpc2FibGVkU3RhdHVzID0gXCJkaXNhYmxlZFwiO1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRDTFNNZXRyaWMgPSBPbWl0PENMU01ldHJpYywgUnVtRXZlbnRLZXlzLkNMUyRTVEFUVVM+ICYge1xuICAgIFtSdW1FdmVudEtleXMuQ0xTJFNUQVRVU106IENMU1BhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRGSURNZXRyaWMgPSBPbWl0PEZJRE1ldHJpYywgUnVtRXZlbnRLZXlzLkZJRCRTVEFUVVM+ICYge1xuICAgIFtSdW1FdmVudEtleXMuRklEJFNUQVRVU106IEZJRFBhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRJTlBNZXRyaWMgPSBPbWl0PElOUE1ldHJpYywgUnVtRXZlbnRLZXlzLklOUCRTVEFUVVM+ICYge1xuICAgIFtSdW1FdmVudEtleXMuSU5QJFNUQVRVU106IElOUFBhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRMQ1BNZXRyaWMgPSBPbWl0PExDUE1ldHJpYywgUnVtRXZlbnRLZXlzLkxDUCRTVEFUVVM+ICYge1xuICAgIFtSdW1FdmVudEtleXMuTENQJFNUQVRVU106IExDUFBhaW50TWV0cmljU3RhdHVzIHwgV2ViVml0YWxzRGlzYWJsZWRTdGF0dXM7XG59O1xuLyoqXG4gKiBAaW5saW5lXG4gKi9cbnR5cGUgRXh0ZW5kZWRMb25nVGFza01ldHJpYyA9IE9taXQ8TG9uZ1Rhc2tNZXRyaWMsIFJ1bUV2ZW50S2V5cy5MT05HX1RBU0skU1RBVFVTPiAmIHtcbiAgICBbUnVtRXZlbnRLZXlzLkxPTkdfVEFTSyRTVEFUVVNdOiBMb25nVGFza01ldHJpY1N0YXR1cyB8IFdlYlZpdGFsc0Rpc2FibGVkU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgVXNlckFjdGlvbldlYlZpdGFscyA9IEV4dGVuZGVkQ0xTTWV0cmljICYgRXh0ZW5kZWRGSURNZXRyaWMgJiBFeHRlbmRlZElOUE1ldHJpYyAmIEV4dGVuZGVkTENQTWV0cmljICYgRXh0ZW5kZWRMb25nVGFza01ldHJpYztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgVXNlckludGVyYWN0aW9uRXZlbnRQYXJ0cyA9IFBpY2s8XG4gICAgUlVNQ2xpY2tBY3Rpb25FdmVudCxcbiAgICB8IFJ1bUV2ZW50S2V5cy5ET01fRVZFTlQkSVNfVFJVU1RFRFxuICAgIHwgUnVtRXZlbnRLZXlzLklOVEVSQUNUSU9OJE5BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5VSV9FTEVNRU5UJENVU1RPTV9OQU1FXG4gICAgfCBSdW1FdmVudEtleXMuVUlfRUxFTUVOVCRERVRFQ1RFRF9OQU1FXG4gICAgfCBSdW1FdmVudEtleXMuVUlfRUxFTUVOVCROQU1FX09SSUdJTlxuICAgIHwgUnVtRXZlbnRLZXlzLlVJX0VMRU1FTlQkVEFHX05BTUVcbj47XG50eXBlIFVzZXJBY3Rpb25SZXF1ZXN0UGFydEZpZWxkcyA9IFBpY2s8XG4gICAgUlVNUmVzb3VyY2VUaW1pbmdCYXNlZFdlYlJlcXVlc3RFdmVudCxcbiAgICB8IFJ1bUV2ZW50S2V5cy5ORVRXT1JLJFBST1RPQ09MJE5BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5VUkwkRlVMTFxuICAgIHwgUnVtRXZlbnRLZXlzLlJFUVVFU1QkU0VSVkVSX1RJTUlOR19ISU5UXG4gICAgfCBSdW1FdmVudEtleXMuUkVRVUVTVCRUUkFDRV9DT05URVhUX0hJTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5TUEFOJElEXG4gICAgfCBSdW1FdmVudEtleXMuVFJBQ0UkSURcbiAgICB8IFJ1bUV2ZW50S2V5cy5UUkFDRSRJU19TQU1QTEVEXG4+O1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHVzZXIgYWN0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gVXNlckFjdGlvblR5cGUge1xuICAgIC8qKlxuICAgICAqIEEgdXNlciBhY3Rpb24gY3JlYXRlZCB2aWEgdGhlIEFQSS5cbiAgICAgKi9cbiAgICBBUEkgPSBcImFwaVwiLFxuICAgIC8qKlxuICAgICAqIEEgdXNlciBhY3Rpb24gdHJpZ2dlcmVkIGJ5IGEgc29mdCBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIFNPRlRfTkFWSUdBVElPTiA9IFwic29mdF9uYXZpZ2F0aW9uXCIsXG4gICAgLyoqXG4gICAgICogQSB1c2VyIGFjdGlvbiB0cmlnZ2VyZWQgYnkgYW4gWEhSIHJlcXVlc3QuXG4gICAgICovXG4gICAgWEhSID0gXCJ4aHJcIlxufVxuXG4vKipcbiAqIFRoZSByZWFzb25zIGEgdXNlciBhY3Rpb24gY2FuIGNvbXBsZXRlIHdpdGguXG4gKlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY29uc3QgZW51bSBVc2VyQWN0aW9uQ29tcGxldGVSZWFzb24ge1xuICAgIC8qKlxuICAgICAqIFRoZSB1c2VyIGFjdGlvbiBjb21wbGV0ZWQgbm9ybWFsbHkgYWZ0ZXIgdGhlIGluYWN0aXZpdHkgdGhyZXNob2xkLlxuICAgICAqL1xuICAgIENPTVBMRVRFRCA9IFwiY29tcGxldGVkXCIsXG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgYWN0aW9uIHdhcyBjb21wbGV0ZWQgdXNpbmcgdGhlIEFQSS5cbiAgICAgKi9cbiAgICBDT01QTEVURURfQllfQVBJID0gXCJjb21wbGV0ZWRfYnlfYXBpXCIsXG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgYWN0aW9uIHdhcyBpbnRlcnJ1cHRlZCBieSBBUEkuXG4gICAgICovXG4gICAgSU5URVJSVVBURURfQllfQVBJID0gXCJpbnRlcnJ1cHRlZF9ieV9hcGlcIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gd2FzIGludGVycnVwdGVkIGJ5IGEgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICBJTlRFUlJVUFRFRF9CWV9OQVZJR0FUSU9OID0gXCJpbnRlcnJ1cHRlZF9ieV9uYXZpZ2F0aW9uXCIsXG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgYWN0aW9uIHdhcyBpbnRlcnJ1cHRlZCBieSBhIG5ldyByZXF1ZXN0LlxuICAgICAqL1xuICAgIElOVEVSUlVQVEVEX0JZX1JFUVVFU1QgPSBcImludGVycnVwdGVkX2J5X3JlcXVlc3RcIixcbiAgICAvKipcbiAgICAgKiBUaGVyZSB3YXMgbm8gdXNlciBhY3Rpb24gb24gdGhlIHBhZ2UuXG4gICAgICovXG4gICAgTk9fQUNUSVZJVFkgPSBcIm5vX2FjdGl2aXR5XCIsXG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgYWN0aW9uIGNvbXBsZXRlZCBiZWNhdXNlIHRoZSBwYWdlIHdhcyBkaXNtaXNzZWQuXG4gICAgICovXG4gICAgUEFHRV9ISURFID0gXCJwYWdlX2hpZGVcIixcbiAgICAvKipcbiAgICAgKiBUaGUgdXNlciBhY3Rpb24gdG9vayBsb25nZXIgdGhhbiB0aGUgdGltZW91dCBhbmQgd2FzIGNvbXBsZXRlZCBmb3JjZWZ1bGx5LlxuICAgICAqL1xuICAgIFRJTUVPVVQgPSBcInRpbWVvdXRcIlxufVxuXG4vKipcbiAqIFVzZXIgYWN0aW9uIGZpZWxkcy5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIFJVTVVzZXJBY3Rpb25FdmVudEtleXMgPVxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJENPTVBMRVRFX1JFQVNPTlxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJENVU1RPTV9OQU1FXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kSU5TVEFOQ0VfSURcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRJTlRFUlJVUFRFRF9CWV9JTlNUQU5DRV9JRFxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJElOVEVSUlVQVEVEX0lOU1RBTkNFX0lEXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kTVVUQVRJT05fQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVFVRVNUUyRDT1VOVFxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFUVVFU1RTJERBVEFfVVJMX1JFUVVFU1RfQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVFVRVNUUyRQRU5ESU5HX1JFUVVFU1RfQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQVVESU8kQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQkVBQ09OJENPVU5UXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEJPRFkkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkQ1NTJENPVU5UXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEVBUkxZX0hJTlQkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRU1CRUQkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRkVUQ0gkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRlJBTUUkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSUNPTiRDT1VOVFxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRJRlJBTUUkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSU1BR0UkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSU1HJENPVU5UXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJElOUFVUJENPVU5UXG4gICAgfCBSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJExJTkskQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkTkFWSUdBVElPTiRDT1VOVFxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRPQkpFQ1QkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkT1RIRVIkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkUElORyRDT1VOVFxuICAgIHwgUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRTQ1JJUFQkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkVFJBQ0skQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkVklERU8kQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkWE1MSFRUUFJFUVVFU1QkQ09VTlRcbiAgICB8IFJ1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRUWVBFO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlUlVNVXNlckFjdGlvbkV2ZW50UmVxdWVzdEZpZWxkcyB7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVFVRVNUUyRQRU5ESU5HX1JFUVVFU1RfQ09VTlRdOiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVFVRVNUUyREQVRBX1VSTF9SRVFVRVNUX0NPVU5UXTogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVRVUVTVFMkQ09VTlRdOiBudW1iZXI7XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnRSZXNvdXJjZXNGaWVsZHMge1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJENPVU5UXTogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEFVRElPJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRCRUFDT04kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEJPRFkkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJENTUyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRUFSTFlfSElOVCRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkRU1CRUQkQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJEZFVENIJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRGUkFNRSRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSUNPTiRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSUZSQU1FJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRJTUFHRSRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkSU1HJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRJTlBVVCRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkTElOSyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkTkFWSUdBVElPTiRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkT0JKRUNUJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRPVEhFUiRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkUElORyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkU0NSSVBUJENPVU5UXT86IG51bWJlcjtcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJFJFU09VUkNFUyRUUkFDSyRDT1VOVF0/OiBudW1iZXI7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRSRVNPVVJDRVMkVklERU8kQ09VTlRdPzogbnVtYmVyO1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kUkVTT1VSQ0VTJFhNTEhUVFBSRVFVRVNUJENPVU5UXT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVJVTVVzZXJBY3Rpb25FdmVudCBleHRlbmRzIEdlbmVyYWxSdW1FdmVudEZpZWxkcywgQmFzZVJVTVVzZXJBY3Rpb25FdmVudFJlcXVlc3RGaWVsZHMsIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnRSZXNvdXJjZXNGaWVsZHMsIEVycm9yQ291bnRTdW1tYXJ5RmllbGRzLCBVc2VyQWN0aW9uV2ViVml0YWxzIHtcbiAgICBbUnVtRXZlbnRLZXlzLkNIQVJBQ1RFUklTVElDUyRIQVNfVVNFUl9BQ1RJT05dOiB0cnVlO1xuICAgIFtSdW1FdmVudEtleXMuRFQkUlVNJFNDSEVNQV9WRVJTSU9OXTogdHlwZW9mIFNDSEVNQV9WRVJTSU9OO1xuXG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRJTlNUQU5DRV9JRF06IHN0cmluZztcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJE1VVEFUSU9OX0NPVU5UXTogbnVtYmVyO1xuXG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRDT01QTEVURV9SRUFTT05dOiBVc2VyQWN0aW9uQ29tcGxldGVSZWFzb247XG5cbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJENVU1RPTV9OQU1FXT86IHN0cmluZztcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJElOVEVSUlVQVEVEX0JZX0lOU1RBTkNFX0lEXT86IHN0cmluZztcbiAgICBbUnVtRXZlbnRLZXlzLlVTRVJfQUNUSU9OJElOVEVSUlVQVEVEX0lOU1RBTkNFX0lEXT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpVXNlckFjdGlvbkpTT05FdmVudCBleHRlbmRzIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQge1xuICAgIFtSdW1FdmVudEtleXMuQ0hBUkFDVEVSSVNUSUNTJElTX0FQSV9SRVBPUlRFRF06IHRydWU7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRUWVBFXTogVXNlckFjdGlvblR5cGUuQVBJO1xufVxuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VXNlckFjdGlvbkpTT05FdmVudCBleHRlbmRzIEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQsIFVzZXJJbnRlcmFjdGlvbkV2ZW50UGFydHMsIFVzZXJBY3Rpb25SZXF1ZXN0UGFydEZpZWxkcyB7XG4gICAgW2V2ZW50Q29udGV4dFN5bWJvbF06IFJVTVJlcXVlc3RVc2VyQWN0aW9uRXZlbnRDb250ZXh0O1xuICAgIFtSdW1FdmVudEtleXMuVVNFUl9BQ1RJT04kVFlQRV06IFVzZXJBY3Rpb25UeXBlLlhIUjtcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvblVzZXJBY3Rpb25KU09ORXZlbnQgZXh0ZW5kcyBCYXNlUlVNVXNlckFjdGlvbkV2ZW50LCBQYXJ0aWFsPFVzZXJJbnRlcmFjdGlvbkV2ZW50UGFydHM+LCBPbWl0PFJVTVN0YW5kYWxvbmVOYXZpZ2F0aW9uRXZlbnQsIHR5cGVvZiBldmVudENvbnRleHRTeW1ib2w+IHtcbiAgICBbZXZlbnRDb250ZXh0U3ltYm9sXTogUlVNTmF2aWdhdGlvblVzZXJBY3Rpb25FdmVudENvbnRleHQ7XG4gICAgW1J1bUV2ZW50S2V5cy5VU0VSX0FDVElPTiRUWVBFXTogVXNlckFjdGlvblR5cGUuU09GVF9OQVZJR0FUSU9OO1xufVxuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IHR5cGUgUlVNVXNlckFjdGlvbkV2ZW50ID0gQXBpVXNlckFjdGlvbkpTT05FdmVudCB8IE5hdmlnYXRpb25Vc2VyQWN0aW9uSlNPTkV2ZW50IHwgUmVxdWVzdFVzZXJBY3Rpb25KU09ORXZlbnQ7XG4iXX0=