vcomply-workflow-engine 6.1.22 → 6.1.23
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/sharedComponents/document-section/document-section.component.mjs +36 -14
- package/esm2022/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.mjs +15 -5
- package/esm2022/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.mjs +12 -5
- package/esm2022/lib/workflow-policy/ms-word.constants.mjs +2 -2
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +4 -5
- package/esm2022/lib/workflow-services/policy.service.mjs +2 -1
- package/fesm2022/vcomply-workflow-engine.mjs +63 -25
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/document-section/document-section.component.d.ts +7 -5
- package/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.d.ts +1 -0
- package/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.d.ts +3 -1
- package/lib/workflow-policy/workflow-policy.component.d.ts +0 -1
- package/lib/workflow-services/policy.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7,7 +7,8 @@ import * as i3 from "../../workflow-services/policy-api.service";
|
|
|
7
7
|
import * as i4 from "@angular/router";
|
|
8
8
|
import * as i5 from "@angular/common";
|
|
9
9
|
import * as i6 from "../../services/iframe.service";
|
|
10
|
-
import * as i7 from "
|
|
10
|
+
import * as i7 from "../../ui-kit/tooltip/tooltip.directive";
|
|
11
|
+
import * as i8 from "../v-loader/loader-inline/loader-inline.component";
|
|
11
12
|
export class DocumentSectionComponent {
|
|
12
13
|
constructor(snackBar, policyService, policyAPIService, router, route, platformLocation, iframeService) {
|
|
13
14
|
this.snackBar = snackBar;
|
|
@@ -31,7 +32,6 @@ export class DocumentSectionComponent {
|
|
|
31
32
|
this.policyName = '';
|
|
32
33
|
this.organization_id = '';
|
|
33
34
|
this.templateUrl = '';
|
|
34
|
-
this.isTemplateOpened = false;
|
|
35
35
|
this.disconnectRefresh = new EventEmitter();
|
|
36
36
|
this.editPolicy = new EventEmitter();
|
|
37
37
|
this.openTemplate = new EventEmitter();
|
|
@@ -47,13 +47,9 @@ export class DocumentSectionComponent {
|
|
|
47
47
|
this.baseURL = 'https://dev.v-comply.com';
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
ngOnChanges(changes) {
|
|
51
|
-
if (changes?.templateView?.currentValue === false) {
|
|
52
|
-
this.selectedDocumentType = '';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
50
|
ngOnInit() {
|
|
56
51
|
this.initialiseFeatureFlags();
|
|
52
|
+
this.checkTemplateView();
|
|
57
53
|
const data = JSON.parse(localStorage.getItem('lastFileNameAndType') ?? '"{}"');
|
|
58
54
|
if (data.name !== null &&
|
|
59
55
|
data.name !== undefined &&
|
|
@@ -65,6 +61,18 @@ export class DocumentSectionComponent {
|
|
|
65
61
|
localStorage.removeItem('lastFileNameAndType');
|
|
66
62
|
}
|
|
67
63
|
}
|
|
64
|
+
checkTemplateView() {
|
|
65
|
+
this.templateViewSubscription = this.policyService.templateView.subscribe((res) => {
|
|
66
|
+
if (!res) {
|
|
67
|
+
this.selectedDocumentType = '';
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
ngOnDestroy() {
|
|
72
|
+
if (this.templateViewSubscription) {
|
|
73
|
+
this.templateViewSubscription.unsubscribe();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
68
76
|
initialiseFeatureFlags() {
|
|
69
77
|
this.ff_policy_ms_word_integration = this.feature.isFeatureEnabled('ff_policy_ms_word_integration');
|
|
70
78
|
}
|
|
@@ -120,8 +128,9 @@ export class DocumentSectionComponent {
|
|
|
120
128
|
this.isUploading = false;
|
|
121
129
|
}
|
|
122
130
|
}, (err) => {
|
|
123
|
-
this.isUploading = false;
|
|
124
131
|
this.snackBar.show("Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?", 'alert');
|
|
132
|
+
this.isUploading = false;
|
|
133
|
+
this.selectedDocumentType = '';
|
|
125
134
|
});
|
|
126
135
|
}
|
|
127
136
|
}
|
|
@@ -158,10 +167,21 @@ export class DocumentSectionComponent {
|
|
|
158
167
|
}
|
|
159
168
|
}
|
|
160
169
|
}, (err) => {
|
|
161
|
-
this.isUploading = false;
|
|
162
170
|
this.snackBar.show("Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?", 'alert');
|
|
171
|
+
this.isUploading = false;
|
|
172
|
+
this.selectedDocumentType = '';
|
|
163
173
|
});
|
|
164
174
|
}
|
|
175
|
+
resetUploads() {
|
|
176
|
+
this.selectedDocumentType = '';
|
|
177
|
+
this.filename = '';
|
|
178
|
+
this.fileType = '';
|
|
179
|
+
this.pdf = false;
|
|
180
|
+
this.doc = false;
|
|
181
|
+
this.isUploading = false;
|
|
182
|
+
this.isLoader = false;
|
|
183
|
+
this.resetDocsError();
|
|
184
|
+
}
|
|
165
185
|
resetDocsError() {
|
|
166
186
|
this.docxError = {
|
|
167
187
|
visible: false,
|
|
@@ -170,6 +190,10 @@ export class DocumentSectionComponent {
|
|
|
170
190
|
}
|
|
171
191
|
changeDocType(event) {
|
|
172
192
|
this.resetDocsError();
|
|
193
|
+
if (this.selectedDocumentType === event) {
|
|
194
|
+
this.selectedDocumentType = '';
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
173
197
|
this.selectedDocumentType = event;
|
|
174
198
|
if (event === 'template') {
|
|
175
199
|
this.openTemplateList();
|
|
@@ -227,11 +251,11 @@ export class DocumentSectionComponent {
|
|
|
227
251
|
this.openTemplate.emit();
|
|
228
252
|
}
|
|
229
253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DocumentSectionComponent, deps: [{ token: i1.SnackBarService }, { token: i2.PolicyService }, { token: i3.PolicyAPIService }, { token: i4.Router }, { token: i4.ActivatedRoute }, { token: i5.PlatformLocation }, { token: i6.IframeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
230
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DocumentSectionComponent, selector: "lib-document-section", inputs: { selectedDocumentType: "selectedDocumentType", feature: "feature", templateView: "templateView", policyId: "policyId", policyName: "policyName", organization_id: "organization_id", member_obj_id: "member_obj_id", userInfo: "userInfo", templateUrl: "templateUrl", isTemplateOpened: "isTemplateOpened" }, outputs: { disconnectRefresh: "disconnectRefresh", editPolicy: "editPolicy", openTemplate: "openTemplate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"document-section\" [class.grayscale]=\"isTemplateOpened\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either\n draft it from scratch using VComply's online editor or upload an\n existing DOCX or PDF file.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <ng-container *ngIf=\"selectedDocumentType == 'docx' && filename\">{{\n filename\n }}</ng-container>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\"></i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <ng-container *ngIf=\"selectedDocumentType == 'pdf' && filename\">{{\n filename\n }}</ng-container>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"isTemplateOpened\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"isTemplateOpened\"\n >\n <i class=\"icons\"></i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"!selectedDocumentType || isTemplateOpened || isLoader\"\n >\n Next <i class=\"icons\"></i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.LoaderInlineComponent, selector: "app-loader-inline" }] }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DocumentSectionComponent, selector: "lib-document-section", inputs: { selectedDocumentType: "selectedDocumentType", feature: "feature", templateView: "templateView", policyId: "policyId", policyName: "policyName", organization_id: "organization_id", member_obj_id: "member_obj_id", userInfo: "userInfo", templateUrl: "templateUrl" }, outputs: { disconnectRefresh: "disconnectRefresh", editPolicy: "editPolicy", openTemplate: "openTemplate" }, ngImport: i0, template: "<div class=\"document-section\" [class.grayscale]=\"templateView\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? ' or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft Using a Template.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\"></i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"templateView\"\n >\n <i class=\"icons\"></i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"!selectedDocumentType || templateView || isLoader\"\n >\n Next <i class=\"icons\"></i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }] }); }
|
|
231
255
|
}
|
|
232
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DocumentSectionComponent, decorators: [{
|
|
233
257
|
type: Component,
|
|
234
|
-
args: [{ selector: 'lib-document-section', template: "<div class=\"document-section\" [class.grayscale]=\"isTemplateOpened\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either\n draft it from scratch using VComply's online editor or upload an\n existing DOCX or PDF file.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <ng-container *ngIf=\"selectedDocumentType == 'docx' && filename\">{{\n filename\n }}</ng-container>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\"></i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <ng-container *ngIf=\"selectedDocumentType == 'pdf' && filename\">{{\n filename\n }}</ng-container>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (change)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"isTemplateOpened\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"isTemplateOpened\"\n >\n <i class=\"icons\"></i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"!selectedDocumentType || isTemplateOpened || isLoader\"\n >\n Next <i class=\"icons\"></i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"] }]
|
|
258
|
+
args: [{ selector: 'lib-document-section', template: "<div class=\"document-section\" [class.grayscale]=\"templateView\">\n <div class=\"document-section-inner\">\n <div class=\"message-box\">\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 480.8 480.8\"\n style=\"enable-background: new 0 0 480.8 480.8\"\n xml:space=\"preserve\"\n >\n <path\n style=\"fill: #ffd517\"\n d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n />\n <g>\n <path\n style=\"fill: #e5e5e5\"\n d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n />\n <path\n style=\"fill: #e5e5e5\"\n d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n />\n </g>\n <g>\n <path\n style=\"fill: #210b20\"\n d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n C244.712,66.4,247.912,63.2,247.912,58.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n />\n <path\n style=\"fill: #210b20\"\n d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n />\n </g>\n </svg>\n <p>\n There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? ' or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft Using a Template.\n </p>\n </div>\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'draft'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('draft')\"\n [checked]=\"selectedDocumentType === 'draft'\"\n />\n <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\"><strong>Create</strong> a Policy</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n \n <label\n *ngIf=\"ff_policy_ms_word_integration\"\n class=\"document-box\"\n [class.active]=\"selectedDocumentType == 'word'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('word')\"\n [checked]=\"selectedDocumentType === 'word'\"\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">{{createWordPolicyText}}</div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n\n\n\n <label\n class=\"document-box\"\n *ngIf=\"showDocxBlock\"\n [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n [class.error]=\"docxError?.visible\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".docx\"\n id=\"DOCfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #docxUploadButton\n />\n <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n >Upload a <strong>DOCX</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'docx' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n {{ docxError?.message }}\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\"></i>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <label\n class=\"document-box\"\n *ngIf=\"showPdfBlock\"\n [class.active]=\"selectedDocumentType == 'pdf'\"\n (click)=\"resetUploads()\"\n >\n <input\n type=\"file\"\n accept=\".pdf\"\n id=\"PDFfile\"\n (change)=\"handleFileInput($event.target.files)\"\n onclick=\"event.stopPropagation();\"\n #pdfUploadButton\n />\n <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">\n <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n >Upload a <strong>PDF</strong></ng-container\n >\n <span *ngIf=\"selectedDocumentType == 'pdf' && filename\"\n [appTooltip]=\"filename\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >{{\n filename\n }}</span>\n </div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n <div\n class=\"line-progress\"\n *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n >\n <div class=\"line-progress-bar\"></div>\n </div>\n </label>\n <!-- Select a template -->\n <label\n class=\"document-box\"\n [class.active]=\"selectedDocumentType === 'template'\"\n >\n <input\n type=\"radio\"\n name=\"selectedDocumentType\"\n (click)=\"changeDocType('template')\"\n [checked]=\"selectedDocumentType === 'template'\"\n />\n <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n </svg>\n \n <div class=\"label-right\">\n <div class=\"value\">Draft Using a <strong>Template</strong></div>\n <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\"></i>\n <div class=\"check-circle\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n </div>\n </label>\n <!-- End Select a template -->\n <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n <button\n type=\"button\"\n (click)=\"editPolicyEmit()\"\n class=\"back\"\n [class.disabled]=\"templateView\"\n >\n <i class=\"icons\"></i> Back\n </button>\n <button\n type=\"button\"\n (click)=\"editor(selectedDocumentType)\"\n class=\"next\"\n [class.disabled]=\"!selectedDocumentType || templateView || isLoader\"\n >\n Next <i class=\"icons\"></i>\n </button>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .document-section{display:flex;align-items:center;height:calc(100vh - 50px);position:absolute;top:0;right:0;background:#fff;z-index:10;padding:50px;width:100%;overflow:hidden;overflow-y:scroll}@media screen and (max-width: 1365px){::ng-deep .document-section{align-items:unset}}::ng-deep .document-section.grayscale{filter:grayscale(1)!important;pointer-events:none!important}::ng-deep .document-section-inner .message-box{background:#fbfbfb;border-radius:4px;border:1px solid #f1f1f1;padding:16px 8px 12px 16px;margin-bottom:20px;display:flex;align-items:flex-start}::ng-deep .document-section-inner .message-box svg{background:#fff;width:33px;min-width:33px;border-radius:4px;box-shadow:0 3px 6px #1e5dd333;margin-right:12px;padding:4px}::ng-deep .document-section-inner .message-box p{font-size:12px;font-weight:500;color:#787a8c;margin:0}::ng-deep .document-section-inner .document-box{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:1px solid #CDCED6;border-radius:8px;width:100%;background:transparent;height:64px;padding:0 16px;margin-bottom:8px}::ng-deep .document-section-inner .document-box.error{border:1px solid #dbdbdb}::ng-deep .document-section-inner .document-box input{width:100%;position:absolute;inset:0;margin:0;padding:0;z-index:1;opacity:0;height:100%;pointer-events:none}::ng-deep .document-section-inner .document-box svg.doc-svg{width:82px}::ng-deep .document-section-inner .document-box .label-right{width:calc(100% - 64px);display:flex;align-items:center;justify-content:center;position:relative}::ng-deep .document-section-inner .document-box .label-right .value{font-size:16px;font-weight:500;line-height:24px;color:#000;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;width:270px;margin-right:25px}::ng-deep .document-section-inner .document-box .label-right .value strong{font-weight:500}::ng-deep .document-section-inner .document-box .label-right .error-msg-text{color:#d93b41;font-size:10px;position:absolute;top:24px;left:0;right:0;width:250px}::ng-deep .document-section-inner .document-box .label-right .check-circle{display:none;width:16px;height:16px;position:absolute;right:8px;top:2px}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon{width:16px;height:16px;background:#ddf4e0;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-right:10px;position:static}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .document-section-inner .document-box .label-right .check-circle .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .document-section-inner .document-box .label-right .error-icon{color:#d93b41;font-size:16px;position:relative;top:0;right:8px}::ng-deep .document-section-inner .document-box.active{background:#ddf4e0;border:1px solid #B7E2BD}::ng-deep .document-section-inner .document-box.active .document-box-icon{display:none}::ng-deep .document-section-inner .document-box.active .label-right .check-circle{display:block}::ng-deep .document-section-inner .document-box.error{background:#ffeaea;border:1px solid #d93b41}::ng-deep .document-section-inner .document-box-icon{color:#565a6f}.bottom-button{background:#fff;display:flex;align-items:center;position:absolute;bottom:0;right:0;width:100%;z-index:10}.bottom-button button{background:#1e5dd3;border:none;border-radius:0;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;width:100%;padding:0;position:relative;margin:0!important;height:50px;display:flex;align-items:center;justify-content:center;line-height:19px;letter-spacing:3.08px;outline:none}.bottom-button button i{position:absolute;top:16px;font-size:18px;font-weight:500}.bottom-button button.next i{right:16px}.bottom-button button.disabled{pointer-events:none!important;opacity:.3!important;filter:grayscale(1)!important}.bottom-button button.back{background:#f1f1f1;color:#1e5dd3}.bottom-button button.back i{left:16px}.line-progress{position:absolute;left:0;top:0;height:2px;display:block;width:100%;background-color:#d4e2fc;background-clip:padding-box;overflow:hidden}.line-progress-bar{bottom:0;width:40%;background:#34aa44;border-radius:5px;display:inline-block;position:absolute;animation:linear infinite;animation-name:run;animation-duration:1s;top:0}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes run{0%{left:0}50%{left:60%}to{left:0}}\n"] }]
|
|
235
259
|
}], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.PolicyService }, { type: i3.PolicyAPIService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i5.PlatformLocation }, { type: i6.IframeService }]; }, propDecorators: { selectedDocumentType: [{
|
|
236
260
|
type: Input
|
|
237
261
|
}], feature: [{
|
|
@@ -250,8 +274,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
250
274
|
type: Input
|
|
251
275
|
}], templateUrl: [{
|
|
252
276
|
type: Input
|
|
253
|
-
}], isTemplateOpened: [{
|
|
254
|
-
type: Input
|
|
255
277
|
}], disconnectRefresh: [{
|
|
256
278
|
type: Output
|
|
257
279
|
}], editPolicy: [{
|
|
@@ -259,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
259
281
|
}], openTemplate: [{
|
|
260
282
|
type: Output
|
|
261
283
|
}] } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7O0FBTzdGLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ25DLFlBQ1UsUUFBeUIsRUFDekIsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDZCxLQUFxQixFQUM3QixnQkFBa0MsRUFDMUIsYUFBNEI7UUFONUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFFckIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFyQ3RDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNaLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxRQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ1osZ0JBQVcsR0FBRyxL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UUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLFlBQVksQ0FBQyxPQUFPLENBQ2xCLHFCQUFxQixFQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0ExUVUsd0JBQXdCO21HQUF4Qix3QkFBd0Isc2ZDdEJyQyxpc2hCQW9XQTs7NEZEOVVhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7OFFBZ0J2QixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeUFQSVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3ktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lmcmFtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdPUkRfQ09OU1RBTlRTLCBXT1JEX1VSTF9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1wb2xpY3kvbXMtd29yZC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgZmlsZVRvVXBsb2FkOiBhbnk7XG4gIGZpbGVuYW1lID0gJyc7XG4gIGZpbGVUeXBlID0gJyc7XG4gIHBkZiA9IGZhbHNlO1xuICBkcmFmdCA9IGZhbHNlO1xuICBkb2MgPSBmYWxzZTtcbiAgaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgaXNMb2FkZXIgPSBmYWxzZTtcbiAgZmZfcG9saWN5X21zX3dvcmRfaW50ZWdyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3JlYXRlV29yZFBvbGljeVRleHQgPSBXT1JEX0NPTlNUQU5UUy5NU19XT1JEX09QVElPTjtcblxuICBASW5wdXQoKSBzZWxlY3RlZERvY3VtZW50VHlwZSA9ICcnO1xuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XG4gIEBJbnB1dCgpIHRlbXBsYXRlVmlldyA9IGZhbHNlO1xuICBASW5wdXQoKSBwb2xpY3lJZDogYW55ID0gJyc7XG4gIEBJbnB1dCgpIHBvbGljeU5hbWU6IGFueSA9ICcnO1xuICBASW5wdXQoKSBvcmdhbml6YXRpb25faWQ6IGFueSA9ICcnO1xuICBASW5wdXQoKSBtZW1iZXJfb2JqX2lkOiBhbnk7XG4gIEBJbnB1dCgpIHVzZXJJbmZvOiBhbnk7XG4gIEBJbnB1dCgpIHRlbXBsYXRlVXJsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaXNUZW1wbGF0ZU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlZGl0UG9saWN5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb3BlblRlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJhc2VVUkwgPSAnJztcbiAgZG9jeEVycm9yID0ge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG1lc3NhZ2U6ICcnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lBUElTZXJ2aWNlOiBQb2xpY3lBUElTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbixcbiAgICBwcml2YXRlIGlmcmFtZVNlcnZpY2U6IElmcmFtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5iYXNlVVJMID0gbG9jYXRpb24/Lm9yaWdpbjtcbiAgICBpZiAodGhpcy5iYXNlVVJMID09ICdodHRwOi8vbG9jYWxob3N0OjQyMDAnKSB7XG4gICAgICB0aGlzLmJhc2VVUkwgPSAnaHR0cHM6Ly9kZXYudi1jb21wbHkuY29tJztcbiAgICB9XG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzPy50ZW1wbGF0ZVZpZXc/LmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSAnJztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpc2VGZWF0dXJlRmxhZ3MoKTtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYXN0RmlsZU5hbWVBbmRUeXBlJykgPz8gJ1wie31cIidcbiAgICApO1xuICAgIGlmIChcbiAgICAgIGRhdGEubmFtZSAhPT0gbnVsbCAmJlxuICAgICAgZGF0YS5uYW1lICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGRhdGEudHlwZSAhPT0gbnVsbCAmJlxuICAgICAgZGF0YS50eXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGRhdGEucG9saWN5SWQgPT0gdGhpcy5wb2xpY3lJZFxuICAgICkge1xuICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IGRhdGEudHlwZTtcbiAgICAgIHRoaXMuZmlsZW5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbGFzdEZpbGVOYW1lQW5kVHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpc2VGZWF0dXJlRmxhZ3MoKSB7XG4gICAgdGhpcy5mZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbiA9ICB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcG9saWN5X21zX3dvcmRfaW50ZWdyYXRpb24nKTtcbiAgfVxuXG5yZWRpcmVjdFVzZXJUb1dvcmRQb2xpY3koKSB7XG4gIHdpbmRvdy5vcGVuKFdPUkRfVVJMX0NPTlNUQU5UUy5uZXdfd29yZF9wb2xpY3lfdXJsLCAnX2JsYW5rJyk7XG4gIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gIHRoaXMuYmFzZVVSTCArIFdPUkRfVVJMX0NPTlNUQU5UUy53b3Jrcm9vbV91cmwgKyB0aGlzLnBvbGljeUlkO1xufVxuXG4gIGNyZWF0ZVdvcmRQb2xpY3koKSB7XG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5wb2xpY3lBUElTZXJ2aWNlLmNyZWF0ZVdvcmRQb2xpY3kodGhpcy5wb2xpY3lJZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmKHJlcyl7XG4gICAgICAgIHRoaXMucmVkaXJlY3RVc2VyVG9Xb3JkUG9saWN5KCk7XG4gICAgICB9ICAgICAgIFxuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgIH0sXG4gICAgKGVycikgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICBXT1JEX0NPTlNUQU5UUy5jcmVhdGVXb3JkUG9saWN5X3NuYWNrYmFyX21lc3NhZ2UsXG4gICAgICAgICdhbGVydCdcbiAgICAgICk7XG4gICAgfVxuICApO1xuICB9XG5cbiAgaGFuZGxlRmlsZUlucHV0KGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZVRvVXBsb2FkID0gZmlsZXNbMF07XG4gICAgdGhpcy5maWxlbmFtZSA9IHRoaXMuZmlsZVRvVXBsb2FkLm5hbWU7XG4gICAgdGhpcy5maWxlVHlwZSA9IHRoaXMuZmlsZVRvVXBsb2FkLm5hbWVcbiAgICAgIC5zbGljZShcbiAgICAgICAgdGhpcy5maWxlVG9VcGxvYWQubmFtZS5sYXN0SW5kZXhPZignLicpICsgMSxcbiAgICAgICAgdGhpcy5maWxlVG9VcGxvYWQubmFtZS5sZW5ndGhcbiAgICAgIClcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0aGlzLmZpbGVUeXBlID09PSAncGRmJykge1xuICAgICAgdGhpcy51cGxvYWRGaWxlKHsgZmlsZTogdGhpcy5maWxlVG9VcGxvYWQsIGZpbGVUeXBlOiB0aGlzLmZpbGVUeXBlIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVHlwZSA9PT0gJ2RvY3gnKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeyBmaWxlOiB0aGlzLmZpbGVUb1VwbG9hZCwgZmlsZVR5cGU6IHRoaXMuZmlsZVR5cGUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGUnLCAnYWxlcnQnKTtcbiAgICB9XG4gIH1cbiAgc2hvd1BkZkJsb2NrID0gdHJ1ZTtcbiAgc2hvd0RvY3hCbG9jayA9IHRydWU7XG5cbiAgdXBsb2FkRmlsZShldmVudDogYW55KSB7XG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmZpbGVUeXBlID09PSAnZG9jeCcpIHtcbiAgICAgIHRoaXMuY2hhbmdlRG9jVHlwZSgnZG9jeCcpO1xuICAgICAgdGhpcy51cGxvYWREb2N4ZmlsZShldmVudCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5maWxlVHlwZSA9PT0gJ3BkZicpIHtcbiAgICAgIHRoaXMuY2hhbmdlRG9jVHlwZSgncGRmJyk7XG4gICAgICB0aGlzLnNob3dQZGZCbG9jayA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd1BkZkJsb2NrID0gdHJ1ZTtcbiAgICAgIH0sIDEwKTtcbiAgICAgIGNvbnN0IHVwbG9hZERhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIHVwbG9hZERhdGEuYXBwZW5kKCdmaWxlJywgZXZlbnQuZmlsZSk7XG4gICAgICBjb25zdCBwYXRoID0gJ28vJyArIHRoaXMub3JnYW5pemF0aW9uX2lkICsgJy9wb2xpY3kvJztcbiAgICAgIHRoaXMucG9saWN5U2VydmljZS51cGxvYWRGaWxlKHVwbG9hZERhdGEsIHRoaXMucG9saWN5SWQsIHBhdGgpLnN1YnNjcmliZShcbiAgICAgICAgKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgXCJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnksIHNoYWxsIHdlP1wiLFxuICAgICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkRG9jeGZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgICB0aGlzLnNob3dEb2N4QmxvY2sgPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0RvY3hCbG9jayA9IHRydWU7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IHVwbG9hZERhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICB1cGxvYWREYXRhLmFwcGVuZCgnZmlsZScsIGV2ZW50LmZpbGUpO1xuICAgIGNvbnN0IHBhdGggPSAnby8nICsgdGhpcy5vcmdhbml6YXRpb25faWQgKyAnL3BvbGljeS8nO1xuICAgIHRoaXMucG9saWN5U2VydmljZVxuICAgICAgLnVwbG9hZERvY3hGaWxlKHVwbG9hZERhdGEsIHRoaXMucG9saWN5SWQsIHBhdGgpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocmVzPy5tZXNzYWdlPy5pbmNsdWRlcygnZG9uZScpKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChyZXMubWVzc2FnZT8uaW5jbHVkZXMoJ1JhbmdlRXJyb3InKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jeEVycm9yID0ge1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGUgZmlsZSBzaXplIGlzIHRvbyBsYXJnZSBhbmQgY2Fubm90IGJlIHVwbG9hZGVkLicsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3hFcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnT29wcyEgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgdXBsb2FkaW5nIHRoaXMgZmlsZS4nLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICAgICBcIk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSwgc2hhbGwgd2U/XCIsXG4gICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHJlc2V0RG9jc0Vycm9yKCkge1xuICAgIHRoaXMuZG9jeEVycm9yID0ge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgY2hhbmdlRG9jVHlwZShldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXNldERvY3NFcnJvcigpO1xuICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSBldmVudDtcbiAgICBpZiAoZXZlbnQgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIHRoaXMub3BlblRlbXBsYXRlTGlzdCgpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRvcihldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcblxuICAgIGlmIChldmVudCA9PT0gJ2RyYWZ0Jykge1xuICAgICAgLy8gSWYgaXQgaXMgYSBkcmFmdCBnbyBkaXJlY3RseSB0byB0aGUgZWRpdG9yXG4gICAgICBjb25zdCB1bmFtZSA9IHRoaXMudXNlckluZm8gPyB0aGlzLnVzZXJJbmZvLm5hbWUgOiAnJztcbiAgICAgIGNvbnN0IHVpZCA9IHRoaXMubWVtYmVyX29ial9pZDtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnBvbGljeU5hbWUudHJpbSgpO1xuICAgICAgY29uc3QgaWQgPSB0aGlzLnBvbGljeUlkO1xuICAgICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgICB0aGlzLnBvbGljeVNlcnZpY2VcbiAgICAgICAgLnNhdmVQb2xpY3lEZXRhaWxzKHVuYW1lLCB1aWQsIGlkLCBuYW1lLCAnJywgMClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VVUkwgKyAnL2FsbC9wb2xpY3kvZWRpdC1wb2xpY3k/aWQ9JyArIHRoaXMucG9saWN5SWQ7XG4gICAgICAgICAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgICAgXCJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnksIHNoYWxsIHdlP1wiLFxuICAgICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnZG9jeCcpIHtcbiAgICAgIGNvbnN0IHVybCA9XG4gICAgICAgIHRoaXMuYmFzZVVSTCArICcvYWxsL3BvbGljeS9lZGl0LXBvbGljeT9pZD0nICsgdGhpcy5wb2xpY3lJZDtcbiAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnd29yZCcpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVXb3JkUG9saWN5KCk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3BkZicpIHtcbiAgICAgIC8vIElmIGl0IGlzIGEgcGRmIHNlbmQgdG8gdGhlIHdvcmtyb29tXG4gICAgICBjb25zdCB1cmwgPVxuICAgICAgICB0aGlzLmJhc2VVUkwgKyAnL2FsbC9wb2xpY3kvd29ya3Jvb20/aWQ9JyArIHRoaXMucG9saWN5SWQ7XG4gICAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHVybCwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh0aGlzLnRlbXBsYXRlVXJsLCB0cnVlKTtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19kSWQnLCB0aGlzLnBvbGljeUlkKTtcbiAgfVxuICBlZGl0UG9saWN5RW1pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAnbGFzdEZpbGVOYW1lQW5kVHlwZScsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUsXG4gICAgICAgIG5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgIHBvbGljeUlkOiB0aGlzLnBvbGljeUlkLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZWRpdFBvbGljeS5lbWl0KCk7XG4gIH1cblxuICBvcGVuVGVtcGxhdGVMaXN0KCkge1xuICAgIHRoaXMub3BlblRlbXBsYXRlLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvY3VtZW50LXNlY3Rpb25cIiBbY2xhc3MuZ3JheXNjYWxlXT1cImlzVGVtcGxhdGVPcGVuZWRcIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXNlY3Rpb24taW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1ib3hcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgIGlkPVwiQ2FwYV8xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgIHg9XCIwcHhcIlxuICAgICAgICB5PVwiMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA0ODAuOCA0ODAuOFwiXG4gICAgICAgIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6IG5ldyAwIDAgNDgwLjggNDgwLjhcIlxuICAgICAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgc3R5bGU9XCJmaWxsOiAjZmZkNTE3XCJcbiAgICAgICAgICBkPVwiTTMxNy4xMTIsMzE0LjRjLTIyLjQsMjIuNC0xOS42LDY3LjYtMTkuNiw2Ny42aC0xMTMuNmMwLDAsMi40LTQ1LjItMTkuNi02Ny42XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0yNC40LTIxLjYtNDAtNTIuOC00MC04Ny42YzAtNjQsNTItMTE2LDExNi0xMTZzMTE2LDUyLDExNiwxMTZDMzU2LjMxMiwyNjEuNiwzNDEuMTEyLDI5Mi44LDMxNy4xMTIsMzE0LjRMMzE3LjExMiwzMTQuNHpcIlxuICAgICAgICAvPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjZTVlNWU1XCJcbiAgICAgICAgICAgIGQ9XCJNMzAwLjcxMiw0MTcuNmMwLDYtNC44LDEwLjgtMTAuOCwxMC44aC05OC44Yy02LDAtMTAuOC00LjgtMTAuOC0xMC44bDAsMGMwLTYsNC44LTEwLjgsMTAuOC0xMC44XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg5OC40QzI5NS41MTIsNDA2LjgsMzAwLjcxMiw0MTEuNiwzMDAuNzEyLDQxNy42TDMwMC43MTIsNDE3LjZ6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICNlNWU1ZTVcIlxuICAgICAgICAgICAgZD1cIk0yODUuOTEyLDQ2Mi40YzAsNi00LjgsMTAuOC0xMC44LDEwLjhoLTY5LjJjLTYsMC0xMC44LTQuOC0xMC44LTEwLjhsMCwwYzAtNiw0LjgtMTAuOCwxMC44LTEwLjhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDY5LjJDMjgxLjExMiw0NTEuNiwyODUuOTEyLDQ1Ni40LDI4NS45MTIsNDYyLjRMMjg1LjkxMiw0NjIuNHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZz5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTMyMy4xMTIsMzE4LjRjMjYtMjMuNiw0MC44LTU2LjgsNDAuOC05MS42YzAtNjgtNTUuNi0xMjMuNi0xMjMuNi0xMjMuNnMtMTIzLjYsNTUuNi0xMjMuNiwxMjMuNlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMCwzNS42LDE1LjYsNjkuNiw0Miw5Mi44YzE5LjYsMTkuNiwxNy42LDYxLjIsMTcuNiw2MS42YzAsMiwwLjgsNCwyLDUuNmMxLjYsMS42LDMuNiwyLjQsNS42LDIuNGgxMTMuMmMyLDAsNC0wLjgsNS42LTIuNFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMi0zLjYsMi01LjZjMC0wLjQtMi00MiwxNy42LTYxLjZDMzIyLjcxMiwzMTkuMiwzMjMuMTEyLDMxOC44LDMyMy4xMTIsMzE4LjR6IE0zMTEuOTEyLDMwOC40Yy0wLjgsMC40LTEuMiwxLjItMS42LDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0xNy42LDE4LjgtMjAuNCw0OS42LTIwLjgsNjRoLTk4Yy0wLjQtMTQuOC0zLjYtNDYuOC0yMi40LTY1LjZjLTIzLjYtMjAuOC0zNy4yLTUwLjQtMzcuMi04MS42YzAtNjAsNDguOC0xMDguNCwxMDguNC0xMDguNFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjNjAsMCwxMDguNCw0OC44LDEwOC40LDEwOC40QzM0OC43MTIsMjU4LDMzNS41MTIsMjg4LDMxMS45MTIsMzA4LjR6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0yNDAuMzEyLDEzNS4yYy00LDAtNy42LDMuMi03LjYsNy42YzAsNCwzLjIsNy42LDcuNiw3LjZjNDQuOCwwLDgxLjIsMzYuNCw4MS4yLDgxLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAsNCwzLjIsNy42LDcuNiw3LjZjNCwwLDcuNi0zLjIsNy42LTcuNkMzMzYuNzEyLDE3OC40LDI5My41MTIsMTM1LjIsMjQwLjMxMiwxMzUuMnpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTMwOC4zMTIsNDE3LjZjMC0xMC40LTguNC0xOC40LTE4LjQtMTguNGgtOTguOGMtMTAuNCwwLTE4LjQsOC40LTE4LjQsMTguNFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMCwxMC40LDguNCwxOC40LDE4LjQsMTguNGg5OC40QzI5OS45MTIsNDM2LDMwOC4zMTIsNDI4LDMwOC4zMTIsNDE3LjZ6IE0yODkuNTEyLDQyMC44aC05OC40Yy0yLDAtMy4yLTEuNi0zLjItMy4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLTIsMS42LTMuMiwzLjItMy4yaDk4LjRjMiwwLDMuMiwxLjYsMy4yLDMuMkMyOTMuMTEyLDQxOS42LDI5MS41MTIsNDIwLjgsMjg5LjUxMiw0MjAuOHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTI3NS4xMTIsNDQ0aC02OS4yYy0xMC40LDAtMTguNCw4LjQtMTguNCwxOC40YzAsMTAuNCw4LjQsMTguNCwxOC40LDE4LjRoNjkuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMTAuNCwwLDE4LjQtOC40LDE4LjQtMTguNEMyOTMuNTEyLDQ1Mi40LDI4NS4xMTIsNDQ0LDI3NS4xMTIsNDQ0eiBNMjc1LjExMiw0NjUuNmgtNjkuMmMtMiwwLTMuMi0xLjYtMy4yLTMuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMC0yLDEuNi0zLjIsMy4yLTMuMmg2OS4yYzIsMCwzLjIsMS42LDMuMiwzLjJDMjc4LjMxMiw0NjQuNCwyNzcuMTEyLDQ2NS42LDI3NS4xMTIsNDY1LjZ6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0yNDcuOTEyLDU4LjhWNy42YzAtNC0zLjItNy42LTcuNi03LjZjLTQsMC03LjYsMy4yLTcuNiw3LjZ2NTEuNmMwLDQsMy4yLDcuNiw3LjYsNy42XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMyNDQuNzEyLDY2LjQsMjQ3LjkxMiw2My4yLDI0Ny45MTIsNTguOHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTM2Ni4zMTIsMzhjLTMuNi0yLjQtOC0xLjItMTAuNCwybC0yOC40LDQyLjhjLTIuNCwzLjYtMS4yLDgsMiwxMC40YzEuMiwwLjgsMi44LDEuMiw0LDEuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMi40LDAsNC44LTEuMiw2LjQtMy4ybDI4LjQtNDIuOEMzNzAuNzEyLDQ1LjIsMzY5LjUxMiw0MC40LDM2Ni4zMTIsMzh6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0xNDkuOTEyLDkyLjhjMS4yLDAsMi44LTAuNCw0LTEuMmMzLjYtMi40LDQuNC02LjgsMi40LTEwLjRsLTI3LjYtNDMuMmMtMi40LTMuNi02LjgtNC40LTEwLjQtMi40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtMy42LDIuNC00LjQsNi44LTIuNCwxMC40bDI3LjYsNDMuMkMxNDUuMTEyLDkxLjYsMTQ3LjUxMiw5Mi44LDE0OS45MTIsOTIuOHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTQzLjkxMiwxMjguOGw0NS4yLDI0LjRjMS4yLDAuOCwyLjQsMC44LDMuNiwwLjhjMi44LDAsNS4yLTEuNiw2LjgtNGMyLTMuNiwwLjgtOC40LTMuMi0xMC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwtNDUuMi0yNC40Yy0zLjYtMi04LjQtMC44LTEwLjQsMy4yQzM5LjExMiwxMjIuNCw0MC4zMTIsMTI2LjgsNDMuOTEyLDEyOC44elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzg3LjkxMiwxNTQuNGMxLjIsMCwyLjQtMC40LDMuNi0wLjhsNDUuMi0yNC40YzMuNi0yLDUuMi02LjQsMy4yLTEwLjRjLTItMy42LTYuNC01LjItMTAuNC0zLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC00NS4yLDI0LjRjLTMuNiwyLTUuMiw2LjQtMy4yLDEwLjRDMzgyLjMxMiwxNTIuOCwzODUuMTEyLDE1NC40LDM4Ny45MTIsMTU0LjR6XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxwPlxuICAgICAgICBUaGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byBjcmVhdGUgYSBwb2xpY3kgb24gVkNvbXBseS4gWW91IGNhbiBlaXRoZXJcbiAgICAgICAgZHJhZnQgaXQgZnJvbSBzY3JhdGNoIHVzaW5nIFZDb21wbHkncyBvbmxpbmUgZWRpdG9yIG9yIHVwbG9hZCBhblxuICAgICAgICBleGlzdGluZyBET0NYIG9yIFBERiBmaWxlLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJkb2N1bWVudC1ib3hcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZHJhZnQnXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgbmFtZT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VEb2NUeXBlKCdkcmFmdCcpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICdkcmFmdCdcIlxuICAgICAgLz5cbiAgICAgIDxzdmcgaWQ9XCJEcmFmdFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwMlwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDJcIiBkPVwiTTI4LDMySDRhNCw0LDAsMCwxLTQtNFY0QTQsNCwwLDAsMSw0LDBIMjhhNCw0LDAsMCwxLDQsNFYyOGE0LDQsMCwwLDEtNCw0XCIgZmlsbD1cIiM1NjVhNmZcIi8+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwM1wiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDNcIiBkPVwiTTIxLjg4NCw4LjUxLDEwLjU0OSwxMC4zODQsMTIuNDI2LDIxLjA2bDQuMzgtLjYxYS4zMzMuMzMzLDAsMCwxLC4zMjYuNDM1Yy0uMDUxLjIxOS0uMzM4LjIzNS0uNTE0LjI2Ny0xLjQ3NC4yNjYtMy4wMDkuMzg4LTQuNDkxLjYzMS0uNDE2LS4wMzItLjMyMS0uNzE4LS40NDEtMWwtMy0uMzY1Yy0uMjEzLS4xMi0uMi0uMjczLS4yLS40OTIuMDE5LS42MjIuMDkyLTEuMjUxLjEyNS0xLjg3Mi4xNi0zLC4zMTYtNiwuNS04Ljk5M0E5LjQ1Nyw5LjQ1NywwLDAsMSw5LjE1Miw4LjFhLjM2OS4zNjksMCwwLDEsLjI2NS0uM2w4LjUxOS42ODFMMjIuMiw3LjhjLjIyNS4wNjguMjQ2LjE5LjMuMzkzLjU1MywyLjI4OC43NTgsNC43NzUsMS4yODUsNy4wODMuMTQzLjUzMS0uNTA3LjczMS0uNjQyLjJaTTE3LjIxMSwyMS45MzJhLjU2My41NjMsMCwwLDAtLjA3Mi4yNCw4LjU0OSw4LjU0OSwwLDAsMCwwLDEuMTg3Yy4wMTkuMjE3LjA4OC4zOTMuMzI4LjQyMWE5LjEzOCw5LjEzOCwwLDAsMCwxLjQ0OC0uMDIxLjUzLjUzLDAsMCwwLC4xMjItLjA2NWwzLjc1Ni0zLjc3MUwyMSwxOC4xM1ptNS4zMjktNS4zNWMtLjM2NS4yODYtLjcuNzU3LTEuMDYxLDEuMDYyTDIzLjMsMTkuNDM3Yy4zLS4zNS43NzctLjY4NywxLjA1LTEuMDQ0LjE1LS4yLjE3NC0uMzEyLjAxNy0uNTE2YTEzLjg1MSwxMy44NTEsMCwwLDAtMS4zMjctMS4zMjcuMzkzLjM5MywwLDAsMC0uMjMtLjEuNDc2LjQ3NiwwLDAsMC0uMjcxLjEzXCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPjxzdHJvbmc+Q3JlYXRlPC9zdHJvbmc+IGEgUG9saWN5PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhNDY7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cblxuICAgIFxuICAgIDxsYWJlbFxuICAgICAgKm5nSWY9XCJmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvblwiXG4gICAgICBjbGFzcz1cImRvY3VtZW50LWJveFwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICd3b3JkJ1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlRG9jVHlwZSgnd29yZCcpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICd3b3JkJ1wiXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIldvcmQtSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwNFwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDRcIiBkPVwiTTI4LDMySDRhNCw0LDAsMCwxLTQtNFY0QTQsNCwwLDAsMSw0LDBIMjhhNCw0LDAsMCwxLDQsNFYyOGE0LDQsMCwwLDEtNCw0XCIgZmlsbD1cIiMxZTVkZDNcIi8+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwNVwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDVcIiBkPVwiTTEwLjQxOSw5LjcxOGwxLjg4OSw5LjEyMUwxMi40NCwyMGwuMTMyLS44ODUsMi4xNTItOS40LDIuNjI2LjAxOCwyLjE4Nyw5LjEwNi4xNzQsMS4xMzJhMTMuNCwxMy40LDAsMCwxLC4xNzQtMS4zNTJjLjUtMi45NTQsMS4xODgtNS44OCwxLjctOC44MzJsLjA0LS4wN0gyNEwyMS4wODUsMjIuMjgxbC0yLjgxOC0uMDI2TDE1LjkzMSwxMi4yMmwtLjE2LDEuMDc3LTIuMDE1LDguOTg2LTIuODI5LS4wMjhMOCw5LjcxOFpcIiBmaWxsPVwiI2ZmZlwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tjcmVhdGVXb3JkUG9saWN5VGV4dH19PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhNDY7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cblxuXG5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZG9jdW1lbnQtYm94XCJcbiAgICAgICpuZ0lmPVwic2hvd0RvY3hCbG9ja1wiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiAhZG9jeEVycm9yPy52aXNpYmxlXCJcbiAgICAgIFtjbGFzcy5lcnJvcl09XCJkb2N4RXJyb3I/LnZpc2libGVcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cIi5kb2N4XCJcbiAgICAgICAgaWQ9XCJET0NmaWxlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICBvbmNsaWNrPVwiZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcbiAgICAgICAgI2RvY3hVcGxvYWRCdXR0b25cbiAgICAgIC8+XG4gICAgICA8c3ZnIGlkPVwiV29yZC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA0XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNFwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzFlNWRkM1wiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA1XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNVwiIGQ9XCJNMTAuNDE5LDkuNzE4bDEuODg5LDkuMTIxTDEyLjQ0LDIwbC4xMzItLjg4NSwyLjE1Mi05LjQsMi42MjYuMDE4LDIuMTg3LDkuMTA2LjE3NCwxLjEzMmExMy40LDEzLjQsMCwwLDEsLjE3NC0xLjM1MmMuNS0yLjk1NCwxLjE4OC01Ljg4LDEuNy04LjgzMmwuMDQtLjA3SDI0TDIxLjA4NSwyMi4yODFsLTIuODE4LS4wMjZMMTUuOTMxLDEyLjIybC0uMTYsMS4wNzctMi4wMTUsOC45ODYtMi44MjktLjAyOEw4LDkuNzE4WlwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZG9jeCcgJiYgZmlsZW5hbWUpXCJcbiAgICAgICAgICAgID5VcGxvYWQgYSA8c3Ryb25nPkRPQ1g8L3N0cm9uZz48L25nLWNvbnRhaW5lclxuICAgICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmIGZpbGVuYW1lXCI+e3tcbiAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tc2ctdGV4dFwiICpuZ0lmPVwiZG9jeEVycm9yPy52aXNpYmxlXCI+XG4gICAgICAgICAge3sgZG9jeEVycm9yPy5tZXNzYWdlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGRvY3VtZW50LWJveC1pY29uIHZ4LWZzLTE2IHZ4LW1yLTJcIj4mI3hlYTk3OzwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWNpcmNsZVwiICpuZ0lmPVwiIWRvY3hFcnJvcj8udmlzaWJsZVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgY3g9XCIyNlwiXG4gICAgICAgICAgICAgIGN5PVwiMjZcIlxuICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBlcnJvci1pY29uXCIgKm5nSWY9XCJkb2N4RXJyb3I/LnZpc2libGVcIj4mI3hlOTE0OzwvaT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpbmUtcHJvZ3Jlc3NcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiBpc1VwbG9hZGluZ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXByb2dyZXNzLWJhclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZG9jdW1lbnQtYm94XCJcbiAgICAgICpuZ0lmPVwic2hvd1BkZkJsb2NrXCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3BkZidcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cIi5wZGZcIlxuICAgICAgICBpZD1cIlBERmZpbGVcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgIG9uY2xpY2s9XCJldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAjcGRmVXBsb2FkQnV0dG9uXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIlBERi1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA4XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOFwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiI2E4MmExZFwiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA5XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOVwiIGQ9XCJNMTYuMTI1LDEzLjc3OEExLjM5LDEuMzksMCwwLDAsMTYuMjg1LDE1YTE2LjEwNiwxNi4xMDYsMCwwLDAsMi4xMDYsMi41NTRjLjMxMi0uMDQ1LjYtLjA0NywxLjItLjA5MmE2Ljk2NCw2Ljk2NCwwLDAsMSwzLjYxNi4yMzksMS4zMSwxLjMxLDAsMCwxLC43ODQsMS4zNjEsMS4xNzYsMS4xNzYsMCwwLDEtMS4wNzUuOTgxYy0yLjIyNC4zMzYtMy4zMDUtLjktNC41NzktMS43NDZhMi4wOTQsMi4wOTQsMCwwLDAtLjgxMi4wMjEsMjUuNzgyLDI1Ljc4MiwwLDAsMC0zLjQxMi45MTZjLS4yNTMuMDg5LS4zMzguMy0uNTMzLjYwOWExMS4wNjIsMTEuMDYyLDAsMCwxLTIuODIsMy40MjcsMi4xNDUsMi4xNDUsMCwwLDEtMS44NjEuNDQ1Yy0xLS4yMjItMS4xNzgtMS4xODItLjUtMS45NDJBOS40NTIsOS40NTIsMCwwLDEsMTAsMjAuNDYyYTE0LjcxNCwxNC43MTQsMCwwLDEsMi40MTgtMS4xMDljLjQ5MS0uNDYxLjU1Ni0uNjg2Ljk2Ni0xLjc2NC40MzEtMS4xMzYuOTIyLTIuMjUsMS4zMjQtMy40YTEuNjc5LDEuNjc5LDAsMCwwLS4wMzUtMS4wNjIsNy43LDcuNywwLDAsMS0uNjM4LTMuNDc2LDEuNCwxLjQsMCwwLDEsLjk1OS0xLjM5MywxLjI3OSwxLjI3OSwwLDAsMSwxLjQ2NC44Yy4yLjQ3OS41NTIsMS43NS0uMzMxLDQuNzI4bS0uMzc3LDEuMzc3LTEuNDE4LDMuNDIyLDMuMzUzLS44ODMtMS45MzUtMi41MzltMy4yMjIsMi44ODJBNC41LDQuNSwwLDAsMCwyMS45MiwxOS4zN2MuMzc3LDAsLjcxNC0uMTMxLjczMy0uNi4wNTEtMS4yNTEtMi42NTYtLjg2NC0zLjY4Mi0uNzNtLTYuOTYsMi4wMzdhOS43ODgsOS43ODgsMCwwLDAtMi45NzUsMS44Yy0uMjE4LjE3MS0uNDQ2LjcxOC0uMjgyLjk4NHMuODEuMDY3LDEtLjEyYTkuMjksOS4yOSwwLDAsMCwyLjI1My0yLjY2NG0zLjI0Ni03LjI0M2MtLjA0NS0uODc4LjQ2MS0yLjE3Mi40MzctMy4yMjQtLjAwOC0uMzU1LS4wNTEtLjc0Ny0uNS0uNzcyLS4zNjQtLjAyLS41MzQuNDc2LS41NjkuNzYyYTUuOCw1LjgsMCwwLDAsLjYzNiwzLjIzNFwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAncGRmJyAmJiBmaWxlbmFtZSlcIlxuICAgICAgICAgICAgPlVwbG9hZCBhIDxzdHJvbmc+UERGPC9zdHJvbmc+PC9uZy1jb250YWluZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdwZGYnICYmIGZpbGVuYW1lXCI+e3tcbiAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhOTc7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGluZS1wcm9ncmVzc1wiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ3BkZicgJiYgaXNVcGxvYWRpbmdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9ncmVzcy1iYXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG4gICAgPCEtLSBTZWxlY3QgYSB0ZW1wbGF0ZSAtLT5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZG9jdW1lbnQtYm94XCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICd0ZW1wbGF0ZSdcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBuYW1lPVwic2VsZWN0ZWREb2N1bWVudFR5cGVcIlxuICAgICAgICAoY2hhbmdlKT1cImNoYW5nZURvY1R5cGUoJ3RlbXBsYXRlJylcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ3RlbXBsYXRlJ1wiXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIlRNUC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA2XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNlwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzM0YWE0NFwiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDEwXCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQxMFwiIGQ9XCJNMTYsMS43NzhWMy41NTVIMFYxLjc3OEExLjc4MywxLjc4MywwLDAsMSwxLjc3OCwwSDE0LjIyM0ExLjc4MywxLjc4MywwLDAsMSwxNiwxLjc3OE0wLDQuNDQ0SDE2djguODg5YTEuNzc4LDEuNzc4LDAsMCwxLTEuNzc3LDEuNzc4SDEuNzc4QTEuNzc4LDEuNzc4LDAsMCwxLDAsMTMuMzMzWk02Ljk5LDkuOTI4QS44OTEuODkxLDAsMCwwLDYuMSw5LjAzOUgzLjY0MmEuODkxLjg5MSwwLDAsMC0uODg4Ljg4OXYyLjQ1NmEuODkxLjg5MSwwLDAsMCwuODg4Ljg4OUg2LjFhLjg5MS44OTEsMCwwLDAsLjg4OC0uODg5Wm02LjMwNiwwYS44OTIuODkyLDAsMCwwLS44ODktLjg4OUg5Ljk0OGEuODkxLjg5MSwwLDAsMC0uODg4Ljg4OXYyLjQ1NmEuODkxLjg5MSwwLDAsMCwuODg4Ljg4OWgyLjQ1OWEuODkyLjg5MiwwLDAsMCwuODg5LS44ODlaTTIuNjY3LDcuMTExQS44ODkuODg5LDAsMCwwLDMuNTU2LDhoOC44ODlhLjg4OS44ODksMCwwLDAsMC0xLjc3OEgzLjU1NmEuODg5Ljg4OSwwLDAsMC0uODg5Ljg4OVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4IDcuOTk5KVwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5EcmFmdCBVc2luZyBhIDxzdHJvbmc+VGVtcGxhdGU8L3N0cm9uZz48L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE0Njs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDwhLS0gRW5kIFNlbGVjdCBhIHRlbXBsYXRlIC0tPlxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJib3R0b20tYnV0dG9uXCIgW2NsYXNzLmdyYXlzY2FsZV09XCJpc1RlbXBsYXRlT3BlbmVkXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZWRpdFBvbGljeUVtaXQoKVwiXG4gICAgY2xhc3M9XCJiYWNrXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXNUZW1wbGF0ZU9wZW5lZFwiXG4gID5cbiAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZDs8L2k+IEJhY2tcbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZWRpdG9yKHNlbGVjdGVkRG9jdW1lbnRUeXBlKVwiXG4gICAgY2xhc3M9XCJuZXh0XCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkRG9jdW1lbnRUeXBlIHx8IGlzVGVtcGxhdGVPcGVuZWQgfHwgaXNMb2FkZXJcIlxuICA+XG4gICAgTmV4dCA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZTs8L2k+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQU83RixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NuQyxZQUNVLFFBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsS0FBcUIsRUFDN0IsZ0JBQWtDLEVBQzFCLGFBQTRCO1FBTjVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRXJCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0QyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFDWixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNaLGdCQUFXLEdBQUcs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bkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXBTVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwyYkN0QnJDLGl1aUJBZ1hBOzs0RkQxVmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHNCQUFzQjs4UUFpQnZCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeUFQSVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3ktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lmcmFtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdPUkRfQ09OU1RBTlRTLCBXT1JEX1VSTF9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1wb2xpY3kvbXMtd29yZC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveXtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVZpZXdTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBmaWxlVG9VcGxvYWQ6IGFueTtcbiAgZmlsZW5hbWUgPSAnJztcbiAgZmlsZVR5cGUgPSAnJztcbiAgcGRmID0gZmFsc2U7XG4gIGRyYWZ0ID0gZmFsc2U7XG4gIGRvYyA9IGZhbHNlO1xuICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICBpc0xvYWRlciA9IGZhbHNlO1xuICBmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBjcmVhdGVXb3JkUG9saWN5VGV4dCA9IFdPUkRfQ09OU1RBTlRTLk1TX1dPUkRfT1BUSU9OO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVWaWV3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBvbGljeUlkOiBhbnkgPSAnJztcbiAgQElucHV0KCkgcG9saWN5TmFtZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpIG9yZ2FuaXphdGlvbl9pZDogYW55ID0gJyc7XG4gIEBJbnB1dCgpIG1lbWJlcl9vYmpfaWQ6IGFueTtcbiAgQElucHV0KCkgdXNlckluZm86IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVVcmw6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlZGl0UG9saWN5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb3BlblRlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJhc2VVUkwgPSAnJztcbiAgZG9jeEVycm9yID0ge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG1lc3NhZ2U6ICcnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lBUElTZXJ2aWNlOiBQb2xpY3lBUElTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbixcbiAgICBwcml2YXRlIGlmcmFtZVNlcnZpY2U6IElmcmFtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5iYXNlVVJMID0gbG9jYXRpb24/Lm9yaWdpbjtcbiAgICBpZiAodGhpcy5iYXNlVVJMID09ICdodHRwOi8vbG9jYWxob3N0OjQyMDAnKSB7XG4gICAgICB0aGlzLmJhc2VVUkwgPSAnaHR0cHM6Ly9kZXYudi1jb21wbHkuY29tJztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpc2VGZWF0dXJlRmxhZ3MoKTtcbiAgICB0aGlzLmNoZWNrVGVtcGxhdGVWaWV3KCk7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFzdEZpbGVOYW1lQW5kVHlwZScpID8/ICdcInt9XCInXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBkYXRhLm5hbWUgIT09IG51bGwgJiZcbiAgICAgIGRhdGEubmFtZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBkYXRhLnR5cGUgIT09IG51bGwgJiZcbiAgICAgIGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBkYXRhLnBvbGljeUlkID09IHRoaXMucG9saWN5SWRcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICB0aGlzLmZpbGVuYW1lID0gZGF0YS5uYW1lO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xhc3RGaWxlTmFtZUFuZFR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBjaGVja1RlbXBsYXRlVmlldygpIHtcbiAgICB0aGlzLnRlbXBsYXRlVmlld1N1YnNjcmlwdGlvbiA9IHRoaXMucG9saWN5U2VydmljZS50ZW1wbGF0ZVZpZXcuc3Vic2NyaWJlKChyZXM6Ym9vbGVhbikgPT4ge1xuICAgICAgaWYoIXJlcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZVZpZXdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudGVtcGxhdGVWaWV3U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGlzZUZlYXR1cmVGbGFncygpIHtcbiAgICB0aGlzLmZmX3BvbGljeV9tc193b3JkX2ludGVncmF0aW9uID0gIHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbicpO1xuICB9XG5cbnJlZGlyZWN0VXNlclRvV29yZFBvbGljeSgpIHtcbiAgd2luZG93Lm9wZW4oV09SRF9VUkxfQ09OU1RBTlRTLm5ld193b3JkX3BvbGljeV91cmwsICdfYmxhbmsnKTtcbiAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAgdGhpcy5iYXNlVVJMICsgV09SRF9VUkxfQ09OU1RBTlRTLndvcmtyb29tX3VybCArIHRoaXMucG9saWN5SWQ7XG59XG5cbiAgY3JlYXRlV29yZFBvbGljeSgpIHtcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnBvbGljeUFQSVNlcnZpY2UuY3JlYXRlV29yZFBvbGljeSh0aGlzLnBvbGljeUlkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYocmVzKXtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVzZXJUb1dvcmRQb2xpY3koKTtcbiAgICAgIH0gICAgICAgXG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgfSxcbiAgICAoZXJyKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgIFdPUkRfQ09OU1RBTlRTLmNyZWF0ZVdvcmRQb2xpY3lfc25hY2tiYXJfbWVzc2FnZSxcbiAgICAgICAgJ2FsZXJ0J1xuICAgICAgKTtcbiAgICB9XG4gICk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9VcGxvYWQgPSBmaWxlc1swXTtcbiAgICB0aGlzLmZpbGVuYW1lID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZTtcbiAgICB0aGlzLmZpbGVUeXBlID0gdGhpcy5maWxlVG9VcGxvYWQubmFtZVxuICAgICAgLnNsaWNlKFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxLFxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZC5uYW1lLmxlbmd0aFxuICAgICAgKVxuICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuZmlsZVR5cGUgPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeyBmaWxlOiB0aGlzLmZpbGVUb1VwbG9hZCwgZmlsZVR5cGU6IHRoaXMuZmlsZVR5cGUgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUeXBlID09PSAnZG9jeCcpIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh7IGZpbGU6IHRoaXMuZmlsZVRvVXBsb2FkLCBmaWxlVHlwZTogdGhpcy5maWxlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZScsICdhbGVydCcpO1xuICAgIH1cbiAgfVxuICBzaG93UGRmQmxvY2sgPSB0cnVlO1xuICBzaG93RG9jeEJsb2NrID0gdHJ1ZTtcblxuICB1cGxvYWRGaWxlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQuZmlsZVR5cGUgPT09ICdkb2N4Jykge1xuICAgICAgdGhpcy5jaGFuZ2VEb2NUeXBlKCdkb2N4Jyk7XG4gICAgICB0aGlzLnVwbG9hZERvY3hmaWxlKGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmZpbGVUeXBlID09PSAncGRmJykge1xuICAgICAgdGhpcy5jaGFuZ2VEb2NUeXBlKCdwZGYnKTtcbiAgICAgIHRoaXMuc2hvd1BkZkJsb2NrID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93UGRmQmxvY2sgPSB0cnVlO1xuICAgICAgfSwgMTApO1xuICAgICAgY29uc3QgdXBsb2FkRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgdXBsb2FkRGF0YS5hcHBlbmQoJ2ZpbGUnLCBldmVudC5maWxlKTtcbiAgICAgIGNvbnN0IHBhdGggPSAnby8nICsgdGhpcy5vcmdhbml6YXRpb25faWQgKyAnL3BvbGljeS8nO1xuICAgICAgdGhpcy5wb2xpY3lTZXJ2aWNlLnVwbG9hZEZpbGUodXBsb2FkRGF0YSwgdGhpcy5wb2xpY3lJZCwgcGF0aCkuc3Vic2NyaWJlKFxuICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgIFwiT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHdlIHdlcmUgdW5hYmxlIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLiBMZXQncyBnaXZlIGl0IGFub3RoZXIgdHJ5LCBzaGFsbCB3ZT9cIixcbiAgICAgICAgICAgICdhbGVydCdcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkRG9jeGZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgICB0aGlzLnNob3dEb2N4QmxvY2sgPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0RvY3hCbG9jayA9IHRydWU7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IHVwbG9hZERhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICB1cGxvYWREYXRhLmFwcGVuZCgnZmlsZScsIGV2ZW50LmZpbGUpO1xuICAgIGNvbnN0IHBhdGggPSAnby8nICsgdGhpcy5vcmdhbml6YXRpb25faWQgKyAnL3BvbGljeS8nO1xuICAgIHRoaXMucG9saWN5U2VydmljZVxuICAgICAgLnVwbG9hZERvY3hGaWxlKHVwbG9hZERhdGEsIHRoaXMucG9saWN5SWQsIHBhdGgpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocmVzPy5tZXNzYWdlPy5pbmNsdWRlcygnZG9uZScpKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChyZXMubWVzc2FnZT8uaW5jbHVkZXMoJ1JhbmdlRXJyb3InKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jeEVycm9yID0ge1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGUgZmlsZSBzaXplIGlzIHRvbyBsYXJnZSBhbmQgY2Fubm90IGJlIHVwbG9hZGVkLicsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3hFcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnT29wcyEgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgdXBsb2FkaW5nIHRoaXMgZmlsZS4nLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICAgICBcIk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSwgc2hhbGwgd2U/XCIsXG4gICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9ICcnO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcmVzZXRVcGxvYWRzKCl7XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZT0nJztcbiAgICB0aGlzLmZpbGVuYW1lPScnO1xuICAgIHRoaXMuZmlsZVR5cGU9Jyc7XG4gICAgdGhpcy5wZGY9ZmFsc2U7XG4gICAgdGhpcy5kb2M9ZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGluZz1mYWxzZTtcbiAgICB0aGlzLmlzTG9hZGVyPWZhbHNlO1xuICAgIHRoaXMucmVzZXREb2NzRXJyb3IoKTtcbiAgfVxuXG4gIHJlc2V0RG9jc0Vycm9yKCkge1xuICAgIHRoaXMuZG9jeEVycm9yID0ge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgY2hhbmdlRG9jVHlwZShldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXNldERvY3NFcnJvcigpO1xuICAgIGlmKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPT09IGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSBldmVudDtcbiAgICBpZiAoZXZlbnQgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIHRoaXMub3BlblRlbXBsYXRlTGlzdCgpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRvcihldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcblxuICAgIGlmIChldmVudCA9PT0gJ2RyYWZ0Jykge1xuICAgICAgLy8gSWYgaXQgaXMgYSBkcmFmdCBnbyBkaXJlY3RseSB0byB0aGUgZWRpdG9yXG4gICAgICBjb25zdCB1bmFtZSA9IHRoaXMudXNlckluZm8gPyB0aGlzLnVzZXJJbmZvLm5hbWUgOiAnJztcbiAgICAgIGNvbnN0IHVpZCA9IHRoaXMubWVtYmVyX29ial9pZDtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnBvbGljeU5hbWUudHJpbSgpO1xuICAgICAgY29uc3QgaWQgPSB0aGlzLnBvbGljeUlkO1xuICAgICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgICB0aGlzLnBvbGljeVNlcnZpY2VcbiAgICAgICAgLnNhdmVQb2xpY3lEZXRhaWxzKHVuYW1lLCB1aWQsIGlkLCBuYW1lLCAnJywgMClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc3QgdXJsID1cbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VVUkwgKyAnL2FsbC9wb2xpY3kvZWRpdC1wb2xpY3k/aWQ9JyArIHRoaXMucG9saWN5SWQ7XG4gICAgICAgICAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgICAgXCJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnksIHNoYWxsIHdlP1wiLFxuICAgICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnZG9jeCcpIHtcbiAgICAgIGNvbnN0IHVybCA9XG4gICAgICAgIHRoaXMuYmFzZVVSTCArICcvYWxsL3BvbGljeS9lZGl0LXBvbGljeT9pZD0nICsgdGhpcy5wb2xpY3lJZDtcbiAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnd29yZCcpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVXb3JkUG9saWN5KCk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3BkZicpIHtcbiAgICAgIC8vIElmIGl0IGlzIGEgcGRmIHNlbmQgdG8gdGhlIHdvcmtyb29tXG4gICAgICBjb25zdCB1cmwgPVxuICAgICAgICB0aGlzLmJhc2VVUkwgKyAnL2FsbC9wb2xpY3kvd29ya3Jvb20/aWQ9JyArIHRoaXMucG9saWN5SWQ7XG4gICAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHVybCwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh0aGlzLnRlbXBsYXRlVXJsLCB0cnVlKTtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19kSWQnLCB0aGlzLnBvbGljeUlkKTtcbiAgfVxuICBlZGl0UG9saWN5RW1pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gJyc7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAnbGFzdEZpbGVOYW1lQW5kVHlwZScsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUsXG4gICAgICAgIG5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgIHBvbGljeUlkOiB0aGlzLnBvbGljeUlkLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZWRpdFBvbGljeS5lbWl0KCk7XG4gIH1cblxuICBvcGVuVGVtcGxhdGVMaXN0KCkge1xuICAgIHRoaXMub3BlblRlbXBsYXRlLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvY3VtZW50LXNlY3Rpb25cIiBbY2xhc3MuZ3JheXNjYWxlXT1cInRlbXBsYXRlVmlld1wiPlxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtc2VjdGlvbi1pbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWJveFwiPlxuICAgICAgPHN2Z1xuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgaWQ9XCJDYXBhXzFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgeD1cIjBweFwiXG4gICAgICAgIHk9XCIwcHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDQ4MC44IDQ4MC44XCJcbiAgICAgICAgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDogbmV3IDAgMCA0ODAuOCA0ODAuOFwiXG4gICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBzdHlsZT1cImZpbGw6ICNmZmQ1MTdcIlxuICAgICAgICAgIGQ9XCJNMzE3LjExMiwzMTQuNGMtMjIuNCwyMi40LTE5LjYsNjcuNi0xOS42LDY3LjZoLTExMy42YzAsMCwyLjQtNDUuMi0xOS42LTY3LjZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLTI0LjQtMjEuNi00MC01Mi44LTQwLTg3LjZjMC02NCw1Mi0xMTYsMTE2LTExNnMxMTYsNTIsMTE2LDExNkMzNTYuMzEyLDI2MS42LDM0MS4xMTIsMjkyLjgsMzE3LjExMiwzMTQuNEwzMTcuMTEyLDMxNC40elwiXG4gICAgICAgIC8+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICNlNWU1ZTVcIlxuICAgICAgICAgICAgZD1cIk0zMDAuNzEyLDQxNy42YzAsNi00LjgsMTAuOC0xMC44LDEwLjhoLTk4LjhjLTYsMC0xMC44LTQuOC0xMC44LTEwLjhsMCwwYzAtNiw0LjgtMTAuOCwxMC44LTEwLjhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDk4LjRDMjk1LjUxMiw0MDYuOCwzMDAuNzEyLDQxMS42LDMwMC43MTIsNDE3LjZMMzAwLjcxMiw0MTcuNnpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogI2U1ZTVlNVwiXG4gICAgICAgICAgICBkPVwiTTI4NS45MTIsNDYyLjRjMCw2LTQuOCwxMC44LTEwLjgsMTAuOGgtNjkuMmMtNiwwLTEwLjgtNC44LTEwLjgtMTAuOGwwLDBjMC02LDQuOC0xMC44LDEwLjgtMTAuOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoNjkuMkMyODEuMTEyLDQ1MS42LDI4NS45MTIsNDU2LjQsMjg1LjkxMiw0NjIuNEwyODUuOTEyLDQ2Mi40elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzIzLjExMiwzMTguNGMyNi0yMy42LDQwLjgtNTYuOCw0MC44LTkxLjZjMC02OC01NS42LTEyMy42LTEyMy42LTEyMy42cy0xMjMuNiw1NS42LTEyMy42LDEyMy42XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLDM1LjYsMTUuNiw2OS42LDQyLDkyLjhjMTkuNiwxOS42LDE3LjYsNjEuMiwxNy42LDYxLjZjMCwyLDAuOCw0LDIsNS42YzEuNiwxLjYsMy42LDIuNCw1LjYsMi40aDExMy4yYzIsMCw0LTAuOCw1LjYtMi40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMyLTMuNiwyLTUuNmMwLTAuNC0yLTQyLDE3LjYtNjEuNkMzMjIuNzEyLDMxOS4yLDMyMy4xMTIsMzE4LjgsMzIzLjExMiwzMTguNHogTTMxMS45MTIsMzA4LjRjLTAuOCwwLjQtMS4yLDEuMi0xLjYsMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLTE3LjYsMTguOC0yMC40LDQ5LjYtMjAuOCw2NGgtOThjLTAuNC0xNC44LTMuNi00Ni44LTIyLjQtNjUuNmMtMjMuNi0yMC44LTM3LjItNTAuNC0zNy4yLTgxLjZjMC02MCw0OC44LTEwOC40LDEwOC40LTEwOC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM2MCwwLDEwOC40LDQ4LjgsMTA4LjQsMTA4LjRDMzQ4LjcxMiwyNTgsMzM1LjUxMiwyODgsMzExLjkxMiwzMDguNHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTI0MC4zMTIsMTM1LjJjLTQsMC03LjYsMy4yLTcuNiw3LjZjMCw0LDMuMiw3LjYsNy42LDcuNmM0NC44LDAsODEuMiwzNi40LDgxLjIsODEuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMCw0LDMuMiw3LjYsNy42LDcuNmM0LDAsNy42LTMuMiw3LjYtNy42QzMzNi43MTIsMTc4LjQsMjkzLjUxMiwxMzUuMiwyNDAuMzEyLDEzNS4yelwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzA4LjMxMiw0MTcuNmMwLTEwLjQtOC40LTE4LjQtMTguNC0xOC40aC05OC44Yy0xMC40LDAtMTguNCw4LjQtMTguNCwxOC40XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLDEwLjQsOC40LDE4LjQsMTguNCwxOC40aDk4LjRDMjk5LjkxMiw0MzYsMzA4LjMxMiw0MjgsMzA4LjMxMiw0MTcuNnogTTI4OS41MTIsNDIwLjhoLTk4LjRjLTIsMC0zLjItMS42LTMuMi0zLjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAtMiwxLjYtMy4yLDMuMi0zLjJoOTguNGMyLDAsMy4yLDEuNiwzLjIsMy4yQzI5My4xMTIsNDE5LjYsMjkxLjUxMiw0MjAuOCwyODkuNTEyLDQyMC44elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMjc1LjExMiw0NDRoLTY5LjJjLTEwLjQsMC0xOC40LDguNC0xOC40LDE4LjRjMCwxMC40LDguNCwxOC40LDE4LjQsMTguNGg2OS4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxMC40LDAsMTguNC04LjQsMTguNC0xOC40QzI5My41MTIsNDUyLjQsMjg1LjExMiw0NDQsMjc1LjExMiw0NDR6IE0yNzUuMTEyLDQ2NS42aC02OS4yYy0yLDAtMy4yLTEuNi0zLjItMy4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMwLTIsMS42LTMuMiwzLjItMy4yaDY5LjJjMiwwLDMuMiwxLjYsMy4yLDMuMkMyNzguMzEyLDQ2NC40LDI3Ny4xMTIsNDY1LjYsMjc1LjExMiw0NjUuNnpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTI0Ny45MTIsNTguOFY3LjZjMC00LTMuMi03LjYtNy42LTcuNmMtNCwwLTcuNiwzLjItNy42LDcuNnY1MS42YzAsNCwzLjIsNy42LDcuNiw3LjZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQzI0NC43MTIsNjYuNCwyNDcuOTEyLDYzLjIsMjQ3LjkxMiw1OC44elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNMzY2LjMxMiwzOGMtMy42LTIuNC04LTEuMi0xMC40LDJsLTI4LjQsNDIuOGMtMi40LDMuNi0xLjIsOCwyLDEwLjRjMS4yLDAuOCwyLjgsMS4yLDQsMS4yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMyLjQsMCw0LjgtMS4yLDYuNC0zLjJsMjguNC00Mi44QzM3MC43MTIsNDUuMiwzNjkuNTEyLDQwLjQsMzY2LjMxMiwzOHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogIzIxMGIyMFwiXG4gICAgICAgICAgICBkPVwiTTE0OS45MTIsOTIuOGMxLjIsMCwyLjgtMC40LDQtMS4yYzMuNi0yLjQsNC40LTYuOCwyLjQtMTAuNGwtMjcuNi00My4yYy0yLjQtMy42LTYuOC00LjQtMTAuNC0yLjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0zLjYsMi40LTQuNCw2LjgtMi40LDEwLjRsMjcuNiw0My4yQzE0NS4xMTIsOTEuNiwxNDcuNTEyLDkyLjgsMTQ5LjkxMiw5Mi44elwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjMjEwYjIwXCJcbiAgICAgICAgICAgIGQ9XCJNNDMuOTEyLDEyOC44bDQ1LjIsMjQuNGMxLjIsMC44LDIuNCwwLjgsMy42LDAuOGMyLjgsMCw1LjItMS42LDYuOC00YzItMy42LDAuOC04LjQtMy4yLTEwLjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC00NS4yLTI0LjRjLTMuNi0yLTguNC0wLjgtMTAuNCwzLjJDMzkuMTEyLDEyMi40LDQwLjMxMiwxMjYuOCw0My45MTIsMTI4Ljh6XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICMyMTBiMjBcIlxuICAgICAgICAgICAgZD1cIk0zODcuOTEyLDE1NC40YzEuMiwwLDIuNC0wLjQsMy42LTAuOGw0NS4yLTI0LjRjMy42LTIsNS4yLTYuNCwzLjItMTAuNGMtMi0zLjYtNi40LTUuMi0xMC40LTMuMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLTQ1LjIsMjQuNGMtMy42LDItNS4yLDYuNC0zLjIsMTAuNEMzODIuMzEyLDE1Mi44LDM4NS4xMTIsMTU0LjQsMzg3LjkxMiwxNTQuNHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPHA+XG4gICAgICAgIFRoZXJlIGFyZSBtdWx0aXBsZSB3YXlzIHRvIGNyZWF0ZSBhIHBvbGljeSBvbiBWQ29tcGx5LiBZb3UgY2FuIGVpdGhlciBkcmFmdCBpdCBmcm9tIHNjcmF0Y2ggdXNpbmcgVkNvbXBseSdzIG9ubGluZSBlZGl0b3J7eyBmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvbiA/ICcgb3IgQ3JlYXRlIGEgUG9saWN5IFVzaW5nIE1TIFdvcmQnIDogJycgfX17eyBzaG93RG9jeEJsb2NrID8gJyBvciBVcGxvYWQgYW4gRXhpc3RpbmcgRE9DWCBmaWxlJyA6ICcnIH19e3sgc2hvd1BkZkJsb2NrID8gJyBvciBVcGxvYWQgYW4gRXhpc3RpbmcgUERGIGZpbGUnIDogJycgfX0gb3IgRHJhZnQgVXNpbmcgYSBUZW1wbGF0ZS5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZG9jdW1lbnQtYm94XCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RyYWZ0J1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VEb2NUeXBlKCdkcmFmdCcpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICdkcmFmdCdcIlxuICAgICAgLz5cbiAgICAgIDxzdmcgaWQ9XCJEcmFmdFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwMlwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDJcIiBkPVwiTTI4LDMySDRhNCw0LDAsMCwxLTQtNFY0QTQsNCwwLDAsMSw0LDBIMjhhNCw0LDAsMCwxLDQsNFYyOGE0LDQsMCwwLDEtNCw0XCIgZmlsbD1cIiM1NjVhNmZcIi8+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwM1wiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDNcIiBkPVwiTTIxLjg4NCw4LjUxLDEwLjU0OSwxMC4zODQsMTIuNDI2LDIxLjA2bDQuMzgtLjYxYS4zMzMuMzMzLDAsMCwxLC4zMjYuNDM1Yy0uMDUxLjIxOS0uMzM4LjIzNS0uNTE0LjI2Ny0xLjQ3NC4yNjYtMy4wMDkuMzg4LTQuNDkxLjYzMS0uNDE2LS4wMzItLjMyMS0uNzE4LS40NDEtMWwtMy0uMzY1Yy0uMjEzLS4xMi0uMi0uMjczLS4yLS40OTIuMDE5LS42MjIuMDkyLTEuMjUxLjEyNS0xLjg3Mi4xNi0zLC4zMTYtNiwuNS04Ljk5M0E5LjQ1Nyw5LjQ1NywwLDAsMSw5LjE1Miw4LjFhLjM2OS4zNjksMCwwLDEsLjI2NS0uM2w4LjUxOS42ODFMMjIuMiw3LjhjLjIyNS4wNjguMjQ2LjE5LjMuMzkzLjU1MywyLjI4OC43NTgsNC43NzUsMS4yODUsNy4wODMuMTQzLjUzMS0uNTA3LjczMS0uNjQyLjJaTTE3LjIxMSwyMS45MzJhLjU2My41NjMsMCwwLDAtLjA3Mi4yNCw4LjU0OSw4LjU0OSwwLDAsMCwwLDEuMTg3Yy4wMTkuMjE3LjA4OC4zOTMuMzI4LjQyMWE5LjEzOCw5LjEzOCwwLDAsMCwxLjQ0OC0uMDIxLjUzLjUzLDAsMCwwLC4xMjItLjA2NWwzLjc1Ni0zLjc3MUwyMSwxOC4xM1ptNS4zMjktNS4zNWMtLjM2NS4yODYtLjcuNzU3LTEuMDYxLDEuMDYyTDIzLjMsMTkuNDM3Yy4zLS4zNS43NzctLjY4NywxLjA1LTEuMDQ0LjE1LS4yLjE3NC0uMzEyLjAxNy0uNTE2YTEzLjg1MSwxMy44NTEsMCwwLDAtMS4zMjctMS4zMjcuMzkzLjM5MywwLDAsMC0uMjMtLjEuNDc2LjQ3NiwwLDAsMC0uMjcxLjEzXCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPjxzdHJvbmc+Q3JlYXRlPC9zdHJvbmc+IGEgUG9saWN5PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhNDY7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cblxuICAgIFxuICAgIDxsYWJlbFxuICAgICAgKm5nSWY9XCJmZl9wb2xpY3lfbXNfd29yZF9pbnRlZ3JhdGlvblwiXG4gICAgICBjbGFzcz1cImRvY3VtZW50LWJveFwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICd3b3JkJ1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VEb2NUeXBlKCd3b3JkJylcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ3dvcmQnXCJcbiAgICAgIC8+XG4gICAgICA8c3ZnIGlkPVwiV29yZC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA0XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNFwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzFlNWRkM1wiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA1XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNVwiIGQ9XCJNMTAuNDE5LDkuNzE4bDEuODg5LDkuMTIxTDEyLjQ0LDIwbC4xMzItLjg4NSwyLjE1Mi05LjQsMi42MjYuMDE4LDIuMTg3LDkuMTA2LjE3NCwxLjEzMmExMy40LDEzLjQsMCwwLDEsLjE3NC0xLjM1MmMuNS0yLjk1NCwxLjE4OC01Ljg4LDEuNy04LjgzMmwuMDQtLjA3SDI0TDIxLjA4NSwyMi4yODFsLTIuODE4LS4wMjZMMTUuOTMxLDEyLjIybC0uMTYsMS4wNzctMi4wMTUsOC45ODYtMi44MjktLjAyOEw4LDkuNzE4WlwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57e2NyZWF0ZVdvcmRQb2xpY3lUZXh0fX08L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE0Njs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuXG5cblxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJkb2N1bWVudC1ib3hcIlxuICAgICAgKm5nSWY9XCJzaG93RG9jeEJsb2NrXCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmICFkb2N4RXJyb3I/LnZpc2libGVcIlxuICAgICAgW2NsYXNzLmVycm9yXT1cImRvY3hFcnJvcj8udmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwicmVzZXRVcGxvYWRzKClcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cIi5kb2N4XCJcbiAgICAgICAgaWQ9XCJET0NmaWxlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICBvbmNsaWNrPVwiZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcbiAgICAgICAgI2RvY3hVcGxvYWRCdXR0b25cbiAgICAgIC8+XG4gICAgICA8c3ZnIGlkPVwiV29yZC1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA0XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNFwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiIzFlNWRkM1wiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA1XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwNVwiIGQ9XCJNMTAuNDE5LDkuNzE4bDEuODg5LDkuMTIxTDEyLjQ0LDIwbC4xMzItLjg4NSwyLjE1Mi05LjQsMi42MjYuMDE4LDIuMTg3LDkuMTA2LjE3NCwxLjEzMmExMy40LDEzLjQsMCwwLDEsLjE3NC0xLjM1MmMuNS0yLjk1NCwxLjE4OC01Ljg4LDEuNy04LjgzMmwuMDQtLjA3SDI0TDIxLjA4NSwyMi4yODFsLTIuODE4LS4wMjZMMTUuOTMxLDEyLjIybC0uMTYsMS4wNzctMi4wMTUsOC45ODYtMi44MjktLjAyOEw4LDkuNzE4WlwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAnZG9jeCcgJiYgZmlsZW5hbWUpXCJcbiAgICAgICAgICAgID5VcGxvYWQgYSA8c3Ryb25nPkRPQ1g8L3N0cm9uZz48L25nLWNvbnRhaW5lclxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkRG9jdW1lbnRUeXBlID09ICdkb2N4JyAmJiBmaWxlbmFtZVwiXG4gICAgICAgICAgIFthcHBUb29sdGlwXT1cImZpbGVuYW1lXCJcbiAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgPnt7XG4gICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1zZy10ZXh0XCIgKm5nSWY9XCJkb2N4RXJyb3I/LnZpc2libGVcIj5cbiAgICAgICAgICB7eyBkb2N4RXJyb3I/Lm1lc3NhZ2UgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhOTc7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCIgKm5nSWY9XCIhZG9jeEVycm9yPy52aXNpYmxlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGVycm9yLWljb25cIiAqbmdJZj1cImRvY3hFcnJvcj8udmlzaWJsZVwiPiYjeGU5MTQ7PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGluZS1wcm9ncmVzc1wiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT0gJ2RvY3gnICYmIGlzVXBsb2FkaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtcHJvZ3Jlc3MtYmFyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJkb2N1bWVudC1ib3hcIlxuICAgICAgKm5nSWY9XCJzaG93UGRmQmxvY2tcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAncGRmJ1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRVcGxvYWRzKClcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cIi5wZGZcIlxuICAgICAgICBpZD1cIlBERmZpbGVcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgIG9uY2xpY2s9XCJldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAjcGRmVXBsb2FkQnV0dG9uXG4gICAgICAvPlxuICAgICAgPHN2ZyBpZD1cIlBERi1JY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA4XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOFwiIGQ9XCJNMjgsMzJINGE0LDQsMCwwLDEtNC00VjRBNCw0LDAsMCwxLDQsMEgyOGE0LDQsMCwwLDEsNCw0VjI4YTQsNCwwLDAsMS00LDRcIiBmaWxsPVwiI2E4MmExZFwiLz5cbiAgICAgICAgPHBhdGggaWQ9XCJQYXRoXzIwNDA5XCIgZGF0YS1uYW1lPVwiUGF0aCAyMDQwOVwiIGQ9XCJNMTYuMTI1LDEzLjc3OEExLjM5LDEuMzksMCwwLDAsMTYuMjg1LDE1YTE2LjEwNiwxNi4xMDYsMCwwLDAsMi4xMDYsMi41NTRjLjMxMi0uMDQ1LjYtLjA0NywxLjItLjA5MmE2Ljk2NCw2Ljk2NCwwLDAsMSwzLjYxNi4yMzksMS4zMSwxLjMxLDAsMCwxLC43ODQsMS4zNjEsMS4xNzYsMS4xNzYsMCwwLDEtMS4wNzUuOTgxYy0yLjIyNC4zMzYtMy4zMDUtLjktNC41NzktMS43NDZhMi4wOTQsMi4wOTQsMCwwLDAtLjgxMi4wMjEsMjUuNzgyLDI1Ljc4MiwwLDAsMC0zLjQxMi45MTZjLS4yNTMuMDg5LS4zMzguMy0uNTMzLjYwOWExMS4wNjIsMTEuMDYyLDAsMCwxLTIuODIsMy40MjcsMi4xNDUsMi4xNDUsMCwwLDEtMS44NjEuNDQ1Yy0xLS4yMjItMS4xNzgtMS4xODItLjUtMS45NDJBOS40NTIsOS40NTIsMCwwLDEsMTAsMjAuNDYyYTE0LjcxNCwxNC43MTQsMCwwLDEsMi40MTgtMS4xMDljLjQ5MS0uNDYxLjU1Ni0uNjg2Ljk2Ni0xLjc2NC40MzEtMS4xMzYuOTIyLTIuMjUsMS4zMjQtMy40YTEuNjc5LDEuNjc5LDAsMCwwLS4wMzUtMS4wNjIsNy43LDcuNywwLDAsMS0uNjM4LTMuNDc2LDEuNCwxLjQsMCwwLDEsLjk1OS0xLjM5MywxLjI3OSwxLjI3OSwwLDAsMSwxLjQ2NC44Yy4yLjQ3OS41NTIsMS43NS0uMzMxLDQuNzI4bS0uMzc3LDEuMzc3LTEuNDE4LDMuNDIyLDMuMzUzLS44ODMtMS45MzUtMi41MzltMy4yMjIsMi44ODJBNC41LDQuNSwwLDAsMCwyMS45MiwxOS4zN2MuMzc3LDAsLjcxNC0uMTMxLjczMy0uNi4wNTEtMS4yNTEtMi42NTYtLjg2NC0zLjY4Mi0uNzNtLTYuOTYsMi4wMzdhOS43ODgsOS43ODgsMCwwLDAtMi45NzUsMS44Yy0uMjE4LjE3MS0uNDQ2LjcxOC0uMjgyLjk4NHMuODEuMDY3LDEtLjEyYTkuMjksOS4yOSwwLDAsMCwyLjI1My0yLjY2NG0zLjI0Ni03LjI0M2MtLjA0NS0uODc4LjQ2MS0yLjE3Mi40MzctMy4yMjQtLjAwOC0uMzU1LS4wNTEtLjc0Ny0uNS0uNzcyLS4zNjQtLjAyLS41MzQuNDc2LS41NjkuNzYyYTUuOCw1LjgsMCwwLDAsLjYzNiwzLjIzNFwiIGZpbGw9XCIjZmZmXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAncGRmJyAmJiBmaWxlbmFtZSlcIlxuICAgICAgICAgICAgPlVwbG9hZCBhIDxzdHJvbmc+UERGPC9zdHJvbmc+PC9uZy1jb250YWluZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAncGRmJyAmJiBmaWxlbmFtZVwiXG4gICAgICAgICAgIFthcHBUb29sdGlwXT1cImZpbGVuYW1lXCJcbiAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgPnt7XG4gICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBkb2N1bWVudC1ib3gtaWNvbiB2eC1mcy0xNiB2eC1tci0yXCI+JiN4ZWE5Nzs8L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jaXJjbGVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5lLXByb2dyZXNzXCJcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PSAncGRmJyAmJiBpc1VwbG9hZGluZ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXByb2dyZXNzLWJhclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbiAgICA8IS0tIFNlbGVjdCBhIHRlbXBsYXRlIC0tPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJkb2N1bWVudC1ib3hcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZERvY3VtZW50VHlwZSA9PT0gJ3RlbXBsYXRlJ1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIG5hbWU9XCJzZWxlY3RlZERvY3VtZW50VHlwZVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VEb2NUeXBlKCd0ZW1wbGF0ZScpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREb2N1bWVudFR5cGUgPT09ICd0ZW1wbGF0ZSdcIlxuICAgICAgLz5cbiAgICAgIDxzdmcgaWQ9XCJUTVAtSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQwNlwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MDZcIiBkPVwiTTI4LDMySDRhNCw0LDAsMCwxLTQtNFY0QTQsNCwwLDAsMSw0LDBIMjhhNCw0LDAsMCwxLDQsNFYyOGE0LDQsMCwwLDEtNCw0XCIgZmlsbD1cIiMzNGFhNDRcIi8+XG4gICAgICAgIDxwYXRoIGlkPVwiUGF0aF8yMDQxMFwiIGRhdGEtbmFtZT1cIlBhdGggMjA0MTBcIiBkPVwiTTE2LDEuNzc4VjMuNTU1SDBWMS43NzhBMS43ODMsMS43ODMsMCwwLDEsMS43NzgsMEgxNC4yMjNBMS43ODMsMS43ODMsMCwwLDEsMTYsMS43NzhNMCw0LjQ0NEgxNnY4Ljg4OWExLjc3OCwxLjc3OCwwLDAsMS0xLjc3NywxLjc3OEgxLjc3OEExLjc3OCwxLjc3OCwwLDAsMSwwLDEzLjMzM1pNNi45OSw5LjkyOEEuODkxLjg5MSwwLDAsMCw2LjEsOS4wMzlIMy42NDJhLjg5MS44OTEsMCwwLDAtLjg4OC44ODl2Mi40NTZhLjg5MS44OTEsMCwwLDAsLjg4OC44ODlINi4xYS44OTEuODkxLDAsMCwwLC44ODgtLjg4OVptNi4zMDYsMGEuODkyLjg5MiwwLDAsMC0uODg5LS44ODlIOS45NDhhLjg5MS44OTEsMCwwLDAtLjg4OC44ODl2Mi40NTZhLjg5MS44OTEsMCwwLDAsLjg4OC44ODloMi40NTlhLjg5Mi44OTIsMCwwLDAsLjg4OS0uODg5Wk0yLjY2Nyw3LjExMUEuODg5Ljg4OSwwLDAsMCwzLjU1Niw4aDguODg5YS44ODkuODg5LDAsMCwwLDAtMS43NzhIMy41NTZhLjg4OS44ODksMCwwLDAtLjg4OS44ODlcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOCA3Ljk5OSlcIiBmaWxsPVwiI2ZmZlwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+RHJhZnQgVXNpbmcgYSA8c3Ryb25nPlRlbXBsYXRlPC9zdHJvbmc+PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZG9jdW1lbnQtYm94LWljb24gdngtZnMtMTYgdngtbXItMlwiPiYjeGVhNDY7PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY2lyY2xlXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbiAgICA8IS0tIEVuZCBTZWxlY3QgYSB0ZW1wbGF0ZSAtLT5cbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJpc0xvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYm90dG9tLWJ1dHRvblwiIFtjbGFzcy5ncmF5c2NhbGVdPVwidGVtcGxhdGVWaWV3XCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZWRpdFBvbGljeUVtaXQoKVwiXG4gICAgY2xhc3M9XCJiYWNrXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwidGVtcGxhdGVWaWV3XCJcbiAgPlxuICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFkOzwvaT4gQmFja1xuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJlZGl0b3Ioc2VsZWN0ZWREb2N1bWVudFR5cGUpXCJcbiAgICBjbGFzcz1cIm5leHRcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhc2VsZWN0ZWREb2N1bWVudFR5cGUgfHwgdGVtcGxhdGVWaWV3IHx8IGlzTG9hZGVyXCJcbiAgPlxuICAgIE5leHQgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWU7PC9pPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|