ng-prime-tools 1.0.70 → 1.0.71
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/esm2022/lib/pt-confirm-dialog/pt-confirm-dialog.component.mjs +136 -70
- package/esm2022/lib/pt-confirm-dialog/pt-confirm-dialog.module.mjs +6 -6
- package/fesm2022/ng-prime-tools.mjs +139 -71
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/pt-confirm-dialog/pt-confirm-dialog.component.d.ts +9 -22
- package/lib/pt-confirm-dialog/pt-confirm-dialog.component.d.ts.map +1 -1
- package/lib/pt-confirm-dialog/pt-confirm-dialog.module.d.ts +2 -3
- package/lib/pt-confirm-dialog/pt-confirm-dialog.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,26 @@
|
|
|
1
|
+
// src/app/shared/pt-confirm-dialog/pt-confirm-dialog.component.ts
|
|
1
2
|
import { Component, ContentChild, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { ConfirmationService
|
|
3
|
+
import { ConfirmationService } from 'primeng/api';
|
|
3
4
|
import { SeverityEnum } from '../enums';
|
|
4
|
-
// ✅ Import the form builder component type from your library
|
|
5
5
|
import { PTFormBuilderComponent } from '../pt-form-builder/pt-form-builder.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "primeng/api";
|
|
8
8
|
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "
|
|
11
|
-
/**
|
|
12
|
-
* Styles per severity
|
|
13
|
-
*/
|
|
9
|
+
import * as i3 from "primeng/confirmdialog";
|
|
10
|
+
import * as i4 from "../pt-button/pt-button.component";
|
|
14
11
|
const DIALOG_STYLES = {
|
|
15
12
|
[SeverityEnum.WARNING]: {
|
|
16
13
|
header: { text: 'Avertissement', color: '#8a4b00' },
|
|
17
14
|
},
|
|
18
|
-
[SeverityEnum.SUCCESS]: {
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
[SeverityEnum.SUCCESS]: {
|
|
16
|
+
header: { text: 'Succès', color: '#166534' },
|
|
17
|
+
},
|
|
18
|
+
[SeverityEnum.DANGER]: {
|
|
19
|
+
header: { text: 'Erreur', color: '#7f1d1d' },
|
|
20
|
+
},
|
|
21
|
+
[SeverityEnum.INFO]: {
|
|
22
|
+
header: { text: 'Information', color: '#2563eb' },
|
|
23
|
+
},
|
|
21
24
|
};
|
|
22
25
|
const DEFAULT_DIALOG_CONFIG = {
|
|
23
26
|
header: { text: 'Confirmation' },
|
|
@@ -30,70 +33,55 @@ const DEFAULT_DIALOG_CONFIG = {
|
|
|
30
33
|
dialogStyle: SeverityEnum.INFO,
|
|
31
34
|
};
|
|
32
35
|
export class PTConfirmDialogComponent {
|
|
33
|
-
constructor(confirmationService,
|
|
36
|
+
constructor(confirmationService, renderer) {
|
|
34
37
|
this.confirmationService = confirmationService;
|
|
35
|
-
this.messageService = messageService;
|
|
36
38
|
this.renderer = renderer;
|
|
37
|
-
this.el = el;
|
|
38
39
|
this.dialogConfig = { ...DEFAULT_DIALOG_CONFIG };
|
|
39
40
|
this.confirm = new EventEmitter();
|
|
40
41
|
this.cancel = new EventEmitter();
|
|
41
42
|
this.SeverityEnum = SeverityEnum;
|
|
42
43
|
}
|
|
43
44
|
ngAfterContentInit() {
|
|
44
|
-
// Nothing mandatory here
|
|
45
|
+
// Nothing mandatory here.
|
|
45
46
|
}
|
|
46
47
|
ngOnChanges(changes) {
|
|
47
|
-
if (changes['dialogConfig']) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
if (this.dialogConfig.visible) {
|
|
55
|
-
this.showDialog();
|
|
56
|
-
}
|
|
48
|
+
if (!changes['dialogConfig']) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.applyDialogStyle();
|
|
52
|
+
if (this.dialogConfig.visible) {
|
|
53
|
+
this.showDialog();
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
// ============================================================
|
|
60
|
-
// ✅ FORM / VALIDATION HELPERS
|
|
61
|
-
// ============================================================
|
|
62
56
|
getActiveForm() {
|
|
63
|
-
|
|
64
|
-
if (this.formGroup)
|
|
57
|
+
if (this.formGroup) {
|
|
65
58
|
return this.formGroup;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
}
|
|
60
|
+
const formBuilder = this.projectedFormBuilder;
|
|
61
|
+
if (formBuilder && formBuilder.form) {
|
|
62
|
+
return formBuilder.form;
|
|
63
|
+
}
|
|
69
64
|
return null;
|
|
70
65
|
}
|
|
71
|
-
/** Disable confirm if a form exists and is invalid */
|
|
72
66
|
isConfirmDisabled() {
|
|
73
67
|
const form = this.getActiveForm();
|
|
74
68
|
return !!form && form.invalid;
|
|
75
69
|
}
|
|
76
|
-
/** On confirm click: validate form and only then accept */
|
|
77
70
|
onConfirmClick(cd) {
|
|
78
71
|
const form = this.getActiveForm();
|
|
79
72
|
if (form) {
|
|
80
73
|
form.markAllAsTouched();
|
|
81
74
|
form.updateValueAndValidity({ emitEvent: true });
|
|
82
75
|
if (form.invalid) {
|
|
83
|
-
// ❌ Do not close the dialog
|
|
84
76
|
return;
|
|
85
77
|
}
|
|
86
78
|
}
|
|
87
|
-
// ✅ close + triggers ConfirmationService.accept callback
|
|
88
79
|
cd.accept();
|
|
89
80
|
}
|
|
90
|
-
// ============================================================
|
|
91
|
-
// ✅ CONFIG MERGE / STYLES
|
|
92
|
-
// ============================================================
|
|
93
81
|
applyDialogStyle() {
|
|
94
82
|
const dialogStyle = this.dialogConfig.dialogStyle || SeverityEnum.INFO;
|
|
95
83
|
const styleConfig = DIALOG_STYLES[dialogStyle] || {};
|
|
96
|
-
const current = this.dialogConfig;
|
|
84
|
+
const current = this.dialogConfig || {};
|
|
97
85
|
const mergedHeader = current.header !== undefined
|
|
98
86
|
? current.header
|
|
99
87
|
: styleConfig.header !== undefined
|
|
@@ -113,6 +101,8 @@ export class PTConfirmDialogComponent {
|
|
|
113
101
|
...current.cancelButtonConfig,
|
|
114
102
|
},
|
|
115
103
|
visible: current.visible,
|
|
104
|
+
width: current.width || DEFAULT_DIALOG_CONFIG.width,
|
|
105
|
+
height: current.height || DEFAULT_DIALOG_CONFIG.height,
|
|
116
106
|
};
|
|
117
107
|
}
|
|
118
108
|
getSeverityClass() {
|
|
@@ -143,9 +133,6 @@ export class PTConfirmDialogComponent {
|
|
|
143
133
|
return { header: '#2563eb', message: '#2563eb' };
|
|
144
134
|
}
|
|
145
135
|
}
|
|
146
|
-
// ============================================================
|
|
147
|
-
// ✅ BUTTON MODELS (disable confirm if invalid)
|
|
148
|
-
// ============================================================
|
|
149
136
|
get confirmButtonModel() {
|
|
150
137
|
const style = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
|
151
138
|
const confirmSeverity = style === SeverityEnum.DANGER
|
|
@@ -165,7 +152,6 @@ export class PTConfirmDialogComponent {
|
|
|
165
152
|
styleClass: (this.dialogConfig.confirmButtonConfig?.styleClass || '') +
|
|
166
153
|
' pt-confirm-dialog-confirm-btn',
|
|
167
154
|
width: 'auto',
|
|
168
|
-
// ✅ IMPORTANT
|
|
169
155
|
disabled: this.isConfirmDisabled(),
|
|
170
156
|
};
|
|
171
157
|
}
|
|
@@ -182,9 +168,6 @@ export class PTConfirmDialogComponent {
|
|
|
182
168
|
width: 'auto',
|
|
183
169
|
};
|
|
184
170
|
}
|
|
185
|
-
// ============================================================
|
|
186
|
-
// ✅ OPEN DIALOG
|
|
187
|
-
// ============================================================
|
|
188
171
|
showDialog() {
|
|
189
172
|
this.confirmationService.confirm({
|
|
190
173
|
header: '',
|
|
@@ -193,23 +176,99 @@ export class PTConfirmDialogComponent {
|
|
|
193
176
|
reject: (_type) => this.cancel.emit(),
|
|
194
177
|
});
|
|
195
178
|
setTimeout(() => {
|
|
196
|
-
const dialogElement =
|
|
197
|
-
if (dialogElement) {
|
|
198
|
-
|
|
199
|
-
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-danger');
|
|
200
|
-
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-warning');
|
|
201
|
-
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-success');
|
|
202
|
-
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-info');
|
|
203
|
-
const severityClass = this.getSeverityClass();
|
|
204
|
-
this.renderer.addClass(dialogElement, severityClass);
|
|
205
|
-
this.renderer.setStyle(dialogElement, 'width', this.dialogConfig.width || '720px');
|
|
206
|
-
this.renderer.setStyle(dialogElement, 'height', this.dialogConfig.height || 'auto');
|
|
179
|
+
const dialogElement = this.getLastConfirmDialogElement();
|
|
180
|
+
if (!dialogElement) {
|
|
181
|
+
return;
|
|
207
182
|
}
|
|
183
|
+
this.applyDialogRootStyles(dialogElement);
|
|
184
|
+
this.applyDialogInnerLayoutFixes(dialogElement);
|
|
208
185
|
}, 0);
|
|
209
186
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
187
|
+
getLastConfirmDialogElement() {
|
|
188
|
+
const dialogs = Array.from(document.querySelectorAll('.p-confirm-dialog'));
|
|
189
|
+
if (!dialogs.length) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
return dialogs[dialogs.length - 1];
|
|
193
|
+
}
|
|
194
|
+
applyDialogRootStyles(dialogElement) {
|
|
195
|
+
this.renderer.addClass(dialogElement, 'pt-confirm-dialog-overlay');
|
|
196
|
+
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-danger');
|
|
197
|
+
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-warning');
|
|
198
|
+
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-success');
|
|
199
|
+
this.renderer.removeClass(dialogElement, 'pt-confirm-dialog-info');
|
|
200
|
+
this.renderer.addClass(dialogElement, this.getSeverityClass());
|
|
201
|
+
this.renderer.setStyle(dialogElement, 'width', this.dialogConfig.width || '720px');
|
|
202
|
+
this.renderer.setStyle(dialogElement, 'max-width', '92vw');
|
|
203
|
+
this.renderer.setStyle(dialogElement, 'height', this.dialogConfig.height || 'auto');
|
|
204
|
+
this.renderer.setStyle(dialogElement, 'min-height', 'unset');
|
|
205
|
+
this.renderer.setStyle(dialogElement, 'max-height', 'none');
|
|
206
|
+
this.renderer.setStyle(dialogElement, 'display', 'block');
|
|
207
|
+
}
|
|
208
|
+
applyDialogInnerLayoutFixes(dialogElement) {
|
|
209
|
+
this.resetElementLayout(dialogElement.querySelector('.p-dialog-header'), {
|
|
210
|
+
display: 'none',
|
|
211
|
+
height: '0',
|
|
212
|
+
minHeight: '0',
|
|
213
|
+
padding: '0',
|
|
214
|
+
border: '0',
|
|
215
|
+
});
|
|
216
|
+
this.resetElementLayout(dialogElement.querySelector('.p-dialog-content'), {
|
|
217
|
+
display: 'block',
|
|
218
|
+
flex: 'unset',
|
|
219
|
+
flexGrow: '0',
|
|
220
|
+
flexShrink: '0',
|
|
221
|
+
flexBasis: 'auto',
|
|
222
|
+
height: 'auto',
|
|
223
|
+
minHeight: 'unset',
|
|
224
|
+
maxHeight: 'none',
|
|
225
|
+
overflow: 'visible',
|
|
226
|
+
padding: '0',
|
|
227
|
+
margin: '0',
|
|
228
|
+
background: 'transparent',
|
|
229
|
+
});
|
|
230
|
+
this.resetElementLayout(dialogElement.querySelector('.p-confirm-dialog-message'), {
|
|
231
|
+
display: 'block',
|
|
232
|
+
flex: 'unset',
|
|
233
|
+
height: 'auto',
|
|
234
|
+
minHeight: 'unset',
|
|
235
|
+
maxHeight: 'none',
|
|
236
|
+
margin: '0',
|
|
237
|
+
padding: '0',
|
|
238
|
+
width: '100%',
|
|
239
|
+
});
|
|
240
|
+
this.resetElementLayout(dialogElement.querySelector('.p-dialog-footer'), {
|
|
241
|
+
display: 'block',
|
|
242
|
+
flex: 'unset',
|
|
243
|
+
flexGrow: '0',
|
|
244
|
+
flexShrink: '0',
|
|
245
|
+
flexBasis: 'auto',
|
|
246
|
+
height: 'auto',
|
|
247
|
+
minHeight: 'unset',
|
|
248
|
+
maxHeight: 'none',
|
|
249
|
+
margin: '0',
|
|
250
|
+
});
|
|
251
|
+
this.resetElementLayout(dialogElement.querySelector('.pt-confirm-dialog-card'), {
|
|
252
|
+
width: '100%',
|
|
253
|
+
height: 'auto',
|
|
254
|
+
minHeight: 'unset',
|
|
255
|
+
maxHeight: 'none',
|
|
256
|
+
});
|
|
257
|
+
this.resetElementLayout(dialogElement.querySelector('.pt-confirm-dialog-card-top'), {
|
|
258
|
+
height: 'auto',
|
|
259
|
+
minHeight: 'unset',
|
|
260
|
+
maxHeight: 'none',
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
resetElementLayout(element, styles) {
|
|
264
|
+
if (!element) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const htmlElement = element;
|
|
268
|
+
Object.entries(styles).forEach(([property, value]) => {
|
|
269
|
+
this.renderer.setStyle(htmlElement, property, value);
|
|
270
|
+
});
|
|
271
|
+
}
|
|
213
272
|
getDialogHeaderText() {
|
|
214
273
|
const header = this.dialogConfig.header;
|
|
215
274
|
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
|
@@ -230,7 +289,11 @@ export class PTConfirmDialogComponent {
|
|
|
230
289
|
const fontSize = typeof header === 'object' && header !== null && header.fontSize
|
|
231
290
|
? header.fontSize
|
|
232
291
|
: '20px';
|
|
233
|
-
return {
|
|
292
|
+
return {
|
|
293
|
+
color,
|
|
294
|
+
fontSize,
|
|
295
|
+
fontWeight: 700,
|
|
296
|
+
};
|
|
234
297
|
}
|
|
235
298
|
getDialogIconClass() {
|
|
236
299
|
const header = this.dialogConfig.header;
|
|
@@ -260,8 +323,9 @@ export class PTConfirmDialogComponent {
|
|
|
260
323
|
}
|
|
261
324
|
getDialogContentText() {
|
|
262
325
|
const content = this.dialogConfig.content;
|
|
263
|
-
if (typeof content === 'string')
|
|
326
|
+
if (typeof content === 'string') {
|
|
264
327
|
return content;
|
|
328
|
+
}
|
|
265
329
|
if (content && typeof content === 'object' && 'text' in content) {
|
|
266
330
|
return content.text ?? '';
|
|
267
331
|
}
|
|
@@ -273,10 +337,12 @@ export class PTConfirmDialogComponent {
|
|
|
273
337
|
let fontSize = '18px';
|
|
274
338
|
let textAlign;
|
|
275
339
|
if (typeof content === 'object' && content !== null) {
|
|
276
|
-
if (content.fontSize)
|
|
340
|
+
if (content.fontSize) {
|
|
277
341
|
fontSize = content.fontSize;
|
|
278
|
-
|
|
342
|
+
}
|
|
343
|
+
if (content.position) {
|
|
279
344
|
textAlign = content.position;
|
|
345
|
+
}
|
|
280
346
|
}
|
|
281
347
|
return {
|
|
282
348
|
color: message,
|
|
@@ -284,13 +350,13 @@ export class PTConfirmDialogComponent {
|
|
|
284
350
|
...(textAlign ? { textAlign } : {}),
|
|
285
351
|
};
|
|
286
352
|
}
|
|
287
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogComponent, deps: [{ token: i1.ConfirmationService }, { token:
|
|
288
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTConfirmDialogComponent, selector: "pt-confirm-dialog", inputs: { dialogConfig: "dialogConfig", formGroup: "formGroup" }, outputs: { confirm: "confirm", cancel: "cancel" }, providers: [ConfirmationService
|
|
353
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogComponent, deps: [{ token: i1.ConfirmationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
354
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTConfirmDialogComponent, selector: "pt-confirm-dialog", inputs: { dialogConfig: "dialogConfig", formGroup: "formGroup" }, outputs: { confirm: "confirm", cancel: "cancel" }, providers: [ConfirmationService], queries: [{ propertyName: "dialogBodyTpl", first: true, predicate: ["dialogBody"], descendants: true }, { propertyName: "projectedFormBuilder", first: true, predicate: PTFormBuilderComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- src/app/shared/pt-confirm-dialog/pt-confirm-dialog.component.html -->\n\n<div class=\"pt-confirm-dialog\">\n <p-confirmDialog #cd>\n <ng-template pTemplate=\"header\"></ng-template>\n\n <ng-template pTemplate=\"message\">\n <div class=\"pt-confirm-dialog-card\">\n <div class=\"pt-confirm-dialog-card-top\">\n <div class=\"pt-confirm-dialog-icon-wrapper\">\n <i\n class=\"pt-confirm-dialog-icon\"\n [class]=\"getDialogIconClass()\"\n [ngStyle]=\"getDialogIconStyle()\"\n ></i>\n </div>\n\n <div class=\"pt-confirm-dialog-text-wrapper\">\n <div\n class=\"pt-confirm-dialog-title\"\n [ngStyle]=\"getDialogHeaderStyle()\"\n >\n {{ getDialogHeaderText() }}\n </div>\n\n <ng-container\n *ngIf=\"dialogBodyTpl; else defaultBody\"\n [ngTemplateOutlet]=\"dialogBodyTpl\"\n ></ng-container>\n\n <ng-template #defaultBody>\n <div\n class=\"pt-confirm-dialog-message\"\n [ngStyle]=\"getDialogContentStyle()\"\n >\n {{ getDialogContentText() }}\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"pt-confirm-dialog-footer-buttons\">\n <pt-button\n *ngIf=\"dialogConfig.cancelButtonConfig\"\n [buttonConfig]=\"cancelButtonModel\"\n (click)=\"cd.reject()\"\n ></pt-button>\n\n <pt-button\n *ngIf=\"dialogConfig.confirmButtonConfig\"\n [buttonConfig]=\"confirmButtonModel\"\n (click)=\"onConfirmClick(cd)\"\n ></pt-button>\n </div>\n </ng-template>\n </p-confirmDialog>\n</div>\n", styles: ["::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay{width:520px;max-width:92vw;height:auto!important;min-height:unset!important;max-height:none!important;display:block!important;border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-header{display:none!important;padding:0!important;border:0!important;height:0!important;min-height:0!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-content{display:block!important;flex:unset!important;flex-grow:0!important;flex-shrink:0!important;flex-basis:auto!important;height:auto!important;min-height:unset!important;max-height:none!important;padding:0!important;margin:0!important;overflow:visible!important;background:transparent!important;border-top-left-radius:18px;border-top-right-radius:18px}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-confirm-dialog-message{display:block!important;flex:unset!important;height:auto!important;min-height:unset!important;max-height:none!important;margin:0!important;padding:0!important;width:100%!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-footer{display:block!important;flex:unset!important;flex-grow:0!important;flex-shrink:0!important;flex-basis:auto!important;height:auto!important;min-height:unset!important;max-height:none!important;background:#fff;border-top:1px solid rgba(148,163,184,.25);padding:16px 32px 22px!important;margin:0!important}.pt-confirm-dialog-card{width:100%;height:auto!important;min-height:unset!important;max-height:none!important;border-radius:18px 18px 0 0;overflow:hidden}.pt-confirm-dialog-card-top{height:auto!important;min-height:unset!important;max-height:none!important;padding:28px 40px;display:flex;align-items:flex-start}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .pt-confirm-dialog-card{background-color:#fde4e4}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .pt-confirm-dialog-card{background-color:#fff4d1}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .pt-confirm-dialog-card{background-color:#dcfce7}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .pt-confirm-dialog-card{background-color:#e0f2fe}.pt-confirm-dialog-icon-wrapper{width:60px;height:60px;min-width:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:18px;box-sizing:border-box}.pt-confirm-dialog-icon{font-size:30px;line-height:1;color:#b91c1c}.pt-confirm-dialog-text-wrapper{flex:1;min-width:0}.pt-confirm-dialog-title{font-size:22px;font-weight:700;margin-bottom:8px;color:#b91c1c}.pt-confirm-dialog-message{font-size:18px;line-height:1.5;color:#4b5563;margin:0}.pt-confirm-dialog-footer-buttons{display:flex;justify-content:center;align-items:center;gap:16px}::ng-deep .p-confirm-dialog .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}::ng-deep .p-confirm-dialog .p-dialog-footer .p-button i.pi{margin-right:.5rem}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .p-dialog-footer .p-button{background:#fff!important;border-color:#dc2626!important;color:#dc2626!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .p-dialog-footer .p-button:hover{background:#fef2f2!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .p-dialog-footer .p-button{background:#fff!important;border-color:#d97706!important;color:#b45309!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .p-dialog-footer .p-button:hover{background:#fffbeb!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .p-dialog-footer .p-button{background:#fff!important;border-color:#16a34a!important;color:#15803d!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .p-dialog-footer .p-button:hover{background:#f0fdf4!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .p-dialog-footer .p-button{background:#fff!important;border-color:#2563eb!important;color:#2563eb!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .p-dialog-footer .p-button:hover{background:#eff6ff!important}@media (max-width: 768px){::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay{width:calc(100vw - 2rem)!important;max-width:calc(100vw - 2rem)!important}.pt-confirm-dialog-card-top{padding:24px}.pt-confirm-dialog-icon-wrapper{width:48px;height:48px;min-width:48px;margin-right:14px}.pt-confirm-dialog-title{font-size:19px}.pt-confirm-dialog-message{font-size:16px}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-footer{padding:14px 20px 18px!important}.pt-confirm-dialog-footer-buttons{gap:10px;flex-wrap:wrap}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PTButtonComponent, selector: "pt-button", inputs: ["buttonConfig"] }] }); }
|
|
289
355
|
}
|
|
290
356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogComponent, decorators: [{
|
|
291
357
|
type: Component,
|
|
292
|
-
args: [{ selector: 'pt-confirm-dialog', providers: [ConfirmationService
|
|
293
|
-
}], ctorParameters: () => [{ type: i1.ConfirmationService }, { type:
|
|
358
|
+
args: [{ selector: 'pt-confirm-dialog', providers: [ConfirmationService], template: "<!-- src/app/shared/pt-confirm-dialog/pt-confirm-dialog.component.html -->\n\n<div class=\"pt-confirm-dialog\">\n <p-confirmDialog #cd>\n <ng-template pTemplate=\"header\"></ng-template>\n\n <ng-template pTemplate=\"message\">\n <div class=\"pt-confirm-dialog-card\">\n <div class=\"pt-confirm-dialog-card-top\">\n <div class=\"pt-confirm-dialog-icon-wrapper\">\n <i\n class=\"pt-confirm-dialog-icon\"\n [class]=\"getDialogIconClass()\"\n [ngStyle]=\"getDialogIconStyle()\"\n ></i>\n </div>\n\n <div class=\"pt-confirm-dialog-text-wrapper\">\n <div\n class=\"pt-confirm-dialog-title\"\n [ngStyle]=\"getDialogHeaderStyle()\"\n >\n {{ getDialogHeaderText() }}\n </div>\n\n <ng-container\n *ngIf=\"dialogBodyTpl; else defaultBody\"\n [ngTemplateOutlet]=\"dialogBodyTpl\"\n ></ng-container>\n\n <ng-template #defaultBody>\n <div\n class=\"pt-confirm-dialog-message\"\n [ngStyle]=\"getDialogContentStyle()\"\n >\n {{ getDialogContentText() }}\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"pt-confirm-dialog-footer-buttons\">\n <pt-button\n *ngIf=\"dialogConfig.cancelButtonConfig\"\n [buttonConfig]=\"cancelButtonModel\"\n (click)=\"cd.reject()\"\n ></pt-button>\n\n <pt-button\n *ngIf=\"dialogConfig.confirmButtonConfig\"\n [buttonConfig]=\"confirmButtonModel\"\n (click)=\"onConfirmClick(cd)\"\n ></pt-button>\n </div>\n </ng-template>\n </p-confirmDialog>\n</div>\n", styles: ["::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay{width:520px;max-width:92vw;height:auto!important;min-height:unset!important;max-height:none!important;display:block!important;border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-header{display:none!important;padding:0!important;border:0!important;height:0!important;min-height:0!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-content{display:block!important;flex:unset!important;flex-grow:0!important;flex-shrink:0!important;flex-basis:auto!important;height:auto!important;min-height:unset!important;max-height:none!important;padding:0!important;margin:0!important;overflow:visible!important;background:transparent!important;border-top-left-radius:18px;border-top-right-radius:18px}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-confirm-dialog-message{display:block!important;flex:unset!important;height:auto!important;min-height:unset!important;max-height:none!important;margin:0!important;padding:0!important;width:100%!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-footer{display:block!important;flex:unset!important;flex-grow:0!important;flex-shrink:0!important;flex-basis:auto!important;height:auto!important;min-height:unset!important;max-height:none!important;background:#fff;border-top:1px solid rgba(148,163,184,.25);padding:16px 32px 22px!important;margin:0!important}.pt-confirm-dialog-card{width:100%;height:auto!important;min-height:unset!important;max-height:none!important;border-radius:18px 18px 0 0;overflow:hidden}.pt-confirm-dialog-card-top{height:auto!important;min-height:unset!important;max-height:none!important;padding:28px 40px;display:flex;align-items:flex-start}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .pt-confirm-dialog-card{background-color:#fde4e4}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .pt-confirm-dialog-card{background-color:#fff4d1}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .pt-confirm-dialog-card{background-color:#dcfce7}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .pt-confirm-dialog-card{background-color:#e0f2fe}.pt-confirm-dialog-icon-wrapper{width:60px;height:60px;min-width:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:18px;box-sizing:border-box}.pt-confirm-dialog-icon{font-size:30px;line-height:1;color:#b91c1c}.pt-confirm-dialog-text-wrapper{flex:1;min-width:0}.pt-confirm-dialog-title{font-size:22px;font-weight:700;margin-bottom:8px;color:#b91c1c}.pt-confirm-dialog-message{font-size:18px;line-height:1.5;color:#4b5563;margin:0}.pt-confirm-dialog-footer-buttons{display:flex;justify-content:center;align-items:center;gap:16px}::ng-deep .p-confirm-dialog .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}::ng-deep .p-confirm-dialog .p-dialog-footer .p-button i.pi{margin-right:.5rem}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .p-dialog-footer .p-button{background:#fff!important;border-color:#dc2626!important;color:#dc2626!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-danger .p-dialog-footer .p-button:hover{background:#fef2f2!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .p-dialog-footer .p-button{background:#fff!important;border-color:#d97706!important;color:#b45309!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-warning .p-dialog-footer .p-button:hover{background:#fffbeb!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .p-dialog-footer .p-button{background:#fff!important;border-color:#16a34a!important;color:#15803d!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-success .p-dialog-footer .p-button:hover{background:#f0fdf4!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .p-dialog-footer .p-button{background:#fff!important;border-color:#2563eb!important;color:#2563eb!important}::ng-deep .p-confirm-dialog.pt-confirm-dialog-info .p-dialog-footer .p-button:hover{background:#eff6ff!important}@media (max-width: 768px){::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay{width:calc(100vw - 2rem)!important;max-width:calc(100vw - 2rem)!important}.pt-confirm-dialog-card-top{padding:24px}.pt-confirm-dialog-icon-wrapper{width:48px;height:48px;min-width:48px;margin-right:14px}.pt-confirm-dialog-title{font-size:19px}.pt-confirm-dialog-message{font-size:16px}::ng-deep .p-confirm-dialog.pt-confirm-dialog-overlay .p-dialog-footer{padding:14px 20px 18px!important}.pt-confirm-dialog-footer-buttons{gap:10px;flex-wrap:wrap}}\n"] }]
|
|
359
|
+
}], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i0.Renderer2 }], propDecorators: { dialogConfig: [{
|
|
294
360
|
type: Input
|
|
295
361
|
}], formGroup: [{
|
|
296
362
|
type: Input
|
|
@@ -305,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
305
371
|
type: ContentChild,
|
|
306
372
|
args: [PTFormBuilderComponent]
|
|
307
373
|
}] } });
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1jb25maXJtLWRpYWxvZy9wdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNvbmZpcm0tZGlhbG9nL3B0LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBTXJCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBeUQ7SUFDMUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQ3BEO0lBQ0QsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtJQUN4RSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQ3ZFLENBQUMsWUFBWSxDQUFDLElB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SyxFQUFFLE9BQU87WUFDZCxRQUFRO1lBQ1IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3BDLENBQUM7SUFDSixDQUFDOytHQTlVVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixpS0FGeEIsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsMEtBeUJsQyxzQkFBc0IscUVDaEZ0Qyx3OURBNkRBOzs0RkRKYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO3NLQUd2QyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBUXFCLGFBQWE7c0JBQXhDLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maXJtYXRpb25TZXJ2aWNlLFxuICBDb25maXJtRXZlbnRUeXBlLFxuICBNZXNzYWdlU2VydmljZSxcbn0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQVENvbmZpcm1EaWFsb2dDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvcHQtY29uZmlybS1kaWFsb2ctY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2J1dHRvbi5tb2RlbCc7XG5pbXBvcnQgeyBJY29uU3R5bGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgU2V2ZXJpdHlFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuXG4vLyDinIUgSW1wb3J0IHRoZSBmb3JtIGJ1aWxkZXIgY29tcG9uZW50IHR5cGUgZnJvbSB5b3VyIGxpYnJhcnlcbmltcG9ydCB7IFBURm9ybUJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuLi9wdC1mb3JtLWJ1aWxkZXIvcHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogU3R5bGVzIHBlciBzZXZlcml0eVxuICovXG5jb25zdCBESUFMT0dfU1RZTEVTOiBSZWNvcmQ8U2V2ZXJpdHlFbnVtLCBQYXJ0aWFsPFBUQ29uZmlybURpYWxvZ0NvbmZpZz4+ID0ge1xuICBbU2V2ZXJpdHlFbnVtLldBUk5JTkddOiB7XG4gICAgaGVhZGVyOiB7IHRleHQ6ICdBdmVydGlzc2VtZW50JywgY29sb3I6ICcjOGE0YjAwJyB9LFxuICB9LFxuICBbU2V2ZXJpdHlFbnVtLlNVQ0NFU1NdOiB7IGhlYWRlcjogeyB0ZXh0OiAnU3VjY8OocycsIGNvbG9yOiAnIzE2NjUzNCcgfSB9LFxuICBbU2V2ZXJpdHlFbnVtLkRBTkdFUl06IHsgaGVhZGVyOiB7IHRleHQ6ICdFcnJldXInLCBjb2xvcjogJyM3ZjFkMWQnIH0gfSxcbiAgW1NldmVyaXR5RW51bS5JTkZPXTogeyBoZWFkZXI6IHsgdGV4dDogJ0luZm9ybWF0aW9uJywgY29sb3I6ICcjMjU2M2ViJyB9IH0sXG59O1xuXG5jb25zdCBERUZBVUxUX0RJQUxPR19DT05GSUc6IFBUQ29uZmlybURpYWxvZ0NvbmZpZyA9IHtcbiAgaGVhZGVyOiB7IHRleHQ6ICdDb25maXJtYXRpb24nIH0sXG4gIHZpc2libGU6IGZhbHNlLFxuICB3aWR0aDogJzcyMHB4JyxcbiAgaGVpZ2h0OiAnYXV0bycsXG4gIGNvbnRlbnQ6ICcnLFxuICBjb25maXJtQnV0dG9uQ29uZmlnOiB7IGxhYmVsOiAnQ29uZmlybWVyJyB9LFxuICBjYW5jZWxCdXR0b25Db25maWc6IHsgbGFiZWw6ICdBbm51bGVyJyB9LFxuICBkaWFsb2dTdHlsZTogU2V2ZXJpdHlFbnVtLklORk8sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1jb25maXJtLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBQVENvbmZpcm1EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBkaWFsb2dDb25maWc6IFBUQ29uZmlybURpYWxvZ0NvbmZpZyA9IHsgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHIH07XG5cbiAgLyoqXG4gICAqIOKchSBPcHRpb25hbDogaWYgdGhlIHBhcmVudCBwcmVmZXJzIHRvIHBhc3MgYSBGb3JtR3JvdXAgZGlyZWN0bHlcbiAgICogKGluc3RlYWQgb2YgcHJvamVjdGluZyBwdC1mb3JtLWJ1aWxkZXIpLlxuICAgKi9cbiAgQElucHV0KCkgZm9ybUdyb3VwPzogRm9ybUdyb3VwIHwgbnVsbDtcblxuICBAT3V0cHV0KCkgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICog4pyFIEN1c3RvbSBib2R5IHByb2plY3Rpb246XG4gICAqIDxwdC1jb25maXJtLWRpYWxvZz5cbiAgICogICA8bmctdGVtcGxhdGUgI2RpYWxvZ0JvZHk+Li4uPC9uZy10ZW1wbGF0ZT5cbiAgICogPC9wdC1jb25maXJtLWRpYWxvZz5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ2RpYWxvZ0JvZHknKSBkaWFsb2dCb2R5VHBsPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog4pyFIEF1dG8tZGV0ZWN0IGEgcHJvamVjdGVkIHB0LWZvcm0tYnVpbGRlclxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChQVEZvcm1CdWlsZGVyQ29tcG9uZW50KVxuICBwcm9qZWN0ZWRGb3JtQnVpbGRlcj86IFBURm9ybUJ1aWxkZXJDb21wb25lbnQ7XG5cbiAgU2V2ZXJpdHlFbnVtID0gU2V2ZXJpdHlFbnVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBOb3RoaW5nIG1hbmRhdG9yeSBoZXJlOyB3ZSBqdXN0IHJlbHkgb24gZ2V0QWN0aXZlRm9ybSgpIGR5bmFtaWNhbGx5LlxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkaWFsb2dDb25maWcnXSkge1xuICAgICAgY29uc3QgY3VycmVudCA9IGNoYW5nZXNbJ2RpYWxvZ0NvbmZpZyddXG4gICAgICAgIC5jdXJyZW50VmFsdWUgYXMgUFRDb25maXJtRGlhbG9nQ29uZmlnO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGNoYW5nZXNbJ2RpYWxvZ0NvbmZpZyddLnByZXZpb3VzVmFsdWU/LmRpYWxvZ1N0eWxlICE9PVxuICAgICAgICBjdXJyZW50Py5kaWFsb2dTdHlsZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuYXBwbHlEaWFsb2dTdHlsZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcudmlzaWJsZSkge1xuICAgICAgICB0aGlzLnNob3dEaWFsb2coKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g4pyFIEZPUk0gLyBWQUxJREFUSU9OIEhFTFBFUlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHByaXZhdGUgZ2V0QWN0aXZlRm9ybSgpOiBGb3JtR3JvdXAgfCBudWxsIHtcbiAgICAvLyBQcmlvcml0eTogZXhwbGljaXQgaW5wdXQgZm9ybUdyb3VwID4gcHJvamVjdGVkIHB0LWZvcm0tYnVpbGRlciBmb3JtXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSByZXR1cm4gdGhpcy5mb3JtR3JvdXA7XG5cbiAgICBjb25zdCBmYiA9IHRoaXMucHJvamVjdGVkRm9ybUJ1aWxkZXI7XG4gICAgaWYgKGZiICYmIGZiLmZvcm0pIHJldHVybiBmYi5mb3JtO1xuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogRGlzYWJsZSBjb25maXJtIGlmIGEgZm9ybSBleGlzdHMgYW5kIGlzIGludmFsaWQgKi9cbiAgcHJpdmF0ZSBpc0NvbmZpcm1EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5nZXRBY3RpdmVGb3JtKCk7XG4gICAgcmV0dXJuICEhZm9ybSAmJiBmb3JtLmludmFsaWQ7XG4gIH1cblxuICAvKiogT24gY29uZmlybSBjbGljazogdmFsaWRhdGUgZm9ybSBhbmQgb25seSB0aGVuIGFjY2VwdCAqL1xuICBvbkNvbmZpcm1DbGljayhjZDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZ2V0QWN0aXZlRm9ybSgpO1xuXG4gICAgaWYgKGZvcm0pIHtcbiAgICAgIGZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xuXG4gICAgICBpZiAoZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgIC8vIOKdjCBEbyBub3QgY2xvc2UgdGhlIGRpYWxvZ1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g4pyFIGNsb3NlICsgdHJpZ2dlcnMgQ29uZmlybWF0aW9uU2VydmljZS5hY2NlcHQgY2FsbGJhY2tcbiAgICBjZC5hY2NlcHQoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDinIUgQ09ORklHIE1FUkdFIC8gU1RZTEVTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBwcml2YXRlIGFwcGx5RGlhbG9nU3R5bGUoKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nU3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSB8fCBTZXZlcml0eUVudW0uSU5GTztcbiAgICBjb25zdCBzdHlsZUNvbmZpZyA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdIHx8IHt9O1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmRpYWxvZ0NvbmZpZztcblxuICAgIGNvbnN0IG1lcmdlZEhlYWRlciA9XG4gICAgICBjdXJyZW50LmhlYWRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY3VycmVudC5oZWFkZXJcbiAgICAgICAgOiBzdHlsZUNvbmZpZy5oZWFkZXIgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gc3R5bGVDb25maWcuaGVhZGVyXG4gICAgICAgICAgOiBERUZBVUxUX0RJQUxPR19DT05GSUcuaGVhZGVyO1xuXG4gICAgdGhpcy5kaWFsb2dDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcsXG4gICAgICAuLi5jdXJyZW50LFxuICAgICAgLi4uc3R5bGVDb25maWcsXG4gICAgICBoZWFkZXI6IG1lcmdlZEhlYWRlcixcbiAgICAgIGNvbmZpcm1CdXR0b25Db25maWc6IHtcbiAgICAgICAgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLmNvbmZpcm1CdXR0b25Db25maWcsXG4gICAgICAgIC4uLmN1cnJlbnQuY29uZmlybUJ1dHRvbkNvbmZpZyxcbiAgICAgIH0sXG4gICAgICBjYW5jZWxCdXR0b25Db25maWc6IHtcbiAgICAgICAgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLmNhbmNlbEJ1dHRvbkNvbmZpZyxcbiAgICAgICAgLi4uY3VycmVudC5jYW5jZWxCdXR0b25Db25maWcsXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogY3VycmVudC52aXNpYmxlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFNldmVyaXR5Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRpYWxvZ1N0eWxlID8/IFNldmVyaXR5RW51bS5JTkZPO1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLkRBTkdFUjpcbiAgICAgICAgcmV0dXJuICdwdC1jb25maXJtLWRpYWxvZy1kYW5nZXInO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uV0FSTklORzpcbiAgICAgICAgcmV0dXJuICdwdC1jb25maXJtLWRpYWxvZy13YXJuaW5nJztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiAncHQtY29uZmlybS1kaWFsb2ctc3VjY2Vzcyc7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5JTkZPOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdwdC1jb25maXJtLWRpYWxvZy1pbmZvJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNldmVyaXR5Q29sb3JzKCk6IHsgaGVhZGVyOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9IHtcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRpYWxvZ1N0eWxlID8/IFNldmVyaXR5RW51bS5JTkZPO1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLkRBTkdFUjpcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVyOiAnI2I5MWMxYycsIG1lc3NhZ2U6ICcjNGI1NTYzJyB9O1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uV0FSTklORzpcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVyOiAnI2I0NTMwOScsIG1lc3NhZ2U6ICcjOTI0MDBlJyB9O1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uU1VDQ0VTUzpcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVyOiAnIzE1ODAzZCcsIG1lc3NhZ2U6ICcjMTY2NTM0JyB9O1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uSU5GTzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IGhlYWRlcjogJyMyNTYzZWInLCBtZXNzYWdlOiAnIzI1NjNlYicgfTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g4pyFIEJVVFRPTiBNT0RFTFMgKGRpc2FibGUgY29uZmlybSBpZiBpbnZhbGlkKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgZ2V0IGNvbmZpcm1CdXR0b25Nb2RlbCgpOiBCdXR0b25Nb2RlbCB7XG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTztcblxuICAgIGNvbnN0IGNvbmZpcm1TZXZlcml0eSA9XG4gICAgICBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLkRBTkdFUlxuICAgICAgICA/IFNldmVyaXR5RW51bS5EQU5HRVJcbiAgICAgICAgOiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLldBUk5JTkdcbiAgICAgICAgICA/IFNldmVyaXR5RW51bS5XQVJOSU5HXG4gICAgICAgICAgOiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLlNVQ0NFU1NcbiAgICAgICAgICAgID8gU2V2ZXJpdHlFbnVtLlNVQ0NFU1NcbiAgICAgICAgICAgIDogU2V2ZXJpdHlFbnVtLklORk87XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ29uZmlnLmNvbmZpcm1CdXR0b25Db25maWc/LmxhYmVsID8/ICdDb25maXJtZXInLFxuICAgICAgaWNvbjogdGhpcy5kaWFsb2dDb25maWcuY29uZmlybUJ1dHRvbkNvbmZpZz8uaWNvbiA/PyAncGkgcGktY2hlY2snLFxuICAgICAgaWNvblBvczogJ2xlZnQnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBvdXRsaW5lZDogdHJ1ZSxcbiAgICAgIHNldmVyaXR5OiBjb25maXJtU2V2ZXJpdHksXG4gICAgICBzdHlsZUNsYXNzOlxuICAgICAgICAodGhpcy5kaWFsb2dDb25maWcuY29uZmlybUJ1dHRvbkNvbmZpZz8uc3R5bGVDbGFzcyB8fCAnJykgK1xuICAgICAgICAnIHB0LWNvbmZpcm0tZGlhbG9nLWNvbmZpcm0tYnRuJyxcbiAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAvLyDinIUgSU1QT1JUQU5UXG4gICAgICBkaXNhYmxlZDogdGhpcy5pc0NvbmZpcm1EaXNhYmxlZCgpLFxuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgZ2V0IGNhbmNlbEJ1dHRvbk1vZGVsKCk6IEJ1dHRvbk1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZz8ubGFiZWwgPz8gJ0FubnVsZXInLFxuICAgICAgaWNvbjogdGhpcy5kaWFsb2dDb25maWcuY2FuY2VsQnV0dG9uQ29uZmlnPy5pY29uID8/ICdwaSBwaS10aW1lcycsXG4gICAgICBpY29uUG9zOiAnbGVmdCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIG91dGxpbmVkOiB0cnVlLFxuICAgICAgc2V2ZXJpdHk6IFNldmVyaXR5RW51bS5JTkZPLFxuICAgICAgc3R5bGVDbGFzczpcbiAgICAgICAgKHRoaXMuZGlhbG9nQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZz8uc3R5bGVDbGFzcyB8fCAnJykgK1xuICAgICAgICAnIHB0LWNvbmZpcm0tZGlhbG9nLWNhbmNlbC1idG4nLFxuICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIOKchSBPUEVOIERJQUxPR1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgc2hvd0RpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICBoZWFkZXI6ICcnLFxuICAgICAgbWVzc2FnZTogdGhpcy5nZXREaWFsb2dDb250ZW50VGV4dCgpIHx8ICcgJyxcbiAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5jb25maXJtLmVtaXQoKSxcbiAgICAgIHJlamVjdDogKF90eXBlOiBDb25maXJtRXZlbnRUeXBlKSA9PiB0aGlzLmNhbmNlbC5lbWl0KCksXG4gICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnAtY29uZmlybS1kaWFsb2cnLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgIGlmIChkaWFsb2dFbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZGlhbG9nRWxlbWVudCwgJ3B0LWNvbmZpcm0tZGlhbG9nLW92ZXJsYXknKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRpYWxvZ0VsZW1lbnQsICdwdC1jb25maXJtLWRpYWxvZy1kYW5nZXInKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkaWFsb2dFbGVtZW50LCAncHQtY29uZmlybS1kaWFsb2ctd2FybmluZycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRpYWxvZ0VsZW1lbnQsICdwdC1jb25maXJtLWRpYWxvZy1zdWNjZXNzJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZGlhbG9nRWxlbWVudCwgJ3B0LWNvbmZpcm0tZGlhbG9nLWluZm8nKTtcblxuICAgICAgICBjb25zdCBzZXZlcml0eUNsYXNzID0gdGhpcy5nZXRTZXZlcml0eUNsYXNzKCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZGlhbG9nRWxlbWVudCwgc2V2ZXJpdHlDbGFzcyk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBkaWFsb2dFbGVtZW50LFxuICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgdGhpcy5kaWFsb2dDb25maWcud2lkdGggfHwgJzcyMHB4JyxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBkaWFsb2dFbGVtZW50LFxuICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLmhlaWdodCB8fCAnYXV0bycsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g4pyFIEhFQURFUiAvIElDT04gLyBDT05URU5UIFRFWFRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIGdldERpYWxvZ0hlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmRpYWxvZ0NvbmZpZy5oZWFkZXI7XG4gICAgY29uc3QgZGlhbG9nU3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTztcbiAgICBjb25zdCBzdHlsZUhlYWRlciA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdPy5oZWFkZXI7XG5cbiAgICByZXR1cm4gdHlwZW9mIGhlYWRlciA9PT0gJ29iamVjdCcgJiYgaGVhZGVyICE9PSBudWxsICYmICd0ZXh0JyBpbiBoZWFkZXJcbiAgICAgID8gKGhlYWRlciBhcyBhbnkpLnRleHRcbiAgICAgIDogdHlwZW9mIGhlYWRlciA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBoZWFkZXJcbiAgICAgICAgOiB0eXBlb2Ygc3R5bGVIZWFkZXIgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICBzdHlsZUhlYWRlciAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgJ3RleHQnIGluIHN0eWxlSGVhZGVyXG4gICAgICAgICAgPyAoc3R5bGVIZWFkZXIgYXMgYW55KS50ZXh0XG4gICAgICAgICAgOiAnQ29uZmlybWF0aW9uJztcbiAgfVxuXG4gIGdldERpYWxvZ0hlYWRlclN0eWxlKCk6IGFueSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyO1xuICAgIGNvbnN0IHsgaGVhZGVyOiBjb2xvciB9ID0gdGhpcy5nZXRTZXZlcml0eUNvbG9ycygpO1xuXG4gICAgY29uc3QgZm9udFNpemUgPVxuICAgICAgdHlwZW9mIGhlYWRlciA9PT0gJ29iamVjdCcgJiYgaGVhZGVyICE9PSBudWxsICYmIChoZWFkZXIgYXMgYW55KS5mb250U2l6ZVxuICAgICAgICA/IChoZWFkZXIgYXMgYW55KS5mb250U2l6ZVxuICAgICAgICA6ICcyMHB4JztcblxuICAgIHJldHVybiB7IGNvbG9yLCBmb250U2l6ZSwgZm9udFdlaWdodDogNzAwIH07XG4gIH1cblxuICBnZXREaWFsb2dJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmRpYWxvZ0NvbmZpZy5oZWFkZXI7XG4gICAgY29uc3QgZGlhbG9nU3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTztcbiAgICBjb25zdCBzdHlsZUhlYWRlciA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdPy5oZWFkZXI7XG5cbiAgICBjb25zdCBpY29uID1cbiAgICAgIHR5cGVvZiBoZWFkZXIgPT09ICdvYmplY3QnICYmIGhlYWRlciAhPT0gbnVsbCAmJiAnaWNvbicgaW4gaGVhZGVyXG4gICAgICAgID8gKGhlYWRlciBhcyBhbnkpLmljb25cbiAgICAgICAgOiB0eXBlb2Ygc3R5bGVIZWFkZXIgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICBzdHlsZUhlYWRlciAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgJ2ljb24nIGluIHN0eWxlSGVhZGVyXG4gICAgICAgICAgPyAoc3R5bGVIZWFkZXIgYXMgYW55KS5pY29uXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnXG4gICAgICA/IGljb25cbiAgICAgIDogKGljb24gYXMgSWNvblN0eWxlKT8uY29kZSB8fCAncGkgcGktZXhjbGFtYXRpb24tY2lyY2xlJztcbiAgfVxuXG4gIGdldERpYWxvZ0ljb25TdHlsZSgpOiBhbnkge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZGlhbG9nQ29uZmlnLmhlYWRlcjtcbiAgICBjb25zdCB7IGhlYWRlcjogZGVmYXVsdENvbG9yIH0gPSB0aGlzLmdldFNldmVyaXR5Q29sb3JzKCk7XG5cbiAgICBjb25zdCBpY29uOiBJY29uU3R5bGUgfCB1bmRlZmluZWQgPVxuICAgICAgdHlwZW9mIGhlYWRlciA9PT0gJ29iamVjdCcgJiYgaGVhZGVyICE9PSBudWxsICYmICdpY29uJyBpbiBoZWFkZXJcbiAgICAgICAgPyAoKGhlYWRlciBhcyBhbnkpLmljb24gYXMgSWNvblN0eWxlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogaWNvbj8uY29sb3IgfHwgZGVmYXVsdENvbG9yLFxuICAgICAgZm9udFNpemU6IGljb24/LmZvbnRTaXplIHx8ICcyLjJyZW0nLFxuICAgIH07XG4gIH1cblxuICBnZXREaWFsb2dDb250ZW50VGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5jb250ZW50O1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHJldHVybiBjb250ZW50O1xuICAgIGlmIChjb250ZW50ICYmIHR5cGVvZiBjb250ZW50ID09PSAnb2JqZWN0JyAmJiAndGV4dCcgaW4gY29udGVudCkge1xuICAgICAgcmV0dXJuIChjb250ZW50IGFzIGFueSkudGV4dCA/PyAnJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0RGlhbG9nQ29udGVudFN0eWxlKCk6IGFueSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZGlhbG9nQ29uZmlnLmNvbnRlbnQ7XG4gICAgY29uc3QgeyBtZXNzYWdlIH0gPSB0aGlzLmdldFNldmVyaXR5Q29sb3JzKCk7XG5cbiAgICBsZXQgZm9udFNpemUgPSAnMThweCc7XG4gICAgbGV0IHRleHRBbGlnbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnb2JqZWN0JyAmJiBjb250ZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoKGNvbnRlbnQgYXMgYW55KS5mb250U2l6ZSkgZm9udFNpemUgPSAoY29udGVudCBhcyBhbnkpLmZvbnRTaXplO1xuICAgICAgaWYgKChjb250ZW50IGFzIGFueSkucG9zaXRpb24pIHRleHRBbGlnbiA9IChjb250ZW50IGFzIGFueSkucG9zaXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBtZXNzYWdlLFxuICAgICAgZm9udFNpemUsXG4gICAgICAuLi4odGV4dEFsaWduID8geyB0ZXh0QWxpZ24gfSA6IHt9KSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHQtY29uZmlybS1kaWFsb2dcIj5cbiAgPHAtY29uZmlybURpYWxvZyAjY2Q+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPjwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLWNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLWNhcmQtdG9wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLWljb24td3JhcHBlclwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJwdC1jb25maXJtLWRpYWxvZy1pY29uXCJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImdldERpYWxvZ0ljb25DbGFzcygpXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0RGlhbG9nSWNvblN0eWxlKClcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC1jb25maXJtLWRpYWxvZy10ZXh0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJwdC1jb25maXJtLWRpYWxvZy10aXRsZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldERpYWxvZ0hlYWRlclN0eWxlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBnZXREaWFsb2dIZWFkZXJUZXh0KCkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIOKchSBDVVNUT00gQk9EWSAocHJvamVjdGVkIHRlbXBsYXRlKSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dCb2R5VHBsOyBlbHNlIGRlZmF1bHRCb2R5XCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGlhbG9nQm9keVRwbFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0g4pyFIEZBTExCQUNLOiB0ZXh0IGNvbnRlbnQgLS0+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRCb2R5PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwdC1jb25maXJtLWRpYWxvZy1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXREaWFsb2dDb250ZW50U3R5bGUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBnZXREaWFsb2dDb250ZW50VGV4dCgpIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLWZvb3Rlci1idXR0b25zXCI+XG4gICAgICAgIDxwdC1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImRpYWxvZ0NvbmZpZy5jYW5jZWxCdXR0b25Db25maWdcIlxuICAgICAgICAgIFtidXR0b25Db25maWddPVwiY2FuY2VsQnV0dG9uTW9kZWxcIlxuICAgICAgICAgIChjbGljayk9XCJjZC5yZWplY3QoKVwiXG4gICAgICAgID48L3B0LWJ1dHRvbj5cblxuICAgICAgICA8IS0tIOKchSBJTVBPUlRBTlQ6IGNvbmZpcm0gZ29lcyB0aHJvdWdoIHZhbGlkYXRpb24gZ2F0ZSAtLT5cbiAgICAgICAgPHB0LWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiZGlhbG9nQ29uZmlnLmNvbmZpcm1CdXR0b25Db25maWdcIlxuICAgICAgICAgIFtidXR0b25Db25maWddPVwiY29uZmlybUJ1dHRvbk1vZGVsXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Db25maXJtQ2xpY2soY2QpXCJcbiAgICAgICAgPjwvcHQtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLWNvbmZpcm1EaWFsb2c+XG48L2Rpdj5cbiJdfQ==
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1jb25maXJtLWRpYWxvZy9wdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNvbmZpcm0tZGlhbG9nL3B0LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtFQUFrRTtBQUVsRSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FJUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7OztBQUV0RixNQUFNLGFBQWEsR0FBeUQ7SUFDMUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQ3BEO0lBQ0QsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQzdDO0lBQ0QsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDckIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQzdDO0lBQ0QsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQ2xEO0NBQ0YsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQTBCO0lBQ25ELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7SUFDaEMsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFLEVBQUU7SUFDWCxtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7SUFDM0Msa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3hDLFdBQVcsRUFBRSxZQUFZLENBQUMsSUFBSTtDQUMvQixDQUFDO0FBUUYsTUFBTSxPQUFPLHdCQUF3QjtJQWVuQyxZQUNtQixtQkFBd0MsRUFDeEMsUUFBbUI7UUFEbkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBaEI3QixpQkFBWSxHQUEwQixFQUFFLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUlsRSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQU81QyxpQkFBWSxHQUFHLFlBQVksQ0FBQztJQUt6QixDQUFDO0lBRUosa0JBQWtCO1FBQ2hCLDBCQUEwQjtJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBRTlDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFPO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFFakQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBRXhDLE1BQU0sWUFBWSxHQUNoQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLFNBQVM7Z0JBQ2hDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTTtnQkFDcEIsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUVyQyxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLEdBQUcscUJBQXFCO1lBQ3hCLEdBQUcsT0FBTztZQUNWLEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLG1CQUFtQixFQUFFO2dCQUNuQixHQUFHLHFCQUFxQixDQUFDLG1CQUFtQjtnQkFDNUMsR0FBRyxPQUFPLENBQUMsbUJBQW1CO2FBQy9CO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLEdBQUcscUJBQXFCLENBQUMsa0JBQWtCO2dCQUMzQyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0I7YUFDOUI7WUFDRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsS0FBSztZQUNuRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxNQUFNO1NBQ3ZELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFFakUsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssWUFBWSxDQUFDLE1BQU07Z0JBQ3RCLE9BQU8sMEJBQTBCLENBQUM7WUFDcEMsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTywyQkFBMkIsQ0FBQztZQUNyQyxLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLDJCQUEyQixDQUFDO1lBQ3JDLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QjtnQkFDRSxPQUFPLHdCQUF3QixDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFFakUsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssWUFBWSxDQUFDLE1BQU07Z0JBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNuRCxLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDbkQsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ25ELEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QjtnQkFDRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDO1FBRWpFLE1BQU0sZUFBZSxHQUNuQixLQUFLLEtBQUssWUFBWSxDQUFDLE1BQU07WUFDM0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3JCLENBQUMsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLE9BQU87Z0JBQzlCLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTztnQkFDdEIsQ0FBQyxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsT0FBTztvQkFDOUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPO29CQUN0QixDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUU1QixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxJQUFJLFdBQVc7WUFDbEUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxJQUFJLGFBQWE7WUFDbEUsT0FBTyxFQUFFLE1BQU07WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLGVBQWU7WUFDekIsVUFBVSxFQUNSLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUN6RCxnQ0FBZ0M7WUFDbEMsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzVCLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxTQUFTO1lBQy9ELElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxhQUFhO1lBQ2pFLE9BQU8sRUFBRSxNQUFNO1lBQ2YsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBSTtZQUMzQixVQUFVLEVBQ1IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7Z0JBQ3hELCtCQUErQjtZQUNqQyxLQUFLLEVBQUUsTUFBTTtTQUNQLENBQUM7SUFDWCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDL0IsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksR0FBRztZQUMzQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDakMsTUFBTSxFQUFFLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDeEQsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBRXpELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTywyQkFBMkI7UUFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDeEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQzlCLENBQUM7UUFFbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxhQUEwQjtRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsYUFBYSxFQUNiLE9BQU8sRUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixhQUFhLEVBQ2IsUUFBUSxFQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTywyQkFBMkIsQ0FBQyxhQUEwQjtRQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3ZFLE9BQU8sRUFBRSxNQUFNO1lBQ2YsTUFBTSxFQUFFLEdBQUc7WUFDWCxTQUFTLEVBQUUsR0FBRztZQUNkLE9BQU8sRUFBRSxHQUFHO1lBQ1osTUFBTSxFQUFFLEdBQUc7U0FDWixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLEdBQUc7WUFDYixVQUFVLEVBQUUsR0FBRztZQUNmLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLE9BQU87WUFDbEIsU0FBUyxFQUFFLE1BQU07WUFDakIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsT0FBTyxFQUFFLEdBQUc7WUFDWixNQUFNLEVBQUUsR0FBRztZQUNYLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsYUFBYSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxFQUN4RDtZQUNFLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxPQUFPO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsT0FBTztZQUNsQixTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsR0FBRztZQUNYLE9BQU8sRUFBRSxHQUFHO1lBQ1osS0FBSyxFQUFFLE1BQU07U0FDZCxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3ZFLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLEdBQUc7WUFDYixVQUFVLEVBQUUsR0FBRztZQUNmLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLE9BQU87WUFDbEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLEdBQUc7U0FDWixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLGFBQWEsQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsRUFDdEQ7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLE9BQU87WUFDbEIsU0FBUyxFQUFFLE1BQU07U0FDbEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixDQUNyQixhQUFhLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLEVBQzFEO1lBQ0UsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsT0FBTztZQUNsQixTQUFTLEVBQUUsTUFBTTtTQUNsQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLE9BQXVCLEVBQ3ZCLE1BQThCO1FBRTlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBc0IsQ0FBQztRQUUzQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBRXZELE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxJQUFJLE1BQU07WUFDdEUsQ0FBQyxDQUFFLE1BQWMsQ0FBQyxJQUFJO1lBQ3RCLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRO2dCQUMxQixDQUFDLENBQUMsTUFBTTtnQkFDUixDQUFDLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUTtvQkFDN0IsV0FBVyxLQUFLLElBQUk7b0JBQ3BCLE1BQU0sSUFBSSxXQUFXO29CQUN2QixDQUFDLENBQUUsV0FBbUIsQ0FBQyxJQUFJO29CQUMzQixDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVuRCxNQUFNLFFBQVEsR0FDWixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksSUFBSyxNQUFjLENBQUMsUUFBUTtZQUN2RSxDQUFDLENBQUUsTUFBYyxDQUFDLFFBQVE7WUFDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUViLE9BQU87WUFDTCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFVBQVUsRUFBRSxHQUFHO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUV2RCxNQUFNLElBQUksR0FDUixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksTUFBTTtZQUMvRCxDQUFDLENBQUUsTUFBYyxDQUFDLElBQUk7WUFDdEIsQ0FBQyxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVE7Z0JBQzdCLFdBQVcsS0FBSyxJQUFJO2dCQUNwQixNQUFNLElBQUksV0FBVztnQkFDdkIsQ0FBQyxDQUFFLFdBQW1CLENBQUMsSUFBSTtnQkFDM0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVsQixPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDN0IsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUUsSUFBa0IsRUFBRSxJQUFJLElBQUksMEJBQTBCLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTFELE1BQU0sSUFBSSxHQUNSLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sSUFBSSxNQUFNO1lBQy9ELENBQUMsQ0FBRyxNQUFjLENBQUMsSUFBa0I7WUFDckMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoQixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksWUFBWTtZQUNsQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsSUFBSSxRQUFRO1NBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRTFDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDaEUsT0FBUSxPQUFlLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUU3QyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxTQUE2QixDQUFDO1FBRWxDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwRCxJQUFLLE9BQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsUUFBUSxHQUFJLE9BQWUsQ0FBQyxRQUFRLENBQUM7WUFDdkMsQ0FBQztZQUVELElBQUssT0FBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixTQUFTLEdBQUksT0FBZSxDQUFDLFFBQVEsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsT0FBTztZQUNkLFFBQVE7WUFDUixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7K0dBcGFVLHdCQUF3QjttR0FBeEIsd0JBQXdCLGlLQUZ4QixDQUFDLG1CQUFtQixDQUFDLDBLQVlsQixzQkFBc0IscUVDakV0QywyMkRBNERBOzs0RkRMYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMsbUJBQW1CLENBQUM7Z0hBR3ZCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsWUFBWTt1QkFBQyxZQUFZO2dCQUcxQixvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9zaGFyZWQvcHQtY29uZmlybS1kaWFsb2cvcHQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnRzXG5cbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtRXZlbnRUeXBlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBQVENvbmZpcm1EaWFsb2dDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvcHQtY29uZmlybS1kaWFsb2ctY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2J1dHRvbi5tb2RlbCc7XG5pbXBvcnQgeyBJY29uU3R5bGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgU2V2ZXJpdHlFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgUFRGb3JtQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL3B0LWZvcm0tYnVpbGRlci9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50JztcblxuY29uc3QgRElBTE9HX1NUWUxFUzogUmVjb3JkPFNldmVyaXR5RW51bSwgUGFydGlhbDxQVENvbmZpcm1EaWFsb2dDb25maWc+PiA9IHtcbiAgW1NldmVyaXR5RW51bS5XQVJOSU5HXToge1xuICAgIGhlYWRlcjogeyB0ZXh0OiAnQXZlcnRpc3NlbWVudCcsIGNvbG9yOiAnIzhhNGIwMCcgfSxcbiAgfSxcbiAgW1NldmVyaXR5RW51bS5TVUNDRVNTXToge1xuICAgIGhlYWRlcjogeyB0ZXh0OiAnU3VjY8OocycsIGNvbG9yOiAnIzE2NjUzNCcgfSxcbiAgfSxcbiAgW1NldmVyaXR5RW51bS5EQU5HRVJdOiB7XG4gICAgaGVhZGVyOiB7IHRleHQ6ICdFcnJldXInLCBjb2xvcjogJyM3ZjFkMWQnIH0sXG4gIH0sXG4gIFtTZXZlcml0eUVudW0uSU5GT106IHtcbiAgICBoZWFkZXI6IHsgdGV4dDogJ0luZm9ybWF0aW9uJywgY29sb3I6ICcjMjU2M2ViJyB9LFxuICB9LFxufTtcblxuY29uc3QgREVGQVVMVF9ESUFMT0dfQ09ORklHOiBQVENvbmZpcm1EaWFsb2dDb25maWcgPSB7XG4gIGhlYWRlcjogeyB0ZXh0OiAnQ29uZmlybWF0aW9uJyB9LFxuICB2aXNpYmxlOiBmYWxzZSxcbiAgd2lkdGg6ICc3MjBweCcsXG4gIGhlaWdodDogJ2F1dG8nLFxuICBjb250ZW50OiAnJyxcbiAgY29uZmlybUJ1dHRvbkNvbmZpZzogeyBsYWJlbDogJ0NvbmZpcm1lcicgfSxcbiAgY2FuY2VsQnV0dG9uQ29uZmlnOiB7IGxhYmVsOiAnQW5udWxlcicgfSxcbiAgZGlhbG9nU3R5bGU6IFNldmVyaXR5RW51bS5JTkZPLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtY29uZmlybS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBQVENvbmZpcm1EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBkaWFsb2dDb25maWc6IFBUQ29uZmlybURpYWxvZ0NvbmZpZyA9IHsgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHIH07XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwPzogRm9ybUdyb3VwIHwgbnVsbDtcblxuICBAT3V0cHV0KCkgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKCdkaWFsb2dCb2R5JykgZGlhbG9nQm9keVRwbD86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChQVEZvcm1CdWlsZGVyQ29tcG9uZW50KVxuICBwcm9qZWN0ZWRGb3JtQnVpbGRlcj86IFBURm9ybUJ1aWxkZXJDb21wb25lbnQ7XG5cbiAgU2V2ZXJpdHlFbnVtID0gU2V2ZXJpdHlFbnVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gTm90aGluZyBtYW5kYXRvcnkgaGVyZS5cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXNbJ2RpYWxvZ0NvbmZpZyddKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseURpYWxvZ1N0eWxlKCk7XG5cbiAgICBpZiAodGhpcy5kaWFsb2dDb25maWcudmlzaWJsZSkge1xuICAgICAgdGhpcy5zaG93RGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVGb3JtKCk6IEZvcm1Hcm91cCB8IG51bGwge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1CdWlsZGVyID0gdGhpcy5wcm9qZWN0ZWRGb3JtQnVpbGRlcjtcblxuICAgIGlmIChmb3JtQnVpbGRlciAmJiBmb3JtQnVpbGRlci5mb3JtKSB7XG4gICAgICByZXR1cm4gZm9ybUJ1aWxkZXIuZm9ybTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb25maXJtRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZ2V0QWN0aXZlRm9ybSgpO1xuICAgIHJldHVybiAhIWZvcm0gJiYgZm9ybS5pbnZhbGlkO1xuICB9XG5cbiAgb25Db25maXJtQ2xpY2soY2Q6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmdldEFjdGl2ZUZvcm0oKTtcblxuICAgIGlmIChmb3JtKSB7XG4gICAgICBmb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIGZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcblxuICAgICAgaWYgKGZvcm0uaW52YWxpZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2QuYWNjZXB0KCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGlhbG9nU3R5bGUoKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nU3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSB8fCBTZXZlcml0eUVudW0uSU5GTztcbiAgICBjb25zdCBzdHlsZUNvbmZpZyA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdIHx8IHt9O1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmRpYWxvZ0NvbmZpZyB8fCB7fTtcblxuICAgIGNvbnN0IG1lcmdlZEhlYWRlciA9XG4gICAgICBjdXJyZW50LmhlYWRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY3VycmVudC5oZWFkZXJcbiAgICAgICAgOiBzdHlsZUNvbmZpZy5oZWFkZXIgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gc3R5bGVDb25maWcuaGVhZGVyXG4gICAgICAgICAgOiBERUZBVUxUX0RJQUxPR19DT05GSUcuaGVhZGVyO1xuXG4gICAgdGhpcy5kaWFsb2dDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcsXG4gICAgICAuLi5jdXJyZW50LFxuICAgICAgLi4uc3R5bGVDb25maWcsXG4gICAgICBoZWFkZXI6IG1lcmdlZEhlYWRlcixcbiAgICAgIGNvbmZpcm1CdXR0b25Db25maWc6IHtcbiAgICAgICAgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLmNvbmZpcm1CdXR0b25Db25maWcsXG4gICAgICAgIC4uLmN1cnJlbnQuY29uZmlybUJ1dHRvbkNvbmZpZyxcbiAgICAgIH0sXG4gICAgICBjYW5jZWxCdXR0b25Db25maWc6IHtcbiAgICAgICAgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLmNhbmNlbEJ1dHRvbkNvbmZpZyxcbiAgICAgICAgLi4uY3VycmVudC5jYW5jZWxCdXR0b25Db25maWcsXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogY3VycmVudC52aXNpYmxlLFxuICAgICAgd2lkdGg6IGN1cnJlbnQud2lkdGggfHwgREVGQVVMVF9ESUFMT0dfQ09ORklHLndpZHRoLFxuICAgICAgaGVpZ2h0OiBjdXJyZW50LmhlaWdodCB8fCBERUZBVUxUX0RJQUxPR19DT05GSUcuaGVpZ2h0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFNldmVyaXR5Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRpYWxvZ1N0eWxlID8/IFNldmVyaXR5RW51bS5JTkZPO1xuXG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uREFOR0VSOlxuICAgICAgICByZXR1cm4gJ3B0LWNvbmZpcm0tZGlhbG9nLWRhbmdlcic7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5XQVJOSU5HOlxuICAgICAgICByZXR1cm4gJ3B0LWNvbmZpcm0tZGlhbG9nLXdhcm5pbmcnO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uU1VDQ0VTUzpcbiAgICAgICAgcmV0dXJuICdwdC1jb25maXJtLWRpYWxvZy1zdWNjZXNzJztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLklORk86XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3B0LWNvbmZpcm0tZGlhbG9nLWluZm8nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2V2ZXJpdHlDb2xvcnMoKTogeyBoZWFkZXI6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG5cbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5EQU5HRVI6XG4gICAgICAgIHJldHVybiB7IGhlYWRlcjogJyNiOTFjMWMnLCBtZXNzYWdlOiAnIzRiNTU2MycgfTtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLldBUk5JTkc6XG4gICAgICAgIHJldHVybiB7IGhlYWRlcjogJyNiNDUzMDknLCBtZXNzYWdlOiAnIzkyNDAwZScgfTtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiB7IGhlYWRlcjogJyMxNTgwM2QnLCBtZXNzYWdlOiAnIzE2NjUzNCcgfTtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLklORk86XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyBoZWFkZXI6ICcjMjU2M2ViJywgbWVzc2FnZTogJyMyNTYzZWInIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbmZpcm1CdXR0b25Nb2RlbCgpOiBCdXR0b25Nb2RlbCB7XG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTztcblxuICAgIGNvbnN0IGNvbmZpcm1TZXZlcml0eSA9XG4gICAgICBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLkRBTkdFUlxuICAgICAgICA/IFNldmVyaXR5RW51bS5EQU5HRVJcbiAgICAgICAgOiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLldBUk5JTkdcbiAgICAgICAgICA/IFNldmVyaXR5RW51bS5XQVJOSU5HXG4gICAgICAgICAgOiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLlNVQ0NFU1NcbiAgICAgICAgICAgID8gU2V2ZXJpdHlFbnVtLlNVQ0NFU1NcbiAgICAgICAgICAgIDogU2V2ZXJpdHlFbnVtLklORk87XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ29uZmlnLmNvbmZpcm1CdXR0b25Db25maWc/LmxhYmVsID8/ICdDb25maXJtZXInLFxuICAgICAgaWNvbjogdGhpcy5kaWFsb2dDb25maWcuY29uZmlybUJ1dHRvbkNvbmZpZz8uaWNvbiA/PyAncGkgcGktY2hlY2snLFxuICAgICAgaWNvblBvczogJ2xlZnQnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBvdXRsaW5lZDogdHJ1ZSxcbiAgICAgIHNldmVyaXR5OiBjb25maXJtU2V2ZXJpdHksXG4gICAgICBzdHlsZUNsYXNzOlxuICAgICAgICAodGhpcy5kaWFsb2dDb25maWcuY29uZmlybUJ1dHRvbkNvbmZpZz8uc3R5bGVDbGFzcyB8fCAnJykgK1xuICAgICAgICAnIHB0LWNvbmZpcm0tZGlhbG9nLWNvbmZpcm0tYnRuJyxcbiAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICBkaXNhYmxlZDogdGhpcy5pc0NvbmZpcm1EaXNhYmxlZCgpLFxuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgZ2V0IGNhbmNlbEJ1dHRvbk1vZGVsKCk6IEJ1dHRvbk1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZz8ubGFiZWwgPz8gJ0FubnVsZXInLFxuICAgICAgaWNvbjogdGhpcy5kaWFsb2dDb25maWcuY2FuY2VsQnV0dG9uQ29uZmlnPy5pY29uID8/ICdwaSBwaS10aW1lcycsXG4gICAgICBpY29uUG9zOiAnbGVmdCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIG91dGxpbmVkOiB0cnVlLFxuICAgICAgc2V2ZXJpdHk6IFNldmVyaXR5RW51bS5JTkZPLFxuICAgICAgc3R5bGVDbGFzczpcbiAgICAgICAgKHRoaXMuZGlhbG9nQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZz8uc3R5bGVDbGFzcyB8fCAnJykgK1xuICAgICAgICAnIHB0LWNvbmZpcm0tZGlhbG9nLWNhbmNlbC1idG4nLFxuICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICB9IGFzIGFueTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiAnJyxcbiAgICAgIG1lc3NhZ2U6IHRoaXMuZ2V0RGlhbG9nQ29udGVudFRleHQoKSB8fCAnICcsXG4gICAgICBhY2NlcHQ6ICgpID0+IHRoaXMuY29uZmlybS5lbWl0KCksXG4gICAgICByZWplY3Q6IChfdHlwZTogQ29uZmlybUV2ZW50VHlwZSkgPT4gdGhpcy5jYW5jZWwuZW1pdCgpLFxuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkaWFsb2dFbGVtZW50ID0gdGhpcy5nZXRMYXN0Q29uZmlybURpYWxvZ0VsZW1lbnQoKTtcblxuICAgICAgaWYgKCFkaWFsb2dFbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hcHBseURpYWxvZ1Jvb3RTdHlsZXMoZGlhbG9nRWxlbWVudCk7XG4gICAgICB0aGlzLmFwcGx5RGlhbG9nSW5uZXJMYXlvdXRGaXhlcyhkaWFsb2dFbGVtZW50KTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFzdENvbmZpcm1EaWFsb2dFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgZGlhbG9ncyA9IEFycmF5LmZyb20oXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucC1jb25maXJtLWRpYWxvZycpLFxuICAgICkgYXMgSFRNTEVsZW1lbnRbXTtcblxuICAgIGlmICghZGlhbG9ncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBkaWFsb2dzW2RpYWxvZ3MubGVuZ3RoIC0gMV07XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGlhbG9nUm9vdFN0eWxlcyhkaWFsb2dFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZGlhbG9nRWxlbWVudCwgJ3B0LWNvbmZpcm0tZGlhbG9nLW92ZXJsYXknKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZGlhbG9nRWxlbWVudCwgJ3B0LWNvbmZpcm0tZGlhbG9nLWRhbmdlcicpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZGlhbG9nRWxlbWVudCwgJ3B0LWNvbmZpcm0tZGlhbG9nLXdhcm5pbmcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRpYWxvZ0VsZW1lbnQsICdwdC1jb25maXJtLWRpYWxvZy1zdWNjZXNzJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkaWFsb2dFbGVtZW50LCAncHQtY29uZmlybS1kaWFsb2ctaW5mbycpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkaWFsb2dFbGVtZW50LCB0aGlzLmdldFNldmVyaXR5Q2xhc3MoKSk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgZGlhbG9nRWxlbWVudCxcbiAgICAgICd3aWR0aCcsXG4gICAgICB0aGlzLmRpYWxvZ0NvbmZpZy53aWR0aCB8fCAnNzIwcHgnLFxuICAgICk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkaWFsb2dFbGVtZW50LCAnbWF4LXdpZHRoJywgJzkydncnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgZGlhbG9nRWxlbWVudCxcbiAgICAgICdoZWlnaHQnLFxuICAgICAgdGhpcy5kaWFsb2dDb25maWcuaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZGlhbG9nRWxlbWVudCwgJ21pbi1oZWlnaHQnLCAndW5zZXQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRpYWxvZ0VsZW1lbnQsICdtYXgtaGVpZ2h0JywgJ25vbmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRpYWxvZ0VsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGlhbG9nSW5uZXJMYXlvdXRGaXhlcyhkaWFsb2dFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFbGVtZW50TGF5b3V0KGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nLWhlYWRlcicpLCB7XG4gICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgIG1pbkhlaWdodDogJzAnLFxuICAgICAgcGFkZGluZzogJzAnLFxuICAgICAgYm9yZGVyOiAnMCcsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2V0RWxlbWVudExheW91dChkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wLWRpYWxvZy1jb250ZW50JyksIHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICBmbGV4OiAndW5zZXQnLFxuICAgICAgZmxleEdyb3c6ICcwJyxcbiAgICAgIGZsZXhTaHJpbms6ICcwJyxcbiAgICAgIGZsZXhCYXNpczogJ2F1dG8nLFxuICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICBtaW5IZWlnaHQ6ICd1bnNldCcsXG4gICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICBwYWRkaW5nOiAnMCcsXG4gICAgICBtYXJnaW46ICcwJyxcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2V0RWxlbWVudExheW91dChcbiAgICAgIGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignLnAtY29uZmlybS1kaWFsb2ctbWVzc2FnZScpLFxuICAgICAge1xuICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICBmbGV4OiAndW5zZXQnLFxuICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgbWluSGVpZ2h0OiAndW5zZXQnLFxuICAgICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgIHBhZGRpbmc6ICcwJyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucmVzZXRFbGVtZW50TGF5b3V0KGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nLWZvb3RlcicpLCB7XG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgZmxleDogJ3Vuc2V0JyxcbiAgICAgIGZsZXhHcm93OiAnMCcsXG4gICAgICBmbGV4U2hyaW5rOiAnMCcsXG4gICAgICBmbGV4QmFzaXM6ICdhdXRvJyxcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgbWluSGVpZ2h0OiAndW5zZXQnLFxuICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgICBtYXJnaW46ICcwJyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzZXRFbGVtZW50TGF5b3V0KFxuICAgICAgZGlhbG9nRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucHQtY29uZmlybS1kaWFsb2ctY2FyZCcpLFxuICAgICAge1xuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgbWluSGVpZ2h0OiAndW5zZXQnLFxuICAgICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucmVzZXRFbGVtZW50TGF5b3V0KFxuICAgICAgZGlhbG9nRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucHQtY29uZmlybS1kaWFsb2ctY2FyZC10b3AnKSxcbiAgICAgIHtcbiAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgIG1pbkhlaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RWxlbWVudExheW91dChcbiAgICBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCxcbiAgICBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IHZvaWQge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIE9iamVjdC5lbnRyaWVzKHN0eWxlcykuZm9yRWFjaCgoW3Byb3BlcnR5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaHRtbEVsZW1lbnQsIHByb3BlcnR5LCB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXREaWFsb2dIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyO1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG4gICAgY29uc3Qgc3R5bGVIZWFkZXIgPSBESUFMT0dfU1RZTEVTW2RpYWxvZ1N0eWxlXT8uaGVhZGVyO1xuXG4gICAgcmV0dXJuIHR5cGVvZiBoZWFkZXIgPT09ICdvYmplY3QnICYmIGhlYWRlciAhPT0gbnVsbCAmJiAndGV4dCcgaW4gaGVhZGVyXG4gICAgICA/IChoZWFkZXIgYXMgYW55KS50ZXh0XG4gICAgICA6IHR5cGVvZiBoZWFkZXIgPT09ICdzdHJpbmcnXG4gICAgICAgID8gaGVhZGVyXG4gICAgICAgIDogdHlwZW9mIHN0eWxlSGVhZGVyID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgc3R5bGVIZWFkZXIgIT09IG51bGwgJiZcbiAgICAgICAgICAgICd0ZXh0JyBpbiBzdHlsZUhlYWRlclxuICAgICAgICAgID8gKHN0eWxlSGVhZGVyIGFzIGFueSkudGV4dFxuICAgICAgICAgIDogJ0NvbmZpcm1hdGlvbic7XG4gIH1cblxuICBnZXREaWFsb2dIZWFkZXJTdHlsZSgpOiBhbnkge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZGlhbG9nQ29uZmlnLmhlYWRlcjtcbiAgICBjb25zdCB7IGhlYWRlcjogY29sb3IgfSA9IHRoaXMuZ2V0U2V2ZXJpdHlDb2xvcnMoKTtcblxuICAgIGNvbnN0IGZvbnRTaXplID1cbiAgICAgIHR5cGVvZiBoZWFkZXIgPT09ICdvYmplY3QnICYmIGhlYWRlciAhPT0gbnVsbCAmJiAoaGVhZGVyIGFzIGFueSkuZm9udFNpemVcbiAgICAgICAgPyAoaGVhZGVyIGFzIGFueSkuZm9udFNpemVcbiAgICAgICAgOiAnMjBweCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3IsXG4gICAgICBmb250U2l6ZSxcbiAgICAgIGZvbnRXZWlnaHQ6IDcwMCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGlhbG9nSWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyO1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG4gICAgY29uc3Qgc3R5bGVIZWFkZXIgPSBESUFMT0dfU1RZTEVTW2RpYWxvZ1N0eWxlXT8uaGVhZGVyO1xuXG4gICAgY29uc3QgaWNvbiA9XG4gICAgICB0eXBlb2YgaGVhZGVyID09PSAnb2JqZWN0JyAmJiBoZWFkZXIgIT09IG51bGwgJiYgJ2ljb24nIGluIGhlYWRlclxuICAgICAgICA/IChoZWFkZXIgYXMgYW55KS5pY29uXG4gICAgICAgIDogdHlwZW9mIHN0eWxlSGVhZGVyID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgc3R5bGVIZWFkZXIgIT09IG51bGwgJiZcbiAgICAgICAgICAgICdpY29uJyBpbiBzdHlsZUhlYWRlclxuICAgICAgICAgID8gKHN0eWxlSGVhZGVyIGFzIGFueSkuaWNvblxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHR5cGVvZiBpY29uID09PSAnc3RyaW5nJ1xuICAgICAgPyBpY29uXG4gICAgICA6IChpY29uIGFzIEljb25TdHlsZSk/LmNvZGUgfHwgJ3BpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZSc7XG4gIH1cblxuICBnZXREaWFsb2dJY29uU3R5bGUoKTogYW55IHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmRpYWxvZ0NvbmZpZy5oZWFkZXI7XG4gICAgY29uc3QgeyBoZWFkZXI6IGRlZmF1bHRDb2xvciB9ID0gdGhpcy5nZXRTZXZlcml0eUNvbG9ycygpO1xuXG4gICAgY29uc3QgaWNvbjogSWNvblN0eWxlIHwgdW5kZWZpbmVkID1cbiAgICAgIHR5cGVvZiBoZWFkZXIgPT09ICdvYmplY3QnICYmIGhlYWRlciAhPT0gbnVsbCAmJiAnaWNvbicgaW4gaGVhZGVyXG4gICAgICAgID8gKChoZWFkZXIgYXMgYW55KS5pY29uIGFzIEljb25TdHlsZSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IGljb24/LmNvbG9yIHx8IGRlZmF1bHRDb2xvcixcbiAgICAgIGZvbnRTaXplOiBpY29uPy5mb250U2l6ZSB8fCAnMi4ycmVtJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGlhbG9nQ29udGVudFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5kaWFsb2dDb25maWcuY29udGVudDtcblxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIGlmIChjb250ZW50ICYmIHR5cGVvZiBjb250ZW50ID09PSAnb2JqZWN0JyAmJiAndGV4dCcgaW4gY29udGVudCkge1xuICAgICAgcmV0dXJuIChjb250ZW50IGFzIGFueSkudGV4dCA/PyAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXREaWFsb2dDb250ZW50U3R5bGUoKTogYW55IHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5kaWFsb2dDb25maWcuY29udGVudDtcbiAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IHRoaXMuZ2V0U2V2ZXJpdHlDb2xvcnMoKTtcblxuICAgIGxldCBmb250U2l6ZSA9ICcxOHB4JztcbiAgICBsZXQgdGV4dEFsaWduOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdvYmplY3QnICYmIGNvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgIGlmICgoY29udGVudCBhcyBhbnkpLmZvbnRTaXplKSB7XG4gICAgICAgIGZvbnRTaXplID0gKGNvbnRlbnQgYXMgYW55KS5mb250U2l6ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKChjb250ZW50IGFzIGFueSkucG9zaXRpb24pIHtcbiAgICAgICAgdGV4dEFsaWduID0gKGNvbnRlbnQgYXMgYW55KS5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IG1lc3NhZ2UsXG4gICAgICBmb250U2l6ZSxcbiAgICAgIC4uLih0ZXh0QWxpZ24gPyB7IHRleHRBbGlnbiB9IDoge30pLFxuICAgIH07XG4gIH1cbn1cbiIsIjwhLS0gc3JjL2FwcC9zaGFyZWQvcHQtY29uZmlybS1kaWFsb2cvcHQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwgLS0+XG5cbjxkaXYgY2xhc3M9XCJwdC1jb25maXJtLWRpYWxvZ1wiPlxuICA8cC1jb25maXJtRGlhbG9nICNjZD5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHQtY29uZmlybS1kaWFsb2ctY2FyZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHQtY29uZmlybS1kaWFsb2ctY2FyZC10b3BcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtY29uZmlybS1kaWFsb2ctaWNvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLWljb25cIlxuICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0RGlhbG9nSWNvbkNsYXNzKClcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXREaWFsb2dJY29uU3R5bGUoKVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLXRleHQtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLXRpdGxlXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0RGlhbG9nSGVhZGVyU3R5bGUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGdldERpYWxvZ0hlYWRlclRleHQoKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dCb2R5VHBsOyBlbHNlIGRlZmF1bHRCb2R5XCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGlhbG9nQm9keVRwbFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJvZHk+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInB0LWNvbmZpcm0tZGlhbG9nLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldERpYWxvZ0NvbnRlbnRTdHlsZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGdldERpYWxvZ0NvbnRlbnRUZXh0KCkgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHQtY29uZmlybS1kaWFsb2ctZm9vdGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgPHB0LWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiZGlhbG9nQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZ1wiXG4gICAgICAgICAgW2J1dHRvbkNvbmZpZ109XCJjYW5jZWxCdXR0b25Nb2RlbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNkLnJlamVjdCgpXCJcbiAgICAgICAgPjwvcHQtYnV0dG9uPlxuXG4gICAgICAgIDxwdC1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImRpYWxvZ0NvbmZpZy5jb25maXJtQnV0dG9uQ29uZmlnXCJcbiAgICAgICAgICBbYnV0dG9uQ29uZmlnXT1cImNvbmZpcm1CdXR0b25Nb2RlbFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybUNsaWNrKGNkKVwiXG4gICAgICAgID48L3B0LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC1jb25maXJtRGlhbG9nPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
+
// src/app/shared/pt-confirm-dialog/pt-confirm-dialog.module.ts
|
|
1
2
|
import { NgModule } from '@angular/core';
|
|
2
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
3
5
|
import { PTConfirmDialogComponent } from './pt-confirm-dialog.component';
|
|
4
|
-
import { DialogModule } from 'primeng/dialog';
|
|
5
6
|
import { PTButtonModule } from '../pt-button';
|
|
6
|
-
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class PTConfirmDialogModule {
|
|
9
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, declarations: [PTConfirmDialogComponent], imports: [CommonModule,
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, imports: [CommonModule,
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, declarations: [PTConfirmDialogComponent], imports: [CommonModule, ConfirmDialogModule, PTButtonModule], exports: [PTConfirmDialogComponent] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, imports: [CommonModule, ConfirmDialogModule, PTButtonModule] }); }
|
|
12
12
|
}
|
|
13
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTConfirmDialogModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [PTConfirmDialogComponent],
|
|
17
|
-
imports: [CommonModule,
|
|
17
|
+
imports: [CommonModule, ConfirmDialogModule, PTButtonModule],
|
|
18
18
|
exports: [PTConfirmDialogComponent],
|
|
19
19
|
}]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtY29uZmlybS1kaWFsb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1jb25maXJtLWRpYWxvZy9wdC1jb25maXJtLWRpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBTzlDLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjtnSEFBckIscUJBQXFCLGlCQUpqQix3QkFBd0IsYUFDN0IsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsYUFDakQsd0JBQXdCO2dIQUV2QixxQkFBcUIsWUFIdEIsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWM7OzRGQUdoRCxxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9hcHAvc2hhcmVkL3B0LWNvbmZpcm0tZGlhbG9nL3B0LWNvbmZpcm0tZGlhbG9nLm1vZHVsZS50c1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuXG5pbXBvcnQgeyBQVENvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3B0LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQVEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL3B0LWJ1dHRvbic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BUQ29uZmlybURpYWxvZ0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENvbmZpcm1EaWFsb2dNb2R1bGUsIFBUQnV0dG9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1BUQ29uZmlybURpYWxvZ0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBUQ29uZmlybURpYWxvZ01vZHVsZSB7fVxuIl19
|