@hmcts/ccd-case-ui-toolkit 7.1.31 → 7.1.32-exui-1832-rc3
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/shared/components/palette/base-field/field-write.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +31 -18
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +1 -1
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +114 -103
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +45 -35
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +189 -155
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +1 -0
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +2 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +2 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -63,11 +63,11 @@ export class FieldWriteComponent extends AbstractFieldWriteComponent {
|
|
|
63
63
|
} if (rf & 2) {
|
|
64
64
|
i0.ɵɵclassProp("grey-bar", ctx.canHaveGreyBar && !ctx.caseField.hiddenCannotChange);
|
|
65
65
|
i0.ɵɵproperty("hidden", ctx.caseField.hidden);
|
|
66
|
-
} }, styles: [".form [_nghost-%COMP%] .grey-bar>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form [_nghost-%COMP%] .grey-bar>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form [_nghost-%COMP%] .grey-bar>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}"] });
|
|
66
|
+
} }, styles: [".input-upload-file[_ngcontent-%COMP%]{width:100%;display:none}.upload-file-container[_ngcontent-%COMP%]{display:flex;align-items:baseline}.input-label[_ngcontent-%COMP%]{width:8rem}.form [_nghost-%COMP%] .grey-bar>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form [_nghost-%COMP%] .grey-bar>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form [_nghost-%COMP%] .grey-bar>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}"] });
|
|
67
67
|
}
|
|
68
68
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldWriteComponent, [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'ccd-field-write', template: "<div [hidden]=\"caseField.hidden\" [class.grey-bar]=\"canHaveGreyBar && !caseField.hiddenCannotChange\">\n <ng-container #fieldContainer></ng-container>\n</div>\n", styles: [".form :host::ng-deep .grey-bar>*>.form-group,.form :host::ng-deep .grey-bar>*>*>.form-group,.form :host::ng-deep .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form :host::ng-deep .grey-bar>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form :host::ng-deep .grey-bar>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field input:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field select:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}\n"] }]
|
|
70
|
+
args: [{ selector: 'ccd-field-write', template: "<div [hidden]=\"caseField.hidden\" [class.grey-bar]=\"canHaveGreyBar && !caseField.hiddenCannotChange\">\n <ng-container #fieldContainer></ng-container>\n</div>\n", styles: [".input-upload-file{width:100%;display:none}.upload-file-container{display:flex;align-items:baseline}.input-label{width:8rem}.form :host::ng-deep .grey-bar>*>.form-group,.form :host::ng-deep .grey-bar>*>*>.form-group,.form :host::ng-deep .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form :host::ng-deep .grey-bar>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form :host::ng-deep .grey-bar>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field input:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field select:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}\n"] }]
|
|
71
71
|
}], () => [{ type: i0.ComponentFactoryResolver }, { type: i1.PaletteService }], { caseFields: [{
|
|
72
72
|
type: Input
|
|
73
73
|
}], fieldContainer: [{
|
|
@@ -20,7 +20,7 @@ import * as i6 from "../../../services/jurisdiction/jurisdiction.service";
|
|
|
20
20
|
const _c0 = ["fileInput"];
|
|
21
21
|
const _c1 = a0 => ({ "form-group-error bottom-30": a0 });
|
|
22
22
|
function WriteDocumentFieldComponent_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
i0.ɵɵelementStart(0, "span",
|
|
23
|
+
i0.ɵɵelementStart(0, "span", 15);
|
|
24
24
|
i0.ɵɵtext(1);
|
|
25
25
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
26
26
|
i0.ɵɵelementEnd();
|
|
@@ -30,7 +30,7 @@ function WriteDocumentFieldComponent_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
30
30
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.caseField.hint_text));
|
|
31
31
|
} }
|
|
32
32
|
function WriteDocumentFieldComponent_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
-
i0.ɵɵelementStart(0, "span",
|
|
33
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
34
34
|
i0.ɵɵtext(1);
|
|
35
35
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
36
36
|
i0.ɵɵelementEnd();
|
|
@@ -40,7 +40,7 @@ function WriteDocumentFieldComponent_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
40
40
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.fileUploadMessages));
|
|
41
41
|
} }
|
|
42
42
|
function WriteDocumentFieldComponent_ccd_read_document_field_9_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
-
i0.ɵɵelement(0, "ccd-read-document-field",
|
|
43
|
+
i0.ɵɵelement(0, "ccd-read-document-field", 17);
|
|
44
44
|
} if (rf & 2) {
|
|
45
45
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
46
46
|
i0.ɵɵproperty("caseField", ctx_r1.caseField);
|
|
@@ -73,6 +73,7 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
73
73
|
dialogSubscription;
|
|
74
74
|
caseNotifierSubscription;
|
|
75
75
|
jurisdictionSubs;
|
|
76
|
+
fileName = 'No file chosen';
|
|
76
77
|
uploadedDocument;
|
|
77
78
|
dialogConfig;
|
|
78
79
|
secureModeOn;
|
|
@@ -147,6 +148,7 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
147
148
|
}
|
|
148
149
|
else if (fileInput.target.files[0]) {
|
|
149
150
|
this.selectedFile = fileInput.target.files[0];
|
|
151
|
+
this.fileName = fileInput.target.files[0].name;
|
|
150
152
|
this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS);
|
|
151
153
|
const documentUpload = this.buildDocumentUploadData(this.selectedFile);
|
|
152
154
|
this.fileUploadStateService.setUploadInProgress(true);
|
|
@@ -384,7 +386,7 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
384
386
|
} if (rf & 2) {
|
|
385
387
|
let _t;
|
|
386
388
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
|
|
387
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
389
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 25, vars: 24, consts: [["fileInput", ""], [1, "form-group", 3, "ngClass"], [3, "for"], [1, "form-label"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "caseField", 4, "ngIf"], [2, "position", "relative"], [3, "click", "keyup", "id"], [1, "upload-file-container"], ["aria-label", "Choose file", 1, "button", "button-secondary", "input-label", 3, "for"], [1, "form-control", "bottom-30"], ["type", "file", 1, "input-upload-file", 3, "keydown.Tab", "change", "id", "accept"], [1, "form-group", "bottom-30"], ["type", "button", "aria-label", "Cancel upload", 1, "button", "button-secondary", 3, "click", "disabled"], [1, "form-hint"], [1, "error-message"], [3, "caseField"]], template: function WriteDocumentFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
388
390
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
389
391
|
i0.ɵɵelementStart(0, "div", 1)(1, "label", 2)(2, "span", 3);
|
|
390
392
|
i0.ɵɵpipe(3, "ccdFieldLabel");
|
|
@@ -398,22 +400,29 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
398
400
|
i0.ɵɵelementStart(10, "div", 7)(11, "div", 8);
|
|
399
401
|
i0.ɵɵlistener("click", function WriteDocumentFieldComponent_Template_div_click_11_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fileSelectEvent()); })("keyup", function WriteDocumentFieldComponent_Template_div_keyup_11_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fileSelectEvent()); });
|
|
400
402
|
i0.ɵɵelementEnd();
|
|
401
|
-
i0.ɵɵelementStart(12, "
|
|
402
|
-
i0.ɵɵ
|
|
403
|
+
i0.ɵɵelementStart(12, "div", 9)(13, "label", 10);
|
|
404
|
+
i0.ɵɵtext(14);
|
|
405
|
+
i0.ɵɵpipe(15, "rpxTranslate");
|
|
406
|
+
i0.ɵɵelementEnd();
|
|
407
|
+
i0.ɵɵelementStart(16, "span", 11)(17, "span");
|
|
408
|
+
i0.ɵɵtext(18, "fileName");
|
|
409
|
+
i0.ɵɵelementEnd()()();
|
|
410
|
+
i0.ɵɵelementStart(19, "input", 12, 0);
|
|
411
|
+
i0.ɵɵlistener("keydown.Tab", function WriteDocumentFieldComponent_Template_input_keydown_Tab_19_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fileValidationsOnTab()); })("change", function WriteDocumentFieldComponent_Template_input_change_19_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fileChangeEvent($event, ctx.caseField.field_type.regular_expression)); });
|
|
403
412
|
i0.ɵɵelementEnd()()();
|
|
404
|
-
i0.ɵɵelementStart(
|
|
405
|
-
i0.ɵɵlistener("click", function
|
|
406
|
-
i0.ɵɵtext(
|
|
407
|
-
i0.ɵɵpipe(
|
|
413
|
+
i0.ɵɵelementStart(21, "div", 13)(22, "button", 14);
|
|
414
|
+
i0.ɵɵlistener("click", function WriteDocumentFieldComponent_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cancelUpload()); });
|
|
415
|
+
i0.ɵɵtext(23);
|
|
416
|
+
i0.ɵɵpipe(24, "rpxTranslate");
|
|
408
417
|
i0.ɵɵelementEnd()();
|
|
409
418
|
} if (rf & 2) {
|
|
410
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
419
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(22, _c1, !ctx.valid));
|
|
411
420
|
i0.ɵɵadvance();
|
|
412
421
|
i0.ɵɵproperty("for", ctx.id());
|
|
413
422
|
i0.ɵɵadvance();
|
|
414
|
-
i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3,
|
|
423
|
+
i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3, 14, ctx.caseField));
|
|
415
424
|
i0.ɵɵadvance(2);
|
|
416
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5,
|
|
425
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 16, ctx.caseField));
|
|
417
426
|
i0.ɵɵadvance(2);
|
|
418
427
|
i0.ɵɵproperty("ngIf", ctx.caseField.hint_text);
|
|
419
428
|
i0.ɵɵadvance();
|
|
@@ -422,21 +431,25 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
422
431
|
i0.ɵɵproperty("ngIf", ctx.caseField);
|
|
423
432
|
i0.ɵɵadvance(2);
|
|
424
433
|
i0.ɵɵproperty("id", ctx.createElementId("fileInputWrapper"));
|
|
434
|
+
i0.ɵɵadvance(2);
|
|
435
|
+
i0.ɵɵproperty("for", ctx.id());
|
|
425
436
|
i0.ɵɵadvance();
|
|
437
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 18, "Choose file"));
|
|
438
|
+
i0.ɵɵadvance(5);
|
|
426
439
|
i0.ɵɵpropertyInterpolate("accept", ctx.caseField.field_type.regular_expression);
|
|
427
440
|
i0.ɵɵproperty("id", ctx.id());
|
|
428
441
|
i0.ɵɵadvance(3);
|
|
429
442
|
i0.ɵɵproperty("disabled", !ctx.isUploadInProgress());
|
|
430
443
|
i0.ɵɵadvance();
|
|
431
|
-
i0.ɵɵ
|
|
432
|
-
} },
|
|
444
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(24, 20, "Cancel upload"), " ");
|
|
445
|
+
} }, styles: [".input-upload-file[_ngcontent-%COMP%]{width:100%;display:none}.upload-file-container[_ngcontent-%COMP%]{display:flex;align-items:baseline}.input-label[_ngcontent-%COMP%]{width:8rem}.form [_nghost-%COMP%] .grey-bar>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form [_nghost-%COMP%] .grey-bar>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form [_nghost-%COMP%] .grey-bar>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}"] });
|
|
433
446
|
}
|
|
434
447
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDocumentFieldComponent, [{
|
|
435
448
|
type: Component,
|
|
436
|
-
args: [{ selector: 'ccd-write-document-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error bottom-30': !valid}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" attr.aria-label=\"{{caseField | ccdFieldLabel}}\">{{(caseField | ccdFieldLabel)}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"fileUploadMessages && !valid\">{{fileUploadMessages | rpxTranslate}}</span>\n\n <div>\n <!--<span *ngIf=\"getUploadedFileName()\" class=\"text-16\">File name: {{getUploadedFileName()}}</span>-->\n <ccd-read-document-field
|
|
449
|
+
args: [{ selector: 'ccd-write-document-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error bottom-30': !valid}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" attr.aria-label=\"{{caseField | ccdFieldLabel}}\"\n >{{(caseField | ccdFieldLabel)}}</span\n >\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\"\n >{{caseField.hint_text | rpxTranslate}}</span\n >\n <span class=\"error-message\" *ngIf=\"fileUploadMessages && !valid\"\n >{{fileUploadMessages | rpxTranslate}}</span\n >\n\n <div>\n <!--<span *ngIf=\"getUploadedFileName()\" class=\"text-16\">File name: {{getUploadedFileName()}}</span>-->\n <ccd-read-document-field\n *ngIf=\"caseField\"\n [caseField]=\"caseField\"\n ></ccd-read-document-field>\n </div>\n\n <div style=\"position: relative\">\n <div\n [id]=\"createElementId('fileInputWrapper')\"\n (click)=\"fileSelectEvent()\"\n (keyup)=\"fileSelectEvent()\"\n ></div>\n <div class=\"upload-file-container\">\n <label\n [for]=\"id()\"\n class=\"button button-secondary input-label\"\n aria-label=\"Choose file\"\n >{{'Choose file' | rpxTranslate}}</label\n >\n <span class=\"form-control bottom-30\">\n <span>fileName</span>\n </span>\n </div>\n <input\n [id]=\"id()\"\n type=\"file\"\n class=\"input-upload-file\"\n (keydown.Tab)=\"fileValidationsOnTab()\"\n (change)=\"fileChangeEvent($event, caseField.field_type.regular_expression)\"\n accept=\"{{caseField.field_type.regular_expression}}\"\n #fileInput\n />\n </div>\n</div>\n<div class=\"form-group bottom-30\">\n <button\n class=\"button button-secondary\"\n type=\"button\"\n aria-label=\"Cancel upload\"\n (click)=\"cancelUpload()\"\n [disabled]=\"!isUploadInProgress()\"\n >\n {{'Cancel upload' | rpxTranslate}}\n </button>\n</div>\n", styles: [".input-upload-file{width:100%;display:none}.upload-file-container{display:flex;align-items:baseline}.input-label{width:8rem}.form :host::ng-deep .grey-bar>*>.form-group,.form :host::ng-deep .grey-bar>*>*>.form-group,.form :host::ng-deep .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form :host::ng-deep .grey-bar>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>*>.form-group:not(.form-group-error),.form :host::ng-deep .grey-bar>*>dl.case-field:not(.form-group-error){border-left:solid 5px #b1b4b6}.form :host::ng-deep .grey-bar>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group input:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group select:not(.inline-block),.form :host::ng-deep .grey-bar>*>*>.form-group textarea:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field input:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field select:not(.inline-block),.form :host::ng-deep .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}\n"] }]
|
|
437
450
|
}], () => [{ type: i1.AbstractAppConfig }, { type: i2.CaseNotifier }, { type: i3.DocumentManagementService }, { type: i4.MatLegacyDialog }, { type: i5.FileUploadStateService }, { type: i6.JurisdictionService }], { fileInput: [{
|
|
438
451
|
type: ViewChild,
|
|
439
452
|
args: ['fileInput', { static: false }]
|
|
440
453
|
}] }); })();
|
|
441
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDocumentFieldComponent, { className: "WriteDocumentFieldComponent", filePath: "lib/shared/components/palette/document/write-document-field.component.ts", lineNumber:
|
|
442
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLElBQUksU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0Ys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RDtZQUFwRCwrRUFBb0Q7WUFEckIsNkJBQVc7WUFLdUQsZUFBa0M7WUFBbEMsb0RBQWtDO1lBQUMsY0FBa0M7WUFBbEMsNkRBQWtDOzs7aUZER3BLLDJCQUEyQjtjQUp2QyxTQUFTOzJCQUNFLDBCQUEwQjswTkFlYyxTQUFTO2tCQUExRCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQVo5QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2Utdmlldy5tb2RlbCc7XG5pbXBvcnQgeyBEb2N1bWVudERhdGEsIEZvcm1Eb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kb2N1bWVudC9kb2N1bWVudC1kYXRhLm1vZGVsJ1xuaW1wb3J0IHsgSHR0cEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2h0dHAvaHR0cC1lcnJvci5tb2RlbCc7XG5pbXBvcnQgeyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZG9jdW1lbnQtbWFuYWdlbWVudC9kb2N1bWVudC1tYW5hZ2VtZW50LnNlcnZpY2UnXG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VOb3RpZmllciB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2Uubm90aWZpZXInO1xuaW1wb3J0IHsgRG9jdW1lbnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9kaWFsb2dzL2RvY3VtZW50LWRpYWxvZy9kb2N1bWVudC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IGluaXREaWFsb2cgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luaXQtZGlhbG9nLWhlbHBlcic7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLXVwbG9hZC1zdGF0ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWRvY3VtZW50LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWRvY3VtZW50LWZpZWxkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9VUkwgPSAnZG9jdW1lbnRfdXJsJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9CSU5BUllfVVJMID0gJ2RvY3VtZW50X2JpbmFyeV91cmwnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERPQ1VNRU5UX0ZJTEVOQU1FID0gJ2RvY3VtZW50X2ZpbGVuYW1lJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9IQVNIID0gJ2RvY3VtZW50X2hhc2gnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVQTE9BRF9USU1FU1RBTVAgPSAndXBsb2FkX3RpbWVzdGFtcCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQgPSAnRmlsZSByZXF1aXJlZCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX05PVF9BVkFJTEFCTEUgPSAnRG9jdW1lbnQgdXBsb2FkIGZhY2lsaXR5IGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX0lOVkFMSURfRk9STUFUID0gJ0RvY3VtZW50IGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfV0FJVElOR19GSUxFX1NUQVRVUyA9ICdVcGxvYWRpbmcuLi4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVSUk9SX1VQTE9BRElOR19GSUxFID0gJ0Vycm9yIFVwbG9hZGluZyBGaWxlJztcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlOiBGaWxlO1xuICBwdWJsaWMgdmFsaWQgPSB0cnVlO1xuICBwdWJsaWMgZmlsZVVwbG9hZE1lc3NhZ2VzOiBzdHJpbmc7XG4gIHB1YmxpYyBjb25maXJtUmVwbGFjZVJlc3VsdDogc3RyaW5nO1xuICBwdWJsaWMgY2xpY2tJbnNpZGVUaGVEb2N1bWVudDogYm9vbGVhbjtcblxuICAvLyB0aGVzZSBhcmUgcHVibGljIHNvIHRoYXQgdGhleSBjYW4gYmUgbW9ja2VkIGZvciB0ZXN0c1xuICBwdWJsaWMgZmlsZVVwbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlTm90aWZpZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGp1cmlzZGljdGlvblN1YnM6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHVwbG9hZGVkRG9jdW1lbnQ6IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZztcbiAgcHJpdmF0ZSBzZWN1cmVNb2RlT246IGJvb2xlYW47XG5cbiAgcHVibGljIGp1cmlzZGljdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlVHlwZUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudE1hbmFnZW1lbnQ6IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFN0YXRlU2VydmljZTogRmlsZVVwbG9hZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cmVNb2RlT24gPSB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudFNlY3VyZU1vZGUoKTtcbiAgICBpZiAodGhpcy5zZWN1cmVNb2RlT24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9DYXNlRGV0YWlscygpO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ0NvbmZpZyA9IGluaXREaWFsb2coKTtcbiAgICAvLyBFVUktMzQwMy4gVGhlIGZpZWxkIHdhcyBub3QgYmVpbmcgcmVnaXN0ZXJlZCB3aGVuIHRoZXJlIHdhcyBubyB2YWx1ZSBhbmQgdGhlIGZpZWxkXG4gICAgLy8gaXRzZWxmIHdhcyBub3QgbWFuZGF0b3J5LCB3aGljaCBtZWFudCB0aGF0IHNob3dfY29uZGl0aW9ucyB3b3VsZCBub3QgYmUgZXZhbHVhdGVkLlxuICAgIC8vIEkndmUgY2xlYW5lZCB1cCB0aGUgbG9naWMgYW5kIGl0J3Mgbm93IGFsd2F5cyByZWdpc3RlcmVkLlxuICAgIGxldCBkb2N1bWVudCA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlIHx8IHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCB9O1xuICAgIGRvY3VtZW50ID0gdGhpcy5zZWN1cmVNb2RlT24gJiYgIWRvY3VtZW50LmRvY3VtZW50X2hhc2ggPyB7IC4uLmRvY3VtZW50LCBkb2N1bWVudF9oYXNoOiBudWxsIH0gOiBkb2N1bWVudDtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5jcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVEb2N1bWVudEZvcm0oZG9jdW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvblN1YnMpIHtcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU3Vicy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1VwbG9hZEluUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5pc1VwbG9hZEluUHJvZ3Jlc3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxVcGxvYWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3MoZmFsc2UpO1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLnJlc2V0VXBsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZVZhbGlkYXRpb25zT25UYWIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBTWFuZGF0b3J5Q29tcG9uZW50KCkpIHtcbiAgICAgIGlmICh0aGlzLnZhbGlkYXRlRm9ybVVwbG9hZGVkRG9jdW1lbnQoKSkge1xuICAgICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9GSUxFX1JFUVVJUkVEKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZUNoYW5nZUV2ZW50KGZpbGVJbnB1dDogYW55LCBhbGxvd2VkUmVnZXg/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgZmlsZVR5cGVSZWdleDtcbiAgICBpZiAoYWxsb3dlZFJlZ2V4KXtcbiAgICAgIGZpbGVUeXBlUmVnZXggPSBuZXcgUmVnRXhwKGAoJHthbGxvd2VkUmVnZXgucmVwbGFjZSgvLC9nLCAnfCcpfSlgKTtcbiAgICB9XG4gICAgaWYgKGZpbGVJbnB1dC50YXJnZXQ/LmZpbGVzWzBdICYmICFmaWxlSW5wdXQudGFyZ2V0Py5maWxlc1swXT8ubmFtZT8ubWF0Y2goZmlsZVR5cGVSZWdleCkpe1xuICAgICAgdGhpcy5pbnZhbGlkRmlsZUZvcm1hdCgpO1xuICAgIH0gZWxzZSBpZiAoZmlsZUlucHV0LnRhcmdldC5maWxlc1swXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlSW5wdXQudGFyZ2V0LmZpbGVzWzBdO1xuICAgICAgdGhpcy5kaXNwbGF5RmlsZVVwbG9hZE1lc3NhZ2VzKFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfV0FJVElOR19GSUxFX1NUQVRVUyk7XG4gICAgICBjb25zdCBkb2N1bWVudFVwbG9hZDogRm9ybURhdGEgPSB0aGlzLmJ1aWxkRG9jdW1lbnRVcGxvYWREYXRhKHRoaXMuc2VsZWN0ZWRGaWxlKTtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5zZXRVcGxvYWRJblByb2dyZXNzKHRydWUpO1xuXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmRvY3VtZW50TWFuYWdlbWVudC51cGxvYWRGaWxlKGRvY3VtZW50VXBsb2FkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzdWx0RG9jdW1lbnQ6IERvY3VtZW50RGF0YSkgPT4gdGhpcy5oYW5kbGVEb2N1bWVudFVwbG9hZFJlc3VsdChyZXN1bHREb2N1bWVudCksXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvcikgPT4gdGhpcy5oYW5kbGVEb2N1bWVudFVwbG9hZEVycm9yKGVycm9yKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRVcGxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbkZpbGVEaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGZpbGVTZWxlY3RFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuY2FzZUZpZWxkLnZhbHVlICYmIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lKSB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRGaWxlICYmIHRoaXMuc2VsZWN0ZWRGaWxlLm5hbWUpKSB7XG4gICAgICB0aGlzLm9wZW5EaWFsb2codGhpcy5kaWFsb2dDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5GaWxlRGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyaWdnZXJSZXBsYWNlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbmZpcm1SZXBsYWNlUmVzdWx0ID09PSAnUmVwbGFjZScpIHtcbiAgICAgIHRoaXMub3BlbkZpbGVEaWFsb2coKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaW52YWxpZEZpbGVGb3JtYXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0obnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgdGhpcy5kaXNwbGF5RmlsZVVwbG9hZE1lc3NhZ2VzKFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfRVJST1JfSU5WQUxJRF9GT1JNQVQpO1xuICB9XG5cbiAgcHVibGljIGdldFVwbG9hZGVkRmlsZU5hbWUoKTogYW55IHtcbiAgICBpZiAodGhpcy51cGxvYWRlZERvY3VtZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfRklMRU5BTUUpLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRVcGxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xuICAgIGlmICh0aGlzLmlzQU1hbmRhdG9yeUNvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZURvY3VtZW50Rm9ybShudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbGlkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbGVWYWxpZGF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgaWYgKHRoaXMuY2xpY2tJbnNpZGVUaGVEb2N1bWVudCAmJiB0aGlzLnZhbGlkYXRlRm9ybVVwbG9hZGVkRG9jdW1lbnQoKSAmJiAhdGhpcy5pc1VwTG9hZGluZ0FGaWxlKCkpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5RmlsZVVwbG9hZE1lc3NhZ2VzKFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfRVJST1JfRklMRV9SRVFVSVJFRCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRGlhbG9nKGRpYWxvZ0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRG9jdW1lbnREaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgdGhpcy5kaWFsb2dTdWJzY3JpcHRpb24gPSBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLmNvbmZpcm1SZXBsYWNlUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy50cmlnZ2VyUmVwbGFjZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCB3ZSBjYW4gZ2V0IHRoZSBjYXNlIHR5cGUgYW5kIGp1cmlzZGljdGlvbiBmcm9tIGRpZmZlcmVudCBzb3VyY2VzXG4gIC8vIElmIHdlIGFyZSBydW5uaW5nIGFuIGV2ZW50LCB0aGUgY2FzZU5vdGlmaWVyIHdpbGwgaGF2ZSB0aGUgY3VycmVudCBjYXNlXG4gIC8vIElmIHdlIGFyZSBjcmVhdGluZyBhIGNhc2UsIHRoZSBjYXNlIGRvZXNuJ3QgZXhpc3QgeWV0LCBzbyB0aGUgY2FzZU5vdGlmaWVyIGNhbid0IGhlbHBcbiAgLy8gSW5zdGVhZCB3ZSBjYW4gdXNlIHRoZSBldmVudFRyaWdnZXIgdG8gZ2V0IHRoZSBjYXNlIHR5cGUsIGFuZCB0aGUganVyaXNkaWN0aW9uIHNlcnZpY2UgdG9cbiAgLy8gZ2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQganVyaXNkaWN0aW9uXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9DYXNlRGV0YWlscygpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllclN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoY2FzZURldGFpbHM6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgIHRoaXMuY2FzZVR5cGVJZCA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGUuaWQ7XG4gICAgICAgIHRoaXMuanVyaXNkaWN0aW9uSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU3VicyA9IHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5zZWxlY3RlZEp1cmlzZGljdGlvbkJTLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoanVyaXNkaWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChqdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmp1cmlzZGljdGlvbklkID0ganVyaXNkaWN0aW9uLmlkO1xuICAgICAgICAgIGlmIChqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlLmlkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzQU1hbmRhdG9yeUNvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ICYmIHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dCA9PT0gQ29uc3RhbnRzLk1BTkRBVE9SWTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhmaWxlVXBsb2FkTWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZVVwbG9hZE1lc3NhZ2VzID0gZmlsZVVwbG9hZE1lc3NhZ2U7XG4gIH1cblxuICBwcml2YXRlIGlzVXBMb2FkaW5nQUZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZE1lc3NhZ2VzID09PSBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX1dBSVRJTkdfRklMRV9TVEFUVVM7XG4gIH1cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZvcm1VcGxvYWRlZERvY3VtZW50KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy51cGxvYWRlZERvY3VtZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGlvbiA9ICF0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9VUkwpLnZhbGlkICYmXG4gICAgICAhdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfQklOQVJZX1VSTCkudmFsaWQgJiZcbiAgICAgICF0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9GSUxFTkFNRSkudmFsaWQ7XG5cbiAgICBpZiAodGhpcy5zZWN1cmVNb2RlT24pIHtcbiAgICAgIHZhbGlkYXRpb24gPSB2YWxpZGF0aW9uICYmICF0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9IQVNIKS52YWxpZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRG9jdW1lbnRGb3JtKHVybDogc3RyaW5nLCBiaW5hcnlVcmw6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZywgZG9jdW1lbnRIYXNoPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfVVJMKS5zZXRWYWx1ZSh1cmwpO1xuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0JJTkFSWV9VUkwpLnNldFZhbHVlKGJpbmFyeVVybCk7XG4gICAgdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfRklMRU5BTUUpLnNldFZhbHVlKGZpbGVuYW1lKTtcbiAgICBpZiAoZG9jdW1lbnRIYXNoKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9IQVNIKS5zZXRWYWx1ZShkb2N1bWVudEhhc2gpO1xuICAgIH1cbiAgICBpZih0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfVElNRVNUQU1QKSl7XG4gICAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQucmVtb3ZlQ29udHJvbChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX1RJTUVTVEFNUCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50OiBGb3JtRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICBkb2N1bWVudF91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICB9O1xuXG4gICAgaWYoZG9jdW1lbnQudXBsb2FkX3RpbWVzdGFtcCAmJiAodHlwZW9mIGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXAgPT09ICdzdHJpbmcnICkpe1xuICAgICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgICAuLi57IHVwbG9hZF90aW1lc3RhbXA6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wKSB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHtcbiAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgLi4ueyBkb2N1bWVudF9oYXNoOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCkgfVxuICAgIH0gOiBkb2N1bWVudEZvcm1Hcm91cDtcblxuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoZG9jdW1lbnRGb3JtR3JvdXApLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvY3VtZW50Rm9ybShkb2N1bWVudDogRm9ybURvY3VtZW50KTogdm9pZCB7XG4gICAgbGV0IGRvY3VtZW50Rm9ybUdyb3VwID0ge1xuICAgICAgZG9jdW1lbnRfdXJsOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfdXJsKSxcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9iaW5hcnlfdXJsKSxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWUpXG4gICAgfTtcblxuICAgIGlmKGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXAgJiYgKHR5cGVvZiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID09PSAnc3RyaW5nJyApKXtcbiAgICAgIGRvY3VtZW50Rm9ybUdyb3VwID0ge1xuICAgICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgICAgLi4ueyB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQudXBsb2FkX3RpbWVzdGFtcCkgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50Rm9ybUdyb3VwID0gdGhpcy5zZWN1cmVNb2RlT24gPyB7XG4gICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgIC4uLnsgZG9jdW1lbnRfaGFzaDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2hhc2gpIH1cbiAgICB9IDogZG9jdW1lbnRGb3JtR3JvdXA7XG5cbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKGRvY3VtZW50Rm9ybUdyb3VwKSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvck1lc3NhZ2UoZXJyb3I6IEh0dHBFcnJvcik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgIGNhc2UgNTAyOlxuICAgICAgICByZXR1cm4gV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9OT1RfQVZBSUxBQkxFO1xuICAgICAgY2FzZSA0MjI6XG4gICAgICAgIHtcbiAgICAgICAgICBsZXQgZXJyb3JNc2cgPSBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRVJST1JfVVBMT0FESU5HX0ZJTEU7XG4gICAgICAgICAgaWYgKGVycm9yPy5lcnJvcikge1xuICAgICAgICAgICAgY29uc3QgZnVsbEVycm9yID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGZ1bGxFcnJvci5pbmRleE9mKCd7Jyk7XG4gICAgICAgICAgICBpZiAoc3RhcnQgPj0gMCkge1xuICAgICAgICAgICAgICBjb25zdCBqc29uID0gZnVsbEVycm9yLnN1YnN0cmluZyhzdGFydCwgZnVsbEVycm9yLmxlbmd0aCAtIDEpLnNwbGl0KCc8RU9MPicpLmpvaW4oJycpO1xuICAgICAgICAgICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGpzb24pO1xuICAgICAgICAgICAgICBpZiAob2JqPy5lcnJvcikge1xuICAgICAgICAgICAgICAgIGVycm9yTXNnID0gb2JqLmVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBlcnJvck1zZztcbiAgICAgICAgfVxuICAgICAgY2FzZSA0Mjk6XG4gICAgICAgIHJldHVybiBlcnJvcj8uZXJyb3I7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkVSUk9SX1VQTE9BRElOR19GSUxFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREb2N1bWVudFVwbG9hZERhdGEoc2VsZWN0ZWRGaWxlOiBGaWxlKTogRm9ybURhdGEge1xuICAgIGNvbnN0IGRvY3VtZW50VXBsb2FkOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnZmlsZXMnLCBzZWxlY3RlZEZpbGUsIHNlbGVjdGVkRmlsZS5uYW1lKTtcbiAgICBkb2N1bWVudFVwbG9hZC5hcHBlbmQoJ2NsYXNzaWZpY2F0aW9uJywgJ1BVQkxJQycpO1xuXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZSgpKSB7XG4gICAgICBjb25zdCBjYXNlVHlwZUlkID0gdGhpcy5jYXNlVHlwZUlkID8gdGhpcy5jYXNlVHlwZUlkIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhc2VUeXBlSnVyaXNkaWN0aW9uSWQgPSB0aGlzLmp1cmlzZGljdGlvbklkID8gdGhpcy5qdXJpc2RpY3Rpb25JZCA6IG51bGw7XG4gICAgICBkb2N1bWVudFVwbG9hZC5hcHBlbmQoJ2Nhc2VUeXBlSWQnLCBjYXNlVHlwZUlkKTtcbiAgICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnanVyaXNkaWN0aW9uSWQnLCBjYXNlVHlwZUp1cmlzZGljdGlvbklkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRVcGxvYWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURvY3VtZW50VXBsb2FkUmVzdWx0KHJlc3VsdDogRG9jdW1lbnREYXRhKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVwbG9hZGVkRG9jdW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybSh7IGRvY3VtZW50X3VybDogbnVsbCwgZG9jdW1lbnRfYmluYXJ5X3VybDogbnVsbCwgZG9jdW1lbnRfZmlsZW5hbWU6IG51bGwsIGRvY3VtZW50X2hhc2g6IG51bGwgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybSh7IGRvY3VtZW50X3VybDogbnVsbCwgZG9jdW1lbnRfYmluYXJ5X3VybDogbnVsbCwgZG9jdW1lbnRfZmlsZW5hbWU6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZG9jdW1lbnQgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHJlc3VsdC5kb2N1bWVudHNbMF0gOiByZXN1bHQuX2VtYmVkZGVkLmRvY3VtZW50c1swXTtcblxuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0oXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWYsXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZixcbiAgICAgICAgZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWUsXG4gICAgICAgIGRvY3VtZW50Lmhhc2hUb2tlblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0oXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWYsXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZixcbiAgICAgICAgZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWQgPSB0cnVlO1xuICAgIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5zZXRVcGxvYWRJblByb2dyZXNzKGZhbHNlKTtcblxuICAgIC8vIHJlZnJlc2ggcmVwbGFjZWQgZG9jdW1lbnQgaW5mb1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC52YWx1ZSkge1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZjtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lID0gZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWU7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF91cmwgPSBkb2N1bWVudC5fbGlua3Muc2VsZi5ocmVmO1xuXG4gICAgICBpZiAodGhpcy5zZWN1cmVNb2RlT24pIHtcbiAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfaGFzaCA9IGRvY3VtZW50Lmhhc2hUb2tlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURvY3VtZW50VXBsb2FkRXJyb3IoZXJyb3I6IEh0dHBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZmlsZVVwbG9hZE1lc3NhZ2VzID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIHRoaXMudmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVVcGxvYWRTdGF0ZVNlcnZpY2Uuc2V0VXBsb2FkSW5Qcm9ncmVzcyhmYWxzZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yIGJvdHRvbS0zMCc6ICF2YWxpZH1cIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWQoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGF0dHIuYXJpYS1sYWJlbD1cInt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbH19XCI+e3soY2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbCl9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWxlVXBsb2FkTWVzc2FnZXMgJiYgIXZhbGlkXCI+e3tmaWxlVXBsb2FkTWVzc2FnZXMgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cblxuICA8ZGl2PlxuICAgIDwhLS08c3BhbiAqbmdJZj1cImdldFVwbG9hZGVkRmlsZU5hbWUoKVwiIGNsYXNzPVwidGV4dC0xNlwiPkZpbGUgbmFtZToge3tnZXRVcGxvYWRlZEZpbGVOYW1lKCl9fTwvc3Bhbj4tLT5cbiAgICA8Y2NkLXJlYWQtZG9jdW1lbnQtZmllbGQgKm5nSWY9XCJjYXNlRmllbGRcIiBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiPjwvY2NkLXJlYWQtZG9jdW1lbnQtZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz5cbiAgICA8ZGl2IFtpZF09XCJjcmVhdGVFbGVtZW50SWQoJ2ZpbGVJbnB1dFdyYXBwZXInKVwiIChjbGljayk9XCJmaWxlU2VsZWN0RXZlbnQoKVwiIChrZXl1cCk9XCJmaWxlU2VsZWN0RXZlbnQoKVwiPjwvZGl2PlxuICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBib3R0b20tMzBcIiBbaWRdPVwiaWQoKVwiIHR5cGU9XCJmaWxlXCIgKGtleWRvd24uVGFiKT1cImZpbGVWYWxpZGF0aW9uc09uVGFiKClcIiAoY2hhbmdlKT1cImZpbGVDaGFuZ2VFdmVudCgkZXZlbnQsIGNhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbilcIlxuICAgICAgICAgICBhY2NlcHQ9XCJ7e2Nhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbn19XCIgI2ZpbGVJbnB1dC8+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3R0b20tMzBcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDYW5jZWwgdXBsb2FkXCIgKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgpXCIgW2Rpc2FibGVkXT1cIiFpc1VwbG9hZEluUHJvZ3Jlc3MoKVwiPnt7J0NhbmNlbCB1cGxvYWQnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
454
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDocumentFieldComponent, { className: "WriteDocumentFieldComponent", filePath: "lib/shared/components/palette/document/write-document-field.component.ts", lineNumber: 24 }); })();
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLElBQUksU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0Ys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LGFBQ0Y7O1lBQ0YsQUFERSxpQkFBUyxFQUNMOztZQTNEa0IsaUVBQWtEO1lBQ2pFLGNBQVk7WUFBWiw4QkFBWTtZQUNRLGNBQStDOztZQUNyRSxlQUErQjtZQUEvQiwwREFBK0I7WUFHWCxlQUF5QjtZQUF6Qiw4Q0FBeUI7WUFHckIsY0FBa0M7WUFBbEMsMkRBQWtDO1lBTzFELGVBQWU7WUFBZixvQ0FBZTtZQU9oQixlQUEwQztZQUExQyw0REFBMEM7WUFNeEMsZUFBWTtZQUFaLDhCQUFZO1lBR1gsY0FBZ0M7WUFBaEMsMkRBQWdDO1lBWW5DLGVBQW9EO1lBQXBELCtFQUFvRDtZQUxwRCw2QkFBVztZQWdCYixlQUFrQztZQUFsQyxvREFBa0M7WUFFbEMsY0FDRjtZQURFLHdFQUNGOzs7aUZEbkNXLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDBCQUEwQjswTkFnQmMsU0FBUztrQkFBMUQsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkFaOUIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhLCBGb3JtRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZG9jdW1lbnQvZG9jdW1lbnQtZGF0YS5tb2RlbCdcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RvY3VtZW50LW1hbmFnZW1lbnQvZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlJ1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbmltcG9ydCB7IERvY3VtZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbml0LWRpYWxvZy1oZWxwZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFN0YXRlU2VydmljZSB9IGZyb20gJy4vZmlsZS11cGxvYWQtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1kb2N1bWVudC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1kb2N1bWVudC1maWVsZC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vLi4vYmFzZS1maWVsZC9maWVsZC13cml0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9VUkwgPSAnZG9jdW1lbnRfdXJsJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9CSU5BUllfVVJMID0gJ2RvY3VtZW50X2JpbmFyeV91cmwnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERPQ1VNRU5UX0ZJTEVOQU1FID0gJ2RvY3VtZW50X2ZpbGVuYW1lJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9IQVNIID0gJ2RvY3VtZW50X2hhc2gnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVQTE9BRF9USU1FU1RBTVAgPSAndXBsb2FkX3RpbWVzdGFtcCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQgPSAnRmlsZSByZXF1aXJlZCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX05PVF9BVkFJTEFCTEUgPSAnRG9jdW1lbnQgdXBsb2FkIGZhY2lsaXR5IGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVBMT0FEX0VSUk9SX0lOVkFMSURfRk9STUFUID0gJ0RvY3VtZW50IGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfV0FJVElOR19GSUxFX1NUQVRVUyA9ICdVcGxvYWRpbmcuLi4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVSUk9SX1VQTE9BRElOR19GSUxFID0gJ0Vycm9yIFVwbG9hZGluZyBGaWxlJztcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlOiBGaWxlO1xuICBwdWJsaWMgdmFsaWQgPSB0cnVlO1xuICBwdWJsaWMgZmlsZVVwbG9hZE1lc3NhZ2VzOiBzdHJpbmc7XG4gIHB1YmxpYyBjb25maXJtUmVwbGFjZVJlc3VsdDogc3RyaW5nO1xuICBwdWJsaWMgY2xpY2tJbnNpZGVUaGVEb2N1bWVudDogYm9vbGVhbjtcblxuICAvLyB0aGVzZSBhcmUgcHVibGljIHNvIHRoYXQgdGhleSBjYW4gYmUgbW9ja2VkIGZvciB0ZXN0c1xuICBwdWJsaWMgZmlsZVVwbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlTm90aWZpZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGp1cmlzZGljdGlvblN1YnM6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGZpbGVOYW1lID0gJ05vIGZpbGUgY2hvc2VuJztcblxuICBwcml2YXRlIHVwbG9hZGVkRG9jdW1lbnQ6IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZztcbiAgcHJpdmF0ZSBzZWN1cmVNb2RlT246IGJvb2xlYW47XG5cbiAgcHVibGljIGp1cmlzZGljdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlVHlwZUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudE1hbmFnZW1lbnQ6IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFN0YXRlU2VydmljZTogRmlsZVVwbG9hZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cmVNb2RlT24gPSB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudFNlY3VyZU1vZGUoKTtcbiAgICBpZiAodGhpcy5zZWN1cmVNb2RlT24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9DYXNlRGV0YWlscygpO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ0NvbmZpZyA9IGluaXREaWFsb2coKTtcbiAgICAvLyBFVUktMzQwMy4gVGhlIGZpZWxkIHdhcyBub3QgYmVpbmcgcmVnaXN0ZXJlZCB3aGVuIHRoZXJlIHdhcyBubyB2YWx1ZSBhbmQgdGhlIGZpZWxkXG4gICAgLy8gaXRzZWxmIHdhcyBub3QgbWFuZGF0b3J5LCB3aGljaCBtZWFudCB0aGF0IHNob3dfY29uZGl0aW9ucyB3b3VsZCBub3QgYmUgZXZhbHVhdGVkLlxuICAgIC8vIEkndmUgY2xlYW5lZCB1cCB0aGUgbG9naWMgYW5kIGl0J3Mgbm93IGFsd2F5cyByZWdpc3RlcmVkLlxuICAgIGxldCBkb2N1bWVudCA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlIHx8IHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCB9O1xuICAgIGRvY3VtZW50ID0gdGhpcy5zZWN1cmVNb2RlT24gJiYgIWRvY3VtZW50LmRvY3VtZW50X2hhc2ggPyB7IC4uLmRvY3VtZW50LCBkb2N1bWVudF9oYXNoOiBudWxsIH0gOiBkb2N1bWVudDtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5jcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVEb2N1bWVudEZvcm0oZG9jdW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvblN1YnMpIHtcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU3Vicy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1VwbG9hZEluUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5pc1VwbG9hZEluUHJvZ3Jlc3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxVcGxvYWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3MoZmFsc2UpO1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLnJlc2V0VXBsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZVZhbGlkYXRpb25zT25UYWIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBTWFuZGF0b3J5Q29tcG9uZW50KCkpIHtcbiAgICAgIGlmICh0aGlzLnZhbGlkYXRlRm9ybVVwbG9hZGVkRG9jdW1lbnQoKSkge1xuICAgICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9GSUxFX1JFUVVJUkVEKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZUNoYW5nZUV2ZW50KGZpbGVJbnB1dDogYW55LCBhbGxvd2VkUmVnZXg/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgZmlsZVR5cGVSZWdleDtcbiAgICBpZiAoYWxsb3dlZFJlZ2V4KXtcbiAgICAgIGZpbGVUeXBlUmVnZXggPSBuZXcgUmVnRXhwKGAoJHthbGxvd2VkUmVnZXgucmVwbGFjZSgvLC9nLCAnfCcpfSlgKTtcbiAgICB9XG4gICAgaWYgKGZpbGVJbnB1dC50YXJnZXQ/LmZpbGVzWzBdICYmICFmaWxlSW5wdXQudGFyZ2V0Py5maWxlc1swXT8ubmFtZT8ubWF0Y2goZmlsZVR5cGVSZWdleCkpe1xuICAgICAgdGhpcy5pbnZhbGlkRmlsZUZvcm1hdCgpO1xuICAgIH0gZWxzZSBpZiAoZmlsZUlucHV0LnRhcmdldC5maWxlc1swXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlSW5wdXQudGFyZ2V0LmZpbGVzWzBdO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGVJbnB1dC50YXJnZXQuZmlsZXNbMF0ubmFtZTtcbiAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX1dBSVRJTkdfRklMRV9TVEFUVVMpO1xuICAgICAgY29uc3QgZG9jdW1lbnRVcGxvYWQ6IEZvcm1EYXRhID0gdGhpcy5idWlsZERvY3VtZW50VXBsb2FkRGF0YSh0aGlzLnNlbGVjdGVkRmlsZSk7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdGF0ZVNlcnZpY2Uuc2V0VXBsb2FkSW5Qcm9ncmVzcyh0cnVlKTtcblxuICAgICAgdGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudE1hbmFnZW1lbnQudXBsb2FkRmlsZShkb2N1bWVudFVwbG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3VsdERvY3VtZW50OiBEb2N1bWVudERhdGEpID0+IHRoaXMuaGFuZGxlRG9jdW1lbnRVcGxvYWRSZXN1bHQocmVzdWx0RG9jdW1lbnQpLFxuICAgICAgICBlcnJvcjogKGVycm9yOiBIdHRwRXJyb3IpID0+IHRoaXMuaGFuZGxlRG9jdW1lbnRVcGxvYWRFcnJvcihlcnJvcilcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc2V0VXBsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5GaWxlRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlU2VsZWN0RXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLmNhc2VGaWVsZC52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF9maWxlbmFtZSkgfHxcbiAgICAgICh0aGlzLnNlbGVjdGVkRmlsZSAmJiB0aGlzLnNlbGVjdGVkRmlsZS5uYW1lKSkge1xuICAgICAgdGhpcy5vcGVuRGlhbG9nKHRoaXMuZGlhbG9nQ29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuRmlsZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyUmVwbGFjZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jb25maXJtUmVwbGFjZVJlc3VsdCA9PT0gJ1JlcGxhY2UnKSB7XG4gICAgICB0aGlzLm9wZW5GaWxlRGlhbG9nKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGludmFsaWRGaWxlRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRG9jdW1lbnRGb3JtKG51bGwsIG51bGwsIG51bGwpO1xuICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0lOVkFMSURfRk9STUFUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcGxvYWRlZEZpbGVOYW1lKCk6IGFueSB7XG4gICAgaWYgKHRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0obnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9GSUxFX1JFUVVJUkVEKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWxlVmFsaWRhdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBTWFuZGF0b3J5Q29tcG9uZW50KCkpIHtcbiAgICAgIGlmICh0aGlzLmNsaWNrSW5zaWRlVGhlRG9jdW1lbnQgJiYgdGhpcy52YWxpZGF0ZUZvcm1VcGxvYWRlZERvY3VtZW50KCkgJiYgIXRoaXMuaXNVcExvYWRpbmdBRmlsZSgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRpYWxvZyhkaWFsb2dDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERvY3VtZW50RGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5jb25maXJtUmVwbGFjZVJlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMudHJpZ2dlclJlcGxhY2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgd2UgY2FuIGdldCB0aGUgY2FzZSB0eXBlIGFuZCBqdXJpc2RpY3Rpb24gZnJvbSBkaWZmZXJlbnQgc291cmNlc1xuICAvLyBJZiB3ZSBhcmUgcnVubmluZyBhbiBldmVudCwgdGhlIGNhc2VOb3RpZmllciB3aWxsIGhhdmUgdGhlIGN1cnJlbnQgY2FzZVxuICAvLyBJZiB3ZSBhcmUgY3JlYXRpbmcgYSBjYXNlLCB0aGUgY2FzZSBkb2Vzbid0IGV4aXN0IHlldCwgc28gdGhlIGNhc2VOb3RpZmllciBjYW4ndCBoZWxwXG4gIC8vIEluc3RlYWQgd2UgY2FuIHVzZSB0aGUgZXZlbnRUcmlnZ2VyIHRvIGdldCB0aGUgY2FzZSB0eXBlLCBhbmQgdGhlIGp1cmlzZGljdGlvbiBzZXJ2aWNlIHRvXG4gIC8vIGdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGp1cmlzZGljdGlvblxuICBwcml2YXRlIHN1YnNjcmliZVRvQ2FzZURldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGNhc2VEZXRhaWxzOiBDYXNlVmlldykgPT4ge1xuICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlLmlkO1xuICAgICAgICB0aGlzLmp1cmlzZGljdGlvbklkID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uanVyaXNkaWN0aW9uPy5pZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmp1cmlzZGljdGlvblN1YnMgPSB0aGlzLmp1cmlzZGljdGlvblNlcnZpY2Uuc2VsZWN0ZWRKdXJpc2RpY3Rpb25CUy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGp1cmlzZGljdGlvbikgPT4ge1xuICAgICAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5qdXJpc2RpY3Rpb25JZCA9IGp1cmlzZGljdGlvbi5pZDtcbiAgICAgICAgICBpZiAoanVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0ganVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZS5pZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FNYW5kYXRvcnlDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dCAmJiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgPT09IENvbnN0YW50cy5NQU5EQVRPUlk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoZmlsZVVwbG9hZE1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVVcGxvYWRNZXNzYWdlcyA9IGZpbGVVcGxvYWRNZXNzYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1VwTG9hZGluZ0FGaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbGVVcGxvYWRNZXNzYWdlcyA9PT0gV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9XQUlUSU5HX0ZJTEVfU1RBVFVTO1xuICB9XG4gIHByaXZhdGUgdmFsaWRhdGVGb3JtVXBsb2FkZWREb2N1bWVudCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IHZhbGlkYXRpb24gPSAhdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfVVJMKS52YWxpZCAmJlxuICAgICAgIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0JJTkFSWV9VUkwpLnZhbGlkICYmXG4gICAgICAhdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfRklMRU5BTUUpLnZhbGlkO1xuXG4gICAgaWYgKHRoaXMuc2VjdXJlTW9kZU9uKSB7XG4gICAgICB2YWxpZGF0aW9uID0gdmFsaWRhdGlvbiAmJiAhdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfSEFTSCkudmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRpb247XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURvY3VtZW50Rm9ybSh1cmw6IHN0cmluZywgYmluYXJ5VXJsOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIGRvY3VtZW50SGFzaD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX1VSTCkuc2V0VmFsdWUodXJsKTtcbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9CSU5BUllfVVJMKS5zZXRWYWx1ZShiaW5hcnlVcmwpO1xuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS5zZXRWYWx1ZShmaWxlbmFtZSk7XG4gICAgaWYgKGRvY3VtZW50SGFzaCkge1xuICAgICAgdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfSEFTSCkuc2V0VmFsdWUoZG9jdW1lbnRIYXNoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9USU1FU1RBTVApKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQucmVtb3ZlQ29udHJvbChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX1RJTUVTVEFNUCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50OiBGb3JtRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICBkb2N1bWVudF91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICB9O1xuXG4gICAgaWYgKGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXAgJiYgKHR5cGVvZiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID09PSAnc3RyaW5nJykpIHtcbiAgICAgIGRvY3VtZW50Rm9ybUdyb3VwID0ge1xuICAgICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgICAgLi4ueyB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQudXBsb2FkX3RpbWVzdGFtcCkgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50Rm9ybUdyb3VwID0gdGhpcy5zZWN1cmVNb2RlT24gPyB7XG4gICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgIC4uLnsgZG9jdW1lbnRfaGFzaDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2hhc2gpIH1cbiAgICB9IDogZG9jdW1lbnRGb3JtR3JvdXA7XG5cbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKGRvY3VtZW50Rm9ybUdyb3VwKSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEZvcm0oZG9jdW1lbnQ6IEZvcm1Eb2N1bWVudCk6IHZvaWQge1xuICAgIGxldCBkb2N1bWVudEZvcm1Hcm91cCA9IHtcbiAgICAgIGRvY3VtZW50X3VybDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X3VybCksXG4gICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfYmluYXJ5X3VybCksXG4gICAgICBkb2N1bWVudF9maWxlbmFtZTogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2ZpbGVuYW1lKVxuICAgIH07XG5cbiAgICBpZiAoZG9jdW1lbnQudXBsb2FkX3RpbWVzdGFtcCAmJiAodHlwZW9mIGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXAgPT09ICdzdHJpbmcnKSkge1xuICAgICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgICAuLi57IHVwbG9hZF90aW1lc3RhbXA6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wKSB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHtcbiAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgLi4ueyBkb2N1bWVudF9oYXNoOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCkgfVxuICAgIH0gOiBkb2N1bWVudEZvcm1Hcm91cDtcblxuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoZG9jdW1lbnRGb3JtR3JvdXApLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogSHR0cEVycm9yKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xuICAgICAgY2FzZSAwOlxuICAgICAgY2FzZSA1MDI6XG4gICAgICAgIHJldHVybiBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX05PVF9BVkFJTEFCTEU7XG4gICAgICBjYXNlIDQyMjpcbiAgICAgICAge1xuICAgICAgICAgIGxldCBlcnJvck1zZyA9IFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5FUlJPUl9VUExPQURJTkdfRklMRTtcbiAgICAgICAgICBpZiAoZXJyb3I/LmVycm9yKSB7XG4gICAgICAgICAgICBjb25zdCBmdWxsRXJyb3IgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZnVsbEVycm9yLmluZGV4T2YoJ3snKTtcbiAgICAgICAgICAgIGlmIChzdGFydCA+PSAwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBmdWxsRXJyb3Iuc3Vic3RyaW5nKHN0YXJ0LCBmdWxsRXJyb3IubGVuZ3RoIC0gMSkuc3BsaXQoJzxFT0w+Jykuam9pbignJyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoanNvbik7XG4gICAgICAgICAgICAgIGlmIChvYmo/LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNc2cgPSBvYmouZXJyb3I7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGVycm9yTXNnO1xuICAgICAgICB9XG4gICAgICBjYXNlIDQyOTpcbiAgICAgICAgcmV0dXJuIGVycm9yPy5lcnJvcjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRVJST1JfVVBMT0FESU5HX0ZJTEU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERvY3VtZW50VXBsb2FkRGF0YShzZWxlY3RlZEZpbGU6IEZpbGUpOiBGb3JtRGF0YSB7XG4gICAgY29uc3QgZG9jdW1lbnRVcGxvYWQ6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZG9jdW1lbnRVcGxvYWQuYXBwZW5kKCdmaWxlcycsIHNlbGVjdGVkRmlsZSwgc2VsZWN0ZWRGaWxlLm5hbWUpO1xuICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnY2xhc3NpZmljYXRpb24nLCAnUFVCTElDJyk7XG5cbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRTZWN1cmVNb2RlKCkpIHtcbiAgICAgIGNvbnN0IGNhc2VUeXBlSWQgPSB0aGlzLmNhc2VUeXBlSWQgPyB0aGlzLmNhc2VUeXBlSWQgOiBudWxsO1xuICAgICAgY29uc3QgY2FzZVR5cGVKdXJpc2RpY3Rpb25JZCA9IHRoaXMuanVyaXNkaWN0aW9uSWQgPyB0aGlzLmp1cmlzZGljdGlvbklkIDogbnVsbDtcbiAgICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnY2FzZVR5cGVJZCcsIGNhc2VUeXBlSWQpO1xuICAgICAgZG9jdW1lbnRVcGxvYWQuYXBwZW5kKCdqdXJpc2RpY3Rpb25JZCcsIGNhc2VUeXBlSnVyaXNkaWN0aW9uSWQpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2N1bWVudFVwbG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRG9jdW1lbnRVcGxvYWRSZXN1bHQocmVzdWx0OiBEb2N1bWVudERhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgaWYgKHRoaXMuc2VjdXJlTW9kZU9uKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRG9jdW1lbnRGb3JtKHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCwgZG9jdW1lbnRfaGFzaDogbnVsbCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRG9jdW1lbnRGb3JtKHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkb2N1bWVudCA9IHRoaXMuc2VjdXJlTW9kZU9uID8gcmVzdWx0LmRvY3VtZW50c1swXSA6IHJlc3VsdC5fZW1iZWRkZWQuZG9jdW1lbnRzWzBdO1xuXG4gICAgaWYgKHRoaXMuc2VjdXJlTW9kZU9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZURvY3VtZW50Rm9ybShcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLnNlbGYuaHJlZixcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmLFxuICAgICAgICBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZSxcbiAgICAgICAgZG9jdW1lbnQuaGFzaFRva2VuXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURvY3VtZW50Rm9ybShcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLnNlbGYuaHJlZixcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmLFxuICAgICAgICBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3MoZmFsc2UpO1xuXG4gICAgLy8gcmVmcmVzaCByZXBsYWNlZCBkb2N1bWVudCBpbmZvXG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF9iaW5hcnlfdXJsID0gZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmO1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X3VybCA9IGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWY7XG5cbiAgICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF9oYXNoID0gZG9jdW1lbnQuaGFzaFRva2VuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRG9jdW1lbnRVcGxvYWRFcnJvcihlcnJvcjogSHR0cEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPSB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgdGhpcy52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5zZXRVcGxvYWRJblByb2dyZXNzKGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3IgYm90dG9tLTMwJzogIXZhbGlkfVwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgYXR0ci5hcmlhLWxhYmVsPVwie3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX1cIlxuICAgICAgPnt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpfX08L3NwYW5cbiAgICA+XG4gIDwvbGFiZWw+XG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCJcbiAgICA+e3tjYXNlRmllbGQuaGludF90ZXh0IHwgcnB4VHJhbnNsYXRlfX08L3NwYW5cbiAgPlxuICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpbGVVcGxvYWRNZXNzYWdlcyAmJiAhdmFsaWRcIlxuICAgID57e2ZpbGVVcGxvYWRNZXNzYWdlcyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuXG4gID5cblxuICA8ZGl2PlxuICAgIDwhLS08c3BhbiAqbmdJZj1cImdldFVwbG9hZGVkRmlsZU5hbWUoKVwiIGNsYXNzPVwidGV4dC0xNlwiPkZpbGUgbmFtZToge3tnZXRVcGxvYWRlZEZpbGVOYW1lKCl9fTwvc3Bhbj4tLT5cbiAgICA8Y2NkLXJlYWQtZG9jdW1lbnQtZmllbGRcbiAgICAgICpuZ0lmPVwiY2FzZUZpZWxkXCJcbiAgICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICA+PC9jY2QtcmVhZC1kb2N1bWVudC1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgIDxkaXZcbiAgICAgIFtpZF09XCJjcmVhdGVFbGVtZW50SWQoJ2ZpbGVJbnB1dFdyYXBwZXInKVwiXG4gICAgICAoY2xpY2spPVwiZmlsZVNlbGVjdEV2ZW50KClcIlxuICAgICAgKGtleXVwKT1cImZpbGVTZWxlY3RFdmVudCgpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlLWNvbnRhaW5lclwiPlxuICAgICAgPGxhYmVsXG4gICAgICAgIFtmb3JdPVwiaWQoKVwiXG4gICAgICAgIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgaW5wdXQtbGFiZWxcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2hvb3NlIGZpbGVcIlxuICAgICAgICA+e3snQ2hvb3NlIGZpbGUnIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsXG4gICAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbCBib3R0b20tMzBcIj5cbiAgICAgICAgPHNwYW4+ZmlsZU5hbWU8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGlucHV0XG4gICAgICBbaWRdPVwiaWQoKVwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBjbGFzcz1cImlucHV0LXVwbG9hZC1maWxlXCJcbiAgICAgIChrZXlkb3duLlRhYik9XCJmaWxlVmFsaWRhdGlvbnNPblRhYigpXCJcbiAgICAgIChjaGFuZ2UpPVwiZmlsZUNoYW5nZUV2ZW50KCRldmVudCwgY2FzZUZpZWxkLmZpZWxkX3R5cGUucmVndWxhcl9leHByZXNzaW9uKVwiXG4gICAgICBhY2NlcHQ9XCJ7e2Nhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbn19XCJcbiAgICAgICNmaWxlSW5wdXRcbiAgICAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2FuY2VsIHVwbG9hZFwiXG4gICAgKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiIWlzVXBsb2FkSW5Qcm9ncmVzcygpXCJcbiAgPlxuICAgIHt7J0NhbmNlbCB1cGxvYWQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -518,4 +518,4 @@ export class QueryCheckYourAnswersComponent {
|
|
|
518
518
|
type: Output
|
|
519
519
|
}] }); })();
|
|
520
520
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber: 27 }); })();
|
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBTWpCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUgsT0FBTyxFQUFrRCxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFj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WUFFSixBQURFLEFBREUsaUJBQVMsRUFDTCxFQUNGO1lBRU4sa0RBQzZCO1lBQy9CLGlCQUFNOzs7O1lBeklJLGVBQThCO1lBQTlCLG1EQUE4QjtZQWdCckIsY0FBNkQ7WUFBN0Qsc0ZBQTZEO1lBSzNELGVBQTZEO1lBQUEsQUFBN0Qsb0ZBQTZELDZDQUFpQztZQVM5RSxlQUEyQjtZQUEzQiw2Q0FBMkI7WUFHdkQsY0FBNEQ7WUFBNUQscUZBQTREO1lBb0IzRCxlQUNGO1lBREUsMkpBQ0Y7WUFFRSxlQUNGO1lBREUscUdBQ0Y7WUFHSSxlQUNGO1lBREUsaUVBQ0Y7WUFLRCxlQUE2RDtZQUE3RCxzRkFBNkQ7WUFvQ1YsY0FBd0Q7WUFBeEQsd0VBQXdEO1lBeUI1RyxlQUNGO1lBREUsbUVBQ0Y7WUFFRSxlQUNGO1lBREUsaUVBQ0Y7WUFJd0IsZUFBK0M7WUFBL0MsaUVBQStDOzs7aUZEaEhoRSw4QkFBOEI7Y0FMMUMsU0FBUzsyQkFDRSw4QkFBOEI7ME9BV3hCLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1Usa0JBQWtCO2tCQUFqQyxLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNVLFFBQVE7a0JBQXZCLEtBQUs7WUFDVyxXQUFXO2tCQUEzQixNQUFNO1lBQ1UsY0FBYztrQkFBOUIsTUFBTTs7a0ZBYkksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENhc2VFdmVudFRyaWdnZXIsXG4gIENhc2VGaWVsZCxcbiAgQ2FzZVZpZXcsXG4gIENhc2VWaWV3VHJpZ2dlcixcbiAgRXJyb3JNZXNzYWdlLFxuICBUYXNrU2VhcmNoUGFyYW1ldGVyXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEV2ZW50Q29tcGxldGlvblBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL2RvbWFpbi9ldmVudC1jb21wbGV0aW9uLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSwgRXZlbnRUcmlnZ2VyU2VydmljZSwgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiwgUXVlcnlDcmVhdGVDb250ZXh0LCBRdWVyeUxpc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFF1ZXJ5TWFuYWdlbWVudFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscyc7XG5pbXBvcnQgeyBGb3JtRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvc2hhcmVkL2RvbWFpbi9kb2N1bWVudCc7XG5pbXBvcnQgeyBRdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVhbGlmeWluZy1xdWVzdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xMaXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vYWNjZXNzLWNvbnRyb2wtbGlzdC5tb2RlbCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcXVlcnktY2hlY2steW91ci1hbnN3ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWNoZWNrLXlvdXItYW5zd2Vycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXJ5LWNoZWNrLXlvdXItYW5zd2Vycy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5Q2hlY2tZb3VyQW5zd2Vyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBSQUlTRV9BX1FVRVJZX0VWRU5UX1RSSUdHRVJfSUQgPSAncXVlcnlNYW5hZ2VtZW50UmFpc2VRdWVyeSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUkVTUE9ORF9UT19RVUVSWV9FVkVOVF9UUklHR0VSX0lEID0gJ3F1ZXJ5TWFuYWdlbWVudFJlc3BvbmRRdWVyeSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBDQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCA9ICdDYXNlUXVlcmllc0NvbGxlY3Rpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT01QTEVYID0gJ0NvbXBsZXgnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5SXRlbTogUXVlcnlMaXN0SXRlbTtcbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0O1xuICBASW5wdXQoKSBwdWJsaWMgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyByb2xlTmFtZTogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIGJhY2tDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHF1ZXJ5U3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgY2FzZVZpZXdUcmlnZ2VyOiBDYXNlVmlld1RyaWdnZXI7XG4gIHB1YmxpYyBjYXNlRGV0YWlsczogQ2FzZVZpZXc7XG4gIHByaXZhdGUgcXVlcnlJZDogc3RyaW5nO1xuICBwcml2YXRlIGNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VhcmNoVGFza3NTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgcXVlcnlDcmVhdGVDb250ZXh0RW51bSA9IFF1ZXJ5Q3JlYXRlQ29udGV4dDtcbiAgcHVibGljIGV2ZW50Q29tcGxldGlvblBhcmFtczogRXZlbnRDb21wbGV0aW9uUGFyYW1zO1xuICBwdWJsaWMgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uczogQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uW107XG4gIHB1YmxpYyBmaWVsZElkOiBzdHJpbmc7XG4gIHB1YmxpYyBhdHRhY2htZW50czogRm9ybURvY3VtZW50W107XG5cbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZTogUXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnFpZDtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY2FzZURldGFpbHMpID0+IHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcblxuICAgICAgLy8gRmluZCB0aGUgYXBwcm9wcmlhdGUgZXZlbnQgdHJpZ2dlciBiYXNlZCBvbiB0aGUgcXVlcnlDcmVhdGVDb250ZXh0XG4gICAgICB0aGlzLmNhc2VWaWV3VHJpZ2dlciA9IHRoaXMuY2FzZURldGFpbHMudHJpZ2dlcnMuZmluZCgodHJpZ2dlcikgPT5cbiAgICAgICAgdGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgIT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EXG4gICAgICAgIC8vIElmIHRoZSBjb250ZXh0IGlzIG5vdCAnUkVTUE9ORCcsIGZpbmQgdGhlIHRyaWdnZXIgd2l0aCB0aGUgSUQgZm9yIHJhaXNpbmcgYSBxdWVyeVxuICAgICAgICAgID8gdHJpZ2dlci5pZCA9PT0gdGhpcy5SQUlTRV9BX1FVRVJZX0VWRU5UX1RSSUdHRVJfSURcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgJ1JFU1BPTkQnLCBmaW5kIHRoZSB0cmlnZ2VyIHdpdGggdGhlIElEIGZvciByZXNwb25kaW5nIHRvIGEgcXVlcnlcbiAgICAgICAgICA6IHRyaWdnZXIuaWQgPT09IHRoaXMuUkVTUE9ORF9UT19RVUVSWV9FVkVOVF9UUklHR0VSX0lEXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gR2V0IHRoZSBkb2N1bWVudCBhdHRhY2htZW50c1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRBdHRhY2htZW50cygpO1xuXG4gICAgdGhpcy5zZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVFdmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdvQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tDbGlja2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIGZpZWxkSWQgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGlzIG1pc3NpbmcuIENhbm5vdCBwcm9jZWVkIHdpdGggc3VibWlzc2lvbi4nKTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnRXJyb3InLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBjYXNlIGlzIG5vdCBjb25maWd1cmVkIGZvciBxdWVyeSBtYW5hZ2VtZW50LicsXG4gICAgICAgICAgZmllbGRJZDogJ2ZpZWxkLWlkJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdlbmVyYXRlQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uRGF0YSgpO1xuICAgIHRoaXMuY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VzU2VydmljZS5jcmVhdGVFdmVudCh0aGlzLmNhc2VEZXRhaWxzLCB7XG4gICAgICBkYXRhLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgaWQ6IHRoaXMuY2FzZVZpZXdUcmlnZ2VyPy5pZCxcbiAgICAgICAgc3VtbWFyeTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmNhc2VWaWV3VHJpZ2dlcj8uZGVzY3JpcHRpb25cbiAgICAgIH0sXG4gICAgICBldmVudF90b2tlbjogdGhpcy5ldmVudERhdGE/LmV2ZW50X3Rva2VuLFxuICAgICAgaWdub3JlX3dhcm5pbmc6IGZhbHNlXG4gICAgfSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBTZWFyY2ggYW5kIGNvbXBsZXRlIHRhc2tcbiAgICAgICAgdGhpcy5zZWFyY2hBbmRDb21wbGV0ZVRhc2soKTtcbiAgICAgICAgLy8gRW1pdCBxdWVyeSBzdWJtaXR0ZWQgZXZlbnRcbiAgICAgICAgdGhpcy5xdWVyeVN1Ym1pdHRlZC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLnF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2UuY2xlYXJRdWFsaWZ5aW5nUXVlc3Rpb25TZWxlY3Rpb24oKTtcbiAgICAgIH0sXG4gICAgICAvLyBFcnJvclxuICAgICAgKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJywgJ3NlcnZpY2UtZG93biddKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQW5kQ29tcGxldGVUYXNrKCk6IHZvaWQge1xuICAgIC8vIFNlYXJjaCBUYXNrXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1ldGVyID0geyBjY2RJZDogdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkIH0gYXMgVGFza1NlYXJjaFBhcmFtZXRlcjtcbiAgICB0aGlzLnNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uID0gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2Uuc2VhcmNoVGFza3Moc2VhcmNoUGFyYW1ldGVyKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBGaWx0ZXIgdGFzayBieSBxdWVyeSBpZFxuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkVGFzayA9IHJlc3BvbnNlLnRhc2tzPy5maW5kKCh0YXNrKSA9PlxuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh0YXNrLmFkZGl0aW9uYWxfcHJvcGVydGllcykuc29tZSgodmFsdWUpID0+IHZhbHVlID09PSB0aGlzLnF1ZXJ5SWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyBUcmlnZ2VyIGV2ZW50IGNvbXBsZXRpb25cbiAgICAgICAgICB0aGlzLmV2ZW50Q29tcGxldGlvblBhcmFtcyA9IHtcbiAgICAgICAgICAgIGNhc2VJZDogdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkLFxuICAgICAgICAgICAgZXZlbnRJZDogdGhpcy5SRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSUQsXG4gICAgICAgICAgICB0YXNrOiBmaWx0ZXJlZFRhc2tcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBzZWFyY2hUYXNrc1N1YnNjcmlwdGlvbjonLCBlcnJvcik7XG4gICAgICAgICAgLy8gSGFuZGxlIGVycm9yIGFwcHJvcHJpYXRlbHlcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKCk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBjb25zdCBjdXJyZW50VXNlckRldGFpbHMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJykpO1xuXG4gICAgY29uc3QgY2FzZU1lc3NhZ2UgPSB0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWVxuICAgICAgPyBRdWVyeU1hbmFnZW1lbnRVdGlscy5nZXROZXdRdWVyeURhdGEodGhpcy5mb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEodGhpcy5mb3JtR3JvdXAsIHRoaXMucXVlcnlJdGVtLCBjdXJyZW50VXNlckRldGFpbHMpO1xuXG4gICAgY29uc3QgbWVzc2FnZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGF0YWlkOyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICAgY29uc3QgaXNOZXdRdWVyeSA9IHRoaXMucXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZOyAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbmV3IHF1ZXJ5XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgSUQgaGFzIGJlZW4gc2V0IGR5bmFtaWNhbGx5XG4gICAgaWYgKCF0aGlzLmZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQ2Fubm90IHByb2NlZWQgd2l0aCBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnc2VydmljZS1kb3duJ10pO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgbmV3IHF1ZXJ5IGRhdGEgc3RydWN0dXJlXG4gICAgY29uc3QgbmV3UXVlcnlEYXRhOiBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiA9IHt9O1xuXG4gICAgaWYgKHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBsZXQgbWF0Y2hlZENvbGxlY3Rpb247XG5cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgbmV3IHF1ZXJ5LCB0cnkgdG8gZmluZCB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbiB3aXRoIHRoZSBtZXNzYWdlIElEXG4gICAgICBpZiAoIWlzTmV3UXVlcnkgJiYgbWVzc2FnZUlkKSB7XG4gICAgICAgIG1hdGNoZWRDb2xsZWN0aW9uID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+XG4gICAgICAgICAgY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMuc29tZSgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZENvbGxlY3Rpb24pIHtcbiAgICAgICAgLy8gQXBwZW5kIHRoZSBuZXcgY2FzZSBtZXNzYWdlIHRvIHRoZSBtYXRjaGVkIGNvbGxlY3Rpb24ncyBjYXNlTWVzc2FnZXNcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIG1hdGNoZWQgY29sbGVjdGlvbiB0byBuZXdRdWVyeURhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgLi4ubWF0Y2hlZENvbGxlY3Rpb24sIC8vIEtlZXAgZXhpc3RpbmcgZGF0YSBpbnRhY3RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFsuLi5tYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXNdIC8vIEFwcGVuZCB0aGUgdXBkYXRlZCBtZXNzYWdlcyBhcnJheVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgbm8gY29sbGVjdGlvbiBtYXRjaGVzLCBvciBpdCdzIGEgbmV3IHF1ZXJ5XG4gICAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICAgIHBhcnR5TmFtZTogY3VycmVudFVzZXJEZXRhaWxzPy5uYW1lIHx8IGAke2N1cnJlbnRVc2VyRGV0YWlscz8uZm9yZW5hbWV9ICR7Y3VycmVudFVzZXJEZXRhaWxzPy5zdXJuYW1lfWAsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIElmIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgaXMgbm90IGVtcHR5LCBhcHBlbmQgaXRzIGRhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0uY2FzZU1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZsYXRNYXAoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgY29sbGVjdGlvbnMsIGNyZWF0ZSBhIG5ldyBvbmUgKGUuZy4sIGZvciBuZXcgcXVlcmllcylcbiAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICBwYXJ0eU5hbWU6IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZSB8fCBgJHtjdXJyZW50VXNlckRldGFpbHM/LmZvcmVuYW1lfSAke2N1cnJlbnRVc2VyRGV0YWlscz8uc3VybmFtZX1gLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3UXVlcnlEYXRhO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXZlbnREYXRhPy5jYXNlX2ZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICAvLyBXb3JrYXJvdW5kIGZvciBtdWx0aXBsZSBxbUNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgdGhhdCBhcmUgbm90IHRvIGJlIGFwcGVhcmluZyBpbiB0aGUgZXZlbnREYXRhXG4gICAgICAvLyBDb3VudHMgbnVtYmVyIHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uc1xuICAgICAgY29uc3QgbnVtYmVyT2ZDYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gdGhpcy5ldmVudERhdGE/LmNhc2VfZmllbGRzPy5maWx0ZXIoXG4gICAgICAgIChjYXNlRmllbGQpID0+XG4gICAgICAgICAgY2FzZUZpZWxkLmZpZWxkX3R5cGUuaWQgPT09IHRoaXMuQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgICAgICBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSB0aGlzLkZJRUxEX1RZUEVfQ09NUExFWFxuICAgICAgKT8ubGVuZ3RoIHx8IDA7XG5cbiAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IHRoaXMuZXZlbnREYXRhLmNhc2VfZmllbGRzLnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgSUQgYmFzZWQgb24gY29uZGl0aW9ucywgdXBkYXRpbmcgdGhpcy5maWVsZElkIGR5bmFtaWNhbGx5XG4gICAgICAgIHRoaXMuZXh0cmFjdENhc2VRdWVyeUlkKGNhc2VGaWVsZCwgbnVtYmVyT2ZDYXNlUXVlcmllc0NvbGxlY3Rpb25zKTtcblxuICAgICAgICBjb25zdCBleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQgPSBRdWVyeU1hbmFnZW1lbnRVdGlscy5leHRyYWN0Q2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkKGNhc2VGaWVsZCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQgJiYgdHlwZW9mIGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q2FzZVF1ZXJ5SWQoZGF0YTogQ2FzZUZpZWxkLCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgeyBpZCwgdmFsdWUsIGFjbHMgfSA9IGRhdGE7XG4gICAgY29uc3QgbWVzc2FnZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGF0YWlkO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGZpZWxkX3R5cGUgbWF0Y2hlcyBDYXNlUXVlcmllc0NvbGxlY3Rpb24gYW5kIHR5cGUgaXMgQ29tcGxleFxuICAgIGlmIChkYXRhLmZpZWxkX3R5cGUuaWQgPT09IHRoaXMuQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiYgZGF0YS5maWVsZF90eXBlLnR5cGUgPT09IHRoaXMuRklFTERfVFlQRV9DT01QTEVYKSB7XG4gICAgICBpZiAodGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlkpIHtcbiAgICAgICAgLy9pZiBudW1iZXIgcW1DYXNlUXVlcmllc0NvbGxlY3Rpb24gaXMgbW9yZSB0aGVuIGZpbHRlciBvdXQgdGhlIHJpZ2h0IHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uXG4gICAgICAgIHRoaXMuc2V0RmllbGRJZChjb3VudCwgYWNscywgaWQpO1xuICAgICAgfVxuICAgICAgLy8gSWYgbWVzc2FnZUlkIGlzIHByZXNlbnQsIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBtZXNzYWdlXG4gICAgICB0aGlzLnNldE1lc3NhZ2VGaWVsZElkKG1lc3NhZ2VJZCwgdmFsdWUsIGlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE1lc3NhZ2VGaWVsZElkKG1lc3NhZ2VJZCwgdmFsdWUsIGlkOiBzdHJpbmcpIHtcbiAgICBpZiAobWVzc2FnZUlkICYmIHZhbHVlPy5jYXNlTWVzc2FnZXMpIHtcbiAgICAgIC8vIElmIGEgbWF0Y2hpbmcgbWVzc2FnZSBpcyBmb3VuZCwgc2V0IHRoZSBmaWVsZElkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGlkXG4gICAgICBjb25zdCBtYXRjaGVkTWVzc2FnZSA9IHZhbHVlPy5jYXNlTWVzc2FnZXM/LmZpbmQoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudmFsdWUuaWQgPT09IG1lc3NhZ2VJZCk7XG4gICAgICBpZiAobWF0Y2hlZE1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5maWVsZElkID0gaWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWVsZElkKGNvdW50OiBudW1iZXIsIGFjbHM6IEFjY2Vzc0NvbnRyb2xMaXN0W10sIGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICBjb25zdCBtYXRjaGluZ1JvbGUgPSBhY2xzPy5maW5kKChhY2wpID0+IGFjbC5yb2xlID09PSB0aGlzLnJvbGVOYW1lKTtcbiAgICAgIGlmIChtYXRjaGluZ1JvbGUpIHtcbiAgICAgICAgdGhpcy5maWVsZElkID0gaWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNldCB0aGUgZmllbGQgSUQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGV4dHJhY3RlZCBkYXRhXG4gICAgICB0aGlzLmZpZWxkSWQgPSBpZDsgLy8gU3RvcmUgdGhlIElEIGZvciB1c2UgaW4gZ2VuZXJhdGluZyBuZXdRdWVyeURhdGFcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERvY3VtZW50QXR0YWNobWVudHMoKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNobWVudHNWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZTtcbiAgICBpZiAoYXR0YWNobWVudHNWYWx1ZSAmJiBhdHRhY2htZW50c1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50cyA9IGF0dGFjaG1lbnRzVmFsdWU7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRzID0gZG9jdW1lbnRzLm1hcChRdWVyeU1hbmFnZW1lbnRVdGlscy5kb2N1bWVudFRvQ29sbGVjdGlvbkZvcm1Eb2N1bWVudCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkcy1mcm9tLWRlc2t0b3BcIj5cbiAgICA8IS0tIEVycm9yIG1lc3NhZ2Ugc3VtbWFyeSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCJcbiAgICAgIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiPlxuICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZVwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgIHt7ICdUaGVyZSBpcyBhIHByb2JsZW0nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgIDwvaDI+XG4gICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBlcnJvck1lc3NhZ2VzXCI+XG4gICAgICAgICAgIDxhIFtpZF09XCInZXJyb3ItJyArIGVycm9yTWVzc2FnZS5maWVsZElkXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJ2YWxpZGF0aW9uLWVycm9yXCI+e3sgZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9uIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgICAgPC9saT5cbiAgICAgICA8L3VsPlxuICAgICA8L2Rpdj5cbiAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5ORVdfUVVFUllcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj57eyAnUmFpc2UgYSBxdWVyeScgfCBycHhUcmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5SRVNQT05EOyBlbHNlIGRlZmF1bHRDaGVja1lvdXJBbnN3ZXJzVGl0bGVcIj5cbiAgICAgICAge3sgJ1JldmlldyBxdWVyeSByZXNwb25zZSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENoZWNrWW91ckFuc3dlcnNUaXRsZT5cbiAgICAgICAge3sgJ1JldmlldyBxdWVyeSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiPlxuICAgICAgPGNjZC1xdWVyeS1jYXNlLWRldGFpbHMtaGVhZGVyIFtjYXNlRGV0YWlsc109XCJjYXNlRGV0YWlsc1wiPjwvY2NkLXF1ZXJ5LWNhc2UtZGV0YWlscy1oZWFkZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGwgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgIT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uRk9MTE9XVVBcIiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQgPyAnU3VibWl0dGVkIHF1ZXJ5JyA6ICdRdWVyeSBzdWJqZWN0JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQgPyBxdWVyeUl0ZW0uc3ViamVjdCA6IGZvcm1Hcm91cC5nZXQoJ3N1YmplY3QnKT8udmFsdWUgfX1cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiIFxuICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/ICdSZXNwb25zZSBkZXRhaWwnIDogJ1F1ZXJ5IGRldGFpbCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIHt7IGZvcm1Hcm91cC5nZXQoJ2JvZHknKT8udmFsdWUgfX1cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGRsICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyAnSXMgdGhlIHF1ZXJ5IGhlYXJpbmcgcmVsYXRlZD8nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgnaXNIZWFyaW5nUmVsYXRlZCcpPy52YWx1ZSA9PT0gdHJ1ZTsgZWxzZSBpc0hlYXJpbmdSZWxhdGVkRmFsc2VcIj5cbiAgICAgICAgICAgIHt7ICdJcyB0aGUgcXVlcnkgaGVhcmluZyByZWxhdGVkPycgfCBycHhUcmFuc2xhdGU6IG51bGwgOiAnWWVzJyB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNIZWFyaW5nUmVsYXRlZEZhbHNlPlxuICAgICAgICAgICAge3sgJ0lzIHRoZSBxdWVyeSBoZWFyaW5nIHJlbGF0ZWQ/JyB8IHJweFRyYW5zbGF0ZTogbnVsbCA6ICdObycgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgnaXNIZWFyaW5nUmVsYXRlZCcpPy52YWx1ZVwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXG4gICAgICAgICAgICA/ICdXaGF0IGlzIHRoZSBkYXRlIG9mIHRoZSBoZWFyaW5nPydcbiAgICAgICAgICAgIDogJ1doYXQgaXMgdGhlIGRhdGUgb2YgdGhlIGhlYXJpbmcgeW91ciBxdWVyeSBpcyByZWxhdGVkIHRvPycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIHt7IGZvcm1Hcm91cC5nZXQoJ2hlYXJpbmdEYXRlJyk/LnZhbHVlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5JyB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG4gICAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCIgKm5nSWY9XCJ0aGlzLmZvcm1Hcm91cC5nZXQoJ2F0dGFjaG1lbnRzJykudmFsdWUubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWSA/ICdVcGxvYWQgYSBmaWxlIHRvIHRoZSBxdWVyeScgOiAnRG9jdW1lbnQgYXR0YWNoZWQnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUgZ292dWstc3VtbWFyeS1saXN0X192YWx1ZS0tZG9jdW1lbnRBdHRhY2hlZFwiPlxuICAgICAgICAgIDxjY2QtcXVlcnktYXR0YWNobWVudHMtcmVhZFxuICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLmZvcm1Hcm91cC5nZXQoJ2F0dGFjaG1lbnRzJykudmFsdWVcIlxuICAgICAgICAgICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9jY2QtcXVlcnktYXR0YWNobWVudHMtcmVhZD5cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGJyPlxuXG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgZ292dWstIS1tYXJnaW4tcmlnaHQtM1wiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgIHt7ICdQcmV2aW91cycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxuICAgICAgICB7eyAnU3VibWl0JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxjY2QtcXVlcnktZXZlbnQtY29tcGxldGlvbiBbZXZlbnRDb21wbGV0aW9uUGFyYW1zXT1cImV2ZW50Q29tcGxldGlvblBhcmFtc1wiPiAgICBcbiAgPC9jY2QtcXVlcnktZXZlbnQtY29tcGxldGlvbj5cbjwvZGl2PlxuIl19
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBTWpCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRyxPQUFPLEVBQWtELGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMs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QUVKLEFBREUsQUFERSxpQkFBUyxFQUNMLEVBQ0Y7WUFFTixrREFDNkI7WUFDL0IsaUJBQU07Ozs7WUF6SUksZUFBOEI7WUFBOUIsbURBQThCO1lBZ0JyQixjQUE2RDtZQUE3RCxzRkFBNkQ7WUFLM0QsZUFBNkQ7WUFBQSxBQUE3RCxvRkFBNkQsNkNBQWlDO1lBUzlFLGVBQTJCO1lBQTNCLDZDQUEyQjtZQUd2RCxjQUE0RDtZQUE1RCxxRkFBNEQ7WUFvQjNELGVBQ0Y7WUFERSwySkFDRjtZQUVFLGVBQ0Y7WUFERSxxR0FDRjtZQUdJLGVBQ0Y7WUFERSxpRUFDRjtZQUtELGVBQTZEO1lBQTdELHNGQUE2RDtZQW9DVixjQUF3RDtZQUF4RCx3RUFBd0Q7WUF5QjVHLGVBQ0Y7WUFERSxtRUFDRjtZQUVFLGVBQ0Y7WUFERSxpRUFDRjtZQUl3QixlQUErQztZQUEvQyxpRUFBK0M7OztpRkRoSGhFLDhCQUE4QjtjQUwxQyxTQUFTOzJCQUNFLDhCQUE4QjswT0FXeEIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxrQkFBa0I7a0JBQWpDLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsUUFBUTtrQkFBdkIsS0FBSztZQUNXLFdBQVc7a0JBQTNCLE1BQU07WUFDVSxjQUFjO2tCQUE5QixNQUFNOztrRkFiSSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ2FzZUV2ZW50VHJpZ2dlcixcbiAgQ2FzZUZpZWxkLFxuICBDYXNlVmlldyxcbiAgQ2FzZVZpZXdUcmlnZ2VyLFxuICBFcnJvck1lc3NhZ2UsXG4gIFRhc2tTZWFyY2hQYXJhbWV0ZXJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NoYXJlZC9kb21haW4nO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRXZlbnRDb21wbGV0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3IvZG9tYWluL2V2ZW50LWNvbXBsZXRpb24tcGFyYW1zLm1vZGVsJztcbmltcG9ydCB7IENhc2VOb3RpZmllciwgQ2FzZXNTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlUXVlcmllc0NvbGxlY3Rpb24sIFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VtZW50VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9xdWVyeS1tYW5hZ2VtZW50LnV0aWxzJztcbmltcG9ydCB7IEZvcm1Eb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluL2RvY3VtZW50JztcbmltcG9ydCB7IFF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWFsaWZ5aW5nLXF1ZXN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbExpc3QgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9hY2Nlc3MtY29udHJvbC1saXN0Lm1vZGVsJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlDaGVja1lvdXJBbnN3ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IFJBSVNFX0FfUVVFUllfRVZFTlRfVFJJR0dFUl9JRCA9ICdxdWVyeU1hbmFnZW1lbnRSYWlzZVF1ZXJ5JztcbiAgcHJpdmF0ZSByZWFkb25seSBSRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSUQgPSAncXVlcnlNYW5hZ2VtZW50UmVzcG9uZFF1ZXJ5JztcblxuICBwcml2YXRlIHJlYWRvbmx5IENBU0VfUVVFUklFU19DT0xMRUNUSU9OX0lEID0gJ0Nhc2VRdWVyaWVzQ29sbGVjdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBGSUVMRF9UWVBFX0NPTVBMRVggPSAnQ29tcGxleCc7XG5cbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHJvbGVOYW1lOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgYmFja0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcXVlcnlTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBjYXNlVmlld1RyaWdnZXI6IENhc2VWaWV3VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHJpdmF0ZSBxdWVyeUlkOiBzdHJpbmc7XG4gIHByaXZhdGUgY3JlYXRlRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWFyY2hUYXNrc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtID0gUXVlcnlDcmVhdGVDb250ZXh0O1xuICBwdWJsaWMgZXZlbnRDb21wbGV0aW9uUGFyYW1zOiBFdmVudENvbXBsZXRpb25QYXJhbXM7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcbiAgcHVibGljIGF0dGFjaG1lbnRzOiBGb3JtRG9jdW1lbnRbXTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBxdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlOiBRdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMucWlkO1xuICAgIHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuXG4gICAgICAvLyBGaW5kIHRoZSBhcHByb3ByaWF0ZSBldmVudCB0cmlnZ2VyIGJhc2VkIG9uIHRoZSBxdWVyeUNyZWF0ZUNvbnRleHRcbiAgICAgIHRoaXMuY2FzZVZpZXdUcmlnZ2VyID0gdGhpcy5jYXNlRGV0YWlscy50cmlnZ2Vycy5maW5kKCh0cmlnZ2VyKSA9PlxuICAgICAgICB0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCAhPT0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkRcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgbm90ICdSRVNQT05EJywgZmluZCB0aGUgdHJpZ2dlciB3aXRoIHRoZSBJRCBmb3IgcmFpc2luZyBhIHF1ZXJ5XG4gICAgICAgICAgPyB0cmlnZ2VyLmlkID09PSB0aGlzLlJBSVNFX0FfUVVFUllfRVZFTlRfVFJJR0dFUl9JRFxuICAgICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyAnUkVTUE9ORCcsIGZpbmQgdGhlIHRyaWdnZXIgd2l0aCB0aGUgSUQgZm9yIHJlc3BvbmRpbmcgdG8gYSBxdWVyeVxuICAgICAgICAgIDogdHJpZ2dlci5pZCA9PT0gdGhpcy5SRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSURcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBHZXQgdGhlIGRvY3VtZW50IGF0dGFjaG1lbnRzXG4gICAgdGhpcy5nZXREb2N1bWVudEF0dGFjaG1lbnRzKCk7XG5cbiAgICB0aGlzLnNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2VhcmNoVGFza3NTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZ29CYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYmFja0NsaWNrZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgZmllbGRJZCBpcyBudWxsIG9yIHVuZGVmaW5lZFxuICAgIGlmICghdGhpcy5maWVsZElkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjogRmllbGQgSUQgaXMgbWlzc2luZy4gQ2Fubm90IHByb2NlZWQgd2l0aCBzdWJtaXNzaW9uLicpO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGNhc2UgaXMgbm90IGNvbmZpZ3VyZWQgZm9yIHF1ZXJ5IG1hbmFnZW1lbnQuJyxcbiAgICAgICAgICBmaWVsZElkOiAnZmllbGQtaWQnXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2VuZXJhdGVDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKCk7XG4gICAgdGhpcy5jcmVhdGVFdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZXNTZXJ2aWNlLmNyZWF0ZUV2ZW50KHRoaXMuY2FzZURldGFpbHMsIHtcbiAgICAgIGRhdGEsXG4gICAgICBldmVudDoge1xuICAgICAgICBpZDogdGhpcy5jYXNlVmlld1RyaWdnZXI/LmlkLFxuICAgICAgICBzdW1tYXJ5OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY2FzZVZpZXdUcmlnZ2VyPy5kZXNjcmlwdGlvblxuICAgICAgfSxcbiAgICAgIGV2ZW50X3Rva2VuOiB0aGlzLmV2ZW50RGF0YT8uZXZlbnRfdG9rZW4sXG4gICAgICBpZ25vcmVfd2FybmluZzogZmFsc2VcbiAgICB9KS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIFNlYXJjaCBhbmQgY29tcGxldGUgdGFza1xuICAgICAgICB0aGlzLnNlYXJjaEFuZENvbXBsZXRlVGFzaygpO1xuICAgICAgICAvLyBFbWl0IHF1ZXJ5IHN1Ym1pdHRlZCBldmVudFxuICAgICAgICB0aGlzLnF1ZXJ5U3VibWl0dGVkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZS5jbGVhclF1YWxpZnlpbmdRdWVzdGlvblNlbGVjdGlvbigpO1xuICAgICAgfSxcbiAgICAgIC8vIEVycm9yXG4gICAgICAoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnc2VydmljZS1kb3duJ10pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBbmRDb21wbGV0ZVRhc2soKTogdm9pZCB7XG4gICAgLy8gU2VhcmNoIFRhc2tcbiAgICBjb25zdCBzZWFyY2hQYXJhbWV0ZXIgPSB7IGNjZElkOiB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQgfSBhcyBUYXNrU2VhcmNoUGFyYW1ldGVyO1xuICAgIHRoaXMuc2VhcmNoVGFza3NTdWJzY3JpcHRpb24gPSB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5zZWFyY2hUYXNrcyhzZWFyY2hQYXJhbWV0ZXIpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIEZpbHRlciB0YXNrIGJ5IHF1ZXJ5IGlkXG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRUYXNrID0gcmVzcG9uc2UudGFza3M/LmZpbmQoKHRhc2spID0+XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKHRhc2suYWRkaXRpb25hbF9wcm9wZXJ0aWVzKS5zb21lKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRoaXMucXVlcnlJZClcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIFRyaWdnZXIgZXZlbnQgY29tcGxldGlvblxuICAgICAgICAgIHRoaXMuZXZlbnRDb21wbGV0aW9uUGFyYW1zID0ge1xuICAgICAgICAgICAgY2FzZUlkOiB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQsXG4gICAgICAgICAgICBldmVudElkOiB0aGlzLlJFU1BPTkRfVE9fUVVFUllfRVZFTlRfVFJJR0dFUl9JRCxcbiAgICAgICAgICAgIHRhc2s6IGZpbHRlcmVkVGFza1xuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uOicsIGVycm9yKTtcbiAgICAgICAgICAvLyBIYW5kbGUgZXJyb3IgYXBwcm9wcmlhdGVseVxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTogUW1DYXNlUXVlcmllc0NvbGxlY3Rpb24ge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKSk7XG5cbiAgICBjb25zdCBjYXNlTWVzc2FnZSA9IHRoaXMucXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YSh0aGlzLmZvcm1Hcm91cCwgY3VycmVudFVzZXJEZXRhaWxzKVxuICAgICAgOiBRdWVyeU1hbmFnZW1lbnRVdGlscy5nZXRSZXNwb25kT3JGb2xsb3d1cFF1ZXJ5RGF0YSh0aGlzLmZvcm1Hcm91cCwgdGhpcy5xdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscyk7XG5cbiAgICBjb25zdCBtZXNzYWdlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kYXRhaWQ7IC8vIEdldCB0aGUgbWVzc2FnZSBJRCBmcm9tIHJvdXRlIHBhcmFtcyAoaWYgcHJlc2VudClcbiAgICBjb25zdCBpc05ld1F1ZXJ5ID0gdGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlk7IC8vIENoZWNrIGlmIHRoaXMgaXMgYSBuZXcgcXVlcnlcblxuICAgIC8vIENoZWNrIGlmIHRoZSBmaWVsZCBJRCBoYXMgYmVlbiBzZXQgZHluYW1pY2FsbHlcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBDYW5ub3QgcHJvY2VlZCB3aXRoIGRhdGEgZ2VuZXJhdGlvbi4nKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdzZXJ2aWNlLWRvd24nXSk7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBuZXcgcXVlcnkgZGF0YSBzdHJ1Y3R1cmVcbiAgICBjb25zdCBuZXdRdWVyeURhdGE6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uID0ge307XG5cbiAgICBpZiAodGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIGxldCBtYXRjaGVkQ29sbGVjdGlvbjtcblxuICAgICAgLy8gSWYgaXQncyBub3QgYSBuZXcgcXVlcnksIHRyeSB0byBmaW5kIHRoZSBleGlzdGluZyBjb2xsZWN0aW9uIHdpdGggdGhlIG1lc3NhZ2UgSURcbiAgICAgIGlmICghaXNOZXdRdWVyeSAmJiBtZXNzYWdlSWQpIHtcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24gPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT5cbiAgICAgICAgICBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcy5zb21lKChtZXNzYWdlKSA9PiBtZXNzYWdlLnZhbHVlLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXRjaGVkQ29sbGVjdGlvbikge1xuICAgICAgICAvLyBBcHBlbmQgdGhlIG5ldyBjYXNlIG1lc3NhZ2UgdG8gdGhlIG1hdGNoZWQgY29sbGVjdGlvbidzIGNhc2VNZXNzYWdlc1xuICAgICAgICBtYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgbWF0Y2hlZCBjb2xsZWN0aW9uIHRvIG5ld1F1ZXJ5RGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgICAuLi5tYXRjaGVkQ29sbGVjdGlvbiwgLy8gS2VlcCBleGlzdGluZyBkYXRhIGludGFjdFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogWy4uLm1hdGNoZWRDb2xsZWN0aW9uLmNhc2VNZXNzYWdlc10gLy8gQXBwZW5kIHRoZSB1cGRhdGVkIG1lc3NhZ2VzIGFycmF5XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBubyBjb2xsZWN0aW9uIG1hdGNoZXMsIG9yIGl0J3MgYSBuZXcgcXVlcnlcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgcGFydHlOYW1lOiBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YCwgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgICAgY2FzZU1lc3NhZ2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgICB2YWx1ZTogY2FzZU1lc3NhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSWYgY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyBpcyBub3QgZW1wdHksIGFwcGVuZCBpdHMgZGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXS5jYXNlTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAuLi50aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmxhdE1hcCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBleGlzdGluZyBjb2xsZWN0aW9ucywgY3JlYXRlIGEgbmV3IG9uZSAoZS5nLiwgZm9yIG5ldyBxdWVyaWVzKVxuICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgIHBhcnR5TmFtZTogY3VycmVudFVzZXJEZXRhaWxzPy5uYW1lIHx8IGAke2N1cnJlbnRVc2VyRGV0YWlscz8uZm9yZW5hbWV9ICR7Y3VycmVudFVzZXJEZXRhaWxzPy5zdXJuYW1lfWAsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgcm9sZU9uQ2FzZTogJycsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgY2FzZU1lc3NhZ2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICB2YWx1ZTogY2FzZU1lc3NhZ2VcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXdRdWVyeURhdGE7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudERhdGE/LmNhc2VfZmllbGRzPy5sZW5ndGgpIHtcbiAgICAgIC8vIFdvcmthcm91bmQgZm9yIG11bHRpcGxlIHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyB0aGF0IGFyZSBub3QgdG8gYmUgYXBwZWFyaW5nIGluIHRoZSBldmVudERhdGFcbiAgICAgIC8vIENvdW50cyBudW1iZXIgcW1DYXNlUXVlcmllc0NvbGxlY3Rpb25zXG4gICAgICBjb25zdCBudW1iZXJPZkNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSB0aGlzLmV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgICAgKGNhc2VGaWVsZCkgPT5cbiAgICAgICAgICBjYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gdGhpcy5DQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJlxuICAgICAgICAgIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IHRoaXMuRklFTERfVFlQRV9DT01QTEVYXG4gICAgICApPy5sZW5ndGggfHwgMDtcblxuICAgICAgdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gdGhpcy5ldmVudERhdGEuY2FzZV9maWVsZHMucmVkdWNlKChhY2MsIGNhc2VGaWVsZCkgPT4ge1xuICAgICAgICAvLyBFeHRyYWN0IHRoZSBJRCBiYXNlZCBvbiBjb25kaXRpb25zLCB1cGRhdGluZyB0aGlzLmZpZWxkSWQgZHluYW1pY2FsbHlcbiAgICAgICAgdGhpcy5leHRyYWN0Q2FzZVF1ZXJ5SWQoY2FzZUZpZWxkLCBudW1iZXJPZkNhc2VRdWVyaWVzQ29sbGVjdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGFjYy5wdXNoKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDYXNlUXVlcnlJZChkYXRhOiBDYXNlRmllbGQsIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlkLCB2YWx1ZSwgYWNscyB9ID0gZGF0YTtcbiAgICBjb25zdCBtZXNzYWdlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kYXRhaWQ7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGRfdHlwZSBtYXRjaGVzIENhc2VRdWVyaWVzQ29sbGVjdGlvbiBhbmQgdHlwZSBpcyBDb21wbGV4XG4gICAgaWYgKGRhdGEuZmllbGRfdHlwZS5pZCA9PT0gdGhpcy5DQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJiBkYXRhLmZpZWxkX3R5cGUudHlwZSA9PT0gdGhpcy5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWSkge1xuICAgICAgICAvL2lmIG51bWJlciBxbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiBpcyBtb3JlIHRoZW4gZmlsdGVyIG91dCB0aGUgcmlnaHQgcW1DYXNlUXVlcmllc0NvbGxlY3Rpb25cbiAgICAgICAgdGhpcy5zZXRGaWVsZElkKGNvdW50LCBhY2xzLCBpZCk7XG4gICAgICB9XG4gICAgICAvLyBJZiBtZXNzYWdlSWQgaXMgcHJlc2VudCwgZmluZCB0aGUgY29ycmVzcG9uZGluZyBjYXNlIG1lc3NhZ2VcbiAgICAgIHRoaXMuc2V0TWVzc2FnZUZpZWxkSWQobWVzc2FnZUlkLCB2YWx1ZSwgaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0TWVzc2FnZUZpZWxkSWQobWVzc2FnZUlkLCB2YWx1ZSwgaWQ6IHN0cmluZykge1xuICAgIGlmIChtZXNzYWdlSWQgJiYgdmFsdWU/LmNhc2VNZXNzYWdlcykge1xuICAgICAgLy8gSWYgYSBtYXRjaGluZyBtZXNzYWdlIGlzIGZvdW5kLCBzZXQgdGhlIGZpZWxkSWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgaWRcbiAgICAgIGNvbnN0IG1hdGNoZWRNZXNzYWdlID0gdmFsdWU/LmNhc2VNZXNzYWdlcz8uZmluZCgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKTtcbiAgICAgIGlmIChtYXRjaGVkTWVzc2FnZSkge1xuICAgICAgICB0aGlzLmZpZWxkSWQgPSBpZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpZWxkSWQoY291bnQ6IG51bWJlciwgYWNsczogQWNjZXNzQ29udHJvbExpc3RbXSwgaWQ6IHN0cmluZykge1xuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGNvbnN0IG1hdGNoaW5nUm9sZSA9IGFjbHM/LmZpbmQoKGFjbCkgPT4gYWNsLnJvbGUgPT09IHRoaXMucm9sZU5hbWUpO1xuICAgICAgaWYgKG1hdGNoaW5nUm9sZSkge1xuICAgICAgICB0aGlzLmZpZWxkSWQgPSBpZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2V0IHRoZSBmaWVsZCBJRCBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgZXh0cmFjdGVkIGRhdGFcbiAgICAgIHRoaXMuZmllbGRJZCA9IGlkOyAvLyBTdG9yZSB0aGUgSUQgZm9yIHVzZSBpbiBnZW5lcmF0aW5nIG5ld1F1ZXJ5RGF0YVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9jdW1lbnRBdHRhY2htZW50cygpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2htZW50c1ZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdhdHRhY2htZW50cycpLnZhbHVlO1xuICAgIGlmIChhdHRhY2htZW50c1ZhbHVlICYmIGF0dGFjaG1lbnRzVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZG9jdW1lbnRzID0gYXR0YWNobWVudHNWYWx1ZTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSBkb2N1bWVudHMubWFwKFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzLWZyb20tZGVza3RvcFwiPlxuICAgIDwhLS0gRXJyb3IgbWVzc2FnZSBzdW1tYXJ5IC0tPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiIHJvbGU9XCJhbGVydFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCI+XG4gICAgIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAge3sgJ1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgPC9oMj5cbiAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGVycm9yTWVzc2FnZXNcIj5cbiAgICAgICAgICAgPGEgW2lkXT1cIidlcnJvci0nICsgZXJyb3JNZXNzYWdlLmZpZWxkSWRcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgICAgICBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JcIj57eyBlcnJvck1lc3NhZ2UuZGVzY3JpcHRpb24gfCBycHhUcmFuc2xhdGUgfX08L2E+XG4gICAgICAgICA8L2xpPlxuICAgICAgIDwvdWw+XG4gICAgIDwvZGl2PlxuICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPnt7ICdSYWlzZSBhIHF1ZXJ5JyB8IHJweFRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQ7IGVsc2UgZGVmYXVsdENoZWNrWW91ckFuc3dlcnNUaXRsZVwiPlxuICAgICAgICB7eyAnUmV2aWV3IHF1ZXJ5IHJlc3BvbnNlIGRldGFpbHMnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2hlY2tZb3VyQW5zd2Vyc1RpdGxlPlxuICAgICAgICB7eyAnUmV2aWV3IHF1ZXJ5IGRldGFpbHMnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICA8Y2NkLXF1ZXJ5LWNhc2UtZGV0YWlscy1oZWFkZXIgW2Nhc2VEZXRhaWxzXT1cImNhc2VEZXRhaWxzXCI+PC9jY2QtcXVlcnktY2FzZS1kZXRhaWxzLWhlYWRlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkbCAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCAhPT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5GT0xMT1dVUFwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/ICdTdWJtaXR0ZWQgcXVlcnknIDogJ1F1ZXJ5IHN1YmplY3QnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/IHF1ZXJ5SXRlbS5zdWJqZWN0IDogZm9ybUdyb3VwLmdldCgnc3ViamVjdCcpPy52YWx1ZSB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSAgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXCIgXG4gICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8ZGwgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7IHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5SRVNQT05EID8gJ1Jlc3BvbnNlIGRldGFpbCcgOiAnUXVlcnkgZGV0YWlsJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgZm9ybUdyb3VwLmdldCgnYm9keScpPy52YWx1ZSB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8ZGwgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXCIgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7ICdJcyB0aGUgcXVlcnkgaGVhcmluZyByZWxhdGVkPycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCdpc0hlYXJpbmdSZWxhdGVkJyk/LnZhbHVlID09PSB0cnVlOyBlbHNlIGlzSGVhcmluZ1JlbGF0ZWRGYWxzZVwiPlxuICAgICAgICAgICAge3sgJ0lzIHRoZSBxdWVyeSBoZWFyaW5nIHJlbGF0ZWQ/JyB8IHJweFRyYW5zbGF0ZTogbnVsbCA6ICdZZXMnIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpc0hlYXJpbmdSZWxhdGVkRmFsc2U+XG4gICAgICAgICAgICB7eyAnSXMgdGhlIHF1ZXJ5IGhlYXJpbmcgcmVsYXRlZD8nIHwgcnB4VHJhbnNsYXRlOiBudWxsIDogJ05vJyB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImdvdnVrLWxpbmtcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICAgIHt7ICdDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2RkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCdpc0hlYXJpbmdSZWxhdGVkJyk/LnZhbHVlXCIgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7IHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5ORVdfUVVFUllcbiAgICAgICAgICAgID8gJ1doYXQgaXMgdGhlIGRhdGUgb2YgdGhlIGhlYXJpbmc/J1xuICAgICAgICAgICAgOiAnV2hhdCBpcyB0aGUgZGF0ZSBvZiB0aGUgaGVhcmluZyB5b3VyIHF1ZXJ5IGlzIHJlbGF0ZWQgdG8/JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgZm9ybUdyb3VwLmdldCgnaGVhcmluZ0RhdGUnKT8udmFsdWUgfCBkYXRlOiAnZGQgTU1NIHl5eXknIH19XG4gICAgICAgIDwvZGQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImdvdnVrLWxpbmtcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICAgIHt7ICdDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2RkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kbD5cbiAgICA8ZGwgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIiAqbmdJZj1cInRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZS5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZID8gJ1VwbG9hZCBhIGZpbGUgdG8gdGhlIHF1ZXJ5JyA6ICdEb2N1bWVudCBhdHRhY2hlZCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSBnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLS1kb2N1bWVudEF0dGFjaGVkXCI+XG4gICAgICAgICAgPGNjZC1xdWVyeS1hdHRhY2htZW50cy1yZWFkXG4gICAgICAgICAgICAqbmdJZj1cInRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZVwiXG4gICAgICAgICAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2NjZC1xdWVyeS1hdHRhY2htZW50cy1yZWFkPlxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8YnI+XG5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBnb3Z1ay0hLW1hcmdpbi1yaWdodC0zXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAge3sgJ1ByZXZpb3VzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgIHt7ICdTdWJtaXQnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGNjZC1xdWVyeS1ldmVudC1jb21wbGV0aW9uIFtldmVudENvbXBsZXRpb25QYXJhbXNdPVwiZXZlbnRDb21wbGV0aW9uUGFyYW1zXCI+ICAgIFxuICA8L2NjZC1xdWVyeS1ldmVudC1jb21wbGV0aW9uPlxuPC9kaXY+XG4iXX0=
|