surveysparrow-ionic-plugin 2.0.2-beta.1 → 2.0.2-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +81 -100
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckEventListener.mjs +26 -0
- package/dist/angular-ui/esm2022/spotchecks/SpotcheckStateService.mjs +1 -3
- package/dist/angular-ui/esm2022/spotchecks/api.mjs +3 -3
- package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +14 -18
- package/dist/angular-ui/esm2022/spotchecks/index.mjs +2 -1
- package/dist/angular-ui/esm2022/spotchecks/types.mjs +1 -1
- package/dist/angular-ui/fesm2022/angular-ui.mjs +120 -122
- package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -1
- package/dist/angular-ui/spotchecks/SpotCheckComponent.d.ts +10 -5
- package/dist/angular-ui/spotchecks/SpotCheckEventListener.d.ts +16 -0
- package/dist/angular-ui/spotchecks/helpers.d.ts +1 -2
- package/dist/angular-ui/spotchecks/index.d.ts +1 -0
- package/dist/angular-ui/spotchecks/types.d.ts +0 -2
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.d.ts +10 -5
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js +75 -95
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.d.ts +16 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js +28 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js +0 -2
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/api.js +3 -4
- package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/helpers.d.ts +1 -2
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js +15 -18
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/types.d.ts +0 -2
- package/dist/esm/angular-ui/lib/spotchecks/types.js.map +1 -1
- package/dist/plugin.cjs.js +116 -116
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +116 -116
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +76 -98
- package/src/angular-ui/lib/spotchecks/SpotCheckEventListener.ts +50 -0
- package/src/angular-ui/lib/spotchecks/SpotcheckStateService.ts +0 -2
- package/src/angular-ui/lib/spotchecks/api.ts +4 -4
- package/src/angular-ui/lib/spotchecks/helpers.ts +14 -23
- package/src/angular-ui/lib/spotchecks/index.ts +3 -0
- package/src/angular-ui/lib/spotchecks/types.ts +0 -2
|
@@ -2,19 +2,24 @@ import { Component, Input, ViewChild, HostListener, } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { closeSpotCheck, closeSpotCheckAndHandleSurveyEnd, getSpotcheckComponentCssStyles, handleSurveyEnd, ischatSurvey } from './helpers';
|
|
4
4
|
import { getSpotcheckStateService } from './helpers';
|
|
5
|
+
import { getSpotCheckEventListener } from './SpotCheckEventListener';
|
|
5
6
|
import axios from 'axios';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/platform-browser";
|
|
8
9
|
import * as i2 from "@angular/common";
|
|
9
10
|
export class WebViewComponent {
|
|
10
11
|
sanitizer;
|
|
12
|
+
ngZone;
|
|
13
|
+
cdr;
|
|
11
14
|
url = '';
|
|
12
15
|
webviewType = 'classic';
|
|
13
16
|
isMiniCard = false;
|
|
14
17
|
safeUrl = null;
|
|
15
18
|
iframe;
|
|
16
|
-
constructor(sanitizer) {
|
|
19
|
+
constructor(sanitizer, ngZone, cdr) {
|
|
17
20
|
this.sanitizer = sanitizer;
|
|
21
|
+
this.ngZone = ngZone;
|
|
22
|
+
this.cdr = cdr;
|
|
18
23
|
}
|
|
19
24
|
ngOnInit() {
|
|
20
25
|
if (this.url) {
|
|
@@ -41,99 +46,59 @@ export class WebViewComponent {
|
|
|
41
46
|
setupIframeLoadListener() {
|
|
42
47
|
const iframe = this.iframe.nativeElement;
|
|
43
48
|
iframe.addEventListener('load', () => {
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
stateService.setState({ isChatLoading: false });
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
injectNativeBridgeAdapters(iframe) {
|
|
55
|
-
if (iframe && iframe.contentWindow) {
|
|
56
|
-
try {
|
|
57
|
-
const iframeWindow = iframe.contentWindow;
|
|
58
|
-
if (!iframeWindow.SsAndroidSdk) {
|
|
59
|
-
iframeWindow.SsAndroidSdk = {
|
|
60
|
-
shareData: function () { },
|
|
61
|
-
sendPartialSubmissionData: function () { }
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
if (!iframeWindow.Android) {
|
|
65
|
-
iframeWindow.Android = {
|
|
66
|
-
onMessageReceive: function () { }
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
if (!iframeWindow.webkit) {
|
|
70
|
-
iframeWindow.webkit = {
|
|
71
|
-
messageHandlers: {
|
|
72
|
-
surveyResponse: {
|
|
73
|
-
postMessage: function () { }
|
|
74
|
-
},
|
|
75
|
-
spotCheckData: {
|
|
76
|
-
postMessage: function () { }
|
|
77
|
-
},
|
|
78
|
-
flutterSpotCheckData: {
|
|
79
|
-
postMessage: function () { }
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
49
|
+
this.ngZone.run(() => {
|
|
50
|
+
const stateService = getSpotcheckStateService();
|
|
51
|
+
if (this.webviewType === 'classic') {
|
|
52
|
+
stateService.setState({ isClassicLoading: false });
|
|
83
53
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
postMessage: function () { }
|
|
87
|
-
};
|
|
54
|
+
else {
|
|
55
|
+
stateService.setState({ isChatLoading: false });
|
|
88
56
|
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
92
59
|
}
|
|
93
60
|
onMessage(event) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
61
|
+
this.ngZone.run(() => {
|
|
62
|
+
const stateService = getSpotcheckStateService();
|
|
63
|
+
const { data } = event;
|
|
64
|
+
switch (data.type) {
|
|
65
|
+
case 'slideInFrame':
|
|
66
|
+
if (data.mounted) {
|
|
67
|
+
stateService.setState({ isMounted: true });
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case 'resizeWindow':
|
|
71
|
+
if (data.size) {
|
|
72
|
+
stateService.setState({
|
|
73
|
+
currentQuestionHeight: data.size.height,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else if (data.isCloseButtonEnabled) {
|
|
77
|
+
stateService.setState({
|
|
78
|
+
isCloseButtonEnabled: data.isCloseButtonEnabled,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
case 'surveyCompleted':
|
|
83
|
+
closeSpotCheckAndHandleSurveyEnd().then(() => {
|
|
84
|
+
getSpotCheckEventListener().emit('surveyCompleted', data.response);
|
|
85
|
+
this.cdr.detectChanges();
|
|
111
86
|
});
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
case 'classicLoadEvent':
|
|
122
|
-
stateService.setState({ isClassicLoadEventReceived: true });
|
|
123
|
-
break;
|
|
124
|
-
case 'chatLoadEvent':
|
|
125
|
-
stateService.setState({ isChatLoadEventReceived: true });
|
|
126
|
-
break;
|
|
127
|
-
default:
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
87
|
+
break;
|
|
88
|
+
case 'surveyLoadStarted':
|
|
89
|
+
getSpotCheckEventListener().emit('surveyLoadStarted', data.surveyDetails);
|
|
90
|
+
break;
|
|
91
|
+
default:
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
this.cdr.detectChanges();
|
|
95
|
+
});
|
|
130
96
|
}
|
|
131
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
132
98
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: WebViewComponent, isStandalone: true, selector: "WebViewComponent", inputs: { url: "url", webviewType: "webviewType", isMiniCard: "isMiniCard" }, host: { listeners: { "window:message": "onMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframeRef"], descendants: true }], ngImport: i0, template: `
|
|
133
99
|
<div style="overflow: hidden; height: 100%; border-radius: {{isMiniCard ? 12 : 0}}px; padding-left: {{isMiniCard ? 12 : 0}}px; padding-right: {{isMiniCard ? 12 : 0}}px; box-sizing: border-box;">
|
|
134
100
|
<iframe
|
|
135
|
-
allow="camera; microphone; geolocation; display-capture; autoplay; clipboard-read; clipboard-write;
|
|
136
|
-
allowfullscreen
|
|
101
|
+
allow="camera; microphone; geolocation; display-capture; autoplay; clipboard-read; clipboard-write;"
|
|
137
102
|
#iframeRef
|
|
138
103
|
[src]="safeUrl"
|
|
139
104
|
style="width: 100%; height: 100%; display: block; border-radius: {{isMiniCard ? 12 : 0}}px;"
|
|
@@ -150,8 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
150
115
|
template: `
|
|
151
116
|
<div style="overflow: hidden; height: 100%; border-radius: {{isMiniCard ? 12 : 0}}px; padding-left: {{isMiniCard ? 12 : 0}}px; padding-right: {{isMiniCard ? 12 : 0}}px; box-sizing: border-box;">
|
|
152
117
|
<iframe
|
|
153
|
-
allow="camera; microphone; geolocation; display-capture; autoplay; clipboard-read; clipboard-write;
|
|
154
|
-
allowfullscreen
|
|
118
|
+
allow="camera; microphone; geolocation; display-capture; autoplay; clipboard-read; clipboard-write;"
|
|
155
119
|
#iframeRef
|
|
156
120
|
[src]="safeUrl"
|
|
157
121
|
style="width: 100%; height: 100%; display: block; border-radius: {{isMiniCard ? 12 : 0}}px;"
|
|
@@ -163,7 +127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
163
127
|
standalone: true,
|
|
164
128
|
imports: [CommonModule],
|
|
165
129
|
}]
|
|
166
|
-
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { url: [{
|
|
130
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { url: [{
|
|
167
131
|
type: Input
|
|
168
132
|
}], webviewType: [{
|
|
169
133
|
type: Input
|
|
@@ -231,6 +195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
231
195
|
type: Input
|
|
232
196
|
}] } });
|
|
233
197
|
export class CloseButtonComponent {
|
|
198
|
+
ngZone;
|
|
199
|
+
cdr;
|
|
234
200
|
size = 30;
|
|
235
201
|
strokeWidth = 1.2;
|
|
236
202
|
state;
|
|
@@ -239,13 +205,18 @@ export class CloseButtonComponent {
|
|
|
239
205
|
isVisible = false;
|
|
240
206
|
isMiniCard = false;
|
|
241
207
|
stroke = 'black';
|
|
242
|
-
constructor() {
|
|
208
|
+
constructor(ngZone, cdr) {
|
|
209
|
+
this.ngZone = ngZone;
|
|
210
|
+
this.cdr = cdr;
|
|
243
211
|
this.stateService = getSpotcheckStateService();
|
|
244
212
|
this.state = this.stateService.getState();
|
|
245
213
|
this.updateComponentState();
|
|
246
214
|
this.stateSubscription = this.stateService.state$.subscribe((newState) => {
|
|
247
|
-
this.
|
|
248
|
-
|
|
215
|
+
this.ngZone.run(() => {
|
|
216
|
+
this.state = newState;
|
|
217
|
+
this.updateComponentState();
|
|
218
|
+
this.cdr.detectChanges();
|
|
219
|
+
});
|
|
249
220
|
});
|
|
250
221
|
}
|
|
251
222
|
ngOnDestroy() {
|
|
@@ -268,8 +239,11 @@ export class CloseButtonComponent {
|
|
|
268
239
|
onClick = async () => {
|
|
269
240
|
await closeSpotCheck();
|
|
270
241
|
handleSurveyEnd();
|
|
242
|
+
this.ngZone.run(() => {
|
|
243
|
+
this.cdr.detectChanges();
|
|
244
|
+
});
|
|
271
245
|
};
|
|
272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
273
247
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: CloseButtonComponent, isStandalone: true, selector: "spotcheck-close-button", inputs: { size: "size", strokeWidth: "strokeWidth" }, ngImport: i0, template: `
|
|
274
248
|
<div style="position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;" (click)="onClick()" *ngIf="isVisible && isMiniCard">
|
|
275
249
|
<close-svg [size]="size" [stroke]="stroke" [strokeWidth]="strokeWidth" style="display: flex; align-items: center; justify-content: center;"/>
|
|
@@ -294,25 +268,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
294
268
|
standalone: true,
|
|
295
269
|
imports: [CommonModule, CloseSVGComponent],
|
|
296
270
|
}]
|
|
297
|
-
}], ctorParameters: () => [], propDecorators: { size: [{
|
|
271
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { size: [{
|
|
298
272
|
type: Input
|
|
299
273
|
}], strokeWidth: [{
|
|
300
274
|
type: Input
|
|
301
275
|
}] } });
|
|
302
276
|
export class SpotCheckComponent {
|
|
277
|
+
ngZone;
|
|
278
|
+
cdr;
|
|
303
279
|
state;
|
|
304
280
|
spotcheckStateService;
|
|
305
281
|
stateSubscription;
|
|
306
282
|
componentStyles = {};
|
|
307
283
|
avatarUrl = '';
|
|
308
|
-
constructor() {
|
|
284
|
+
constructor(ngZone, cdr) {
|
|
285
|
+
this.ngZone = ngZone;
|
|
286
|
+
this.cdr = cdr;
|
|
309
287
|
this.spotcheckStateService = getSpotcheckStateService();
|
|
310
288
|
this.state = this.spotcheckStateService.getState();
|
|
311
289
|
this.updateComponentStyles();
|
|
312
290
|
this.stateSubscription = this.spotcheckStateService.state$.subscribe((newState) => {
|
|
313
|
-
this.
|
|
314
|
-
|
|
315
|
-
|
|
291
|
+
this.ngZone.run(() => {
|
|
292
|
+
this.state = newState;
|
|
293
|
+
this.updateComponentStyles();
|
|
294
|
+
this.avatarUrl = this.state.avatarUrl || "https://static.surveysparrow.com/application/images/profile.png";
|
|
295
|
+
this.cdr.detectChanges();
|
|
296
|
+
});
|
|
316
297
|
});
|
|
317
298
|
}
|
|
318
299
|
ngOnInit() {
|
|
@@ -361,11 +342,11 @@ export class SpotCheckComponent {
|
|
|
361
342
|
console.log('Error initializing widget:', JSON.stringify(error));
|
|
362
343
|
}
|
|
363
344
|
};
|
|
364
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
345
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
365
346
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: SpotCheckComponent, isStandalone: true, selector: "SpotCheckComponent", ngImport: i0, template: "<div [ngStyle]=\"componentStyles.wrapperStyles\" class=\"safe-area\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".safe-area{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WebViewComponent, selector: "WebViewComponent", inputs: ["url", "webviewType", "isMiniCard"] }, { kind: "component", type: CloseButtonComponent, selector: "spotcheck-close-button", inputs: ["size", "strokeWidth"] }] });
|
|
366
347
|
}
|
|
367
348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, decorators: [{
|
|
368
349
|
type: Component,
|
|
369
350
|
args: [{ selector: 'SpotCheckComponent', standalone: true, imports: [CommonModule, WebViewComponent, CloseButtonComponent], template: "<div [ngStyle]=\"componentStyles.wrapperStyles\" class=\"safe-area\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".safe-area{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}\n"] }]
|
|
370
|
-
}], ctorParameters: () => [] });
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUdULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7QUFvQjFCLE1BQU0sT0FBTyxnQkFBZ0I7SUFRUDtJQVBYLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsV0FBVyxHQUF1QixTQUFTLENBQUM7SUFDNUMsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUVyQyxPQUFPLEdBQTJCLElBQUksQ0FBQztJQUNmLE1BQU0sQ0FBaUM7SUFFL0QsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFDL0MsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyx3QkFBd0IsRUFBRSxD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Q0FBQztvQkFDcEIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxhQUFhLEdBQUcsYUFBYTtvQkFDakMsQ0FBQyxDQUFDLFdBQVcsVUFBVSx1QkFBdUI7b0JBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsTUFBTSxVQUFVLEdBQUcsVUFBVTtvQkFDM0IsQ0FBQyxDQUFDLFdBQVcsVUFBVSxvQkFBb0I7b0JBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRVAsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztvQkFDbEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtvQkFDM0MsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQTNFUyxrQkFBa0I7MkZBQWxCLGtCQUFrQiw4RUMvUS9CLGlwQ0EyQkEsNFBEa1BZLFlBQVksd05BeE9YLGdCQUFnQiwyR0FnTGhCLG9CQUFvQjs7MkZBMERwQixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9uSW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY2xvc2VTcG90Q2hlY2ssIGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kLCBnZXRTcG90Y2hlY2tDb21wb25lbnRDc3NTdHlsZXMsIGhhbmRsZVN1cnZleUVuZCwgaXNjaGF0U3VydmV5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9TcG90Y2hlY2tTdGF0ZVNlcnZpY2UnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnV2ViVmlld0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47IGhlaWdodDogMTAwJTsgYm9yZGVyLXJhZGl1czoge3tpc01pbmlDYXJkID8gMTIgOiAwfX1weDsgcGFkZGluZy1sZWZ0OiB7e2lzTWluaUNhcmQgPyAxMiA6IDB9fXB4OyBwYWRkaW5nLXJpZ2h0OiB7e2lzTWluaUNhcmQgPyAxMiA6IDB9fXB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O1wiPlxuICAgICAgPGlmcmFtZVxuICAgICAgICBhbGxvdz1cImNhbWVyYTsgbWljcm9waG9uZTsgZ2VvbG9jYXRpb247IGRpc3BsYXktY2FwdHVyZTsgYXV0b3BsYXk7IGNsaXBib2FyZC1yZWFkOyBjbGlwYm9hcmQtd3JpdGU7IGZ1bGxzY3JlZW5cIlxuICAgICAgICBhbGxvd2Z1bGxzY3JlZW5cbiAgICAgICAgI2lmcmFtZVJlZlxuICAgICAgICBbc3JjXT1cInNhZmVVcmxcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItcmFkaXVzOiB7e2lzTWluaUNhcmQgPyAxMiA6IDB9fXB4O1wiXG4gICAgICAgIGZyYW1lYm9yZGVyPVwiMFwiXG4gICAgICA+XG4gICAgICA8L2lmcmFtZT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdlYlZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB1cmw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB3ZWJ2aWV3VHlwZTogJ2NsYXNzaWMnIHwgJ2NoYXQnID0gJ2NsYXNzaWMnO1xuICBASW5wdXQoKSBpc01pbmlDYXJkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2FmZVVybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbCA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZVJlZicpIGlmcmFtZSE6IEVsZW1lbnRSZWY8SFRNTElGcmFtZUVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgdGhpcy5zYWZlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMudXJsKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgY29uc3Qgd2ViVmlld1JlZiA9IHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy53ZWJ2aWV3VHlwZSA9PT0gJ2NsYXNzaWMnKSB7XG4gICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICBjbGFzc2ljV2ViVmlld1JlZjogd2ViVmlld1JlZixcbiAgICAgICAgaXNDbGFzc2ljTG9hZGluZzogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgY2hhdFdlYlZpZXdSZWY6IHdlYlZpZXdSZWYsXG4gICAgICAgIGlzQ2hhdExvYWRpbmc6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2V0dXBJZnJhbWVMb2FkTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBJZnJhbWVMb2FkTGlzdGVuZXIoKSB7XG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudDtcbiAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgIHRoaXMuaW5qZWN0TmF0aXZlQnJpZGdlQWRhcHRlcnMoaWZyYW1lKTtcbiAgICAgIGNvbnN0IHN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgICAgaWYgKHRoaXMud2Vidmlld1R5cGUgPT09ICdjbGFzc2ljJykge1xuICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBpc0NsYXNzaWNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzQ2hhdExvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3ROYXRpdmVCcmlkZ2VBZGFwdGVycyhpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgaWYgKGlmcmFtZSAmJiBpZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cgYXMgYW55O1xuICAgICAgICBcbiAgICAgICAgaWYgKCFpZnJhbWVXaW5kb3cuU3NBbmRyb2lkU2RrKSB7XG4gICAgICAgICAgaWZyYW1lV2luZG93LlNzQW5kcm9pZFNkayA9IHtcbiAgICAgICAgICAgIHNoYXJlRGF0YTogZnVuY3Rpb24oKSB7fSxcbiAgICAgICAgICAgIHNlbmRQYXJ0aWFsU3VibWlzc2lvbkRhdGE6IGZ1bmN0aW9uKCkge31cbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpZnJhbWVXaW5kb3cuQW5kcm9pZCkge1xuICAgICAgICAgIGlmcmFtZVdpbmRvdy5BbmRyb2lkID0ge1xuICAgICAgICAgICAgb25NZXNzYWdlUmVjZWl2ZTogZnVuY3Rpb24oKSB7fVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlmcmFtZVdpbmRvdy53ZWJraXQpIHtcbiAgICAgICAgICBpZnJhbWVXaW5kb3cud2Via2l0ID0ge1xuICAgICAgICAgICAgbWVzc2FnZUhhbmRsZXJzOiB7XG4gICAgICAgICAgICAgIHN1cnZleVJlc3BvbnNlOiB7XG4gICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKCkge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc3BvdENoZWNrRGF0YToge1xuICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlOiBmdW5jdGlvbigpIHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZsdXR0ZXJTcG90Q2hlY2tEYXRhOiB7XG4gICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKCkge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlmcmFtZVdpbmRvdy5mbHV0dGVyU3BvdENoZWNrRGF0YSkge1xuICAgICAgICAgIGlmcmFtZVdpbmRvdy5mbHV0dGVyU3BvdENoZWNrRGF0YSA9IHtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlOiBmdW5jdGlvbigpIHt9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxuICBvbk1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIGNvbnN0IHN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gZXZlbnQ7XG4gICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NsaWRlSW5GcmFtZSc6XG4gICAgICAgIGlmIChkYXRhLm1vdW50ZWQpIHtcbiAgICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBpc01vdW50ZWQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3Jlc2l6ZVdpbmRvdyc6XG4gICAgICAgIGlmIChkYXRhLnNpemUpIHtcbiAgICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSGVpZ2h0OiBkYXRhLnNpemUuaGVpZ2h0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGEuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGRhdGEuaXNDbG9zZUJ1dHRvbkVuYWJsZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3N1cnZleUNvbXBsZXRlZCc6XG4gICAgICAgIGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kKCk7XG4gICAgICAgIC8vIHNwb3RjaGVja3NMaXN0ZW5lci5lbWl0U3VydmV5Q29tcGxldGVkKGRhdGEucmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3VydmV5TG9hZFN0YXJ0ZWQnOlxuICAgICAgICAvLyBzcG90Y2hlY2tzTGlzdGVuZXIuZW1pdFN1cnZleUxvYWRTdGFydGVkKGRhdGEuc3VydmV5RGV0YWlscyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdjbGFzc2ljTG9hZEV2ZW50JzpcbiAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQ6IHRydWUgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdjaGF0TG9hZEV2ZW50JzpcbiAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNDaGF0TG9hZEV2ZW50UmVjZWl2ZWQ6IHRydWUgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xvc2Utc3ZnJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3ZnXG4gICAgICBbYXR0ci53aWR0aF09XCJzaXplXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJzaXplXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMzIgMzJcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwczovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTAuNjY2NSAxMC42NjdMMjEuMzMzMiAyMS4zMzM3TTIxLjMzMzIgMTAuNjY3TDEwLjY2NjUgMjEuMzMzN1wiXG4gICAgICAgIFthdHRyLnN0cm9rZV09XCJzdHJva2VcIlxuICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic3Ryb2tlV2lkdGhcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENsb3NlU1ZHQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyID0gMzI7XG4gIEBJbnB1dCgpIHN0cm9rZTogc3RyaW5nID0gJyM5MTkxOTEnO1xuICBASW5wdXQoKSBzdHJva2VXaWR0aDogbnVtYmVyID0gMS41O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcG90Y2hlY2stY2xvc2UtYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTM2cHg7IHJpZ2h0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7IGN1cnNvcjogcG9pbnRlcjsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDUwcHg7XCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiICpuZ0lmPVwiaXNWaXNpYmxlICYmIGlzTWluaUNhcmRcIj5cbiAgICAgICAgPGNsb3NlLXN2ZyBbc2l6ZV09XCJzaXplXCIgW3N0cm9rZV09XCJzdHJva2VcIiBbc3Ryb2tlV2lkdGhdPVwic3Ryb2tlV2lkdGhcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1wiLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyByaWdodDogMTZweDsgei1pbmRleDogMTAwMDAxOyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiICpuZ0lmPVwiaXNWaXNpYmxlICYmICFpc01pbmlDYXJkXCI+XG4gICAgICAgIDxjbG9zZS1zdmcgW3NpemVdPVwic2l6ZVwiIFtzdHJva2VdPVwic3Ryb2tlXCIgW3N0cm9rZVdpZHRoXT1cInN0cm9rZVdpZHRoXCIvPlxuICAgICAgPC9kaXY+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENsb3NlU1ZHQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xvc2VCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAzMDtcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGg6IG51bWJlciA9IDEuMjtcbiAgXG4gIHN0YXRlOiBTcG90Y2hlY2tTdGF0ZTtcbiAgcHJpdmF0ZSBzdGF0ZVNlcnZpY2U6IFNwb3RjaGVja1N0YXRlU2VydmljZTtcbiAgcHJpdmF0ZSBzdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgXG4gIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc01pbmlDYXJkOiBib29sZWFuID0gZmFsc2U7XG4gIHN0cm9rZTogc3RyaW5nID0gJ2JsYWNrJztcbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRTdGF0ZSgpO1xuXG4gICAgdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoXG4gICAgICAobmV3U3RhdGU6IFNwb3RjaGVja1N0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRTdGF0ZSgpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPVxuICAgICAgdGhpcy5zdGF0ZS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCAmJlxuICAgICAgKCh0aGlzLnN0YXRlLmN1cnJlbnRRdWVzdGlvbkhlaWdodCA+IDAgJiYgIXRoaXMuc3RhdGUuaXNGdWxsU2NyZWVuTW9kZSkgfHxcbiAgICAgICAgKHRoaXMuc3RhdGUuaXNGdWxsU2NyZWVuTW9kZSAmJlxuICAgICAgICAgICgoIXRoaXMuc3RhdGUuaXNDbGFzc2ljTG9hZGluZyAmJlxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2xhc3NpYycpIHx8XG4gICAgICAgICAgICAoIXRoaXMuc3RhdGUuaXNDaGF0TG9hZGluZyAmJlxuICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0JykpKSk7XG4gICAgdGhpcy5pc01pbmlDYXJkID0gdGhpcy5zdGF0ZS5zcG90Q2hlY2tzTW9kZSA9PT0gJ21pbmlDYXJkJztcbiAgICB0aGlzLnN0cm9rZSA9IHRoaXMuaXNNaW5pQ2FyZCA/ICdibGFjaycgOiB0aGlzLnN0YXRlLmNsb3NlQnV0dG9uU3R5bGU/LlsnY3RhQnV0dG9uJ10gfHwgJ2JsYWNrJztcbiAgfVxuXG4gIG9uQ2xpY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgY2xvc2VTcG90Q2hlY2soKTtcbiAgICBoYW5kbGVTdXJ2ZXlFbmQoKTtcbiAgfTtcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdTcG90Q2hlY2tDb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vU3BvdENoZWNrQ29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9TcG90Q2hlY2tDb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdlYlZpZXdDb21wb25lbnQsIENsb3NlQnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BvdENoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0ZTogU3BvdGNoZWNrU3RhdGU7XG4gIHByaXZhdGUgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG4gIHByaXZhdGUgc3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgY29tcG9uZW50U3R5bGVzOiBhbnkgPSB7fTtcbiAgYXZhdGFyVXJsOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3R5bGVzKCk7XG5cbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgIChuZXdTdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0eWxlcygpO1xuICAgICAgICB0aGlzLmF2YXRhclVybCA9IHRoaXMuc3RhdGUuYXZhdGFyVXJsIHx8IFwiaHR0cHM6Ly9zdGF0aWMuc3VydmV5c3BhcnJvdy5jb20vYXBwbGljYXRpb24vaW1hZ2VzL3Byb2ZpbGUucG5nXCI7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudFN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0eWxlcyA9IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyh0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIGluaXRpYWxpemVDb21wb25lbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSB0aGlzLnN0YXRlLmRvbWFpbk5hbWU7XG4gICAgICBjb25zdCB0YXJnZXRUb2tlbiA9IHRoaXMuc3RhdGUudGFyZ2V0VG9rZW47XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgYGh0dHBzOi8vJHtkb21haW5OYW1lfS9hcGkvaW50ZXJuYWwvc3BvdGNoZWNrL3dpZGdldC8ke3RhcmdldFRva2VufS9pbml0YFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MgJiYgZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgY2xhc3NpY0lmcmFtZSA9IGZhbHNlO1xuICAgICAgICBsZXQgY2hhdElmcmFtZSA9IGZhbHNlO1xuXG4gICAgICAgIGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLmZvckVhY2goKHNwb3RjaGVjazogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3BvdGNoZWNrLmFwcGVhcmFuY2UubW9kZSA9PT0gJ2Z1bGxTY3JlZW4nICYmXG4gICAgICAgICAgICBpc2NoYXRTdXJ2ZXkoc3BvdGNoZWNrPy5zdXJ2ZXk/LnN1cnZleVR5cGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjaGF0SWZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3NpY0lmcmFtZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBuZXdDbGFzc2ljVXJsID0gY2xhc3NpY0lmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2xhc3NpY2BcbiAgICAgICAgICA6ICcnO1xuICAgICAgICBjb25zdCBuZXdDaGF0VXJsID0gY2hhdElmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2hhdGBcbiAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIHRoaXMuc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICBmaWx0ZXJlZFNwb3RDaGVja3M6IGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLFxuICAgICAgICAgIGNsYXNzaWNVcmw6IG5ld0NsYXNzaWNVcmwsXG4gICAgICAgICAgY2hhdFVybDogbmV3Q2hhdFVybCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbml0aWFsaXppbmcgd2lkZ2V0OicsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG4gICAgfVxuICB9O1xufVxuIiwiPGRpdiBbbmdTdHlsZV09XCJjb21wb25lbnRTdHlsZXMud3JhcHBlclN0eWxlc1wiIGNsYXNzPVwic2FmZS1hcmVhXCI+XG4gIDxkaXYgW25nU3R5bGVdPVwiY29tcG9uZW50U3R5bGVzLnN0eWxlc1wiPlxuICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMTAwJTtcIj5cbiAgICAgIDxzcG90Y2hlY2stY2xvc2UtYnV0dG9uIC8+XG4gIFxuICAgICAgPFdlYlZpZXdDb21wb25lbnRcbiAgICAgICAgKm5nSWY9XCJzdGF0ZS5jbGFzc2ljVXJsICYmIHN0YXRlLmNsYXNzaWNVcmwubGVuZ3RoID4gMCAmJiBzdGF0ZS5zcG90Y2hlY2tVUkwubGVuZ3RoID4gMCAmJiBzdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2xhc3NpYydcIlxuICAgICAgICBbdXJsXT1cInN0YXRlLmNsYXNzaWNVcmxcIlxuICAgICAgICBbd2Vidmlld1R5cGVdPVwiJ2NsYXNzaWMnXCJcbiAgICAgICAgW2lzTWluaUNhcmRdPVwic3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCdcIlxuICAgICAgLz5cbiAgXG4gICAgICA8V2ViVmlld0NvbXBvbmVudFxuICAgICAgICAqbmdJZj1cInN0YXRlLmNoYXRVcmwgJiYgc3RhdGUuY2hhdFVybC5sZW5ndGggPiAwICYmIHN0YXRlLnNwb3RjaGVja1VSTC5sZW5ndGggPiAwICYmIHN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0J1wiXG4gICAgICAgIFt1cmxdPVwic3RhdGUuY2hhdFVybFwiXG4gICAgICAgIFt3ZWJ2aWV3VHlwZV09XCInY2hhdCdcIlxuICAgICAgICBbaXNNaW5pQ2FyZF09XCJzdGF0ZS5zcG90Q2hlY2tzTW9kZSA9PT0gJ21pbmlDYXJkJ1wiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcgJiYgc3RhdGUuYXZhdGFyRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC02NnB4OyBsZWZ0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7XCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImF2YXRhclVybFwiIHN0eWxlPVwid2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgYm9yZGVyLXJhZGl1czogNTBweDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
351
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUdULFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7QUFtQjFCLE1BQU0sT0FBTyxnQkFBZ0I7SUFTakI7SUFDQTtJQUNBO0lBVkQsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUNqQixXQUFXLEdBQXVCLFNBQVMsQ0FBQztJQUM1QyxVQUFVLEdBQVksS0FBSyxDQUFDO0lBRXJDLE9BQU8sR0FBMkIsSUFBSSxDQUFDO0lBQ2YsTUFBTSxDQUFpQztJQUUvRCxZQUNVLFNBQXVCLEVBQ3ZCLE1BQWMsRUFDZCxHQUFzQjtRQUZ0QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBQ0osUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE9B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Q0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxhQUFhLEdBQUcsYUFBYTtvQkFDakMsQ0FBQyxDQUFDLFdBQVcsVUFBVSx1QkFBdUI7b0JBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsTUFBTSxVQUFVLEdBQUcsVUFBVTtvQkFDM0IsQ0FBQyxDQUFDLFdBQVcsVUFBVSxvQkFBb0I7b0JBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRVAsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztvQkFDbEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtvQkFDM0MsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQW5GUyxrQkFBa0I7MkZBQWxCLGtCQUFrQiw4RUNqUC9CLGlwQ0EyQkEsNFBEb05ZLFlBQVksd05BeE1YLGdCQUFnQiwyR0F1SWhCLG9CQUFvQjs7MkZBbUVwQixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9uSW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgTmdab25lLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY2xvc2VTcG90Q2hlY2ssIGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kLCBnZXRTcG90Y2hlY2tDb21wb25lbnRDc3NTdHlsZXMsIGhhbmRsZVN1cnZleUVuZCwgaXNjaGF0U3VydmV5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9TcG90Y2hlY2tTdGF0ZVNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0U3BvdENoZWNrRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4vU3BvdENoZWNrRXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdXZWJWaWV3Q29tcG9uZW50JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiAxMDAlOyBib3JkZXItcmFkaXVzOiB7e2lzTWluaUNhcmQgPyAxMiA6IDB9fXB4OyBwYWRkaW5nLWxlZnQ6IHt7aXNNaW5pQ2FyZCA/IDEyIDogMH19cHg7IHBhZGRpbmctcmlnaHQ6IHt7aXNNaW5pQ2FyZCA/IDEyIDogMH19cHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XCI+XG4gICAgICA8aWZyYW1lXG4gICAgICAgIGFsbG93PVwiY2FtZXJhOyBtaWNyb3Bob25lOyBnZW9sb2NhdGlvbjsgZGlzcGxheS1jYXB0dXJlOyBhdXRvcGxheTsgY2xpcGJvYXJkLXJlYWQ7IGNsaXBib2FyZC13cml0ZTtcIlxuICAgICAgICAjaWZyYW1lUmVmXG4gICAgICAgIFtzcmNdPVwic2FmZVVybFwiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZGlzcGxheTogYmxvY2s7IGJvcmRlci1yYWRpdXM6IHt7aXNNaW5pQ2FyZCA/IDEyIDogMH19cHg7XCJcbiAgICAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICAgID5cbiAgICAgIDwvaWZyYW1lPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgV2ViVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHVybDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHdlYnZpZXdUeXBlOiAnY2xhc3NpYycgfCAnY2hhdCcgPSAnY2xhc3NpYyc7XG4gIEBJbnB1dCgpIGlzTWluaUNhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzYWZlVXJsOiBTYWZlUmVzb3VyY2VVcmwgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnaWZyYW1lUmVmJykgaWZyYW1lITogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIGNvbnN0IHdlYlZpZXdSZWYgPSB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMud2Vidmlld1R5cGUgPT09ICdjbGFzc2ljJykge1xuICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgY2xhc3NpY1dlYlZpZXdSZWY6IHdlYlZpZXdSZWYsXG4gICAgICAgIGlzQ2xhc3NpY0xvYWRpbmc6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgIGNoYXRXZWJWaWV3UmVmOiB3ZWJWaWV3UmVmLFxuICAgICAgICBpc0NoYXRMb2FkaW5nOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldHVwSWZyYW1lTG9hZExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwSWZyYW1lTG9hZExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICAgICAgaWYgKHRoaXMud2Vidmlld1R5cGUgPT09ICdjbGFzc2ljJykge1xuICAgICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzQ2xhc3NpY0xvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzQ2hhdExvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgb25NZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGV2ZW50O1xuICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc2xpZGVJbkZyYW1lJzpcbiAgICAgICAgICBpZiAoZGF0YS5tb3VudGVkKSB7XG4gICAgICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBpc01vdW50ZWQ6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3Jlc2l6ZVdpbmRvdyc6XG4gICAgICAgICAgaWYgKGRhdGEuc2l6ZSkge1xuICAgICAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSGVpZ2h0OiBkYXRhLnNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmlzQ2xvc2VCdXR0b25FbmFibGVkKSB7XG4gICAgICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpc0Nsb3NlQnV0dG9uRW5hYmxlZDogZGF0YS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzdXJ2ZXlDb21wbGV0ZWQnOlxuICAgICAgICAgIGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBnZXRTcG90Q2hlY2tFdmVudExpc3RlbmVyKCkuZW1pdCgnc3VydmV5Q29tcGxldGVkJywgZGF0YS5yZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc3VydmV5TG9hZFN0YXJ0ZWQnOlxuICAgICAgICAgIGdldFNwb3RDaGVja0V2ZW50TGlzdGVuZXIoKS5lbWl0KCdzdXJ2ZXlMb2FkU3RhcnRlZCcsIGRhdGEuc3VydmV5RGV0YWlscyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbG9zZS1zdmcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzdmdcbiAgICAgIFthdHRyLndpZHRoXT1cInNpemVcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNpemVcIlxuICAgICAgdmlld0JveD1cIjAgMCAzMiAzMlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHBzOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMC42NjY1IDEwLjY2N0wyMS4zMzMyIDIxLjMzMzdNMjEuMzMzMiAxMC42NjdMMTAuNjY2NSAyMS4zMzM3XCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInN0cm9rZVwiXG4gICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJzdHJva2VXaWR0aFwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xvc2VTVkdDb21wb25lbnQge1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAzMjtcbiAgQElucHV0KCkgc3Ryb2tlOiBzdHJpbmcgPSAnIzkxOTE5MSc7XG4gIEBJbnB1dCgpIHN0cm9rZVdpZHRoOiBudW1iZXIgPSAxLjU7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nwb3RjaGVjay1jbG9zZS1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMzZweDsgcmlnaHQ6IDE2cHg7IHotaW5kZXg6IDEwMDAwMTsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogNTBweDtcIiAoY2xpY2spPVwib25DbGljaygpXCIgKm5nSWY9XCJpc1Zpc2libGUgJiYgaXNNaW5pQ2FyZFwiPlxuICAgICAgICA8Y2xvc2Utc3ZnIFtzaXplXT1cInNpemVcIiBbc3Ryb2tlXT1cInN0cm9rZVwiIFtzdHJva2VXaWR0aF09XCJzdHJva2VXaWR0aFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE2cHg7IHJpZ2h0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwib25DbGljaygpXCIgKm5nSWY9XCJpc1Zpc2libGUgJiYgIWlzTWluaUNhcmRcIj5cbiAgICAgICAgPGNsb3NlLXN2ZyBbc2l6ZV09XCJzaXplXCIgW3N0cm9rZV09XCJzdHJva2VcIiBbc3Ryb2tlV2lkdGhdPVwic3Ryb2tlV2lkdGhcIi8+XG4gICAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2xvc2VTVkdDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDbG9zZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDMwO1xuICBASW5wdXQoKSBzdHJva2VXaWR0aDogbnVtYmVyID0gMS4yO1xuICBcbiAgc3RhdGU6IFNwb3RjaGVja1N0YXRlO1xuICBwcml2YXRlIHN0YXRlU2VydmljZTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlO1xuICBwcml2YXRlIHN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBcbiAgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTWluaUNhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3Ryb2tlOiBzdHJpbmcgPSAnYmxhY2snO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRTdGF0ZSgpO1xuXG4gICAgdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoXG4gICAgICAobmV3U3RhdGU6IFNwb3RjaGVja1N0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3RhdGUoKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPVxuICAgICAgdGhpcy5zdGF0ZS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCAmJlxuICAgICAgKCh0aGlzLnN0YXRlLmN1cnJlbnRRdWVzdGlvbkhlaWdodCA+IDAgJiYgIXRoaXMuc3RhdGUuaXNGdWxsU2NyZWVuTW9kZSkgfHxcbiAgICAgICAgKHRoaXMuc3RhdGUuaXNGdWxsU2NyZWVuTW9kZSAmJlxuICAgICAgICAgICgoIXRoaXMuc3RhdGUuaXNDbGFzc2ljTG9hZGluZyAmJlxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2xhc3NpYycpIHx8XG4gICAgICAgICAgICAoIXRoaXMuc3RhdGUuaXNDaGF0TG9hZGluZyAmJlxuICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0JykpKSk7XG4gICAgdGhpcy5pc01pbmlDYXJkID0gdGhpcy5zdGF0ZS5zcG90Q2hlY2tzTW9kZSA9PT0gJ21pbmlDYXJkJztcbiAgICB0aGlzLnN0cm9rZSA9IHRoaXMuaXNNaW5pQ2FyZCA/ICdibGFjaycgOiB0aGlzLnN0YXRlLmNsb3NlQnV0dG9uU3R5bGU/LlsnY3RhQnV0dG9uJ10gfHwgJ2JsYWNrJztcbiAgfVxuXG4gIG9uQ2xpY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgY2xvc2VTcG90Q2hlY2soKTtcbiAgICBoYW5kbGVTdXJ2ZXlFbmQoKTtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9O1xufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1Nwb3RDaGVja0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9TcG90Q2hlY2tDb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL1Nwb3RDaGVja0NvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2ViVmlld0NvbXBvbmVudCwgQ2xvc2VCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTcG90Q2hlY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRlOiBTcG90Y2hlY2tTdGF0ZTtcbiAgcHJpdmF0ZSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2U6IFNwb3RjaGVja1N0YXRlU2VydmljZTtcbiAgcHJpdmF0ZSBzdGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBjb21wb25lbnRTdHlsZXM6IGFueSA9IHt9O1xuICBhdmF0YXJVcmw6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3R5bGVzKCk7XG5cbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgIChuZXdTdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRTdHlsZXMoKTtcbiAgICAgICAgICB0aGlzLmF2YXRhclVybCA9IHRoaXMuc3RhdGUuYXZhdGFyVXJsIHx8IFwiaHR0cHM6Ly9zdGF0aWMuc3VydmV5c3BhcnJvdy5jb20vYXBwbGljYXRpb24vaW1hZ2VzL3Byb2ZpbGUucG5nXCI7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50U3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50U3R5bGVzID0gZ2V0U3BvdGNoZWNrQ29tcG9uZW50Q3NzU3R5bGVzKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUNvbXBvbmVudCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZG9tYWluTmFtZSA9IHRoaXMuc3RhdGUuZG9tYWluTmFtZTtcbiAgICAgIGNvbnN0IHRhcmdldFRva2VuID0gdGhpcy5zdGF0ZS50YXJnZXRUb2tlbjtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQ8YW55PihcbiAgICAgICAgYGh0dHBzOi8vJHtkb21haW5OYW1lfS9hcGkvaW50ZXJuYWwvc3BvdGNoZWNrL3dpZGdldC8ke3RhcmdldFRva2VufS9pbml0YFxuICAgICAgKTtcblxuICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG5cbiAgICAgIGlmIChkYXRhLmZpbHRlcmVkU3BvdENoZWNrcyAmJiBkYXRhLmZpbHRlcmVkU3BvdENoZWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBjbGFzc2ljSWZyYW1lID0gZmFsc2U7XG4gICAgICAgIGxldCBjaGF0SWZyYW1lID0gZmFsc2U7XG5cbiAgICAgICAgZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MuZm9yRWFjaCgoc3BvdGNoZWNrOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzcG90Y2hlY2suYXBwZWFyYW5jZS5tb2RlID09PSAnZnVsbFNjcmVlbicgJiZcbiAgICAgICAgICAgIGlzY2hhdFN1cnZleShzcG90Y2hlY2s/LnN1cnZleT8uc3VydmV5VHlwZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNoYXRJZnJhbWUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGFzc2ljSWZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG5ld0NsYXNzaWNVcmwgPSBjbGFzc2ljSWZyYW1lXG4gICAgICAgICAgPyBgaHR0cHM6Ly8ke2RvbWFpbk5hbWV9L2V1aS10ZW1wbGF0ZS9jbGFzc2ljYFxuICAgICAgICAgIDogJyc7XG4gICAgICAgIGNvbnN0IG5ld0NoYXRVcmwgPSBjaGF0SWZyYW1lXG4gICAgICAgICAgPyBgaHR0cHM6Ly8ke2RvbWFpbk5hbWV9L2V1aS10ZW1wbGF0ZS9jaGF0YFxuICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgdGhpcy5zcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICAgIGZpbHRlcmVkU3BvdENoZWNrczogZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MsXG4gICAgICAgICAgY2xhc3NpY1VybDogbmV3Q2xhc3NpY1VybCxcbiAgICAgICAgICBjaGF0VXJsOiBuZXdDaGF0VXJsLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluaXRpYWxpemluZyB3aWRnZXQ6JywgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcbiAgICB9XG4gIH07XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cImNvbXBvbmVudFN0eWxlcy53cmFwcGVyU3R5bGVzXCIgY2xhc3M9XCJzYWZlLWFyZWFcIj5cbiAgPGRpdiBbbmdTdHlsZV09XCJjb21wb25lbnRTdHlsZXMuc3R5bGVzXCI+XG4gICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgPHNwb3RjaGVjay1jbG9zZS1idXR0b24gLz5cbiAgXG4gICAgICA8V2ViVmlld0NvbXBvbmVudFxuICAgICAgICAqbmdJZj1cInN0YXRlLmNsYXNzaWNVcmwgJiYgc3RhdGUuY2xhc3NpY1VybC5sZW5ndGggPiAwICYmIHN0YXRlLnNwb3RjaGVja1VSTC5sZW5ndGggPiAwICYmIHN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjbGFzc2ljJ1wiXG4gICAgICAgIFt1cmxdPVwic3RhdGUuY2xhc3NpY1VybFwiXG4gICAgICAgIFt3ZWJ2aWV3VHlwZV09XCInY2xhc3NpYydcIlxuICAgICAgICBbaXNNaW5pQ2FyZF09XCJzdGF0ZS5zcG90Q2hlY2tzTW9kZSA9PT0gJ21pbmlDYXJkJ1wiXG4gICAgICAvPlxuICBcbiAgICAgIDxXZWJWaWV3Q29tcG9uZW50XG4gICAgICAgICpuZ0lmPVwic3RhdGUuY2hhdFVybCAmJiBzdGF0ZS5jaGF0VXJsLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdGNoZWNrVVJMLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnXCJcbiAgICAgICAgW3VybF09XCJzdGF0ZS5jaGF0VXJsXCJcbiAgICAgICAgW3dlYnZpZXdUeXBlXT1cIidjaGF0J1wiXG4gICAgICAgIFtpc01pbmlDYXJkXT1cInN0YXRlLnNwb3RDaGVja3NNb2RlID09PSAnbWluaUNhcmQnXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0ZS5zcG90Q2hlY2tzTW9kZSA9PT0gJ21pbmlDYXJkJyAmJiBzdGF0ZS5hdmF0YXJFbmFibGVkXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTY2cHg7IGxlZnQ6IDE2cHg7IHotaW5kZXg6IDEwMDAwMTtcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiYXZhdGFyVXJsXCIgc3R5bGU9XCJ3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4OyBib3JkZXItcmFkaXVzOiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
class SpotCheckEventListenerService {
|
|
3
|
+
eventSubject = new Subject();
|
|
4
|
+
event$ = this.eventSubject.asObservable();
|
|
5
|
+
emit(type, data) {
|
|
6
|
+
this.eventSubject.next({ type, data });
|
|
7
|
+
}
|
|
8
|
+
addListener(eventType, callback) {
|
|
9
|
+
return this.event$.subscribe((event) => {
|
|
10
|
+
if (event.type === eventType) {
|
|
11
|
+
callback(event.data);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
let globalInstance;
|
|
17
|
+
export const getSpotCheckEventListener = () => {
|
|
18
|
+
if (!globalInstance) {
|
|
19
|
+
globalInstance = new SpotCheckEventListenerService();
|
|
20
|
+
}
|
|
21
|
+
return globalInstance;
|
|
22
|
+
};
|
|
23
|
+
export const addSpotCheckListener = (eventType, callback) => {
|
|
24
|
+
return getSpotCheckEventListener().addListener(eventType, callback);
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrRXZlbnRMaXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2tzL1Nwb3RDaGVja0V2ZW50TGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWUvQixNQUFNLDZCQUE2QjtJQUN6QixZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFDN0MsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbEQsSUFBSSxDQUFDLElBQXdCLEVBQUUsSUFBVTtRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQ1QsU0FBNkIsRUFDN0IsUUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdCLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsSUFBSSxjQUE2QyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQWtDLEVBQUU7SUFDM0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLGNBQWMsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFNBQTZCLEVBQzdCLFFBQXVCLEVBQ1QsRUFBRTtJQUNoQixPQUFPLHlCQUF5QixFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBTcG90Q2hlY2tFdmVudFR5cGUgPVxuICB8ICdzdXJ2ZXlDb21wbGV0ZWQnXG4gIHwgJ3N1cnZleURpc21pc3NlZCdcbiAgfCAnc3VydmV5TG9hZFN0YXJ0ZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RDaGVja0V2ZW50IHtcbiAgdHlwZTogU3BvdENoZWNrRXZlbnRUeXBlO1xuICBkYXRhPzogYW55O1xufVxuXG50eXBlIEV2ZW50Q2FsbGJhY2sgPSAoZGF0YT86IGFueSkgPT4gdm9pZDtcblxuY2xhc3MgU3BvdENoZWNrRXZlbnRMaXN0ZW5lclNlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PFNwb3RDaGVja0V2ZW50PigpO1xuICBwcml2YXRlIGV2ZW50JCA9IHRoaXMuZXZlbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGVtaXQodHlwZTogU3BvdENoZWNrRXZlbnRUeXBlLCBkYXRhPzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5ldmVudFN1YmplY3QubmV4dCh7IHR5cGUsIGRhdGEgfSk7XG4gIH1cblxuICBhZGRMaXN0ZW5lcihcbiAgICBldmVudFR5cGU6IFNwb3RDaGVja0V2ZW50VHlwZSxcbiAgICBjYWxsYmFjazogRXZlbnRDYWxsYmFja1xuICApOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50JC5zdWJzY3JpYmUoKGV2ZW50OiBTcG90Q2hlY2tFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IGV2ZW50VHlwZSkge1xuICAgICAgICBjYWxsYmFjayhldmVudC5kYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5sZXQgZ2xvYmFsSW5zdGFuY2U6IFNwb3RDaGVja0V2ZW50TGlzdGVuZXJTZXJ2aWNlO1xuXG5leHBvcnQgY29uc3QgZ2V0U3BvdENoZWNrRXZlbnRMaXN0ZW5lciA9ICgpOiBTcG90Q2hlY2tFdmVudExpc3RlbmVyU2VydmljZSA9PiB7XG4gIGlmICghZ2xvYmFsSW5zdGFuY2UpIHtcbiAgICBnbG9iYWxJbnN0YW5jZSA9IG5ldyBTcG90Q2hlY2tFdmVudExpc3RlbmVyU2VydmljZSgpO1xuICB9XG4gIHJldHVybiBnbG9iYWxJbnN0YW5jZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTcG90Q2hlY2tMaXN0ZW5lciA9IChcbiAgZXZlbnRUeXBlOiBTcG90Q2hlY2tFdmVudFR5cGUsXG4gIGNhbGxiYWNrOiBFdmVudENhbGxiYWNrXG4pOiBTdWJzY3JpcHRpb24gPT4ge1xuICByZXR1cm4gZ2V0U3BvdENoZWNrRXZlbnRMaXN0ZW5lcigpLmFkZExpc3RlbmVyKGV2ZW50VHlwZSwgY2FsbGJhY2spO1xufTtcbiJdfQ==
|
|
@@ -27,8 +27,6 @@ export class SpotcheckStateService {
|
|
|
27
27
|
traceId: '',
|
|
28
28
|
isClassicLoading: true,
|
|
29
29
|
isChatLoading: true,
|
|
30
|
-
isClassicLoadEventReceived: false,
|
|
31
|
-
isChatLoadEventReceived: false,
|
|
32
30
|
classicUrl: '',
|
|
33
31
|
chatUrl: '',
|
|
34
32
|
classicWebViewRef: null,
|
|
@@ -64,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
64
62
|
providedIn: 'root',
|
|
65
63
|
}]
|
|
66
64
|
}] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdGNoZWNrU3RhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNdkMsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixZQUFZLEdBQW1CO1FBQ3JDLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLGlCQUFpQixFQUFFLFFBQVE7UUFDM0IsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUFFLENBQUM7UUFDZCxrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFVBQVUsRUFBRSxHQUFHO1FBQ2YsU0FBUyxFQUFFLEdBQUc7UUFDZCxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLGdCQUFnQixFQUFFLEtBQUs7UUFDdkIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixvQkFBb0IsRUFBRSxLQUFLO1FBQzNCLFlBQVksRUFBRSxLQUFLO1FBQ25CLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLHNCQUFzQixFQUFFLEVBQUU7UUFDMUIsV0FBVyxFQUFFLEVBQUU7UUFDZixVQUFVLEVBQUUsRUFBRTtRQUNkLFdBQVcsRUFBRSxFQUFFO1FBQ2YsU0FBUyxFQUFFLEVBQUU7UUFDYixnQkFBZ0IsRUFBRSxFQUFFO1FBQ3BCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsRUFBRTtRQUNkLE9BQU8sRUFBRSxFQUFFO1FBQ1gsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixjQUFjLEVBQUUsSUFBSTtRQUNwQixrQkFBa0IsRUFBRSxFQUFFO1FBQ3RCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFlBQVksRUFBRSxDQUFDO1FBQ2YsWUFBWSxFQUFFLENBQUM7UUFDZixjQUFjLEVBQUUsQ0FBQztRQUNqQixjQUFjLEVBQUUsRUFBRTtRQUNsQixhQUFhLEVBQUUsS0FBSztRQUNwQixTQUFTLEVBQUUsRUFBRTtRQUNiLHFCQUFxQixFQUFFLEVBQUU7S0FDMUIsQ0FBQztJQUVNLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTVDLFFBQVEsQ0FBQyxLQUE4QjtRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7dUdBdkRVLHFCQUFxQjsyR0FBckIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTcG90Y2hlY2tTdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIGluaXRpYWxTdGF0ZTogU3BvdGNoZWNrU3RhdGUgPSB7XG4gICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICBzcG90Y2hlY2tQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgc3BvdGNoZWNrVVJMOiAnJyxcbiAgICBzcG90Y2hlY2tJRDogMCxcbiAgICBzcG90Y2hlY2tDb250YWN0SUQ6IDAsXG4gICAgYWZ0ZXJEZWxheTogMC4wLFxuICAgIG1heEhlaWdodDogMC41LFxuICAgIGN1cnJlbnRRdWVzdGlvbkhlaWdodDogMCxcbiAgICBpc0Z1bGxTY3JlZW5Nb2RlOiBmYWxzZSxcbiAgICBpc0Jhbm5lckltYWdlT246IGZhbHNlLFxuICAgIHRyaWdnZXJUb2tlbjogJycsXG4gICAgY2xvc2VCdXR0b25TdHlsZToge30sXG4gICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGZhbHNlLFxuICAgIGlzU3BvdFBhc3NlZDogZmFsc2UsXG4gICAgaXNDaGVja3NQYXNzZWQ6IGZhbHNlLFxuICAgIGN1c3RvbUV2ZW50c1Nwb3RDaGVja3M6IFtdLFxuICAgIHRhcmdldFRva2VuOiAnJyxcbiAgICBkb21haW5OYW1lOiAnJyxcbiAgICB1c2VyRGV0YWlsczoge30sXG4gICAgdmFyaWFibGVzOiB7fSxcbiAgICBjdXN0b21Qcm9wZXJ0aWVzOiB7fSxcbiAgICB0cmFjZUlkOiAnJyxcbiAgICBpc0NsYXNzaWNMb2FkaW5nOiB0cnVlLFxuICAgIGlzQ2hhdExvYWRpbmc6IHRydWUsXG4gICAgY2xhc3NpY1VybDogJycsXG4gICAgY2hhdFVybDogJycsXG4gICAgY2xhc3NpY1dlYlZpZXdSZWY6IG51bGwsXG4gICAgY2hhdFdlYlZpZXdSZWY6IG51bGwsXG4gICAgZmlsdGVyZWRTcG90Q2hlY2tzOiBbXSxcbiAgICBzcG90Q2hlY2tUeXBlOiAnJyxcbiAgICBpc01vdW50ZWQ6IGZhbHNlLFxuICAgIHRleHRQb3NpdGlvbjogMCxcbiAgICBzY3JlZW5IZWlnaHQ6IDAsXG4gICAga2V5Qm9hcmRIZWlnaHQ6IDAsXG4gICAgc3BvdENoZWNrc01vZGU6ICcnLFxuICAgIGF2YXRhckVuYWJsZWQ6IGZhbHNlLFxuICAgIGF2YXRhclVybDogJycsXG4gICAgc2NyZWVud2lzZVVzZXJEZXRhaWxzOiB7fVxuICB9O1xuICBcbiAgcHJpdmF0ZSBzcG90Y2hlY2tTdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3BvdGNoZWNrU3RhdGU+KHRoaXMuaW5pdGlhbFN0YXRlKTtcbiAgc3RhdGUkID0gdGhpcy5zcG90Y2hlY2tTdGF0ZS5hc09ic2VydmFibGUoKTtcblxuICBzZXRTdGF0ZShzdGF0ZTogUGFydGlhbDxTcG90Y2hlY2tTdGF0ZT4pIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlLm5leHQoeyAuLi50aGlzLnNwb3RjaGVja1N0YXRlLnZhbHVlLCAuLi5zdGF0ZSB9KTtcbiAgfVxuICBcbiAgY2xlYXJTdGF0ZSgpIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlLm5leHQodGhpcy5pbml0aWFsU3RhdGUpO1xuICB9XG5cbiAgZ2V0U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BvdGNoZWNrU3RhdGUuZ2V0VmFsdWUoKTtcbiAgfVxufVxuIl19
|
|
@@ -121,7 +121,7 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
throw new Error(responseJson?.reason
|
|
124
|
+
throw new Error(responseJson?.reason.toString());
|
|
125
125
|
}
|
|
126
126
|
else {
|
|
127
127
|
throw new Error(`Received status code ${response.status}`);
|
|
@@ -204,7 +204,7 @@ export const sendTrackEventRequest = async ({ screen, event }) => {
|
|
|
204
204
|
return { valid: true };
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
throw new Error(responseJson?.reason
|
|
207
|
+
throw new Error(responseJson?.reason.toString());
|
|
208
208
|
}
|
|
209
209
|
else {
|
|
210
210
|
throw new Error(`Received status code ${response.status}`);
|
|
@@ -227,4 +227,4 @@ export const sendTrackEventRequest = async ({ screen, event }) => {
|
|
|
227
227
|
return { valid: false, error: error.message };
|
|
228
228
|
}
|
|
229
229
|
};
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFBRSxFQUMzQyxNQUFNLEVBQ04sT0FBTyxHQUNVLEVBQUUsRUFBRTtJQUNyQixJQUFJLENBQUM7UUFDSCxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQWUsQ0FBQztRQUN2RCxJQUFJLGdCQUFnQixHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLEVBQXNCLENBQUM7UUFDNUUsSUFBSSxXQUFXLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQWlCLENBQUM7UUFFN0QsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUUsU0FBUyxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsSUFB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QztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlVHJhY2VJZCwgZ2V0T1MsIHNldEFwcGVhcmFuY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgZ2V0U3RvcmVkVVVJRCwgc2V0VVVJRCB9IGZyb20gJy4vc3RvcmFnZSc7XG5pbXBvcnQgeyBUcmFja1NjcmVlblByb3BzLCBVc2VyRGV0YWlscywgVmFyaWFibGVzLCBDdXN0b21Qcm9wZXJ0aWVzLCBUcmFja0V2ZW50UHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgY29uc3Qgc2VuZFRyYWNrU2NyZWVuUmVxdWVzdCA9IGFzeW5jICh7XG4gIHNjcmVlbixcbiAgb3B0aW9ucyxcbn06IFRyYWNrU2NyZWVuUHJvcHMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCBvbGRTdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIGxldCB2YXJpYWJsZXMgPSB7IC4uLm9sZFN0YXRlLnZhcmlhYmxlcyB9IGFzIFZhcmlhYmxlcztcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllcyA9IHsgLi4ub2xkU3RhdGUuY3VzdG9tUHJvcGVydGllcyB9IGFzIEN1c3RvbVByb3BlcnRpZXM7XG4gICAgbGV0IHVzZXJEZXRhaWxzID0geyAuLi5vbGRTdGF0ZS51c2VyRGV0YWlscyB9IGFzIFVzZXJEZXRhaWxzOyAgICBcblxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudmFyaWFibGVzICYmIE9iamVjdC5rZXlzKG9wdGlvbnMudmFyaWFibGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICB2YXJpYWJsZXMgPSB7IC4uLnZhcmlhYmxlcywgLi4ub3B0aW9ucy52YXJpYWJsZXMgfTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9wdGlvbnMuY3VzdG9tUHJvcGVydGllcykubGVuZ3RoID4gMCkge1xuICAgICAgY3VzdG9tUHJvcGVydGllcyA9IHsgLi4uY3VzdG9tUHJvcGVydGllcywgLi4ub3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzIH07XG4gICAgfVxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlckRldGFpbHMgJiYgT2JqZWN0LmtleXMob3B0aW9ucy51c2VyRGV0YWlscykubGVuZ3RoID4gMCkge1xuICAgICAgdXNlckRldGFpbHMgPSB7IC4uLnVzZXJEZXRhaWxzLCAuLi5vcHRpb25zLnVzZXJEZXRhaWxzIH07XG4gICAgfVxuXG4gICAgbGV0IHRyYWNlSWQgPSBvbGRTdGF0ZS50cmFjZUlkO1xuICAgIGlmICghdHJhY2VJZCkge1xuICAgICAgdHJhY2VJZCA9IGdlbmVyYXRlVHJhY2VJZCgpO1xuICAgIH1cblxuICAgIGlmICghdXNlckRldGFpbHMudXVpZCAmJiAhdXNlckRldGFpbHMuZW1haWwgJiYgIXVzZXJEZXRhaWxzLm1vYmlsZSkge1xuICAgICAgY29uc3QgdXVpZCA9IGdldFN0b3JlZFVVSUQoKTtcbiAgICAgIGlmICh1dWlkKSB7XG4gICAgICAgIHVzZXJEZXRhaWxzLnV1aWQgPSB1dWlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICB0cmFjZUlkLFxuICAgICAgc2NyZWVud2lzZVVzZXJEZXRhaWxzOiB7XG4gICAgICAgIFtzY3JlZW5dOiB1c2VyRGV0YWlsc1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlID0gc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gICAgbGV0IHsgaXNTcG90UGFzc2VkLCBpc0NoZWNrc1Bhc3NlZCB9ID0gc3RhdGU7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHNjcmVlbk5hbWU6IHNjcmVlbixcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgdXNlckRldGFpbHM6IHVzZXJEZXRhaWxzLFxuICAgICAgdmlzaXRvcjoge1xuICAgICAgICBkZXZpY2VUeXBlOiAnTU9CSUxFJyxcbiAgICAgICAgb3BlcmF0aW5nU3lzdGVtOiBhd2FpdCBnZXRPUygpLFxuICAgICAgICBzY3JlZW5SZXNvbHV0aW9uOiB7XG4gICAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgICB9LFxuICAgICAgICBjdXJyZW50RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lem9uZTogSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLFxuICAgICAgfSxcbiAgICAgIHRyYWNlSWQ6IHN0YXRlLnRyYWNlSWQsXG4gICAgICBjdXN0b21Qcm9wZXJ0aWVzOiBjdXN0b21Qcm9wZXJ0aWVzLFxuICAgIH07XG5cbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke3N0YXRlLmRvbWFpbk5hbWV9L2FwaS9pbnRlcm5hbC9zcG90Y2hlY2svd2lkZ2V0LyR7c3RhdGUudGFyZ2V0VG9rZW59L3Byb3BlcnRpZXM/aXNTcG90Q2hlY2s9dHJ1ZSZzZGs9SU9OSUNgO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdCh1cmwsIHBheWxvYWQsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZihyZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgY29uc3QgcmVzcG9uc2VKc29uID0gcmVzcG9uc2UuZGF0YTtcblxuICAgICAgaWYgKHJlc3BvbnNlSnNvbi51dWlkKSB7XG4gICAgICAgIHNldFVVSUQocmVzcG9uc2VKc29uLnV1aWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzcG9uc2VKc29uPy5zaG93KSB7XG4gICAgICAgIGlmIChyZXNwb25zZUpzb24/LnNob3cpIHtcbiAgICAgICAgICBjb25zdCBhcHBlYXJhbmNlX3Jlc3BvbnNlID0gYXdhaXQgc2V0QXBwZWFyYW5jZShcbiAgICAgICAgICAgIHJlc3BvbnNlSnNvbixcbiAgICAgICAgICAgIHNjcmVlbixcbiAgICAgICAgICAgIHN0YXRlLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICB0cmFjZUlkLFxuICAgICAgICAgICAgdmFyaWFibGVzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoYXBwZWFyYW5jZV9yZXNwb25zZSkge1xuICAgICAgICAgICAgaXNTcG90UGFzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzU3BvdFBhc3NlZCB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBcbiAgICAgIGlmICghaXNTcG90UGFzc2VkICYmIHJlc3BvbnNlSnNvbj8uY2hlY2tQYXNzZWQpIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlSnNvbi5jaGVja0NvbmRpdGlvbikge1xuICAgICAgICAgIGNvbnN0IGNoZWNrQ29uZGl0aW9uID0gcmVzcG9uc2VKc29uLmNoZWNrQ29uZGl0aW9uO1xuICAgICAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGFmdGVyRGVsYXk6IGNoZWNrQ29uZGl0aW9uLmFmdGVyRGVsYXkgfHwgMCB9KTtcbiAgICAgICAgICBpZiAoY2hlY2tDb25kaXRpb24uY3VzdG9tRXZlbnQpIHtcbiAgICAgICAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGN1c3RvbUV2ZW50c1Nwb3RDaGVja3M6IFtyZXNwb25zZUpzb25dIH0pO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcHBlYXJhbmNlX3Jlc3BvbnNlID0gYXdhaXQgc2V0QXBwZWFyYW5jZShcbiAgICAgICAgICByZXNwb25zZUpzb24sXG4gICAgICAgICAgc2NyZWVuLFxuICAgICAgICAgIHN0YXRlLmRvbWFpbk5hbWUsXG4gICAgICAgICAgdHJhY2VJZCxcbiAgICAgICAgICB2YXJpYWJsZXNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFwcGVhcmFuY2VfcmVzcG9uc2UpIHtcbiAgICAgICAgICBpc0NoZWNrc1Bhc3NlZCA9IHRydWU7XG4gICAgICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNDaGVja3NQYXNzZWQgfSk7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzU3BvdFBhc3NlZCAmJiAhaXNDaGVja3NQYXNzZWQgJiYgcmVzcG9uc2VKc29uPy5tdWx0aVNob3cgIT0gbnVsbCkge1xuICAgICAgICBpZiAocmVzcG9uc2VKc29uLm11bHRpU2hvdykge1xuICAgICAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGN1c3RvbUV2ZW50c1Nwb3RDaGVja3M6IHJlc3BvbnNlSnNvbi5yZXN1bHRhbnRTcG90Q2hlY2sgfSk7XG5cbiAgICAgICAgICBsZXQgc2VsZWN0ZWRTcG90Q2hlY2sgPSB7fTtcbiAgICAgICAgICBsZXQgbWluRGVsYXk6IG51bWJlciA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuICAgICAgICAgIGZvciAoY29uc3Qgc3BvdGNoZWNrIG9mIHJlc3BvbnNlSnNvbi5yZXN1bHRhbnRTcG90Q2hlY2spIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrcyA9IHNwb3RjaGVjaz8uY2hlY2tzIHx8IHt9O1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNoZWNrcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIG1pbkRlbGF5ID0gMDtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRTcG90Q2hlY2sgPSBzcG90Y2hlY2s7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrcy5hZnRlckRlbGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgZGVsYXkgPSBwYXJzZUZsb2F0KGNoZWNrcy5hZnRlckRlbGF5KTtcbiAgICAgICAgICAgICAgaWYgKG1pbkRlbGF5ID4gZGVsYXkpIHtcbiAgICAgICAgICAgICAgICBtaW5EZWxheSA9IGRlbGF5O1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkU3BvdENoZWNrID0gc3BvdGNoZWNrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHNlbGVjdGVkU3BvdENoZWNrKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBhZnRlckRlbGF5OiBtaW5EZWxheSB9KTtcbiAgICAgICAgICAgIGNvbnN0IGFwcGVhcmFuY2VfcmVzcG9uc2UgPSBhd2FpdCBzZXRBcHBlYXJhbmNlKFxuICAgICAgICAgICAgICBzZWxlY3RlZFNwb3RDaGVjayxcbiAgICAgICAgICAgICAgc2NyZWVuLFxuICAgICAgICAgICAgICBzdGF0ZS5kb21haW5OYW1lLFxuICAgICAgICAgICAgICB0cmFjZUlkLFxuICAgICAgICAgICAgICB2YXJpYWJsZXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoYXBwZWFyYW5jZV9yZXNwb25zZSkge1xuICAgICAgICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2VKc29uPy5yZWFzb24/LnRvU3RyaW5nKCkgPz8gJ1Nwb3RjaGVjayBjb25kaXRpb25zIG5vdCBtZXQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWNlaXZlZCBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiBlcnJvci5tZXNzYWdlIH07XG4gIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0IHNlbmRUcmFja0V2ZW50UmVxdWVzdCA9IGFzeW5jICh7IHNjcmVlbiwgZXZlbnQgfTogVHJhY2tFdmVudFByb3BzKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgaW50TWF4ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGNvbnN0IHN0YXRlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuZ2V0U3RhdGUoKTtcbiAgICBsZXQgc2VsZWN0ZWRTcG90Q2hlY2tJRCA9IGludE1heDtcbiAgICBsZXQgeyBpc1Nwb3RQYXNzZWQgfSA9IHN0YXRlO1xuICAgIGlmIChzdGF0ZS5jdXN0b21FdmVudHNTcG90Q2hlY2tzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV2ZW50S2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50KTtcbiAgICAgIGZvciAoY29uc3Qgc3BvdENoZWNrIG9mIHN0YXRlLmN1c3RvbUV2ZW50c1Nwb3RDaGVja3MpIHtcbiAgICAgICAgY29uc3QgY2hlY2tzID0gc3BvdENoZWNrPy5bJ2NoZWNrcyddID8/IHNwb3RDaGVjaz8uWydjaGVja0NvbmRpdGlvbiddO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IGNoZWNrcz8uY3VzdG9tRXZlbnQ7XG5cbiAgICAgICAgICBpZiAoZXZlbnRLZXlzLmluY2x1ZGVzKGN1c3RvbUV2ZW50Py5ldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFNwb3RDaGVja0lEID1cbiAgICAgICAgICAgICAgc3BvdENoZWNrPy5bJ2lkJ10gPz8gc3BvdENoZWNrPy5bJ3Nwb3RDaGVja0lkJ10gPz8gaW50TWF4O1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRTcG90Q2hlY2tJRCAhPT0gaW50TWF4KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgc2NyZWVuTmFtZTogc2NyZWVuLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogc3RhdGUudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIHVzZXJEZXRhaWxzOiBzdGF0ZS5zY3JlZW53aXNlVXNlckRldGFpbHNbc2NyZWVuXSB8fCB7fSxcbiAgICAgICAgICAgICAgICB2aXNpdG9yOiB7XG4gICAgICAgICAgICAgICAgICBkZXZpY2VUeXBlOiAnTU9CSUxFJyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGluZ1N5c3RlbTogYXdhaXQgZ2V0T1MoKSxcbiAgICAgICAgICAgICAgICAgIHNjcmVlblJlc29sdXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBjdXJyZW50RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgdGltZXpvbmU6IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNwb3RDaGVja0lkOiBzZWxlY3RlZFNwb3RDaGVja0lELFxuICAgICAgICAgICAgICAgIGV2ZW50VHJpZ2dlcjoge1xuICAgICAgICAgICAgICAgICAgY3VzdG9tRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHJhY2VJZDogc3RhdGUudHJhY2VJZCxcbiAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzOiBzdGF0ZS5jdXN0b21Qcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7c3RhdGUuZG9tYWluTmFtZX0vYXBpL2ludGVybmFsL3Nwb3RjaGVjay93aWRnZXQvJHtzdGF0ZS50YXJnZXRUb2tlbn0vZXZlbnRUcmlnZ2VyP2lzU3BvdENoZWNrPXRydWVgO1xuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0KHVybCwgcGF5bG9hZCwge1xuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VKc29uID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUpzb24/LnNob3cgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VKc29uPy5zaG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwZWFyYW5jZV9yZXNwb25zZSA9IGF3YWl0IHNldEFwcGVhcmFuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZUpzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5kb21haW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUudHJhY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnZhcmlhYmxlc1xuICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwZWFyYW5jZV9yZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuc2V0U3RhdGUoeyBpc1Nwb3RQYXNzZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1Nwb3RQYXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKCFpc1Nwb3RQYXNzZWQgJiYgcmVzcG9uc2VKc29uPy5ldmVudFNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlSnNvbj8uY2hlY2tDb25kaXRpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrQ29uZGl0aW9uID0gcmVzcG9uc2VKc29uPy5jaGVja0NvbmRpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZnRlckRlbGF5OiBjaGVja0NvbmRpdGlvbj8uYWZ0ZXJEZWxheSA/PyAwLFxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrQ29uZGl0aW9uPy5jdXN0b21FdmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyRGVsYXk6IGNoZWNrQ29uZGl0aW9uPy5jdXN0b21FdmVudD8uZGVsYXlJblNlY29uZHMgPz8gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFwcGVhcmFuY2VfcmVzcG9uc2UgPSBhd2FpdCBzZXRBcHBlYXJhbmNlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSnNvbixcbiAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4sXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnZhcmlhYmxlc1xuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBlYXJhbmNlX3Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2VKc29uPy5yZWFzb24/LnRvU3RyaW5nKCkgPz8gJ0V2ZW50IGNvbmRpdGlvbnMgbm90IG1ldCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0YXR1cyBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCcnKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiBlcnJvci5tZXNzYWdlIH07XG4gIH1cbn07Il19
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFBRSxFQUMzQyxNQUFNLEVBQ04sT0FBTyxHQUNVLEVBQUUsRUFBRTtJQUNyQixJQUFJLENBQUM7UUFDSCxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQWUsQ0FBQztRQUN2RCxJQUFJLGdCQUFnQixHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLEVBQXNCLENBQUM7UUFDNUUsSUFBSSxXQUFXLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQWlCLENBQUM7UUFFN0QsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUUsU0FBUyxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsSUFB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QUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlVHJhY2VJZCwgZ2V0T1MsIHNldEFwcGVhcmFuY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgZ2V0U3RvcmVkVVVJRCwgc2V0VVVJRCB9IGZyb20gJy4vc3RvcmFnZSc7XG5pbXBvcnQgeyBUcmFja1NjcmVlblByb3BzLCBVc2VyRGV0YWlscywgVmFyaWFibGVzLCBDdXN0b21Qcm9wZXJ0aWVzLCBUcmFja0V2ZW50UHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgY29uc3Qgc2VuZFRyYWNrU2NyZWVuUmVxdWVzdCA9IGFzeW5jICh7XG4gIHNjcmVlbixcbiAgb3B0aW9ucyxcbn06IFRyYWNrU2NyZWVuUHJvcHMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCBvbGRTdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIGxldCB2YXJpYWJsZXMgPSB7IC4uLm9sZFN0YXRlLnZhcmlhYmxlcyB9IGFzIFZhcmlhYmxlcztcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllcyA9IHsgLi4ub2xkU3RhdGUuY3VzdG9tUHJvcGVydGllcyB9IGFzIEN1c3RvbVByb3BlcnRpZXM7XG4gICAgbGV0IHVzZXJEZXRhaWxzID0geyAuLi5vbGRTdGF0ZS51c2VyRGV0YWlscyB9IGFzIFVzZXJEZXRhaWxzOyAgICBcblxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudmFyaWFibGVzICYmIE9iamVjdC5rZXlzKG9wdGlvbnMudmFyaWFibGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICB2YXJpYWJsZXMgPSB7IC4uLnZhcmlhYmxlcywgLi4ub3B0aW9ucy52YXJpYWJsZXMgfTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9wdGlvbnMuY3VzdG9tUHJvcGVydGllcykubGVuZ3RoID4gMCkge1xuICAgICAgY3VzdG9tUHJvcGVydGllcyA9IHsgLi4uY3VzdG9tUHJvcGVydGllcywgLi4ub3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzIH07XG4gICAgfVxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlckRldGFpbHMgJiYgT2JqZWN0LmtleXMob3B0aW9ucy51c2VyRGV0YWlscykubGVuZ3RoID4gMCkge1xuICAgICAgdXNlckRldGFpbHMgPSB7IC4uLnVzZXJEZXRhaWxzLCAuLi5vcHRpb25zLnVzZXJEZXRhaWxzIH07XG4gICAgfVxuXG4gICAgbGV0IHRyYWNlSWQgPSBvbGRTdGF0ZS50cmFjZUlkO1xuICAgIGlmICghdHJhY2VJZCkge1xuICAgICAgdHJhY2VJZCA9IGdlbmVyYXRlVHJhY2VJZCgpO1xuICAgIH1cblxuICAgIGlmICghdXNlckRldGFpbHMudXVpZCAmJiAhdXNlckRldGFpbHMuZW1haWwgJiYgIXVzZXJEZXRhaWxzLm1vYmlsZSkge1xuICAgICAgY29uc3QgdXVpZCA9IGdldFN0b3JlZFVVSUQoKTtcbiAgICAgIGlmICh1dWlkKSB7XG4gICAgICAgIHVzZXJEZXRhaWxzLnV1aWQgPSB1dWlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICB0cmFjZUlkLFxuICAgICAgc2NyZWVud2lzZVVzZXJEZXRhaWxzOiB7XG4gICAgICAgIFtzY3JlZW5dOiB1c2VyRGV0YWlsc1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlID0gc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gICAgbGV0IHsgaXNTcG90UGFzc2VkLCBpc0NoZWNrc1Bhc3NlZCB9ID0gc3RhdGU7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHNjcmVlbk5hbWU6IHNjcmVlbixcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgdXNlckRldGFpbHM6IHVzZXJEZXRhaWxzLFxuICAgICAgdmlzaXRvcjoge1xuICAgICAgICBkZXZpY2VUeXBlOiAnTU9CSUxFJyxcbiAgICAgICAgb3BlcmF0aW5nU3lzdGVtOiBhd2FpdCBnZXRPUygpLFxuICAgICAgICBzY3JlZW5SZXNvbHV0aW9uOiB7XG4gICAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgICB9LFxuICAgICAgICBjdXJyZW50RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lem9uZTogSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLFxuICAgICAgfSxcbiAgICAgIHRyYWNlSWQ6IHN0YXRlLnRyYWNlSWQsXG4gICAgICBjdXN0b21Qcm9wZXJ0aWVzOiBjdXN0b21Qcm9wZXJ0aWVzLFxuICAgIH07XG5cbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke3N0YXRlLmRvbWFpbk5hbWV9L2FwaS9pbnRlcm5hbC9zcG90Y2hlY2svd2lkZ2V0LyR7c3RhdGUudGFyZ2V0VG9rZW59L3Byb3BlcnRpZXM/aXNTcG90Q2hlY2s9dHJ1ZSZzZGs9SU9OSUNgO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDxhbnk+KHVybCwgcGF5bG9hZCwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICBjb25zdCByZXNwb25zZUpzb24gPSByZXNwb25zZS5kYXRhO1xuXG4gICAgICBpZiAocmVzcG9uc2VKc29uLnV1aWQpIHtcbiAgICAgICAgc2V0VVVJRChyZXNwb25zZUpzb24udXVpZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZUpzb24/LnNob3cpIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlSnNvbj8uc2hvdykge1xuICAgICAgICAgIGNvbnN0IGFwcGVhcmFuY2VfcmVzcG9uc2UgPSBhd2FpdCBzZXRBcHBlYXJhbmNlKFxuICAgICAgICAgICAgcmVzcG9uc2VKc29uLFxuICAgICAgICAgICAgc2NyZWVuLFxuICAgICAgICAgICAgc3RhdGUuZG9tYWluTmFtZSxcbiAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICB2YXJpYWJsZXNcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChhcHBlYXJhbmNlX3Jlc3BvbnNlKSB7XG4gICAgICAgICAgICBpc1Nwb3RQYXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNTcG90UGFzc2VkIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIFxuICAgICAgaWYgKCFpc1Nwb3RQYXNzZWQgJiYgcmVzcG9uc2VKc29uPy5jaGVja1Bhc3NlZCkge1xuICAgICAgICBpZiAocmVzcG9uc2VKc29uLmNoZWNrQ29uZGl0aW9uKSB7XG4gICAgICAgICAgY29uc3QgY2hlY2tDb25kaXRpb24gPSByZXNwb25zZUpzb24uY2hlY2tDb25kaXRpb247XG4gICAgICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgYWZ0ZXJEZWxheTogY2hlY2tDb25kaXRpb24uYWZ0ZXJEZWxheSB8fCAwIH0pO1xuICAgICAgICAgIGlmIChjaGVja0NvbmRpdGlvbi5jdXN0b21FdmVudCkge1xuICAgICAgICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgY3VzdG9tRXZlbnRzU3BvdENoZWNrczogW3Jlc3BvbnNlSnNvbl0gfSk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFwcGVhcmFuY2VfcmVzcG9uc2UgPSBhd2FpdCBzZXRBcHBlYXJhbmNlKFxuICAgICAgICAgIHJlc3BvbnNlSnNvbixcbiAgICAgICAgICBzY3JlZW4sXG4gICAgICAgICAgc3RhdGUuZG9tYWluTmFtZSxcbiAgICAgICAgICB0cmFjZUlkLFxuICAgICAgICAgIHZhcmlhYmxlc1xuICAgICAgICApO1xuICAgICAgICBpZiAoYXBwZWFyYW5jZV9yZXNwb25zZSkge1xuICAgICAgICAgIGlzQ2hlY2tzUGFzc2VkID0gdHJ1ZTtcbiAgICAgICAgICBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBpc0NoZWNrc1Bhc3NlZCB9KTtcbiAgICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNTcG90UGFzc2VkICYmICFpc0NoZWNrc1Bhc3NlZCAmJiByZXNwb25zZUpzb24/Lm11bHRpU2hvdyAhPSBudWxsKSB7XG4gICAgICAgIGlmIChyZXNwb25zZUpzb24ubXVsdGlTaG93KSB7XG4gICAgICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgY3VzdG9tRXZlbnRzU3BvdENoZWNrczogcmVzcG9uc2VKc29uLnJlc3VsdGFudFNwb3RDaGVjayB9KTtcblxuICAgICAgICAgIGxldCBzZWxlY3RlZFNwb3RDaGVjayA9IHt9O1xuICAgICAgICAgIGxldCBtaW5EZWxheTogbnVtYmVyID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBzcG90Y2hlY2sgb2YgcmVzcG9uc2VKc29uLnJlc3VsdGFudFNwb3RDaGVjaykge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tzID0gc3BvdGNoZWNrPy5jaGVja3MgfHwge307XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2hlY2tzKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgbWluRGVsYXkgPSAwO1xuICAgICAgICAgICAgICBzZWxlY3RlZFNwb3RDaGVjayA9IHNwb3RjaGVjaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tzLmFmdGVyRGVsYXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBkZWxheSA9IHBhcnNlRmxvYXQoY2hlY2tzLmFmdGVyRGVsYXkpO1xuICAgICAgICAgICAgICBpZiAobWluRGVsYXkgPiBkZWxheSkge1xuICAgICAgICAgICAgICAgIG1pbkRlbGF5ID0gZGVsYXk7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRTcG90Q2hlY2sgPSBzcG90Y2hlY2s7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoc2VsZWN0ZWRTcG90Q2hlY2spLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGFmdGVyRGVsYXk6IG1pbkRlbGF5IH0pO1xuICAgICAgICAgICAgY29uc3QgYXBwZWFyYW5jZV9yZXNwb25zZSA9IGF3YWl0IHNldEFwcGVhcmFuY2UoXG4gICAgICAgICAgICAgIHNlbGVjdGVkU3BvdENoZWNrLFxuICAgICAgICAgICAgICBzY3JlZW4sXG4gICAgICAgICAgICAgIHN0YXRlLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICAgIHZhcmlhYmxlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChhcHBlYXJhbmNlX3Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZUpzb24/LnJlYXNvbi50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWNlaXZlZCBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiBlcnJvci5tZXNzYWdlIH07XG4gIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0IHNlbmRUcmFja0V2ZW50UmVxdWVzdCA9IGFzeW5jICh7IHNjcmVlbiwgZXZlbnQgfTogVHJhY2tFdmVudFByb3BzKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgaW50TWF4ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGNvbnN0IHN0YXRlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuZ2V0U3RhdGUoKTtcbiAgICBsZXQgc2VsZWN0ZWRTcG90Q2hlY2tJRCA9IGludE1heDtcbiAgICBsZXQgeyBpc1Nwb3RQYXNzZWQgfSA9IHN0YXRlO1xuICAgIGlmIChzdGF0ZS5jdXN0b21FdmVudHNTcG90Q2hlY2tzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV2ZW50S2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50KTtcbiAgICAgIGZvciAoY29uc3Qgc3BvdENoZWNrIG9mIHN0YXRlLmN1c3RvbUV2ZW50c1Nwb3RDaGVja3MpIHtcbiAgICAgICAgY29uc3QgY2hlY2tzID0gc3BvdENoZWNrPy5bJ2NoZWNrcyddID8/IHNwb3RDaGVjaz8uWydjaGVja0NvbmRpdGlvbiddO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IGNoZWNrcz8uY3VzdG9tRXZlbnQ7XG5cbiAgICAgICAgICBpZiAoZXZlbnRLZXlzLmluY2x1ZGVzKGN1c3RvbUV2ZW50Py5ldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFNwb3RDaGVja0lEID1cbiAgICAgICAgICAgICAgc3BvdENoZWNrPy5bJ2lkJ10gPz8gc3BvdENoZWNrPy5bJ3Nwb3RDaGVja0lkJ10gPz8gaW50TWF4O1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRTcG90Q2hlY2tJRCAhPT0gaW50TWF4KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgc2NyZWVuTmFtZTogc2NyZWVuLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogc3RhdGUudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIHVzZXJEZXRhaWxzOiBzdGF0ZS5zY3JlZW53aXNlVXNlckRldGFpbHNbc2NyZWVuXSB8fCB7fSxcbiAgICAgICAgICAgICAgICB2aXNpdG9yOiB7XG4gICAgICAgICAgICAgICAgICBkZXZpY2VUeXBlOiAnTU9CSUxFJyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGluZ1N5c3RlbTogYXdhaXQgZ2V0T1MoKSxcbiAgICAgICAgICAgICAgICAgIHNjcmVlblJlc29sdXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBjdXJyZW50RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgdGltZXpvbmU6IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNwb3RDaGVja0lkOiBzZWxlY3RlZFNwb3RDaGVja0lELFxuICAgICAgICAgICAgICAgIGV2ZW50VHJpZ2dlcjoge1xuICAgICAgICAgICAgICAgICAgY3VzdG9tRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHJhY2VJZDogc3RhdGUudHJhY2VJZCxcbiAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzOiBzdGF0ZS5jdXN0b21Qcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7c3RhdGUuZG9tYWluTmFtZX0vYXBpL2ludGVybmFsL3Nwb3RjaGVjay93aWRnZXQvJHtzdGF0ZS50YXJnZXRUb2tlbn0vZXZlbnRUcmlnZ2VyP2lzU3BvdENoZWNrPXRydWVgO1xuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PGFueT4odXJsLCBwYXlsb2FkLCB7XG4gICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZUpzb24gPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlSnNvbj8uc2hvdyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZUpzb24/LnNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBlYXJhbmNlX3Jlc3BvbnNlID0gYXdhaXQgc2V0QXBwZWFyYW5jZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSnNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUudmFyaWFibGVzXG4gICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBlYXJhbmNlX3Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKS5zZXRTdGF0ZSh7IGlzU3BvdFBhc3NlZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3BvdFBhc3NlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoIWlzU3BvdFBhc3NlZCAmJiByZXNwb25zZUpzb24/LmV2ZW50U2hvdykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VKc29uPy5jaGVja0NvbmRpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hlY2tDb25kaXRpb24gPSByZXNwb25zZUpzb24/LmNoZWNrQ29uZGl0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgIGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyRGVsYXk6IGNoZWNrQ29uZGl0aW9uPy5hZnRlckRlbGF5ID8/IDAsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tDb25kaXRpb24/LmN1c3RvbUV2ZW50ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEZWxheTogY2hlY2tDb25kaXRpb24/LmN1c3RvbUV2ZW50Py5kZWxheUluU2Vjb25kcyA/PyAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwZWFyYW5jZV9yZXNwb25zZSA9IGF3YWl0IHNldEFwcGVhcmFuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VKc29uLFxuICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbixcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5kb21haW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUudmFyaWFibGVzXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGVhcmFuY2VfcmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZUpzb24/LnJlYXNvbi50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWNlaXZlZCBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignJyk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogZXJyb3IubWVzc2FnZSB9O1xuICB9XG59OyJdfQ==
|