raise-common-lib-new 0.0.51 → 0.0.52
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/form/richtexteditor/index.component.mjs +126 -51
- package/fesm2022/raise-common-lib-new.mjs +125 -50
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/float-box/index.component.d.ts +1 -1
- package/lib/form/richtexteditor/index.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -370,33 +370,74 @@ export class RichtexteditorComponent {
|
|
|
370
370
|
frequency_penalty: 0,
|
|
371
371
|
presence_penalty: 0,
|
|
372
372
|
};
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
resolve("request error!");
|
|
379
|
-
throw new Error("Invalid response format from AI service");
|
|
380
|
-
}
|
|
381
|
-
resolve(res["choices"][0].message.content);
|
|
373
|
+
try {
|
|
374
|
+
const response = await fetch("api/ai/chat-stream", {
|
|
375
|
+
method: "POST",
|
|
376
|
+
headers: { "Content-Type": "application/json" },
|
|
377
|
+
body: JSON.stringify(param),
|
|
382
378
|
});
|
|
383
|
-
|
|
379
|
+
if (!response.ok) {
|
|
380
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
381
|
+
}
|
|
382
|
+
const reader = response.body.getReader();
|
|
383
|
+
const decoder = new TextDecoder();
|
|
384
|
+
let fullResponse = "";
|
|
385
|
+
while (true) {
|
|
386
|
+
const { done, value } = await reader.read();
|
|
387
|
+
if (done) {
|
|
388
|
+
console.log("Stream finished");
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
392
|
+
const lines = chunk.split("\n");
|
|
393
|
+
for (const line of lines) {
|
|
394
|
+
if (line.startsWith("data: ")) {
|
|
395
|
+
const data = line.slice(6);
|
|
396
|
+
if (data === "[DONE]") {
|
|
397
|
+
console.log(fullResponse);
|
|
398
|
+
return fullResponse;
|
|
399
|
+
}
|
|
400
|
+
try {
|
|
401
|
+
const parsed = JSON.parse(data);
|
|
402
|
+
const content = parsed.choices?.[0]?.delta?.content;
|
|
403
|
+
if (content) {
|
|
404
|
+
fullResponse += content;
|
|
405
|
+
// update UI
|
|
406
|
+
//updateChatUI(content);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
catch (e) {
|
|
410
|
+
console.error("Parse error:", e, "Data:", data);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return fullResponse;
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
console.error("Stream error:", error);
|
|
419
|
+
throw error;
|
|
420
|
+
}
|
|
384
421
|
}
|
|
385
422
|
dialogShow() {
|
|
386
|
-
this.regenerateButton
|
|
387
|
-
|
|
388
|
-
});
|
|
389
|
-
this.copyButton
|
|
390
|
-
|
|
391
|
-
});
|
|
392
|
-
this.replaceButton
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
423
|
+
// this.regenerateButton!.element.addEventListener("click", () => {
|
|
424
|
+
// this.updateAISugesstions();
|
|
425
|
+
// });
|
|
426
|
+
// this.copyButton!.element.addEventListener("click", () => {
|
|
427
|
+
// this.copyTextToClipboard(this.AIResult);
|
|
428
|
+
// });
|
|
429
|
+
// this.replaceButton!.element.addEventListener("click", () => {
|
|
430
|
+
// let range: Range = (
|
|
431
|
+
// this.rteObj as any
|
|
432
|
+
// ).formatter.editorManager.nodeSelection.getRange(
|
|
433
|
+
// (this.rteObj as any).contentModule.getDocument()
|
|
434
|
+
// );
|
|
435
|
+
// (this.rteObj as any).formatter.editorManager.nodeSelection.restore(range);
|
|
436
|
+
// (this.rteObj as any).executeCommand("insertHTML", this.AIResult, {
|
|
437
|
+
// undo: true,
|
|
438
|
+
// });
|
|
439
|
+
// this.closeDialog();
|
|
440
|
+
// });
|
|
400
441
|
this.AIdialog.element.style.display = "";
|
|
401
442
|
}
|
|
402
443
|
closeDialog() {
|
|
@@ -413,34 +454,54 @@ export class RichtexteditorComponent {
|
|
|
413
454
|
this.size = "";
|
|
414
455
|
}
|
|
415
456
|
copyTextToClipboard(text) {
|
|
416
|
-
if (
|
|
417
|
-
|
|
418
|
-
.writeText(text)
|
|
419
|
-
.then(() => {
|
|
420
|
-
this.rightRte && this.rightRte.selectAll();
|
|
421
|
-
console.log("Text copied to clipboard successfully!");
|
|
422
|
-
})
|
|
423
|
-
.catch((err) => {
|
|
424
|
-
console.error("Failed to copy text: ", err);
|
|
425
|
-
});
|
|
457
|
+
if (!this.rightRte) {
|
|
458
|
+
return;
|
|
426
459
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
460
|
+
this.rightRte.selectAll();
|
|
461
|
+
const selection = window.getSelection();
|
|
462
|
+
if (!selection || selection.rangeCount === 0) {
|
|
463
|
+
console.error("No selected content");
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
try {
|
|
467
|
+
const range = selection.getRangeAt(0);
|
|
468
|
+
selection.removeAllRanges();
|
|
469
|
+
selection.addRange(range);
|
|
470
|
+
const success = document.execCommand("copy");
|
|
471
|
+
if (success) {
|
|
472
|
+
console.log("Text copied to clipboard successfully!");
|
|
439
473
|
}
|
|
440
|
-
|
|
441
|
-
|
|
474
|
+
else {
|
|
475
|
+
console.error("Failed to copy text");
|
|
442
476
|
}
|
|
443
477
|
}
|
|
478
|
+
catch (err) {
|
|
479
|
+
console.error("Failed to copy text: ", err);
|
|
480
|
+
}
|
|
481
|
+
// if (navigator.clipboard) {
|
|
482
|
+
// navigator.clipboard
|
|
483
|
+
// .writeText(text)
|
|
484
|
+
// .then(() => {
|
|
485
|
+
// console.log("Text copied to clipboard successfully!");
|
|
486
|
+
// })
|
|
487
|
+
// .catch((err) => {
|
|
488
|
+
// console.error("Failed to copy text: ", err);
|
|
489
|
+
// });
|
|
490
|
+
// } else {
|
|
491
|
+
// // Fallback for browsers that do not support the Clipboard API
|
|
492
|
+
// const textarea = document.createElement("textarea");
|
|
493
|
+
// textarea.value = text;
|
|
494
|
+
// document.body.appendChild(textarea);
|
|
495
|
+
// textarea.select();
|
|
496
|
+
// try {
|
|
497
|
+
// document.execCommand("copy");
|
|
498
|
+
// console.log("Text copied to clipboard using execCommand");
|
|
499
|
+
// } catch (err) {
|
|
500
|
+
// console.error("Failed to copy text: ", err);
|
|
501
|
+
// } finally {
|
|
502
|
+
// document.body.removeChild(textarea);
|
|
503
|
+
// }
|
|
504
|
+
// }
|
|
444
505
|
}
|
|
445
506
|
onOverlayClick() {
|
|
446
507
|
let activeEle = this.AIdialog.element.querySelector(".char_block.e-active");
|
|
@@ -546,12 +607,26 @@ export class RichtexteditorComponent {
|
|
|
546
607
|
this.size = "largest"; // 设置为最大化
|
|
547
608
|
}
|
|
548
609
|
}
|
|
610
|
+
regenerateClick() {
|
|
611
|
+
this.updateAISugesstions();
|
|
612
|
+
}
|
|
613
|
+
copyClick() {
|
|
614
|
+
this.copyTextToClipboard(this.AIResult);
|
|
615
|
+
}
|
|
616
|
+
replaceClick() {
|
|
617
|
+
let range = this.rteObj.formatter.editorManager.nodeSelection.getRange(this.rteObj.contentModule.getDocument());
|
|
618
|
+
this.rteObj.formatter.editorManager.nodeSelection.restore(range);
|
|
619
|
+
this.rteObj.executeCommand("insertHTML", this.AIResult, {
|
|
620
|
+
undo: true,
|
|
621
|
+
});
|
|
622
|
+
this.closeDialog();
|
|
623
|
+
}
|
|
549
624
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RichtexteditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
550
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RichtexteditorComponent, selector: "rs-richtext-editor", inputs: { placeholder: "placeholder", value: "value", editorId: "editorId", saveInterval: "saveInterval", height: "height", autoSaveOnIdle: "autoSaveOnIdle", disabled: "disabled", target: "target", insertImageSettings: "insertImageSettings", showTicketAttachment: "showTicketAttachment" }, outputs: { toolbarClick: "toolbarClick", change: "change", created: "created", actionBegin: "actionBegin", input: "input", focus: "focus", blur: "blur", actionComplete: "actionComplete", afterPasteCleanup: "afterPasteCleanup" }, viewQueries: [{ propertyName: "rteObj", first: true, predicate: ["editor"], descendants: true }, { propertyName: "queryCategory", first: true, predicate: ["queryCategory"], descendants: true }, { propertyName: "leftRte", first: true, predicate: ["leftRte"], descendants: true }, { propertyName: "rightRte", first: true, predicate: ["rightRte"], descendants: true }, { propertyName: "AIdialog", first: true, predicate: ["AIdialog"], descendants: true, static: true }, { propertyName: "sentimentButton", first: true, predicate: ["sentimentButton"], descendants: true }, { propertyName: "regenerateButton", first: true, predicate: ["regenerateButton"], descendants: true }, { propertyName: "copyButton", first: true, predicate: ["copyButton"], descendants: true }, { propertyName: "replaceButton", first: true, predicate: ["replaceButton"], descendants: true }], ngImport: i0, template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n [id]=\"editorId\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [bulletFormatList]=\"bulletFormatList\"\r\n [numberFormatList]=\"numberFormatList\"\r\n [fontFamily]=\"family\"\r\n [fontSize]=\"fontSize\"\r\n [disabled]=\"disabled\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(ngModel)]=\"value\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n (input)=\"_input($event)\"\r\n (focus)=\"_focus($event)\"\r\n (blur)=\"_blur($event)\"\r\n (actionComplete)=\"_actionComplete($event)\"\r\n (dialogOpen)=\"_dialogOpen($event)\"\r\n (afterPasteCleanup)=\"_afterPasteCleanup($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <!-- <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div> -->\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%0D%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%0D%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}::ng-deep ol.custom-list{list-style:none!important;counter-reset:list-counter}::ng-deep ol.custom-list li{counter-increment:list-counter}::ng-deep ol.parentheses li::marker{content:\"(\" counter(list-counter) \") \"}::ng-deep .e-tiempos-headline{font-family:Tiempos Headline-Semibold!important}::ng-deep .e-avenir-lt-pro-black{font-family:Avenir LT Pro-Black!important}::ng-deep .e-avenir-lt-pro-black-oblique{font-family:Avenir LT Pro-Black Oblique!important}::ng-deep .e-avenir-lt-pro-heavy{font-family:Avenir LT Pro-Heavy!important}::ng-deep .e-avenir-lt-pro-heavy-oblique{font-family:Avenir LT Pro-Heavy Oblique!important}::ng-deep .e-avenir-lt-pro-light{font-family:Avenir LT Pro-Light!important}::ng-deep .e-avenir-lt-pro-light-oblique{font-family:Avenir LT Pro-Light Oblique!important}::ng-deep .e-avenir-lt-pro-medium{font-family:Avenir LT Pro-Medium!important}::ng-deep .e-avenir-lt-pro-medium-oblique{font-family:Avenir LT Pro-Medium Oblique!important}::ng-deep .e-avenir-next-lt-pro-bold{font-family:Avenir Next LT Pro-Bold!important}::ng-deep .e-avenir-next-lt-pro-demi{font-family:Avenir Next LT Pro-Demi!important}::ng-deep .e-avenir-next-lt-pro-demilt{font-family:Avenir Next LT Pro-Demilt!important}::ng-deep .e-avenir-next-lt-pro-heavy{font-family:Avenir Next LT Pro-Heavy!important}::ng-deep .e-avenir-next-lt-pro-heavylt{font-family:Avenir Next LT Pro-Heavylt!important}::ng-deep .e-avenir-next-lt-pro-it{font-family:Avenir Next LT Pro-It!important}::ng-deep .e-avenir-next-lt-pro-light{font-family:Avenir Next LT Pro-Light!important}::ng-deep .e-avenir-next-lt-pro-mediumlt{font-family:Avenir Next LT Pro-Mediumlt!important}::ng-deep .e-avenir-next-lt-pro-regular{font-family:Avenir Next LT Pro-Regular!important}::ng-deep .e-avenir-next-lt-pro-ultlt{font-family:Avenir Next LT Pro-UltLt!important}::ng-deep .e-avenir-next-lt-pro-ultltlt{font-family:Avenir Next LT Pro-UltLtlt!important}::ng-deep .e-source-han-sans-cn-extralight{font-family:Source Han Sans CN-ExtraLight!important}::ng-deep .e-source-han-sans-cn-regular{font-family:Source Han Sans CN-Regular!important}::ng-deep .e-source-han-sans-cn-medium{font-family:Source Han Sans CN-Medium!important}::ng-deep .e-source-han-sans-cn-bold{font-family:Source Han Sans CN-Bold!important}::ng-deep .e-ping-fang-sc-light{font-family:Ping Fang SC-Light!important}::ng-deep .e-ping-fang-sc-medium{font-family:Ping Fang SC-Medium!important}::ng-deep .e-ping-fang-sc-regular{font-family:Ping Fang SC-Regular!important}::ng-deep .e-ping-fang-sc-semibold{font-family:Ping Fang SC-Semibold!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ButtonComponent, selector: "[ejs-button]", inputs: ["content", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "isPrimary", "isToggle", "locale"], outputs: ["created"] }, { kind: "component", type: i6.DialogComponent, selector: "ejs-dialog", inputs: ["allowDragging", "animationSettings", "buttons", "closeOnEscape", "content", "cssClass", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "footerTemplate", "header", "height", "isModal", "locale", "minHeight", "position", "resizeHandles", "showCloseIcon", "target", "visible", "width", "zIndex"], outputs: ["beforeClose", "beforeOpen", "beforeSanitizeHtml", "close", "created", "destroyed", "drag", "dragStart", "dragStop", "open", "overlayClick", "resizeStart", "resizeStop", "resizing", "visibleChange"] }, { kind: "component", type: i7.DropDownListComponent, selector: "ejs-dropdownlist", inputs: ["actionFailureTemplate", "allowFiltering", "allowObjectBinding", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "sortOrder", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: i8.SkeletonComponent, selector: "ejs-skeleton", inputs: ["cssClass", "enablePersistence", "enableRtl", "height", "label", "locale", "shape", "shimmerEffect", "visible", "width"] }, { kind: "component", type: i9.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "emojiPickerSettings", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "exportPdf", "exportWord", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatPainterSettings", "formatter", "height", "htmlAttributes", "iframeSettings", "importWord", "inlineMode", "insertAudioSettings", "insertImageSettings", "insertVideoSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "showTooltip", "slashMenuSettings", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterMediaDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeFileUpload", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "fileRemoving", "fileSelected", "fileUploadFailed", "fileUploadSuccess", "fileUploading", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "slashMenuItemSelect", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }] });
|
|
625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RichtexteditorComponent, selector: "rs-richtext-editor", inputs: { placeholder: "placeholder", value: "value", editorId: "editorId", saveInterval: "saveInterval", height: "height", autoSaveOnIdle: "autoSaveOnIdle", disabled: "disabled", target: "target", insertImageSettings: "insertImageSettings", showTicketAttachment: "showTicketAttachment" }, outputs: { toolbarClick: "toolbarClick", change: "change", created: "created", actionBegin: "actionBegin", input: "input", focus: "focus", blur: "blur", actionComplete: "actionComplete", afterPasteCleanup: "afterPasteCleanup" }, viewQueries: [{ propertyName: "rteObj", first: true, predicate: ["editor"], descendants: true }, { propertyName: "queryCategory", first: true, predicate: ["queryCategory"], descendants: true }, { propertyName: "leftRte", first: true, predicate: ["leftRte"], descendants: true }, { propertyName: "rightRte", first: true, predicate: ["rightRte"], descendants: true }, { propertyName: "AIdialog", first: true, predicate: ["AIdialog"], descendants: true, static: true }, { propertyName: "sentimentButton", first: true, predicate: ["sentimentButton"], descendants: true }, { propertyName: "regenerateButton", first: true, predicate: ["regenerateButton"], descendants: true }, { propertyName: "copyButton", first: true, predicate: ["copyButton"], descendants: true }, { propertyName: "replaceButton", first: true, predicate: ["replaceButton"], descendants: true }], ngImport: i0, template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n [id]=\"editorId\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [bulletFormatList]=\"bulletFormatList\"\r\n [numberFormatList]=\"numberFormatList\"\r\n [fontFamily]=\"family\"\r\n [fontSize]=\"fontSize\"\r\n [disabled]=\"disabled\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(ngModel)]=\"value\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n (input)=\"_input($event)\"\r\n (focus)=\"_focus($event)\"\r\n (blur)=\"_blur($event)\"\r\n (actionComplete)=\"_actionComplete($event)\"\r\n (dialogOpen)=\"_dialogOpen($event)\"\r\n (afterPasteCleanup)=\"_afterPasteCleanup($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n (click)=\"copyClick()\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n (click)=\"replaceClick()\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n (click)=\"regenerateClick()\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <!-- <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div> -->\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%0D%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%0D%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}::ng-deep ol.custom-list{list-style:none!important;counter-reset:list-counter}::ng-deep ol.custom-list li{counter-increment:list-counter}::ng-deep ol.parentheses li::marker{content:\"(\" counter(list-counter) \") \"}::ng-deep .e-tiempos-headline{font-family:Tiempos Headline-Semibold!important}::ng-deep .e-avenir-lt-pro-black{font-family:Avenir LT Pro-Black!important}::ng-deep .e-avenir-lt-pro-black-oblique{font-family:Avenir LT Pro-Black Oblique!important}::ng-deep .e-avenir-lt-pro-heavy{font-family:Avenir LT Pro-Heavy!important}::ng-deep .e-avenir-lt-pro-heavy-oblique{font-family:Avenir LT Pro-Heavy Oblique!important}::ng-deep .e-avenir-lt-pro-light{font-family:Avenir LT Pro-Light!important}::ng-deep .e-avenir-lt-pro-light-oblique{font-family:Avenir LT Pro-Light Oblique!important}::ng-deep .e-avenir-lt-pro-medium{font-family:Avenir LT Pro-Medium!important}::ng-deep .e-avenir-lt-pro-medium-oblique{font-family:Avenir LT Pro-Medium Oblique!important}::ng-deep .e-avenir-next-lt-pro-bold{font-family:Avenir Next LT Pro-Bold!important}::ng-deep .e-avenir-next-lt-pro-demi{font-family:Avenir Next LT Pro-Demi!important}::ng-deep .e-avenir-next-lt-pro-demilt{font-family:Avenir Next LT Pro-Demilt!important}::ng-deep .e-avenir-next-lt-pro-heavy{font-family:Avenir Next LT Pro-Heavy!important}::ng-deep .e-avenir-next-lt-pro-heavylt{font-family:Avenir Next LT Pro-Heavylt!important}::ng-deep .e-avenir-next-lt-pro-it{font-family:Avenir Next LT Pro-It!important}::ng-deep .e-avenir-next-lt-pro-light{font-family:Avenir Next LT Pro-Light!important}::ng-deep .e-avenir-next-lt-pro-mediumlt{font-family:Avenir Next LT Pro-Mediumlt!important}::ng-deep .e-avenir-next-lt-pro-regular{font-family:Avenir Next LT Pro-Regular!important}::ng-deep .e-avenir-next-lt-pro-ultlt{font-family:Avenir Next LT Pro-UltLt!important}::ng-deep .e-avenir-next-lt-pro-ultltlt{font-family:Avenir Next LT Pro-UltLtlt!important}::ng-deep .e-source-han-sans-cn-extralight{font-family:Source Han Sans CN-ExtraLight!important}::ng-deep .e-source-han-sans-cn-regular{font-family:Source Han Sans CN-Regular!important}::ng-deep .e-source-han-sans-cn-medium{font-family:Source Han Sans CN-Medium!important}::ng-deep .e-source-han-sans-cn-bold{font-family:Source Han Sans CN-Bold!important}::ng-deep .e-ping-fang-sc-light{font-family:Ping Fang SC-Light!important}::ng-deep .e-ping-fang-sc-medium{font-family:Ping Fang SC-Medium!important}::ng-deep .e-ping-fang-sc-regular{font-family:Ping Fang SC-Regular!important}::ng-deep .e-ping-fang-sc-semibold{font-family:Ping Fang SC-Semibold!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ButtonComponent, selector: "[ejs-button]", inputs: ["content", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "isPrimary", "isToggle", "locale"], outputs: ["created"] }, { kind: "component", type: i6.DialogComponent, selector: "ejs-dialog", inputs: ["allowDragging", "animationSettings", "buttons", "closeOnEscape", "content", "cssClass", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "footerTemplate", "header", "height", "isModal", "locale", "minHeight", "position", "resizeHandles", "showCloseIcon", "target", "visible", "width", "zIndex"], outputs: ["beforeClose", "beforeOpen", "beforeSanitizeHtml", "close", "created", "destroyed", "drag", "dragStart", "dragStop", "open", "overlayClick", "resizeStart", "resizeStop", "resizing", "visibleChange"] }, { kind: "component", type: i7.DropDownListComponent, selector: "ejs-dropdownlist", inputs: ["actionFailureTemplate", "allowFiltering", "allowObjectBinding", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "sortOrder", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: i8.SkeletonComponent, selector: "ejs-skeleton", inputs: ["cssClass", "enablePersistence", "enableRtl", "height", "label", "locale", "shape", "shimmerEffect", "visible", "width"] }, { kind: "component", type: i9.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "emojiPickerSettings", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "exportPdf", "exportWord", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatPainterSettings", "formatter", "height", "htmlAttributes", "iframeSettings", "importWord", "inlineMode", "insertAudioSettings", "insertImageSettings", "insertVideoSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "showTooltip", "slashMenuSettings", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterMediaDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeFileUpload", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "fileRemoving", "fileSelected", "fileUploadFailed", "fileUploadSuccess", "fileUploading", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "slashMenuItemSelect", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }] });
|
|
551
626
|
}
|
|
552
627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RichtexteditorComponent, decorators: [{
|
|
553
628
|
type: Component,
|
|
554
|
-
args: [{ selector: "rs-richtext-editor", template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n [id]=\"editorId\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [bulletFormatList]=\"bulletFormatList\"\r\n [numberFormatList]=\"numberFormatList\"\r\n [fontFamily]=\"family\"\r\n [fontSize]=\"fontSize\"\r\n [disabled]=\"disabled\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(ngModel)]=\"value\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n (input)=\"_input($event)\"\r\n (focus)=\"_focus($event)\"\r\n (blur)=\"_blur($event)\"\r\n (actionComplete)=\"_actionComplete($event)\"\r\n (dialogOpen)=\"_dialogOpen($event)\"\r\n (afterPasteCleanup)=\"_afterPasteCleanup($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <!-- <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div> -->\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%0D%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%0D%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}::ng-deep ol.custom-list{list-style:none!important;counter-reset:list-counter}::ng-deep ol.custom-list li{counter-increment:list-counter}::ng-deep ol.parentheses li::marker{content:\"(\" counter(list-counter) \") \"}::ng-deep .e-tiempos-headline{font-family:Tiempos Headline-Semibold!important}::ng-deep .e-avenir-lt-pro-black{font-family:Avenir LT Pro-Black!important}::ng-deep .e-avenir-lt-pro-black-oblique{font-family:Avenir LT Pro-Black Oblique!important}::ng-deep .e-avenir-lt-pro-heavy{font-family:Avenir LT Pro-Heavy!important}::ng-deep .e-avenir-lt-pro-heavy-oblique{font-family:Avenir LT Pro-Heavy Oblique!important}::ng-deep .e-avenir-lt-pro-light{font-family:Avenir LT Pro-Light!important}::ng-deep .e-avenir-lt-pro-light-oblique{font-family:Avenir LT Pro-Light Oblique!important}::ng-deep .e-avenir-lt-pro-medium{font-family:Avenir LT Pro-Medium!important}::ng-deep .e-avenir-lt-pro-medium-oblique{font-family:Avenir LT Pro-Medium Oblique!important}::ng-deep .e-avenir-next-lt-pro-bold{font-family:Avenir Next LT Pro-Bold!important}::ng-deep .e-avenir-next-lt-pro-demi{font-family:Avenir Next LT Pro-Demi!important}::ng-deep .e-avenir-next-lt-pro-demilt{font-family:Avenir Next LT Pro-Demilt!important}::ng-deep .e-avenir-next-lt-pro-heavy{font-family:Avenir Next LT Pro-Heavy!important}::ng-deep .e-avenir-next-lt-pro-heavylt{font-family:Avenir Next LT Pro-Heavylt!important}::ng-deep .e-avenir-next-lt-pro-it{font-family:Avenir Next LT Pro-It!important}::ng-deep .e-avenir-next-lt-pro-light{font-family:Avenir Next LT Pro-Light!important}::ng-deep .e-avenir-next-lt-pro-mediumlt{font-family:Avenir Next LT Pro-Mediumlt!important}::ng-deep .e-avenir-next-lt-pro-regular{font-family:Avenir Next LT Pro-Regular!important}::ng-deep .e-avenir-next-lt-pro-ultlt{font-family:Avenir Next LT Pro-UltLt!important}::ng-deep .e-avenir-next-lt-pro-ultltlt{font-family:Avenir Next LT Pro-UltLtlt!important}::ng-deep .e-source-han-sans-cn-extralight{font-family:Source Han Sans CN-ExtraLight!important}::ng-deep .e-source-han-sans-cn-regular{font-family:Source Han Sans CN-Regular!important}::ng-deep .e-source-han-sans-cn-medium{font-family:Source Han Sans CN-Medium!important}::ng-deep .e-source-han-sans-cn-bold{font-family:Source Han Sans CN-Bold!important}::ng-deep .e-ping-fang-sc-light{font-family:Ping Fang SC-Light!important}::ng-deep .e-ping-fang-sc-medium{font-family:Ping Fang SC-Medium!important}::ng-deep .e-ping-fang-sc-regular{font-family:Ping Fang SC-Regular!important}::ng-deep .e-ping-fang-sc-semibold{font-family:Ping Fang SC-Semibold!important}\n"] }]
|
|
629
|
+
args: [{ selector: "rs-richtext-editor", template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n [id]=\"editorId\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [bulletFormatList]=\"bulletFormatList\"\r\n [numberFormatList]=\"numberFormatList\"\r\n [fontFamily]=\"family\"\r\n [fontSize]=\"fontSize\"\r\n [disabled]=\"disabled\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(ngModel)]=\"value\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n (input)=\"_input($event)\"\r\n (focus)=\"_focus($event)\"\r\n (blur)=\"_blur($event)\"\r\n (actionComplete)=\"_actionComplete($event)\"\r\n (dialogOpen)=\"_dialogOpen($event)\"\r\n (afterPasteCleanup)=\"_afterPasteCleanup($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n (click)=\"copyClick()\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n (click)=\"replaceClick()\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n (click)=\"regenerateClick()\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"16px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <!-- <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div> -->\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%0D%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%0D%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}::ng-deep ol.custom-list{list-style:none!important;counter-reset:list-counter}::ng-deep ol.custom-list li{counter-increment:list-counter}::ng-deep ol.parentheses li::marker{content:\"(\" counter(list-counter) \") \"}::ng-deep .e-tiempos-headline{font-family:Tiempos Headline-Semibold!important}::ng-deep .e-avenir-lt-pro-black{font-family:Avenir LT Pro-Black!important}::ng-deep .e-avenir-lt-pro-black-oblique{font-family:Avenir LT Pro-Black Oblique!important}::ng-deep .e-avenir-lt-pro-heavy{font-family:Avenir LT Pro-Heavy!important}::ng-deep .e-avenir-lt-pro-heavy-oblique{font-family:Avenir LT Pro-Heavy Oblique!important}::ng-deep .e-avenir-lt-pro-light{font-family:Avenir LT Pro-Light!important}::ng-deep .e-avenir-lt-pro-light-oblique{font-family:Avenir LT Pro-Light Oblique!important}::ng-deep .e-avenir-lt-pro-medium{font-family:Avenir LT Pro-Medium!important}::ng-deep .e-avenir-lt-pro-medium-oblique{font-family:Avenir LT Pro-Medium Oblique!important}::ng-deep .e-avenir-next-lt-pro-bold{font-family:Avenir Next LT Pro-Bold!important}::ng-deep .e-avenir-next-lt-pro-demi{font-family:Avenir Next LT Pro-Demi!important}::ng-deep .e-avenir-next-lt-pro-demilt{font-family:Avenir Next LT Pro-Demilt!important}::ng-deep .e-avenir-next-lt-pro-heavy{font-family:Avenir Next LT Pro-Heavy!important}::ng-deep .e-avenir-next-lt-pro-heavylt{font-family:Avenir Next LT Pro-Heavylt!important}::ng-deep .e-avenir-next-lt-pro-it{font-family:Avenir Next LT Pro-It!important}::ng-deep .e-avenir-next-lt-pro-light{font-family:Avenir Next LT Pro-Light!important}::ng-deep .e-avenir-next-lt-pro-mediumlt{font-family:Avenir Next LT Pro-Mediumlt!important}::ng-deep .e-avenir-next-lt-pro-regular{font-family:Avenir Next LT Pro-Regular!important}::ng-deep .e-avenir-next-lt-pro-ultlt{font-family:Avenir Next LT Pro-UltLt!important}::ng-deep .e-avenir-next-lt-pro-ultltlt{font-family:Avenir Next LT Pro-UltLtlt!important}::ng-deep .e-source-han-sans-cn-extralight{font-family:Source Han Sans CN-ExtraLight!important}::ng-deep .e-source-han-sans-cn-regular{font-family:Source Han Sans CN-Regular!important}::ng-deep .e-source-han-sans-cn-medium{font-family:Source Han Sans CN-Medium!important}::ng-deep .e-source-han-sans-cn-bold{font-family:Source Han Sans CN-Bold!important}::ng-deep .e-ping-fang-sc-light{font-family:Ping Fang SC-Light!important}::ng-deep .e-ping-fang-sc-medium{font-family:Ping Fang SC-Medium!important}::ng-deep .e-ping-fang-sc-regular{font-family:Ping Fang SC-Regular!important}::ng-deep .e-ping-fang-sc-semibold{font-family:Ping Fang SC-Semibold!important}\n"] }]
|
|
555
630
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.DialogService }]; }, propDecorators: { rteObj: [{
|
|
556
631
|
type: ViewChild,
|
|
557
632
|
args: ["editor", { static: false }]
|
|
@@ -618,4 +693,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
618
693
|
}], afterPasteCleanup: [{
|
|
619
694
|
type: Output
|
|
620
695
|
}] } });
|
|
621
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmljaHRleHRlZGl0b3IvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmljaHRleHRlZGl0b3IvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBd0x4QjtJQUNBO0lBQ0E7SUF4TEgsTUFBTSxDQUEwQjtJQUVoQyxhQUFhLENBQXlCO0lBRXRDLE9BQU8sQ0FBMkI7SUFFbEMsUUFBUSxDQUEyQjtJQUNNLFFBQVEsQ0FBbUI7SUFFcEUsZUFBZSxDQUFtQjtJQUVsQyxnQkFBZ0IsQ0FBbUI7SUFFbkMsVUFBVSxDQUFtQjtJQUU3QixhQUFhLENBQW1CO0lBQ3ZDLGlGQUFpRjtJQUV4RSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQ3RCLFlBQVksR0FBRyxHQUFHLENBQUM7SUFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLGNBQWM7SUFDcEMsbUJBQW1C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QkFBNUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBEcm9wRG93bkxpc3RDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7XHJcbiAgUmljaFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgVG9vbGJhclNldHRpbmdzTW9kZWwsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1idXR0b25zXCI7XHJcbmltcG9ydCB7IERyb3BEb3duQnV0dG9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXNwbGl0YnV0dG9uc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcG9wdXBzXCI7XHJcbi8vIHNlcnZpY2VcclxuLy8gaW1wb3J0IHsgUGJGdW5TZXJ2aWNlIH0gZnJvbSBcIkBhcHAvc2VydmljZXMvcGItZnVuLnNlcnZpY2VcIjtcclxuLy8gaW1wb3J0IHsgU2hhcmVkU3luY2Z1c2lvbk1vZHVsZSB9IGZyb20gXCJAYXBwL21vZHVsZS9zeW5jZnVzaW9uTW9kdWxlXCI7XHJcbmltcG9ydCB7IE9wZW5BaU1vZGVsUlRFIH0gZnJvbSBcIi4vb3BlbmFwaVwiO1xyXG5pbXBvcnQgeyBsaW5lSGVpZ2h0X2l0ZW1zIH0gZnJvbSBcIi4vZGF0YS1jb25maWdcIjtcclxuaW1wb3J0IHsgZm9udEZhbWlseSwgc2l6ZSB9IGZyb20gXCIuL2RhdGEtY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldEFJQ29uZmlnLCBpc0FJQ29uZmlnVmFsaWQsIEFJQ29uZmlnIH0gZnJvbSBcIi4vYWktY29uZmlnXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtcmljaHRleHQtZWRpdG9yXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAvLyBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIC8vIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZFN5bmNmdXNpb25Nb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmljaHRleHRlZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoXCJlZGl0b3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJ0ZU9iajogUmljaFRleHRFZGl0b3JDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInF1ZXJ5Q2F0ZWdvcnlcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHF1ZXJ5Q2F0ZWdvcnkhOiBEcm9wRG93bkxpc3RDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImxlZnRSdGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGxlZnRSdGUhOiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwicmlnaHRSdGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJpZ2h0UnRlITogUmljaFRleHRFZGl0b3JDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcIkFJZGlhbG9nXCIsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBBSWRpYWxvZyE6IERpYWxvZ0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwic2VudGltZW50QnV0dG9uXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyBzZW50aW1lbnRCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInJlZ2VuZXJhdGVCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlZ2VuZXJhdGVCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImNvcHlCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGNvcHlCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInJlcGxhY2VCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlcGxhY2VCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZChcImNoaXBMaXN0XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgY2hpcExpc3QhOiBDaGlwTGlzdENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcclxuICBASW5wdXQoKSBlZGl0b3JJZCA9IFwiZWRpdG9ySWRcIjtcclxuICBASW5wdXQoKSBzYXZlSW50ZXJ2YWwgPSA1MDA7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgQElucHV0KCkgYXV0b1NhdmVPbklkbGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGFyZ2V0ID0gXCIjbWFpblBhZ2VcIjsgLy8gZGlhbG9nIOW8ueeql+eItue6p1xyXG4gIEBJbnB1dCgpIGluc2VydEltYWdlU2V0dGluZ3MgPSB7XHJcbiAgICBzYXZlRm9ybWF0OiBcIkJsb2JcIixcclxuICAgIGFsbG93ZWRUeXBlczogW1wiLnN2Z1wiLCBcIi5wbmdcIl0sXHJcbiAgICBkaXNwbGF5OiBcIm5vbmVcIixcclxuICB9O1xyXG4gIEBJbnB1dCgpIHNob3dUaWNrZXRBdHRhY2htZW50ID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uQmVnaW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlucHV0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyUGFzdGVDbGVhbnVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBmYW1pbHkgPSBmb250RmFtaWx5O1xyXG4gIGZvbnRTaXplID0gc2l6ZTtcclxuICBkaWFsb2dXaWR0aCA9IFwiODAwcHhcIjtcclxuICBkaWFsb2dIZWlnaHQgPSBcIjY0MnB4XCI7XHJcbiAgc2hvd1pvb21CdG4gPSB0cnVlO1xyXG4gIHNob3dNc2cgPSBmYWxzZTtcclxuICBlZGl0b3JNYW5hZ2VyOiBhbnk7XHJcbiAgc2l6ZSA9IFwiXCI7XHJcbiAgc2VsZWN0ZWRRdWVyeTtcclxuICBwdWJsaWMgZHJvcFZhbEluZGV4ID0gMDtcclxuICBwdWJsaWMgcXVlcnlMaXN0OiB7IGlkOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W10gPSBbXHJcbiAgICB7IGlkOiBcIlJlcGhyYXNlXCIsIHRleHQ6IFwiUmVwaHJhc2VcIiB9LFxyXG4gICAgeyBpZDogXCJHcmFtbWFyXCIsIHRleHQ6IFwiQ29ycmVjdCBHcmFtbWFyXCIgfSxcclxuICAgIHsgaWQ6IFwiU3VtbWFyaXplXCIsIHRleHQ6IFwiU3VtbWFyaXplXCIgfSxcclxuICAgIHsgaWQ6IFwiRWxhYm9yYXRlXCIsIHRleHQ6IFwiRWxhYm9yYXRlXCIgfSxcclxuICAgIHsgaWQ6IFwiVHJhbnNsYXRlXCIsIHRleHQ6IFwiVHJhbnNsYXRlXCIgfSxcclxuICAgIHsgaWQ6IFwiU2VudGltZW50QW5hbHlzaXNcIiwgdGV4dDogXCJTZW50aW1lbnQgQW5hbHlzaXNcIiB9LFxyXG4gIF07XHJcbiAgcHVibGljIHJlcGhyYXNlVHlsZUxpc3QgPSBbXHJcbiAgICB7IHRleHQ6IFwiU3RhbmRhcmRcIiwgaWQ6IFwiU3RhbmRhcmRcIiB9LFxyXG4gICAgeyB0ZXh0OiBcIkZsdWVudFwiLCBpZDogXCJGbHVlbnRcIiB9LFxyXG4gICAgeyB0ZXh0OiBcIlByb2Zlc3Npb25hbFwiLCBpZDogXCJQcm9mZXNzaW9uYWxcIiB9LFxyXG4gIF07XHJcbiAgcHVibGljIGxhbmd1YWdlTGlzdDogeyBpZDogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdID0gW1xyXG4gICAgeyBpZDogXCJFTlwiLCB0ZXh0OiBcIkVuZ2xpc2hcIiB9LFxyXG4gICAgeyBpZDogXCJaSFwiLCB0ZXh0OiBcIkNoaW5lc2UgKFNpbXBsaWZpZWQpXCIgfSxcclxuICAgIHsgaWQ6IFwiRVNcIiwgdGV4dDogXCJTcGFuaXNoXCIgfSxcclxuICAgIHsgaWQ6IFwiWkhUXCIsIHRleHQ6IFwiQ2hpbmVzZSAoVHJhZGl0aW9uYWwpXCIgfSxcclxuICAgIHsgaWQ6IFwiSElcIiwgdGV4dDogXCJIaW5kaVwiIH0sXHJcbiAgICB7IGlkOiBcIkFSXCIsIHRleHQ6IFwiQXJhYmljXCIgfSxcclxuICAgIHsgaWQ6IFwiQk5cIiwgdGV4dDogXCJCZW5nYWxpXCIgfSxcclxuICAgIHsgaWQ6IFwiUFRcIiwgdGV4dDogXCJQb3J0dWd1ZXNlXCIgfSxcclxuICAgIHsgaWQ6IFwiUlVcIiwgdGV4dDogXCJSdXNzaWFuXCIgfSxcclxuICAgIHsgaWQ6IFwiSkFcIiwgdGV4dDogXCJKYXBhbmVzZVwiIH0sXHJcbiAgICB7IGlkOiBcIkRFXCIsIHRleHQ6IFwiR2VybWFuXCIgfSxcclxuICAgIHsgaWQ6IFwiS09cIiwgdGV4dDogXCJLb3JlYW5cIiB9LFxyXG4gICAgeyBpZDogXCJGUlwiLCB0ZXh0OiBcIkZyZW5jaFwiIH0sXHJcbiAgICB7IGlkOiBcIklUXCIsIHRleHQ6IFwiSXRhbGlhblwiIH0sXHJcbiAgICB7IGlkOiBcIlRSXCIsIHRleHQ6IFwiVHVya2lzaFwiIH0sXHJcbiAgXTtcclxuICBwdWJsaWMgcHJvbXB0UXVlcnkgPSBcIlwiO1xyXG4gIHB1YmxpYyBpc1NlbnRpbWVudENoZWNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHN1YlF1ZXJ5ID0gXCJcIjtcclxuICBwdWJsaWMgdHJhbnNsYXRlbGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgcHVibGljIGNoaXBWYWx1ZSA9IFwiU3RhbmRhcmRcIjtcclxuICBwdWJsaWMgYXBpUmVzdWx0RGF0YTogYW55O1xyXG4gIHB1YmxpYyBBSVJlc3VsdCE6IHN0cmluZztcclxuICB0b29sczogVG9vbGJhclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGVGbG9hdGluZzogZmFsc2UsXHJcbiAgICBpdGVtczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdG9vbHRpcFRleHQ6IFwiQUkgQXNzaXN0XCIsXHJcbiAgICAgICAgdGVtcGxhdGU6XHJcbiAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz1cImUtdGJhci1idG4gZS1idG5cIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJhaV9hc3Npc3RhbnRfYnV0dG9uX3RiYXJcIiBzdHlsZT1cIndpZHRoOjEwMCVcIj48ZGl2IGNsYXNzPVwiZS1ydGUtZHJvcGRvd24tYnRuLXRleHRcIj5BSSBBc3Npc3Q8L2Rpdj48L2J1dHRvbj4nLFxyXG4gICAgICB9LFxyXG4gICAgICBcIkJvbGRcIixcclxuICAgICAgXCJJdGFsaWNcIixcclxuICAgICAgXCJVbmRlcmxpbmVcIixcclxuICAgICAgXCJTdHJpa2VUaHJvdWdoXCIsXHJcbiAgICAgIFwiRm9udE5hbWVcIixcclxuICAgICAgXCJGb250U2l6ZVwiLFxyXG4gICAgICBcIkZvbnRDb2xvclwiLFxyXG4gICAgICBcIkJhY2tncm91bmRDb2xvclwiLFxyXG4gICAgICBcIkxvd2VyQ2FzZVwiLFxyXG4gICAgICBcIlVwcGVyQ2FzZVwiLFxyXG4gICAgICBcInxcIixcclxuICAgICAgXCJDcmVhdGVUYWJsZVwiLFxyXG4gICAgICBcIkZvcm1hdHNcIixcclxuICAgICAgXCJBbGlnbm1lbnRzXCIsXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICB0b29sdGlwVGV4dDogXCJMaW5lIEhlaWdodFwiLFxyXG4gICAgICAvLyAgIHRlbXBsYXRlOlxyXG4gICAgICAvLyAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwibGluZWhlaWdodF90YmFyXCIgIHN0eWxlPVwid2lkdGg6MTAwJVwiPjwvYnV0dG9uPicsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIFwiYnVsbGV0Rm9ybWF0TGlzdFwiLFxyXG4gICAgICBcIk51bWJlckZvcm1hdExpc3RcIixcclxuICAgICAgXCJPdXRkZW50XCIsXHJcbiAgICAgIFwiSW5kZW50XCIsXHJcbiAgICAgIFwifFwiLFxyXG4gICAgICBcIkNyZWF0ZUxpbmtcIixcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIHRvb2x0aXBUZXh0OiBcIlwiLFxyXG4gICAgICAvLyAgIHRlbXBsYXRlOlxyXG4gICAgICAvLyAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwiY3VzdG9tX3RiYXJcIiAgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+JyArXHJcbiAgICAgIC8vICAgICAnPGRpdiBjbGFzcz1cImUtdGJhci1idG4tdGV4dFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj48aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ZpbGUtaWNvbi5zdmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTt0b3A6IC0ycHg7XCIvPjxkaXYgY2xhc3M9XCJ1cGxvYWRBY3Rpb25zXCI+PGRpdiBpZD1cInVwbG9hZEZyb21Vc2VyXCI+Q29tcHV0ZXIgRmlsZTwvZGl2PjxkaXYgaWQ9XCJyZWxhdGlvbkRvbVwiPlRpY2tldCBBdHRhY2htZW50PC9kaXY+PC9kaXY+PC9kaXY+PC9idXR0b24+JyxcclxuICAgICAgLy8gfSxcclxuICAgICAgXCJ8XCIsXHJcbiAgICAgIFwiRm9ybWF0UGFpbnRlclwiLFxyXG4gICAgICBcIkNsZWFyRm9ybWF0XCIsXHJcbiAgICAgIFwifFwiLFxyXG4gICAgICBcIlVuZG9cIixcclxuICAgICAgXCJSZWRvXCIsXHJcbiAgICAgIC8vJ1NvdXJjZUNvZGUnLFxyXG4gICAgXSxcclxuICB9O1xyXG4gIHB1YmxpYyBpc0RpYWxvZ1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYnVsbGV0Rm9ybWF0TGlzdCA9IHtcclxuICAgIHR5cGVzOiBbXHJcbiAgICAgIHsgdGV4dDogXCJOb25lXCIsIHZhbHVlOiBcIm5vbmVcIiB9LFxyXG4gICAgICB7IHRleHQ6IFwi4pePXCIsIHZhbHVlOiBcImRpc2NcIiB9LFxyXG4gICAgICB7IHRleHQ6IFwi4peLXCIsIHZhbHVlOiBcImNpcmNsZVwiIH0sXHJcbiAgICAgIHsgdGV4dDogXCLilqBcIiwgdmFsdWU6IFwic3F1YXJlXCIgfSxcclxuICAgICAgLy8gQWRkIHlvdXIgY3VzdG9tIGJ1bGxldCBzdHlsZSBoZXJlXHJcbiAgICAgIHsgdGV4dDogXCItXCIsIHZhbHVlOiBcImRhc2hcIiB9LFxyXG4gICAgXSxcclxuICB9O1xyXG4gIHB1YmxpYyBudW1iZXJGb3JtYXRMaXN0ID0ge1xyXG4gICAgdHlwZXM6IFtcclxuICAgICAgeyB0ZXh0OiBcIk5vbmVcIiwgdmFsdWU6IFwibm9uZVwiIH0sXHJcbiAgICAgIHsgdGV4dDogXCIxLCAyLCAzLCDigKZcIiwgdmFsdWU6IFwiZGVjaW1hbFwiIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcIs6xLCDOsiwgzrMsIOKAplwiLFxyXG4gICAgICAgIHZhbHVlOiBcImxvd2VyR3JlZWtcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiaSwgaWksIGlpaSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwibG93ZXJSb21hblwiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGV4dDogXCJBLCBCLCBDLCDigKZcIixcclxuICAgICAgICB2YWx1ZTogXCJ1cHBlckFscGhhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcImEsIGIsIGMsIOKAplwiLFxyXG4gICAgICAgIHZhbHVlOiBcImxvd2VyQWxwaGFcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiSSwgSUksIElJSSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwidXBwZXJSb21hblwiLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyBBZGQgeW91ciBjdXN0b20gYnVsbGV0IHN0eWxlIGhlcmVcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiKDEpLCAoMiksICgzKSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwicGFyZW50aGVzZXNcIixcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zaG93VGlja2V0QXR0YWNobWVudCkge1xyXG4gICAgICBjb25zdCBpdGVtID0ge1xyXG4gICAgICAgIHRvb2x0aXBUZXh0OiBcIlwiLFxyXG4gICAgICAgIHRlbXBsYXRlOlxyXG4gICAgICAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwiY3VzdG9tX3RiYXJcIiAgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cImUtdGJhci1idG4tdGV4dFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj48aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ZpbGUtaWNvbi5zdmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIi8+PGRpdiBjbGFzcz1cInVwbG9hZEFjdGlvbnNcIj48ZGl2IGlkPVwidXBsb2FkRnJvbVVzZXJcIj5Db21wdXRlciBGaWxlPC9kaXY+PGRpdiBpZD1cInJlbGF0aW9uRG9tXCI+VGlja2V0IEF0dGFjaG1lbnQ8L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj4nLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnRvb2xzLml0ZW1zLnNwbGljZSgyMiwgMCwgaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNvbnRlbnRDaGFuZ2UoYXJncykge1xyXG4gICAgLy8gY29uc3QgdGFibGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhYmxlLmUtcnRlLXRhYmxlXCIpO1xyXG4gICAgLy8gdGFibGVzLmZvckVhY2goKHRhYmxlKSA9PiB7XHJcbiAgICAvLyAgIGNvbnN0IGh0bWxUYWJsZSA9IHRhYmxlIGFzIEhUTUxUYWJsZUVsZW1lbnQ7XHJcbiAgICAvLyAgIGh0bWxUYWJsZS5zdHlsZS5tYXJnaW5Cb3R0b20gPSBcIjEwcHhcIjtcclxuICAgIC8vICAgaHRtbFRhYmxlLnN0eWxlLmJvcmRlckNvbGxhcHNlID0gXCJjb2xsYXBzZVwiO1xyXG4gICAgLy8gICBodG1sVGFibGUuc3R5bGUuZW1wdHlDZWxscyA9IFwic2hvd1wiO1xyXG4gICAgLy8gICBjb25zdCB0ZEVsZW1lbnRzID0gdGFibGUucXVlcnlTZWxlY3RvckFsbChcInRkXCIpO1xyXG4gICAgLy8gICB0ZEVsZW1lbnRzLmZvckVhY2goKHRkKSA9PiB7XHJcbiAgICAvLyAgICAgdGQuc3R5bGUuYm9yZGVyID0gXCIxcHggc29saWQgI2FkYjViZFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLmhlaWdodCA9IFwiMjBweFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLm1pbldpZHRoID0gXCIyMHB4XCI7XHJcbiAgICAvLyAgICAgdGQuc3R5bGUucGFkZGluZyA9IFwiMnB4IDVweFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLmJveFNpemluZyA9IFwiYm9yZGVyLWJveFwiO1xyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH0pO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChhcmdzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIC8vYWRkIHRoZSBsaW5lIGhlaWdodFxyXG4gICAgLy8gdGhpcy5lZGl0b3JNYW5hZ2VyID0gdGhpcy5ydGVPYmouZm9ybWF0dGVyLmVkaXRvck1hbmFnZXI7XHJcbiAgICAvLyBsZXQgc3BsaXRCdXR0b24gPSBuZXcgRHJvcERvd25CdXR0b24oe1xyXG4gICAgLy8gICBpdGVtczogbGluZUhlaWdodF9pdGVtcyxcclxuICAgIC8vICAgaWNvbkNzczogXCJlLWljb25zIGUtbGluZS1zcGFjaW5nXCIsXHJcbiAgICAvLyAgIHNlbGVjdDogdGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyBzcGxpdEJ1dHRvbi5hcHBlbmRUbyhcIiNsaW5laGVpZ2h0X3RiYXJcIik7XHJcbiAgICAvLyBhaSBhc3Npc3RcclxuICAgIGxldCBhaWFzc2lzdGFudEJ1dHRvbiA9IG5ldyBEcm9wRG93bkJ1dHRvbih7XHJcbiAgICAgIGl0ZW1zOiB0aGlzLnF1ZXJ5TGlzdCxcclxuICAgICAgLy8gaWNvbkNzczogXCJlLWJ0bi1pY29uIGUtaWNvbnMgZS1hc3Npc3R2aWV3LWljb24gZS1pY29uLWxlZnRcIixcclxuICAgICAgc2VsZWN0OiAoYXJncykgPT4gdGhpcy5haVF1ZXJ5U2VsZWN0ZWRNZW51KGFyZ3MpLFxyXG4gICAgfSk7XHJcbiAgICBhaWFzc2lzdGFudEJ1dHRvbi5hcHBlbmRUbyhcIiNhaV9hc3Npc3RhbnRfYnV0dG9uX3RiYXJcIik7XHJcbiAgICB0aGlzLmNyZWF0ZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlbGVjdChhcmdzKSB7XHJcbiAgICBpZiAodGhpcy5ydGVPYmouZm9ybWF0dGVyLmdldFVuZG9SZWRvU3RhY2soKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5ydGVPYmouZm9ybWF0dGVyLnNhdmVEYXRhKCk7XHJcbiAgICB9XHJcbiAgICBsZXQgbm9kZXM6IE5vZGVbXSA9IHRoaXMuZWRpdG9yTWFuYWdlci5kb21Ob2RlLmJsb2NrTm9kZXMoKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IG5vZGVzLmxlbmd0aCA+IGk7IGkrKykge1xyXG4gICAgICAobm9kZXNbaV0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmxpbmVIZWlnaHQgPSBhcmdzLml0ZW0udGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMucnRlT2JqLmZvcm1hdHRlci5zYXZlRGF0YSgpO1xyXG4gICAgdGhpcy5ydGVPYmouZm9ybWF0dGVyLmVuYWJsZVVuZG8odGhpcy5ydGVPYmopO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhaVF1ZXJ5U2VsZWN0ZWRNZW51KGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2d1ZU9wZW4oYXJncy5pdGVtLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZGlhbG9ndWVPcGVuKHNlbGVjdGVkUXVlcnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdmFyIHNlbGVjdGlvblRleHQgPSB0aGlzLnJ0ZU9iai5nZXRTZWxlY3RlZEh0bWwoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWVyeSA9IHNlbGVjdGVkUXVlcnk7XHJcbiAgICBpZiAoc2VsZWN0aW9uVGV4dCkge1xyXG4gICAgICBsZXQgcmFuZ2U6IFJhbmdlID0gKFxyXG4gICAgICAgIHRoaXMucnRlT2JqIGFzIGFueVxyXG4gICAgICApLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24uZ2V0UmFuZ2UoXHJcbiAgICAgICAgKHRoaXMucnRlT2JqIGFzIGFueSkuY29udGVudE1vZHVsZS5nZXREb2N1bWVudCgpXHJcbiAgICAgICk7XHJcbiAgICAgICh0aGlzLnJ0ZU9iaiBhcyBhbnkpLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24uc2F2ZShcclxuICAgICAgICByYW5nZSxcclxuICAgICAgICAodGhpcy5ydGVPYmogYXMgYW55KS5jb250ZW50TW9kdWxlLmdldERvY3VtZW50KClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5kcm9wVmFsSW5kZXggPSB0aGlzLnF1ZXJ5TGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgKHEpID0+IHEudGV4dC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFF1ZXJ5LnRvTG93ZXJDYXNlKClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5xdWVyeUNhdGVnb3J5LmluZGV4ID0gdGhpcy5kcm9wVmFsSW5kZXg7XHJcbiAgICAgIHRoaXMubGVmdFJ0ZS52YWx1ZSA9IHRoaXMucHJvbXB0UXVlcnkgPSBzZWxlY3Rpb25UZXh0O1xyXG4gICAgICB0aGlzLmxlZnRSdGUucmVmcmVzaFVJKCk7XHJcbiAgICAgIHRoaXMuQUlkaWFsb2cuc2hvdygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKHNlbGVjdGVkUXVlcnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5zaG93TXNnID0gdHJ1ZTtcclxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vICAgdGhpcy5zaG93TXNnID0gZmFsc2U7XHJcbiAgICAgIC8vIH0sIDMwMDApO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlBsZWFzZSBzZWxlY3QgdGhlIGNvbnRlbnQgdG8gcGVyZm9ybSB0aGUgQUkgb3BlcmF0aW9uLlwiKTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nLnNob3dOb3RpZmljYXRpb24oXCJGaXJzdCwgU2VsZWN0IHNvbWUgdGV4dFwiLCB7XHJcbiAgICAgICAgc3RhdHVzOiBcIldhcm5pbmdcIixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBSVN1Z2Vzc3Rpb25zRGF0YShzZWxlY3RlZFF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZW50aW1lbnRDaGVjayA9IGZhbHNlO1xyXG4gICAgc3dpdGNoIChzZWxlY3RlZFF1ZXJ5KSB7XHJcbiAgICAgIGNhc2UgXCJTdW1tYXJpemVcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJTdW1tYXJpemUgdGhlIHVwY29taW5nIHNlbnRlbmNlIHNob3J0bHkuXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJFbGFib3JhdGVcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJFbGFib3JhdGUgb24gdGhlIHVwY29taW5nIHNlbnRlbmNlLlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUmVwaHJhc2VcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gdGhpcy5jaGlwVmFsdWUgKyBcIiByZXBocmFzZSB0aGUgdXBjb21pbmcgc2VudGVuY2UuXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJDb3JyZWN0IEdyYW1tYXJcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJDb3JyZWN0IHRoZSBncmFtbWFyIG9mIHRoZSB1cGNvbWluZyBzZW50ZW5jZS5cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlRyYW5zbGF0ZVwiOlxyXG4gICAgICAgIHRoaXMuc3ViUXVlcnkgPVxyXG4gICAgICAgICAgXCJUcmFuc2xhdGUgdGhlIHVwY29taW5nIHNlbnRlbmNlIHRvIFwiICsgdGhpcy50cmFuc2xhdGVsYW5ndWFnZSArIFwiLlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiU2VudGltZW50IEFuYWx5c2lzXCI6XHJcbiAgICAgICAgdGhpcy5pc1NlbnRpbWVudENoZWNrID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID1cclxuICAgICAgICAgICdBbmFseXplIHRoZSBzZW50aW1lbnQgYW5kIGdyYW1tYXIgb2YgdGhlIGZvbGxvd2luZyBwYXJhZ3JhcGhzIGFuZCBwcm92aWRlIHRoZSBleHByZXNzaW9uIHNjb3JlIHdpdGggYW4gZW1vamkgZm9sbG93ZWQgYnkgdGhlIHNlbnRpbWVudCBpbiB0aGUgZm9ybWF0OiBcIvCfmIogTmV1dHJhbFwiLiBcXG5cXG5OT1RFOiBBdm9pZCBhbnkgYWRkaXRpb25hbCB0ZXh0IG9yIGV4cGxhbmF0aW9uOic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFJU3VnZXNzdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5wcm9tcHRRdWVyeSkge1xyXG4gICAgICAgIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNrZWxldG9uSWRcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPVxyXG4gICAgICAgICAgXCJcIjtcclxuICAgICAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJyaWdodFJ0ZVwiKSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9XHJcbiAgICAgICAgICBcIm5vbmVcIjtcclxuICAgICAgICB0aGlzLnNlbnRpbWVudEJ1dHRvbi5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICB0aGlzLnJlZ2VuZXJhdGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29weUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5pc0RpYWxvZ1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMucHJvbXB0UXVlcnkgPSB0aGlzLmxlZnRSdGUuZ2V0SHRtbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFwaVJlc3VsdERhdGEgPSB0aGlzLmdldFJlc3BvbnNlRnJvbU9wZW5BSShcclxuICAgICAgICAgIHRoaXMuc3ViUXVlcnksXHJcbiAgICAgICAgICB0aGlzLnByb21wdFF1ZXJ5XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmFwaVJlc3VsdERhdGEudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5pc0RpYWxvZ1Zpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5BSVJlc3VsdCA9IHRoaXMuaXNTZW50aW1lbnRDaGVjayA/IHRoaXMucHJvbXB0UXVlcnkgOiByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLnNlbnRpbWVudEJ1dHRvbi5jb250ZW50ID0gcmVzdWx0XHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyhcInBvc2l0aXZlXCIpXHJcbiAgICAgICAgICAgID8gXCLwn5iKIFBvc2l0aXZlXCJcclxuICAgICAgICAgICAgOiByZXN1bHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5lZ2F0aXZlXCIpXHJcbiAgICAgICAgICAgID8gXCLwn5ieIE5lZ2F0aXZlXCJcclxuICAgICAgICAgICAgOiBcIvCfmJAgTmV1dHJhbFwiO1xyXG4gICAgICAgICAgdGhpcy5zZW50aW1lbnRCdXR0b24uZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIXRoaXMuaXNTZW50aW1lbnRDaGVja1xyXG4gICAgICAgICAgICA/IFwibm9uZVwiXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMucmlnaHRSdGUudmFsdWUgPSB0aGlzLkFJUmVzdWx0O1xyXG4gICAgICAgICAgdmFyIG5vUmVzdWx0c0ZvdW5kID0gISh0aGlzLkFJUmVzdWx0IHx8IHRoaXMucHJvbXB0UXVlcnkpO1xyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5vLXJlc3VsdHMtZm91bmRcIikgYXMgSFRNTEVsZW1lbnRcclxuICAgICAgICAgICkuc3R5bGUuZGlzcGxheSA9IG5vUmVzdWx0c0ZvdW5kID8gXCJcIiA6IFwibm9uZVwiO1xyXG4gICAgICAgICAgdGhpcy5yZWdlbmVyYXRlQnV0dG9uLmRpc2FibGVkID0gbm9SZXN1bHRzRm91bmQ7XHJcbiAgICAgICAgICB0aGlzLmNvcHlCdXR0b24uZGlzYWJsZWQgPSBub1Jlc3VsdHNGb3VuZDtcclxuICAgICAgICAgIHRoaXMucmVwbGFjZUJ1dHRvbi5kaXNhYmxlZCA9IG5vUmVzdWx0c0ZvdW5kO1xyXG4gICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2tlbGV0b25JZFwiKSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9XHJcbiAgICAgICAgICAgIFwibm9uZVwiO1xyXG4gICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRSdGVcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPVxyXG4gICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA/IFwibm9uZVwiIDogXCJcIjtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCxcclxuICAgICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRSdGVcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAvLyB0aGlzLnRvYXN0T2JqLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFJlc3BvbnNlRnJvbU9wZW5BSShcclxuICAgIHN1YlF1ZXJ5OiBzdHJpbmcsXHJcbiAgICBwcm9tcHRRdWVyeTogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgcm9sZTogXCJzeXN0ZW1cIixcclxuICAgICAgICBjb250ZW50OiBzdWJRdWVyeS5pbmNsdWRlcyhcclxuICAgICAgICAgIFwiZW1vamkgZm9sbG93ZWQgYnkgdGhlIHNlbnRpbWVudCBpbiB0aGUgZm9ybWF0XCJcclxuICAgICAgICApXHJcbiAgICAgICAgICA/IFwiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiBQbGVhc2UgcmVzcG9uZCBpbiBzdHJpbmcgZm9ybWF0LlwiXHJcbiAgICAgICAgICA6IFwiTk9URTogUmV0dXJuIHNhbWUgaHRtbCBmb3JtYXQganVzdCBkbyBjaGFuZ2VzIGNvbnRlbnQgb25seS4gZG9uJ3QgY2hhbmdlIGh0bWwgZm9ybWF0cy5cIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHJvbGU6IFwidXNlclwiLFxyXG4gICAgICAgIGNvbnRlbnQ6IGAke3N1YlF1ZXJ5fSAke3Byb21wdFF1ZXJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtID0ge1xyXG4gICAgICBtZXNzYWdlczogbWVzc2FnZXMsXHJcbiAgICAgIG1heF90b2tlbnM6IDEwMDAsXHJcbiAgICAgIHRlbXBlcmF0dXJlOiAwLjcsXHJcbiAgICAgIHRvcF9wOiAxLFxyXG4gICAgICBmcmVxdWVuY3lfcGVuYWx0eTogMCxcclxuICAgICAgcHJlc2VuY2VfcGVuYWx0eTogMCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cC5wb3N0KFwiYXBpL2FpL2NoYXRcIiwgcGFyYW0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIXJlc1tcImNob2ljZXNcIl0gfHxcclxuICAgICAgICAgICFyZXNbXCJjaG9pY2VzXCJdWzBdIHx8XHJcbiAgICAgICAgICAhcmVzW1wiY2hvaWNlc1wiXVswXS5tZXNzYWdlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXNvbHZlKFwicmVxdWVzdCBlcnJvciFcIik7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIEFJIHNlcnZpY2VcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc29sdmUocmVzW1wiY2hvaWNlc1wiXVswXS5tZXNzYWdlLmNvbnRlbnQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlhbG9nU2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnZW5lcmF0ZUJ1dHRvbiEuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jb3B5QnV0dG9uIS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29weVRleHRUb0NsaXBib2FyZCh0aGlzLkFJUmVzdWx0KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZXBsYWNlQnV0dG9uIS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgIGxldCByYW5nZTogUmFuZ2UgPSAoXHJcbiAgICAgICAgdGhpcy5ydGVPYmogYXMgYW55XHJcbiAgICAgICkuZm9ybWF0dGVyLmVkaXRvck1hbmFnZXIubm9kZVNlbGVjdGlvbi5nZXRSYW5nZShcclxuICAgICAgICAodGhpcy5ydGVPYmogYXMgYW55KS5jb250ZW50TW9kdWxlLmdldERvY3VtZW50KClcclxuICAgICAgKTtcclxuICAgICAgKHRoaXMucnRlT2JqIGFzIGFueSkuZm9ybWF0dGVyLmVkaXRvck1hbmFnZXIubm9kZVNlbGVjdGlvbi5yZXN0b3JlKHJhbmdlKTtcclxuICAgICAgKHRoaXMucnRlT2JqIGFzIGFueSkuZXhlY3V0ZUNvbW1hbmQoXCJpbnNlcnRIVE1MXCIsIHRoaXMuQUlSZXN1bHQsIHtcclxuICAgICAgICB1bmRvOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgICAodGhpcy5BSWRpYWxvZyBhcyBEaWFsb2dDb21wb25lbnQpLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuQUlkaWFsb2cuaGlkZSgpO1xyXG4gICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMucmlnaHRSdGUudmFsdWUgPSBcIlwiO1xyXG4gICAgdGhpcy5sZWZ0UnRlLnZhbHVlID0gXCJcIjtcclxuICAgIHRoaXMucHJvbXB0UXVlcnkgPSBcIlwiO1xyXG4gICAgdGhpcy5jaGlwVmFsdWUgPSBcIlN0YW5kYXJkXCI7XHJcbiAgICB0aGlzLkFJUmVzdWx0ID0gXCJcIjtcclxuICAgIHRoaXMuZHJvcFZhbEluZGV4ID0gMDtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWVyeSA9IFwiUmVwaHJhc2VcIjtcclxuICAgIHRoaXMuc2VudGltZW50QnV0dG9uLmNvbnRlbnQgPSBcIvCfmIogTmV1dHJhbFwiO1xyXG4gICAgdGhpcy5zaXplID0gXCJcIjtcclxuICB9XHJcblxyXG4gIGNvcHlUZXh0VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAobmF2aWdhdG9yLmNsaXBib2FyZCkge1xyXG4gICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkXHJcbiAgICAgICAgLndyaXRlVGV4dCh0ZXh0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucmlnaHRSdGUgJiYgdGhpcy5yaWdodFJ0ZS5zZWxlY3RBbGwoKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiVGV4dCBjb3BpZWQgdG8gY2xpcGJvYXJkIHN1Y2Nlc3NmdWxseSFcIik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb3B5IHRleHQ6IFwiLCBlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gRmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgdGhlIENsaXBib2FyZCBBUElcclxuICAgICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XHJcbiAgICAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0YXJlYSk7XHJcbiAgICAgIHRleHRhcmVhLnNlbGVjdCgpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlRleHQgY29waWVkIHRvIGNsaXBib2FyZCB1c2luZyBleGVjQ29tbWFuZFwiKTtcclxuICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb3B5IHRleHQ6IFwiLCBlcnIpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk92ZXJsYXlDbGljaygpOiB2b2lkIHtcclxuICAgIGxldCBhY3RpdmVFbGU6IEhUTUxFbGVtZW50IHwgbnVsbCA9IHRoaXMuQUlkaWFsb2cuZWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICBcIi5jaGFyX2Jsb2NrLmUtYWN0aXZlXCJcclxuICAgICk7XHJcbiAgICBpZiAoYWN0aXZlRWxlKSB7XHJcbiAgICAgIGFjdGl2ZUVsZS5jbGFzc0xpc3QucmVtb3ZlKFwiZS1hY3RpdmVcIik7XHJcbiAgICB9XHJcbiAgICAvL3RoaXMuY2xvc2VEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIG9uUXVlcnlTZWxlY3QoYXJncykge1xyXG4gICAgLy8gdGhpcy5jaGlwTGlzdC5zZWxlY3RlZENoaXBzID0gMDtcclxuICAgIHRoaXMudHJhbnNsYXRlbGFuZ3VhZ2UgPSBcIkVOXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkUXVlcnkgPSBhcmdzLml0ZW1EYXRhLnRleHQ7XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKGFyZ3MuaXRlbURhdGEudGV4dCk7XHJcbiAgfVxyXG5cclxuICBvbkxhbmd1YWdlU2VsZWN0KGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGVsYW5ndWFnZSA9IGFyZ3MuaXRlbURhdGEuaWQ7XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKFwiVHJhbnNsYXRlXCIpO1xyXG4gIH1cclxuXHJcbiAgb25DaGlwQ2xpY2soYXJnczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoaXBWYWx1ZSA9IGFyZ3MuaXRlbURhdGEudGV4dDtcclxuICAgIC8vIOS6i+S7tuS8muinpuWPkeS4pOasoSDlv4XpobvliKTmlq1hcmdzLnRleHTmmK/lkKbmnInlgLxcclxuICAgIGlmIChhcmdzLml0ZW1EYXRhLnRleHQpIHRoaXMudXBkYXRlQUlTdWdlc3N0aW9uc0RhdGEoXCJSZXBocmFzZVwiKTtcclxuICB9XHJcblxyXG4gIF90b29sYmFyQ2xpY2soYXJncykge1xyXG4gICAgdGhpcy50b29sYmFyQ2xpY2suZW1pdChhcmdzKTtcclxuICB9XHJcblxyXG4gIF9hY3Rpb25CZWdpbihhcmdzKSB7XHJcbiAgICB0aGlzLmFjdGlvbkJlZ2luLmVtaXQoYXJncyk7XHJcbiAgfVxyXG4gIF9pbnB1dChhcmdzKSB7XHJcbiAgICB0aGlzLmlucHV0LmVtaXQoYXJncyk7XHJcbiAgfVxyXG4gIF9hY3Rpb25Db21wbGV0ZShhcmdzKSB7XHJcbiAgICBpZiAoYXJncy5yZXF1ZXN0VHlwZSA9PSBcIlVMXCIpIHtcclxuICAgICAgaWYgKGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVUeXBlID09IFwiZGFzaFwiKSB7XHJcbiAgICAgICAgLy8gQXBwbHkgY3VzdG9tIHN0eWxpbmcgZm9yIGRhc2ggYnVsbGV0c1xyXG4gICAgICAgIGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVJbWFnZSA9XHJcbiAgICAgICAgICBcInVybCgnLi4vLi4vLi4vYXNzZXRzL2ltZy9idWxsZXQtZGFzaC5zdmcnKVwiO1xyXG4gICAgICAgIGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVUeXBlID0gXCJub25lXCI7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoYXJncy5yZXF1ZXN0VHlwZSA9PSBcIk9MXCIpIHtcclxuICAgICAgYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXHJcbiAgICAgICAgXCJjdXN0b20tbGlzdFwiLFxyXG4gICAgICAgIFwicGFyZW50aGVzZXNcIlxyXG4gICAgICApO1xyXG4gICAgICBpZiAoYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LnN0eWxlLmxpc3RTdHlsZVR5cGUgPT0gXCJwYXJlbnRoZXNlc1wiKSB7XHJcbiAgICAgICAgYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdCA9IFwiY3VzdG9tLWxpc3RcIjtcclxuICAgICAgICBhcmdzLmVsZW1lbnRzWzBdLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInBhcmVudGhlc2VzXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoYXJncyk7XHJcbiAgfVxyXG5cclxuICBfZm9jdXMoYXJncykge1xyXG4gICAgdGhpcy5mb2N1cy5lbWl0KGFyZ3MpO1xyXG4gIH1cclxuICBfYmx1cihhcmdzKSB7XHJcbiAgICB0aGlzLmJsdXIuZW1pdChhcmdzKTtcclxuICB9XHJcbiAgX2RpYWxvZ09wZW4oYXJncykge1xyXG4gICAgaWYgKGFyZ3MuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJlLXJ0ZS1lZGl0LXRhYmxlXCIpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHZhciByb3dCb3ggPSAoXHJcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtdGFibGUtcm93LmUtbnVtZXJpY3RleHRib3hcIilbMF0gYXMgYW55XHJcbiAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdO1xyXG4gICAgICAgIHZhciBjb2x1bW5Cb3ggPSAoXHJcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICBcIi5lLXRhYmxlLWNvbHVtbi5lLW51bWVyaWN0ZXh0Ym94XCJcclxuICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdO1xyXG4gICAgICAgIHJvd0JveC5jaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAocm93Qm94LnZhbHVlID4gNTApIHtcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICAgICAgICAgICBcIi5lLXJ0ZS1lbGVtZW50cy5lLWluc2VydC10YWJsZVwiXHJcbiAgICAgICAgICAgICAgKVswXSBhcyBhbnlcclxuICAgICAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuc2hvd05vdGlmaWNhdGlvbihcclxuICAgICAgICAgICAgICBcIlRoZSByb3cgbnVtYmVyIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MC5cIixcclxuICAgICAgICAgICAgICB7IHN0YXR1czogXCJXYXJuaW5nXCIgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICAgICAgICAgICBcIi5lLXJ0ZS1lbGVtZW50cy5lLWluc2VydC10YWJsZVwiXHJcbiAgICAgICAgICAgICAgKVswXSBhcyBhbnlcclxuICAgICAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2x1bW5Cb3guY2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbHVtbkJveC52YWx1ZSA+IDI1KSB7XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICAgICAgXCIuZS1ydGUtZWxlbWVudHMuZS1pbnNlcnQtdGFibGVcIlxyXG4gICAgICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgICAgICkuZWoyX2luc3RhbmNlc1swXS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLnNob3dOb3RpZmljYXRpb24oXHJcbiAgICAgICAgICAgICAgXCJUaGUgY29sdW1uIG51bWJlciBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjUuXCIsXHJcbiAgICAgICAgICAgICAgeyBzdGF0dXM6IFwiV2FybmluZ1wiIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICAgICAgXCIuZS1ydGUtZWxlbWVudHMuZS1pbnNlcnQtdGFibGVcIlxyXG4gICAgICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgICAgICkuZWoyX2luc3RhbmNlc1swXS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2FmdGVyUGFzdGVDbGVhbnVwKGFyZ3MpIHtcclxuICAgIGFyZ3MudmFsdWUgPSB0aGlzLnVuZXNjYXBlSHRtbChhcmdzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVuZXNjYXBlSHRtbChlc2NhcGVkSHRtbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBlc2NhcGVkSHRtbFxyXG4gICAgICAucmVwbGFjZSgvJmx0Oy9nLCBcIjxcIilcclxuICAgICAgLnJlcGxhY2UoLyZndDsvZywgXCI+XCIpXHJcbiAgICAgIC5yZXBsYWNlKC8mYW1wOy9nLCBcIiZcIilcclxuICAgICAgLnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKVxyXG4gICAgICAucmVwbGFjZSgvJmFwb3M7L2csIFwiJ1wiKTtcclxuICB9XHJcbiAgaGlkZVRvYXN0KCkge1xyXG4gICAgdGhpcy5zaG93TXNnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvblpvb20oKSB7XHJcbiAgICBpZiAodGhpcy5zaXplID09PSBcImxhcmdlc3RcIikge1xyXG4gICAgICB0aGlzLnNpemUgPSBcIlwiOyAvLyDmgaLlpI3liLDljp/lp4vlpKflsI9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2l6ZSA9IFwibGFyZ2VzdFwiOyAvLyDorr7nva7kuLrmnIDlpKfljJZcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImVkaXRvcl9ib3hcIiBpZD1cImNvbnRhaW5lclwiPlxyXG4gIDxlanMtcmljaHRleHRlZGl0b3JcclxuICAgICNlZGl0b3JcclxuICAgIFtpZF09XCJlZGl0b3JJZFwiXHJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICBbc2F2ZUludGVydmFsXT1cIjBcIlxyXG4gICAgW2F1dG9TYXZlT25JZGxlXT1cImF1dG9TYXZlT25JZGxlXCJcclxuICAgIFt0b29sYmFyU2V0dGluZ3NdPVwidG9vbHNcIlxyXG4gICAgW2J1bGxldEZvcm1hdExpc3RdPVwiYnVsbGV0Rm9ybWF0TGlzdFwiXHJcbiAgICBbbnVtYmVyRm9ybWF0TGlzdF09XCJudW1iZXJGb3JtYXRMaXN0XCJcclxuICAgIFtmb250RmFtaWx5XT1cImZhbWlseVwiXHJcbiAgICBbZm9udFNpemVdPVwiZm9udFNpemVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtpbnNlcnRJbWFnZVNldHRpbmdzXT1cImluc2VydEltYWdlU2V0dGluZ3NcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAoYWN0aW9uQmVnaW4pPVwiX2FjdGlvbkJlZ2luKCRldmVudClcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkNvbnRlbnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoY3JlYXRlZCk9XCJvbkNyZWF0ZSgpXCJcclxuICAgICh0b29sYmFyQ2xpY2spPVwiX3Rvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgIChpbnB1dCk9XCJfaW5wdXQoJGV2ZW50KVwiXHJcbiAgICAoZm9jdXMpPVwiX2ZvY3VzKCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwiX2JsdXIoJGV2ZW50KVwiXHJcbiAgICAoYWN0aW9uQ29tcGxldGUpPVwiX2FjdGlvbkNvbXBsZXRlKCRldmVudClcIlxyXG4gICAgKGRpYWxvZ09wZW4pPVwiX2RpYWxvZ09wZW4oJGV2ZW50KVwiXHJcbiAgICAoYWZ0ZXJQYXN0ZUNsZWFudXApPVwiX2FmdGVyUGFzdGVDbGVhbnVwKCRldmVudClcIlxyXG4gID5cclxuICA8L2Vqcy1yaWNodGV4dGVkaXRvcj5cclxuICA8ZWpzLWRpYWxvZ1xyXG4gICAgI0FJZGlhbG9nXHJcbiAgICBpZD1cIkFJZGlhbG9nXCJcclxuICAgIFtuZ0NsYXNzXT1cInNpemVcIlxyXG4gICAgW3Zpc2libGVdPVwiZmFsc2VcIlxyXG4gICAgW3RhcmdldF09XCJ0YXJnZXRcIlxyXG4gICAgW2lzTW9kYWxdPVwidHJ1ZVwiXHJcbiAgICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgICBbd2lkdGhdPVwiZGlhbG9nV2lkdGhcIlxyXG4gICAgbWF4SGVpZ2h0PVwiODAlXCJcclxuICAgIGNzc0NsYXNzPVwiZS1ydGUtZWxlbWVudHMgY3VzdG9tLWRpYWxvZy1ydGVcIlxyXG4gICAgekluZGV4PVwiMTAwMFwiXHJcbiAgICAoY2xvc2UpPVwiY2xvc2VEaWFsb2coKVwiXHJcbiAgICAob3ZlcmxheUNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKClcIlxyXG4gICAgKG9wZW4pPVwiZGlhbG9nU2hvdygpXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPkFJIEFzc2lzdDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJ1dHRvbnNcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1pvb21CdG5cIiBjbGFzcz1cImhlYWRlci16b29tXCIgKGNsaWNrKT1cIm9uWm9vbSgpXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWljb25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cInNpemUgPT09ICdsYXJnZXN0J1wiXHJcbiAgICAgICAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGlhbG9nLXNocmluay5zdmdcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItaWNvblwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2l6ZSAhPT0gJ2xhcmdlc3QnXCJcclxuICAgICAgICAgICAgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9kaWFsb2ctZ3Jvdy5zdmdcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJ0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiaGVhZGVyLWljb25cIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1nL2RpYWxvZy1jbG9zZS5zdmdcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICA8ZGl2IGlkPVwiZGlhbG9nLWZvb3Rlci1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1yb3ctMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImN1c2NvbC0wXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBsZWZ0XCJcclxuICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjdXNjb2wtMVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBlanMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAjc2VudGltZW50QnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjb250ZW50PVwi8J+YiiBOZXV0cmFsXCJcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3M9XCJzZW50aW1lbnRcIlxyXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBlanMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAjY29weUJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY29udGVudD1cIkNvcHlcIlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvcHktYnRuXCJcclxuICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZWpzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgI3JlcGxhY2VCdXR0b25cclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ9XCJSZXBsYWNlXCJcclxuICAgICAgICAgICAgICAgIGlzUHJpbWFyeT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1yb3ctMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImN1c2NvbC0wXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICA8ZWpzLWRyb3Bkb3dubGlzdFxyXG4gICAgICAgICAgICAgICNxdWVyeUNhdGVnb3J5XHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgIGlkPVwicXVlcnlDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicXVlcnlMaXN0XCJcclxuICAgICAgICAgICAgICBpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgIFtmaWVsZHNdPVwieyB0ZXh0OiAndGV4dCcsIHZhbHVlOiAnaWQnIH1cIlxyXG4gICAgICAgICAgICAgIChzZWxlY3QpPVwib25RdWVyeVNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIFJlcGhyYXNlXHJcbiAgICAgICAgICAgIDwvZWpzLWRyb3Bkb3dubGlzdD5cclxuICAgICAgICAgICAgPGVqcy1kcm9wZG93bmxpc3RcclxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkUXVlcnkgPT0gJ1JlcGhyYXNlJ1wiXHJcbiAgICAgICAgICAgICAgaWQ9XCJjaGlwcy1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICNjaGlwTGlzdFxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE2MHB4XCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoaXBWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicmVwaHJhc2VUeWxlTGlzdFwiXHJcbiAgICAgICAgICAgICAgW2ZpZWxkc109XCJ7IHRleHQ6ICd0ZXh0JywgdmFsdWU6ICdpZCcgfVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvbkNoaXBDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Vqcy1kcm9wZG93bmxpc3Q+XHJcbiAgICAgICAgICAgIDxlanMtZHJvcGRvd25saXN0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFF1ZXJ5ID09ICdUcmFuc2xhdGUnXCJcclxuICAgICAgICAgICAgICAjbGFuZ3VhZ2VDYXRlZ29yeVxyXG4gICAgICAgICAgICAgIGluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJsYW5ndWFnZS1DYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwibGFuZ3VhZ2VMaXN0XCJcclxuICAgICAgICAgICAgICBbZmllbGRzXT1cInsgdGV4dDogJ3RleHQnLCB2YWx1ZTogJ2lkJyB9XCJcclxuICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uTGFuZ3VhZ2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9lanMtZHJvcGRvd25saXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY3VzY29sLTFcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIDxlanMtY2hpcGxpc3RcclxuICAgICAgICAgICAgICBpZD1cImNoaXBzLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgI2NoaXBMaXN0XHJcbiAgICAgICAgICAgICAgW2NoaXBzXT1cIlsnU3RhbmRhcmQnLCAnRmx1ZW50JywgJ1Byb2Zlc3Npb25hbCddXCJcclxuICAgICAgICAgICAgICBzZWxlY3Rpb249XCJTaW5nbGVcIlxyXG4gICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRDaGlwc109XCJbMF1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Vqcy1jaGlwbGlzdD4gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBlanMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgI3JlZ2VuZXJhdGVCdXR0b25cclxuICAgICAgICAgICAgICBjb250ZW50PVwiUmVnZW5lcmF0ZVwiXHJcbiAgICAgICAgICAgICAgaXNQcmltYXJ5PVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tcm93LTFcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gNDBweClcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjdXNjb2wtMFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDsgaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgPGVqcy1yaWNodGV4dGVkaXRvclxyXG4gICAgICAgICAgICAgICAgI2xlZnRSdGVcclxuICAgICAgICAgICAgICAgIGlkPVwibGVmdFJ0ZVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcclxuICAgICAgICAgICAgICAgIFt0b29sYmFyU2V0dGluZ3NdPVwieyBlbmFibGU6IGZhbHNlIH1cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBbmFseXNpcyBvZiBBSSBTdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9lanMtcmljaHRleHRlZGl0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY3VzY29sLTFcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICAgICAgICA8ZWpzLXJpY2h0ZXh0ZWRpdG9yXHJcbiAgICAgICAgICAgICAgICAjcmlnaHRSdGVcclxuICAgICAgICAgICAgICAgIGlkPVwicmlnaHRSdGVcIlxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXHJcbiAgICAgICAgICAgICAgICBbdG9vbGJhclNldHRpbmdzXT1cInsgZW5hYmxlOiBmYWxzZSB9XCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQW5hbHlzaXMgb2YgQUkgU3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICBjc3NDbGFzcz1cImUtb3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAtLT5cclxuICAgICAgICAgICAgICA8L2Vqcy1yaWNodGV4dGVkaXRvcj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vLXJlc3VsdHMtZm91bmRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJuby1yZXN1bHRzLWZvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAyNDRweDsgYWxpZ24tY29udGVudDogY2VudGVyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUwXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jZG4tYm9sZGRlc2svYWdlbnQtYW5ndWxhci1hcHAvaW1hZ2VzL2xpZ2h0L25vLXJlY29yZHMtd2FybmluZy5zdmdcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXY+Tm8gcmVzdWx0cyBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJza2VsZXRvbklkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICAgICNza2VsZXRvbklkMVxyXG4gICAgICAgICAgICAgICAgICBzaGFwZT1cIlJlY3RhbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2cHhcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICA8ZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICAgICNza2VsZXRvbklkMlxyXG4gICAgICAgICAgICAgICAgICBzaGFwZT1cIlJlY3RhbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2cHhcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjkwJVwiXHJcbiAgICAgICAgICAgICAgICA+PC9lanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgIDxlanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgICAgI3NrZWxldG9uSWQzXHJcbiAgICAgICAgICAgICAgICAgIHNoYXBlPVwiUmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzAlXCJcclxuICAgICAgICAgICAgICAgID48L2Vqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgPGVqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgICAjc2tlbGV0b25JZDRcclxuICAgICAgICAgICAgICAgICAgc2hhcGU9XCJSZWN0YW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MCVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICA8ZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICAgICNza2VsZXRvbklkNVxyXG4gICAgICAgICAgICAgICAgICBzaGFwZT1cIlJlY3RhbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2cHhcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwJVwiXHJcbiAgICAgICAgICAgICAgICA+PC9lanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgIDxlanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgICAgI3NrZWxldG9uSWQ2XHJcbiAgICAgICAgICAgICAgICAgIHNoYXBlPVwiUmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAlXCJcclxuICAgICAgICAgICAgICAgID48L2Vqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9lanMtZGlhbG9nPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cInRvYXN0XCIgKm5nSWY9XCJzaG93TXNnXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInRvYXN0X3RleHRcIj5GaXJzdCwgU2VsZWN0IHNvbWUgdGV4dDwvc3BhblxyXG4gICAgPjxzcGFuIGNsYXNzPVwiY2xvc2VfaWNvblwiIChjbGljayk9XCJoaWRlVG9hc3QoKVwiPjwvc3Bhbj5cclxuICA8L2Rpdj4gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
696
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmljaHRleHRlZGl0b3IvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmljaHRleHRlZGl0b3IvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBd0x4QjtJQUNBO0lBQ0E7SUF4TEgsTUFBTSxDQUEwQjtJQUVoQyxhQUFhLENBQXlCO0lBRXRDLE9BQU8sQ0FBMkI7SUFFbEMsUUFBUSxDQUEyQjtJQUNNLFFBQVEsQ0FBbUI7SUFFcEUsZUFBZSxDQUFtQjtJQUVsQyxnQkFBZ0IsQ0FBbUI7SUFFbkMsVUFBVSxDQUFtQjtJQUU3QixhQUFhLENBQW1CO0lBQ3ZDLGlGQUFpRjtJQUV4RSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQ3RCLFlBQVksR0FBRyxHQUFHLENBQUM7SUFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLGNBQWM7SUFDcEMsbUJBQW1C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RSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlwQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBEcm9wRG93bkxpc3RDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7XHJcbiAgUmljaFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgVG9vbGJhclNldHRpbmdzTW9kZWwsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1idXR0b25zXCI7XHJcbmltcG9ydCB7IERyb3BEb3duQnV0dG9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXNwbGl0YnV0dG9uc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcG9wdXBzXCI7XHJcbi8vIHNlcnZpY2VcclxuLy8gaW1wb3J0IHsgUGJGdW5TZXJ2aWNlIH0gZnJvbSBcIkBhcHAvc2VydmljZXMvcGItZnVuLnNlcnZpY2VcIjtcclxuLy8gaW1wb3J0IHsgU2hhcmVkU3luY2Z1c2lvbk1vZHVsZSB9IGZyb20gXCJAYXBwL21vZHVsZS9zeW5jZnVzaW9uTW9kdWxlXCI7XHJcbmltcG9ydCB7IE9wZW5BaU1vZGVsUlRFIH0gZnJvbSBcIi4vb3BlbmFwaVwiO1xyXG5pbXBvcnQgeyBsaW5lSGVpZ2h0X2l0ZW1zIH0gZnJvbSBcIi4vZGF0YS1jb25maWdcIjtcclxuaW1wb3J0IHsgZm9udEZhbWlseSwgc2l6ZSB9IGZyb20gXCIuL2RhdGEtY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldEFJQ29uZmlnLCBpc0FJQ29uZmlnVmFsaWQsIEFJQ29uZmlnIH0gZnJvbSBcIi4vYWktY29uZmlnXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtcmljaHRleHQtZWRpdG9yXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAvLyBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIC8vIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZFN5bmNmdXNpb25Nb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmljaHRleHRlZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoXCJlZGl0b3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJ0ZU9iajogUmljaFRleHRFZGl0b3JDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInF1ZXJ5Q2F0ZWdvcnlcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHF1ZXJ5Q2F0ZWdvcnkhOiBEcm9wRG93bkxpc3RDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImxlZnRSdGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGxlZnRSdGUhOiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwicmlnaHRSdGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJpZ2h0UnRlITogUmljaFRleHRFZGl0b3JDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcIkFJZGlhbG9nXCIsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBBSWRpYWxvZyE6IERpYWxvZ0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwic2VudGltZW50QnV0dG9uXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyBzZW50aW1lbnRCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInJlZ2VuZXJhdGVCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlZ2VuZXJhdGVCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImNvcHlCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGNvcHlCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInJlcGxhY2VCdXR0b25cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlcGxhY2VCdXR0b24hOiBCdXR0b25Db21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZChcImNoaXBMaXN0XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgY2hpcExpc3QhOiBDaGlwTGlzdENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcclxuICBASW5wdXQoKSBlZGl0b3JJZCA9IFwiZWRpdG9ySWRcIjtcclxuICBASW5wdXQoKSBzYXZlSW50ZXJ2YWwgPSA1MDA7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgQElucHV0KCkgYXV0b1NhdmVPbklkbGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGFyZ2V0ID0gXCIjbWFpblBhZ2VcIjsgLy8gZGlhbG9nIOW8ueeql+eItue6p1xyXG4gIEBJbnB1dCgpIGluc2VydEltYWdlU2V0dGluZ3MgPSB7XHJcbiAgICBzYXZlRm9ybWF0OiBcIkJsb2JcIixcclxuICAgIGFsbG93ZWRUeXBlczogW1wiLnN2Z1wiLCBcIi5wbmdcIl0sXHJcbiAgICBkaXNwbGF5OiBcIm5vbmVcIixcclxuICB9O1xyXG4gIEBJbnB1dCgpIHNob3dUaWNrZXRBdHRhY2htZW50ID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uQmVnaW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlucHV0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyUGFzdGVDbGVhbnVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBmYW1pbHkgPSBmb250RmFtaWx5O1xyXG4gIGZvbnRTaXplID0gc2l6ZTtcclxuICBkaWFsb2dXaWR0aCA9IFwiODAwcHhcIjtcclxuICBkaWFsb2dIZWlnaHQgPSBcIjY0MnB4XCI7XHJcbiAgc2hvd1pvb21CdG4gPSB0cnVlO1xyXG4gIHNob3dNc2cgPSBmYWxzZTtcclxuICBlZGl0b3JNYW5hZ2VyOiBhbnk7XHJcbiAgc2l6ZSA9IFwiXCI7XHJcbiAgc2VsZWN0ZWRRdWVyeTtcclxuICBwdWJsaWMgZHJvcFZhbEluZGV4ID0gMDtcclxuICBwdWJsaWMgcXVlcnlMaXN0OiB7IGlkOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W10gPSBbXHJcbiAgICB7IGlkOiBcIlJlcGhyYXNlXCIsIHRleHQ6IFwiUmVwaHJhc2VcIiB9LFxyXG4gICAgeyBpZDogXCJHcmFtbWFyXCIsIHRleHQ6IFwiQ29ycmVjdCBHcmFtbWFyXCIgfSxcclxuICAgIHsgaWQ6IFwiU3VtbWFyaXplXCIsIHRleHQ6IFwiU3VtbWFyaXplXCIgfSxcclxuICAgIHsgaWQ6IFwiRWxhYm9yYXRlXCIsIHRleHQ6IFwiRWxhYm9yYXRlXCIgfSxcclxuICAgIHsgaWQ6IFwiVHJhbnNsYXRlXCIsIHRleHQ6IFwiVHJhbnNsYXRlXCIgfSxcclxuICAgIHsgaWQ6IFwiU2VudGltZW50QW5hbHlzaXNcIiwgdGV4dDogXCJTZW50aW1lbnQgQW5hbHlzaXNcIiB9LFxyXG4gIF07XHJcbiAgcHVibGljIHJlcGhyYXNlVHlsZUxpc3QgPSBbXHJcbiAgICB7IHRleHQ6IFwiU3RhbmRhcmRcIiwgaWQ6IFwiU3RhbmRhcmRcIiB9LFxyXG4gICAgeyB0ZXh0OiBcIkZsdWVudFwiLCBpZDogXCJGbHVlbnRcIiB9LFxyXG4gICAgeyB0ZXh0OiBcIlByb2Zlc3Npb25hbFwiLCBpZDogXCJQcm9mZXNzaW9uYWxcIiB9LFxyXG4gIF07XHJcbiAgcHVibGljIGxhbmd1YWdlTGlzdDogeyBpZDogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdID0gW1xyXG4gICAgeyBpZDogXCJFTlwiLCB0ZXh0OiBcIkVuZ2xpc2hcIiB9LFxyXG4gICAgeyBpZDogXCJaSFwiLCB0ZXh0OiBcIkNoaW5lc2UgKFNpbXBsaWZpZWQpXCIgfSxcclxuICAgIHsgaWQ6IFwiRVNcIiwgdGV4dDogXCJTcGFuaXNoXCIgfSxcclxuICAgIHsgaWQ6IFwiWkhUXCIsIHRleHQ6IFwiQ2hpbmVzZSAoVHJhZGl0aW9uYWwpXCIgfSxcclxuICAgIHsgaWQ6IFwiSElcIiwgdGV4dDogXCJIaW5kaVwiIH0sXHJcbiAgICB7IGlkOiBcIkFSXCIsIHRleHQ6IFwiQXJhYmljXCIgfSxcclxuICAgIHsgaWQ6IFwiQk5cIiwgdGV4dDogXCJCZW5nYWxpXCIgfSxcclxuICAgIHsgaWQ6IFwiUFRcIiwgdGV4dDogXCJQb3J0dWd1ZXNlXCIgfSxcclxuICAgIHsgaWQ6IFwiUlVcIiwgdGV4dDogXCJSdXNzaWFuXCIgfSxcclxuICAgIHsgaWQ6IFwiSkFcIiwgdGV4dDogXCJKYXBhbmVzZVwiIH0sXHJcbiAgICB7IGlkOiBcIkRFXCIsIHRleHQ6IFwiR2VybWFuXCIgfSxcclxuICAgIHsgaWQ6IFwiS09cIiwgdGV4dDogXCJLb3JlYW5cIiB9LFxyXG4gICAgeyBpZDogXCJGUlwiLCB0ZXh0OiBcIkZyZW5jaFwiIH0sXHJcbiAgICB7IGlkOiBcIklUXCIsIHRleHQ6IFwiSXRhbGlhblwiIH0sXHJcbiAgICB7IGlkOiBcIlRSXCIsIHRleHQ6IFwiVHVya2lzaFwiIH0sXHJcbiAgXTtcclxuICBwdWJsaWMgcHJvbXB0UXVlcnkgPSBcIlwiO1xyXG4gIHB1YmxpYyBpc1NlbnRpbWVudENoZWNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHN1YlF1ZXJ5ID0gXCJcIjtcclxuICBwdWJsaWMgdHJhbnNsYXRlbGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgcHVibGljIGNoaXBWYWx1ZSA9IFwiU3RhbmRhcmRcIjtcclxuICBwdWJsaWMgYXBpUmVzdWx0RGF0YTogYW55O1xyXG4gIHB1YmxpYyBBSVJlc3VsdCE6IHN0cmluZztcclxuICB0b29sczogVG9vbGJhclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGVGbG9hdGluZzogZmFsc2UsXHJcbiAgICBpdGVtczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdG9vbHRpcFRleHQ6IFwiQUkgQXNzaXN0XCIsXHJcbiAgICAgICAgdGVtcGxhdGU6XHJcbiAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz1cImUtdGJhci1idG4gZS1idG5cIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJhaV9hc3Npc3RhbnRfYnV0dG9uX3RiYXJcIiBzdHlsZT1cIndpZHRoOjEwMCVcIj48ZGl2IGNsYXNzPVwiZS1ydGUtZHJvcGRvd24tYnRuLXRleHRcIj5BSSBBc3Npc3Q8L2Rpdj48L2J1dHRvbj4nLFxyXG4gICAgICB9LFxyXG4gICAgICBcIkJvbGRcIixcclxuICAgICAgXCJJdGFsaWNcIixcclxuICAgICAgXCJVbmRlcmxpbmVcIixcclxuICAgICAgXCJTdHJpa2VUaHJvdWdoXCIsXHJcbiAgICAgIFwiRm9udE5hbWVcIixcclxuICAgICAgXCJGb250U2l6ZVwiLFxyXG4gICAgICBcIkZvbnRDb2xvclwiLFxyXG4gICAgICBcIkJhY2tncm91bmRDb2xvclwiLFxyXG4gICAgICBcIkxvd2VyQ2FzZVwiLFxyXG4gICAgICBcIlVwcGVyQ2FzZVwiLFxyXG4gICAgICBcInxcIixcclxuICAgICAgXCJDcmVhdGVUYWJsZVwiLFxyXG4gICAgICBcIkZvcm1hdHNcIixcclxuICAgICAgXCJBbGlnbm1lbnRzXCIsXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICB0b29sdGlwVGV4dDogXCJMaW5lIEhlaWdodFwiLFxyXG4gICAgICAvLyAgIHRlbXBsYXRlOlxyXG4gICAgICAvLyAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwibGluZWhlaWdodF90YmFyXCIgIHN0eWxlPVwid2lkdGg6MTAwJVwiPjwvYnV0dG9uPicsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIFwiYnVsbGV0Rm9ybWF0TGlzdFwiLFxyXG4gICAgICBcIk51bWJlckZvcm1hdExpc3RcIixcclxuICAgICAgXCJPdXRkZW50XCIsXHJcbiAgICAgIFwiSW5kZW50XCIsXHJcbiAgICAgIFwifFwiLFxyXG4gICAgICBcIkNyZWF0ZUxpbmtcIixcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIHRvb2x0aXBUZXh0OiBcIlwiLFxyXG4gICAgICAvLyAgIHRlbXBsYXRlOlxyXG4gICAgICAvLyAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwiY3VzdG9tX3RiYXJcIiAgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+JyArXHJcbiAgICAgIC8vICAgICAnPGRpdiBjbGFzcz1cImUtdGJhci1idG4tdGV4dFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj48aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ZpbGUtaWNvbi5zdmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTt0b3A6IC0ycHg7XCIvPjxkaXYgY2xhc3M9XCJ1cGxvYWRBY3Rpb25zXCI+PGRpdiBpZD1cInVwbG9hZEZyb21Vc2VyXCI+Q29tcHV0ZXIgRmlsZTwvZGl2PjxkaXYgaWQ9XCJyZWxhdGlvbkRvbVwiPlRpY2tldCBBdHRhY2htZW50PC9kaXY+PC9kaXY+PC9kaXY+PC9idXR0b24+JyxcclxuICAgICAgLy8gfSxcclxuICAgICAgXCJ8XCIsXHJcbiAgICAgIFwiRm9ybWF0UGFpbnRlclwiLFxyXG4gICAgICBcIkNsZWFyRm9ybWF0XCIsXHJcbiAgICAgIFwifFwiLFxyXG4gICAgICBcIlVuZG9cIixcclxuICAgICAgXCJSZWRvXCIsXHJcbiAgICAgIC8vJ1NvdXJjZUNvZGUnLFxyXG4gICAgXSxcclxuICB9O1xyXG4gIHB1YmxpYyBpc0RpYWxvZ1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYnVsbGV0Rm9ybWF0TGlzdCA9IHtcclxuICAgIHR5cGVzOiBbXHJcbiAgICAgIHsgdGV4dDogXCJOb25lXCIsIHZhbHVlOiBcIm5vbmVcIiB9LFxyXG4gICAgICB7IHRleHQ6IFwi4pePXCIsIHZhbHVlOiBcImRpc2NcIiB9LFxyXG4gICAgICB7IHRleHQ6IFwi4peLXCIsIHZhbHVlOiBcImNpcmNsZVwiIH0sXHJcbiAgICAgIHsgdGV4dDogXCLilqBcIiwgdmFsdWU6IFwic3F1YXJlXCIgfSxcclxuICAgICAgLy8gQWRkIHlvdXIgY3VzdG9tIGJ1bGxldCBzdHlsZSBoZXJlXHJcbiAgICAgIHsgdGV4dDogXCItXCIsIHZhbHVlOiBcImRhc2hcIiB9LFxyXG4gICAgXSxcclxuICB9O1xyXG4gIHB1YmxpYyBudW1iZXJGb3JtYXRMaXN0ID0ge1xyXG4gICAgdHlwZXM6IFtcclxuICAgICAgeyB0ZXh0OiBcIk5vbmVcIiwgdmFsdWU6IFwibm9uZVwiIH0sXHJcbiAgICAgIHsgdGV4dDogXCIxLCAyLCAzLCDigKZcIiwgdmFsdWU6IFwiZGVjaW1hbFwiIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcIs6xLCDOsiwgzrMsIOKAplwiLFxyXG4gICAgICAgIHZhbHVlOiBcImxvd2VyR3JlZWtcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiaSwgaWksIGlpaSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwibG93ZXJSb21hblwiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGV4dDogXCJBLCBCLCBDLCDigKZcIixcclxuICAgICAgICB2YWx1ZTogXCJ1cHBlckFscGhhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcImEsIGIsIGMsIOKAplwiLFxyXG4gICAgICAgIHZhbHVlOiBcImxvd2VyQWxwaGFcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiSSwgSUksIElJSSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwidXBwZXJSb21hblwiLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyBBZGQgeW91ciBjdXN0b20gYnVsbGV0IHN0eWxlIGhlcmVcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IFwiKDEpLCAoMiksICgzKSwg4oCmXCIsXHJcbiAgICAgICAgdmFsdWU6IFwicGFyZW50aGVzZXNcIixcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zaG93VGlja2V0QXR0YWNobWVudCkge1xyXG4gICAgICBjb25zdCBpdGVtID0ge1xyXG4gICAgICAgIHRvb2x0aXBUZXh0OiBcIlwiLFxyXG4gICAgICAgIHRlbXBsYXRlOlxyXG4gICAgICAgICAgJzxidXR0b24gY2xhc3M9XCJlLXRiYXItYnRuIGUtYnRuXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwiY3VzdG9tX3RiYXJcIiAgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cImUtdGJhci1idG4tdGV4dFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj48aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ZpbGUtaWNvbi5zdmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIi8+PGRpdiBjbGFzcz1cInVwbG9hZEFjdGlvbnNcIj48ZGl2IGlkPVwidXBsb2FkRnJvbVVzZXJcIj5Db21wdXRlciBGaWxlPC9kaXY+PGRpdiBpZD1cInJlbGF0aW9uRG9tXCI+VGlja2V0IEF0dGFjaG1lbnQ8L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj4nLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnRvb2xzLml0ZW1zLnNwbGljZSgyMiwgMCwgaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNvbnRlbnRDaGFuZ2UoYXJncykge1xyXG4gICAgLy8gY29uc3QgdGFibGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhYmxlLmUtcnRlLXRhYmxlXCIpO1xyXG4gICAgLy8gdGFibGVzLmZvckVhY2goKHRhYmxlKSA9PiB7XHJcbiAgICAvLyAgIGNvbnN0IGh0bWxUYWJsZSA9IHRhYmxlIGFzIEhUTUxUYWJsZUVsZW1lbnQ7XHJcbiAgICAvLyAgIGh0bWxUYWJsZS5zdHlsZS5tYXJnaW5Cb3R0b20gPSBcIjEwcHhcIjtcclxuICAgIC8vICAgaHRtbFRhYmxlLnN0eWxlLmJvcmRlckNvbGxhcHNlID0gXCJjb2xsYXBzZVwiO1xyXG4gICAgLy8gICBodG1sVGFibGUuc3R5bGUuZW1wdHlDZWxscyA9IFwic2hvd1wiO1xyXG4gICAgLy8gICBjb25zdCB0ZEVsZW1lbnRzID0gdGFibGUucXVlcnlTZWxlY3RvckFsbChcInRkXCIpO1xyXG4gICAgLy8gICB0ZEVsZW1lbnRzLmZvckVhY2goKHRkKSA9PiB7XHJcbiAgICAvLyAgICAgdGQuc3R5bGUuYm9yZGVyID0gXCIxcHggc29saWQgI2FkYjViZFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLmhlaWdodCA9IFwiMjBweFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLm1pbldpZHRoID0gXCIyMHB4XCI7XHJcbiAgICAvLyAgICAgdGQuc3R5bGUucGFkZGluZyA9IFwiMnB4IDVweFwiO1xyXG4gICAgLy8gICAgIHRkLnN0eWxlLmJveFNpemluZyA9IFwiYm9yZGVyLWJveFwiO1xyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH0pO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChhcmdzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIC8vYWRkIHRoZSBsaW5lIGhlaWdodFxyXG4gICAgLy8gdGhpcy5lZGl0b3JNYW5hZ2VyID0gdGhpcy5ydGVPYmouZm9ybWF0dGVyLmVkaXRvck1hbmFnZXI7XHJcbiAgICAvLyBsZXQgc3BsaXRCdXR0b24gPSBuZXcgRHJvcERvd25CdXR0b24oe1xyXG4gICAgLy8gICBpdGVtczogbGluZUhlaWdodF9pdGVtcyxcclxuICAgIC8vICAgaWNvbkNzczogXCJlLWljb25zIGUtbGluZS1zcGFjaW5nXCIsXHJcbiAgICAvLyAgIHNlbGVjdDogdGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyBzcGxpdEJ1dHRvbi5hcHBlbmRUbyhcIiNsaW5laGVpZ2h0X3RiYXJcIik7XHJcbiAgICAvLyBhaSBhc3Npc3RcclxuICAgIGxldCBhaWFzc2lzdGFudEJ1dHRvbiA9IG5ldyBEcm9wRG93bkJ1dHRvbih7XHJcbiAgICAgIGl0ZW1zOiB0aGlzLnF1ZXJ5TGlzdCxcclxuICAgICAgLy8gaWNvbkNzczogXCJlLWJ0bi1pY29uIGUtaWNvbnMgZS1hc3Npc3R2aWV3LWljb24gZS1pY29uLWxlZnRcIixcclxuICAgICAgc2VsZWN0OiAoYXJncykgPT4gdGhpcy5haVF1ZXJ5U2VsZWN0ZWRNZW51KGFyZ3MpLFxyXG4gICAgfSk7XHJcbiAgICBhaWFzc2lzdGFudEJ1dHRvbi5hcHBlbmRUbyhcIiNhaV9hc3Npc3RhbnRfYnV0dG9uX3RiYXJcIik7XHJcbiAgICB0aGlzLmNyZWF0ZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlbGVjdChhcmdzKSB7XHJcbiAgICBpZiAodGhpcy5ydGVPYmouZm9ybWF0dGVyLmdldFVuZG9SZWRvU3RhY2soKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5ydGVPYmouZm9ybWF0dGVyLnNhdmVEYXRhKCk7XHJcbiAgICB9XHJcbiAgICBsZXQgbm9kZXM6IE5vZGVbXSA9IHRoaXMuZWRpdG9yTWFuYWdlci5kb21Ob2RlLmJsb2NrTm9kZXMoKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IG5vZGVzLmxlbmd0aCA+IGk7IGkrKykge1xyXG4gICAgICAobm9kZXNbaV0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmxpbmVIZWlnaHQgPSBhcmdzLml0ZW0udGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMucnRlT2JqLmZvcm1hdHRlci5zYXZlRGF0YSgpO1xyXG4gICAgdGhpcy5ydGVPYmouZm9ybWF0dGVyLmVuYWJsZVVuZG8odGhpcy5ydGVPYmopO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhaVF1ZXJ5U2VsZWN0ZWRNZW51KGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2d1ZU9wZW4oYXJncy5pdGVtLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZGlhbG9ndWVPcGVuKHNlbGVjdGVkUXVlcnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdmFyIHNlbGVjdGlvblRleHQgPSB0aGlzLnJ0ZU9iai5nZXRTZWxlY3RlZEh0bWwoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWVyeSA9IHNlbGVjdGVkUXVlcnk7XHJcbiAgICBpZiAoc2VsZWN0aW9uVGV4dCkge1xyXG4gICAgICBsZXQgcmFuZ2U6IFJhbmdlID0gKFxyXG4gICAgICAgIHRoaXMucnRlT2JqIGFzIGFueVxyXG4gICAgICApLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24uZ2V0UmFuZ2UoXHJcbiAgICAgICAgKHRoaXMucnRlT2JqIGFzIGFueSkuY29udGVudE1vZHVsZS5nZXREb2N1bWVudCgpXHJcbiAgICAgICk7XHJcbiAgICAgICh0aGlzLnJ0ZU9iaiBhcyBhbnkpLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24uc2F2ZShcclxuICAgICAgICByYW5nZSxcclxuICAgICAgICAodGhpcy5ydGVPYmogYXMgYW55KS5jb250ZW50TW9kdWxlLmdldERvY3VtZW50KClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5kcm9wVmFsSW5kZXggPSB0aGlzLnF1ZXJ5TGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgKHEpID0+IHEudGV4dC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFF1ZXJ5LnRvTG93ZXJDYXNlKClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5xdWVyeUNhdGVnb3J5LmluZGV4ID0gdGhpcy5kcm9wVmFsSW5kZXg7XHJcbiAgICAgIHRoaXMubGVmdFJ0ZS52YWx1ZSA9IHRoaXMucHJvbXB0UXVlcnkgPSBzZWxlY3Rpb25UZXh0O1xyXG4gICAgICB0aGlzLmxlZnRSdGUucmVmcmVzaFVJKCk7XHJcbiAgICAgIHRoaXMuQUlkaWFsb2cuc2hvdygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKHNlbGVjdGVkUXVlcnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5zaG93TXNnID0gdHJ1ZTtcclxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vICAgdGhpcy5zaG93TXNnID0gZmFsc2U7XHJcbiAgICAgIC8vIH0sIDMwMDApO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlBsZWFzZSBzZWxlY3QgdGhlIGNvbnRlbnQgdG8gcGVyZm9ybSB0aGUgQUkgb3BlcmF0aW9uLlwiKTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nLnNob3dOb3RpZmljYXRpb24oXCJGaXJzdCwgU2VsZWN0IHNvbWUgdGV4dFwiLCB7XHJcbiAgICAgICAgc3RhdHVzOiBcIldhcm5pbmdcIixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBSVN1Z2Vzc3Rpb25zRGF0YShzZWxlY3RlZFF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZW50aW1lbnRDaGVjayA9IGZhbHNlO1xyXG4gICAgc3dpdGNoIChzZWxlY3RlZFF1ZXJ5KSB7XHJcbiAgICAgIGNhc2UgXCJTdW1tYXJpemVcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJTdW1tYXJpemUgdGhlIHVwY29taW5nIHNlbnRlbmNlIHNob3J0bHkuXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJFbGFib3JhdGVcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJFbGFib3JhdGUgb24gdGhlIHVwY29taW5nIHNlbnRlbmNlLlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUmVwaHJhc2VcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gdGhpcy5jaGlwVmFsdWUgKyBcIiByZXBocmFzZSB0aGUgdXBjb21pbmcgc2VudGVuY2UuXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJDb3JyZWN0IEdyYW1tYXJcIjpcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID0gXCJDb3JyZWN0IHRoZSBncmFtbWFyIG9mIHRoZSB1cGNvbWluZyBzZW50ZW5jZS5cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlRyYW5zbGF0ZVwiOlxyXG4gICAgICAgIHRoaXMuc3ViUXVlcnkgPVxyXG4gICAgICAgICAgXCJUcmFuc2xhdGUgdGhlIHVwY29taW5nIHNlbnRlbmNlIHRvIFwiICsgdGhpcy50cmFuc2xhdGVsYW5ndWFnZSArIFwiLlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiU2VudGltZW50IEFuYWx5c2lzXCI6XHJcbiAgICAgICAgdGhpcy5pc1NlbnRpbWVudENoZWNrID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN1YlF1ZXJ5ID1cclxuICAgICAgICAgICdBbmFseXplIHRoZSBzZW50aW1lbnQgYW5kIGdyYW1tYXIgb2YgdGhlIGZvbGxvd2luZyBwYXJhZ3JhcGhzIGFuZCBwcm92aWRlIHRoZSBleHByZXNzaW9uIHNjb3JlIHdpdGggYW4gZW1vamkgZm9sbG93ZWQgYnkgdGhlIHNlbnRpbWVudCBpbiB0aGUgZm9ybWF0OiBcIvCfmIogTmV1dHJhbFwiLiBcXG5cXG5OT1RFOiBBdm9pZCBhbnkgYWRkaXRpb25hbCB0ZXh0IG9yIGV4cGxhbmF0aW9uOic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFJU3VnZXNzdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5wcm9tcHRRdWVyeSkge1xyXG4gICAgICAgIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNrZWxldG9uSWRcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPVxyXG4gICAgICAgICAgXCJcIjtcclxuICAgICAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJyaWdodFJ0ZVwiKSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9XHJcbiAgICAgICAgICBcIm5vbmVcIjtcclxuICAgICAgICB0aGlzLnNlbnRpbWVudEJ1dHRvbi5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICB0aGlzLnJlZ2VuZXJhdGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29weUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5pc0RpYWxvZ1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMucHJvbXB0UXVlcnkgPSB0aGlzLmxlZnRSdGUuZ2V0SHRtbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFwaVJlc3VsdERhdGEgPSB0aGlzLmdldFJlc3BvbnNlRnJvbU9wZW5BSShcclxuICAgICAgICAgIHRoaXMuc3ViUXVlcnksXHJcbiAgICAgICAgICB0aGlzLnByb21wdFF1ZXJ5XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmFwaVJlc3VsdERhdGEudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5pc0RpYWxvZ1Zpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5BSVJlc3VsdCA9IHRoaXMuaXNTZW50aW1lbnRDaGVjayA/IHRoaXMucHJvbXB0UXVlcnkgOiByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLnNlbnRpbWVudEJ1dHRvbi5jb250ZW50ID0gcmVzdWx0XHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyhcInBvc2l0aXZlXCIpXHJcbiAgICAgICAgICAgID8gXCLwn5iKIFBvc2l0aXZlXCJcclxuICAgICAgICAgICAgOiByZXN1bHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5lZ2F0aXZlXCIpXHJcbiAgICAgICAgICAgID8gXCLwn5ieIE5lZ2F0aXZlXCJcclxuICAgICAgICAgICAgOiBcIvCfmJAgTmV1dHJhbFwiO1xyXG4gICAgICAgICAgdGhpcy5zZW50aW1lbnRCdXR0b24uZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIXRoaXMuaXNTZW50aW1lbnRDaGVja1xyXG4gICAgICAgICAgICA/IFwibm9uZVwiXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMucmlnaHRSdGUudmFsdWUgPSB0aGlzLkFJUmVzdWx0O1xyXG4gICAgICAgICAgdmFyIG5vUmVzdWx0c0ZvdW5kID0gISh0aGlzLkFJUmVzdWx0IHx8IHRoaXMucHJvbXB0UXVlcnkpO1xyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5vLXJlc3VsdHMtZm91bmRcIikgYXMgSFRNTEVsZW1lbnRcclxuICAgICAgICAgICkuc3R5bGUuZGlzcGxheSA9IG5vUmVzdWx0c0ZvdW5kID8gXCJcIiA6IFwibm9uZVwiO1xyXG4gICAgICAgICAgdGhpcy5yZWdlbmVyYXRlQnV0dG9uLmRpc2FibGVkID0gbm9SZXN1bHRzRm91bmQ7XHJcbiAgICAgICAgICB0aGlzLmNvcHlCdXR0b24uZGlzYWJsZWQgPSBub1Jlc3VsdHNGb3VuZDtcclxuICAgICAgICAgIHRoaXMucmVwbGFjZUJ1dHRvbi5kaXNhYmxlZCA9IG5vUmVzdWx0c0ZvdW5kO1xyXG4gICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2tlbGV0b25JZFwiKSBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9XHJcbiAgICAgICAgICAgIFwibm9uZVwiO1xyXG4gICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRSdGVcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPVxyXG4gICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA/IFwibm9uZVwiIDogXCJcIjtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCxcclxuICAgICAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRSdGVcIikgYXMgSFRNTEVsZW1lbnQpLnN0eWxlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAvLyB0aGlzLnRvYXN0T2JqLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFJlc3BvbnNlRnJvbU9wZW5BSShcclxuICAgIHN1YlF1ZXJ5OiBzdHJpbmcsXHJcbiAgICBwcm9tcHRRdWVyeTogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgcm9sZTogXCJzeXN0ZW1cIixcclxuICAgICAgICBjb250ZW50OiBzdWJRdWVyeS5pbmNsdWRlcyhcclxuICAgICAgICAgIFwiZW1vamkgZm9sbG93ZWQgYnkgdGhlIHNlbnRpbWVudCBpbiB0aGUgZm9ybWF0XCJcclxuICAgICAgICApXHJcbiAgICAgICAgICA/IFwiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiBQbGVhc2UgcmVzcG9uZCBpbiBzdHJpbmcgZm9ybWF0LlwiXHJcbiAgICAgICAgICA6IFwiTk9URTogUmV0dXJuIHNhbWUgaHRtbCBmb3JtYXQganVzdCBkbyBjaGFuZ2VzIGNvbnRlbnQgb25seS4gZG9uJ3QgY2hhbmdlIGh0bWwgZm9ybWF0cy5cIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHJvbGU6IFwidXNlclwiLFxyXG4gICAgICAgIGNvbnRlbnQ6IGAke3N1YlF1ZXJ5fSAke3Byb21wdFF1ZXJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtID0ge1xyXG4gICAgICBtZXNzYWdlczogbWVzc2FnZXMsXHJcbiAgICAgIG1heF90b2tlbnM6IDEwMDAsXHJcbiAgICAgIHRlbXBlcmF0dXJlOiAwLjcsXHJcbiAgICAgIHRvcF9wOiAxLFxyXG4gICAgICBmcmVxdWVuY3lfcGVuYWx0eTogMCxcclxuICAgICAgcHJlc2VuY2VfcGVuYWx0eTogMCxcclxuICAgIH07XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcImFwaS9haS9jaGF0LXN0cmVhbVwiLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpO1xyXG4gICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XHJcbiAgICAgIGxldCBmdWxsUmVzcG9uc2UgPSBcIlwiO1xyXG4gICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XHJcbiAgICAgICAgaWYgKGRvbmUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiU3RyZWFtIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNodW5rID0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pO1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gY2h1bmsuc3BsaXQoXCJcXG5cIik7XHJcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XHJcbiAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKFwiZGF0YTogXCIpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBsaW5lLnNsaWNlKDYpO1xyXG4gICAgICAgICAgICBpZiAoZGF0YSA9PT0gXCJbRE9ORV1cIikge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGZ1bGxSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHBhcnNlZC5jaG9pY2VzPy5bMF0/LmRlbHRhPy5jb250ZW50O1xyXG4gICAgICAgICAgICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBmdWxsUmVzcG9uc2UgKz0gY29udGVudDtcclxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBVSVxyXG4gICAgICAgICAgICAgICAgLy91cGRhdGVDaGF0VUkoY29udGVudCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlBhcnNlIGVycm9yOlwiLCBlLCBcIkRhdGE6XCIsIGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiU3RyZWFtIGVycm9yOlwiLCBlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlhbG9nU2hvdygpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMucmVnZW5lcmF0ZUJ1dHRvbiEuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnMoKTtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gdGhpcy5jb3B5QnV0dG9uIS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuY29weVRleHRUb0NsaXBib2FyZCh0aGlzLkFJUmVzdWx0KTtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gdGhpcy5yZXBsYWNlQnV0dG9uIS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAvLyAgIGxldCByYW5nZTogUmFuZ2UgPSAoXHJcbiAgICAvLyAgICAgdGhpcy5ydGVPYmogYXMgYW55XHJcbiAgICAvLyAgICkuZm9ybWF0dGVyLmVkaXRvck1hbmFnZXIubm9kZVNlbGVjdGlvbi5nZXRSYW5nZShcclxuICAgIC8vICAgICAodGhpcy5ydGVPYmogYXMgYW55KS5jb250ZW50TW9kdWxlLmdldERvY3VtZW50KClcclxuICAgIC8vICAgKTtcclxuICAgIC8vICAgKHRoaXMucnRlT2JqIGFzIGFueSkuZm9ybWF0dGVyLmVkaXRvck1hbmFnZXIubm9kZVNlbGVjdGlvbi5yZXN0b3JlKHJhbmdlKTtcclxuICAgIC8vICAgKHRoaXMucnRlT2JqIGFzIGFueSkuZXhlY3V0ZUNvbW1hbmQoXCJpbnNlcnRIVE1MXCIsIHRoaXMuQUlSZXN1bHQsIHtcclxuICAgIC8vICAgICB1bmRvOiB0cnVlLFxyXG4gICAgLy8gICB9KTtcclxuICAgIC8vICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgLy8gfSk7XHJcbiAgICAodGhpcy5BSWRpYWxvZyBhcyBEaWFsb2dDb21wb25lbnQpLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuQUlkaWFsb2cuaGlkZSgpO1xyXG4gICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMucmlnaHRSdGUudmFsdWUgPSBcIlwiO1xyXG4gICAgdGhpcy5sZWZ0UnRlLnZhbHVlID0gXCJcIjtcclxuICAgIHRoaXMucHJvbXB0UXVlcnkgPSBcIlwiO1xyXG4gICAgdGhpcy5jaGlwVmFsdWUgPSBcIlN0YW5kYXJkXCI7XHJcbiAgICB0aGlzLkFJUmVzdWx0ID0gXCJcIjtcclxuICAgIHRoaXMuZHJvcFZhbEluZGV4ID0gMDtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWVyeSA9IFwiUmVwaHJhc2VcIjtcclxuICAgIHRoaXMuc2VudGltZW50QnV0dG9uLmNvbnRlbnQgPSBcIvCfmIogTmV1dHJhbFwiO1xyXG4gICAgdGhpcy5zaXplID0gXCJcIjtcclxuICB9XHJcblxyXG4gIGNvcHlUZXh0VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmlnaHRSdGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yaWdodFJ0ZS5zZWxlY3RBbGwoKTtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJObyBzZWxlY3RlZCBjb250ZW50XCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XHJcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XHJcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XHJcbiAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJUZXh0IGNvcGllZCB0byBjbGlwYm9hcmQgc3VjY2Vzc2Z1bGx5IVwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNvcHkgdGV4dFwiKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gY29weSB0ZXh0OiBcIiwgZXJyKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAobmF2aWdhdG9yLmNsaXBib2FyZCkge1xyXG4gICAgLy8gICBuYXZpZ2F0b3IuY2xpcGJvYXJkXHJcbiAgICAvLyAgICAgLndyaXRlVGV4dCh0ZXh0KVxyXG4gICAgLy8gICAgIC50aGVuKCgpID0+IHtcclxuICAgIC8vICAgICAgIGNvbnNvbGUubG9nKFwiVGV4dCBjb3BpZWQgdG8gY2xpcGJvYXJkIHN1Y2Nlc3NmdWxseSFcIik7XHJcbiAgICAvLyAgICAgfSlcclxuICAgIC8vICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgLy8gICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb3B5IHRleHQ6IFwiLCBlcnIpO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgLy8gRmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgdGhlIENsaXBib2FyZCBBUElcclxuICAgIC8vICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XHJcbiAgICAvLyAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcclxuICAgIC8vICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0YXJlYSk7XHJcbiAgICAvLyAgIHRleHRhcmVhLnNlbGVjdCgpO1xyXG4gICAgLy8gICB0cnkge1xyXG4gICAgLy8gICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIlRleHQgY29waWVkIHRvIGNsaXBib2FyZCB1c2luZyBleGVjQ29tbWFuZFwiKTtcclxuICAgIC8vICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAvLyAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb3B5IHRleHQ6IFwiLCBlcnIpO1xyXG4gICAgLy8gICB9IGZpbmFsbHkge1xyXG4gICAgLy8gICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvbk92ZXJsYXlDbGljaygpOiB2b2lkIHtcclxuICAgIGxldCBhY3RpdmVFbGU6IEhUTUxFbGVtZW50IHwgbnVsbCA9IHRoaXMuQUlkaWFsb2cuZWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICBcIi5jaGFyX2Jsb2NrLmUtYWN0aXZlXCJcclxuICAgICk7XHJcbiAgICBpZiAoYWN0aXZlRWxlKSB7XHJcbiAgICAgIGFjdGl2ZUVsZS5jbGFzc0xpc3QucmVtb3ZlKFwiZS1hY3RpdmVcIik7XHJcbiAgICB9XHJcbiAgICAvL3RoaXMuY2xvc2VEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIG9uUXVlcnlTZWxlY3QoYXJncykge1xyXG4gICAgLy8gdGhpcy5jaGlwTGlzdC5zZWxlY3RlZENoaXBzID0gMDtcclxuICAgIHRoaXMudHJhbnNsYXRlbGFuZ3VhZ2UgPSBcIkVOXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkUXVlcnkgPSBhcmdzLml0ZW1EYXRhLnRleHQ7XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKGFyZ3MuaXRlbURhdGEudGV4dCk7XHJcbiAgfVxyXG5cclxuICBvbkxhbmd1YWdlU2VsZWN0KGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGVsYW5ndWFnZSA9IGFyZ3MuaXRlbURhdGEuaWQ7XHJcbiAgICB0aGlzLnVwZGF0ZUFJU3VnZXNzdGlvbnNEYXRhKFwiVHJhbnNsYXRlXCIpO1xyXG4gIH1cclxuXHJcbiAgb25DaGlwQ2xpY2soYXJnczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoaXBWYWx1ZSA9IGFyZ3MuaXRlbURhdGEudGV4dDtcclxuICAgIC8vIOS6i+S7tuS8muinpuWPkeS4pOasoSDlv4XpobvliKTmlq1hcmdzLnRleHTmmK/lkKbmnInlgLxcclxuICAgIGlmIChhcmdzLml0ZW1EYXRhLnRleHQpIHRoaXMudXBkYXRlQUlTdWdlc3N0aW9uc0RhdGEoXCJSZXBocmFzZVwiKTtcclxuICB9XHJcblxyXG4gIF90b29sYmFyQ2xpY2soYXJncykge1xyXG4gICAgdGhpcy50b29sYmFyQ2xpY2suZW1pdChhcmdzKTtcclxuICB9XHJcblxyXG4gIF9hY3Rpb25CZWdpbihhcmdzKSB7XHJcbiAgICB0aGlzLmFjdGlvbkJlZ2luLmVtaXQoYXJncyk7XHJcbiAgfVxyXG4gIF9pbnB1dChhcmdzKSB7XHJcbiAgICB0aGlzLmlucHV0LmVtaXQoYXJncyk7XHJcbiAgfVxyXG4gIF9hY3Rpb25Db21wbGV0ZShhcmdzKSB7XHJcbiAgICBpZiAoYXJncy5yZXF1ZXN0VHlwZSA9PSBcIlVMXCIpIHtcclxuICAgICAgaWYgKGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVUeXBlID09IFwiZGFzaFwiKSB7XHJcbiAgICAgICAgLy8gQXBwbHkgY3VzdG9tIHN0eWxpbmcgZm9yIGRhc2ggYnVsbGV0c1xyXG4gICAgICAgIGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVJbWFnZSA9XHJcbiAgICAgICAgICBcInVybCgnLi4vLi4vLi4vYXNzZXRzL2ltZy9idWxsZXQtZGFzaC5zdmcnKVwiO1xyXG4gICAgICAgIGFyZ3MuZWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5zdHlsZS5saXN0U3R5bGVUeXBlID0gXCJub25lXCI7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoYXJncy5yZXF1ZXN0VHlwZSA9PSBcIk9MXCIpIHtcclxuICAgICAgYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXHJcbiAgICAgICAgXCJjdXN0b20tbGlzdFwiLFxyXG4gICAgICAgIFwicGFyZW50aGVzZXNcIlxyXG4gICAgICApO1xyXG4gICAgICBpZiAoYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LnN0eWxlLmxpc3RTdHlsZVR5cGUgPT0gXCJwYXJlbnRoZXNlc1wiKSB7XHJcbiAgICAgICAgYXJncy5lbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdCA9IFwiY3VzdG9tLWxpc3RcIjtcclxuICAgICAgICBhcmdzLmVsZW1lbnRzWzBdLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInBhcmVudGhlc2VzXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoYXJncyk7XHJcbiAgfVxyXG5cclxuICBfZm9jdXMoYXJncykge1xyXG4gICAgdGhpcy5mb2N1cy5lbWl0KGFyZ3MpO1xyXG4gIH1cclxuICBfYmx1cihhcmdzKSB7XHJcbiAgICB0aGlzLmJsdXIuZW1pdChhcmdzKTtcclxuICB9XHJcbiAgX2RpYWxvZ09wZW4oYXJncykge1xyXG4gICAgaWYgKGFyZ3MuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJlLXJ0ZS1lZGl0LXRhYmxlXCIpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHZhciByb3dCb3ggPSAoXHJcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtdGFibGUtcm93LmUtbnVtZXJpY3RleHRib3hcIilbMF0gYXMgYW55XHJcbiAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdO1xyXG4gICAgICAgIHZhciBjb2x1bW5Cb3ggPSAoXHJcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICBcIi5lLXRhYmxlLWNvbHVtbi5lLW51bWVyaWN0ZXh0Ym94XCJcclxuICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdO1xyXG4gICAgICAgIHJvd0JveC5jaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAocm93Qm94LnZhbHVlID4gNTApIHtcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICAgICAgICAgICBcIi5lLXJ0ZS1lbGVtZW50cy5lLWluc2VydC10YWJsZVwiXHJcbiAgICAgICAgICAgICAgKVswXSBhcyBhbnlcclxuICAgICAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuc2hvd05vdGlmaWNhdGlvbihcclxuICAgICAgICAgICAgICBcIlRoZSByb3cgbnVtYmVyIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MC5cIixcclxuICAgICAgICAgICAgICB7IHN0YXR1czogXCJXYXJuaW5nXCIgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICAgICAgICAgICBcIi5lLXJ0ZS1lbGVtZW50cy5lLWluc2VydC10YWJsZVwiXHJcbiAgICAgICAgICAgICAgKVswXSBhcyBhbnlcclxuICAgICAgICAgICAgKS5lajJfaW5zdGFuY2VzWzBdLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2x1bW5Cb3guY2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbHVtbkJveC52YWx1ZSA+IDI1KSB7XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICAgICAgXCIuZS1ydGUtZWxlbWVudHMuZS1pbnNlcnQtdGFibGVcIlxyXG4gICAgICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgICAgICkuZWoyX2luc3RhbmNlc1swXS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLnNob3dOb3RpZmljYXRpb24oXHJcbiAgICAgICAgICAgICAgXCJUaGUgY29sdW1uIG51bWJlciBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjUuXCIsXHJcbiAgICAgICAgICAgICAgeyBzdGF0dXM6IFwiV2FybmluZ1wiIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICAgICAgXCIuZS1ydGUtZWxlbWVudHMuZS1pbnNlcnQtdGFibGVcIlxyXG4gICAgICAgICAgICAgIClbMF0gYXMgYW55XHJcbiAgICAgICAgICAgICkuZWoyX2luc3RhbmNlc1swXS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2FmdGVyUGFzdGVDbGVhbnVwKGFyZ3MpIHtcclxuICAgIGFyZ3MudmFsdWUgPSB0aGlzLnVuZXNjYXBlSHRtbChhcmdzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVuZXNjYXBlSHRtbChlc2NhcGVkSHRtbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBlc2NhcGVkSHRtbFxyXG4gICAgICAucmVwbGFjZSgvJmx0Oy9nLCBcIjxcIilcclxuICAgICAgLnJlcGxhY2UoLyZndDsvZywgXCI+XCIpXHJcbiAgICAgIC5yZXBsYWNlKC8mYW1wOy9nLCBcIiZcIilcclxuICAgICAgLnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKVxyXG4gICAgICAucmVwbGFjZSgvJmFwb3M7L2csIFwiJ1wiKTtcclxuICB9XHJcbiAgaGlkZVRvYXN0KCkge1xyXG4gICAgdGhpcy5zaG93TXNnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvblpvb20oKSB7XHJcbiAgICBpZiAodGhpcy5zaXplID09PSBcImxhcmdlc3RcIikge1xyXG4gICAgICB0aGlzLnNpemUgPSBcIlwiOyAvLyDmgaLlpI3liLDljp/lp4vlpKflsI9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2l6ZSA9IFwibGFyZ2VzdFwiOyAvLyDorr7nva7kuLrmnIDlpKfljJZcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2VuZXJhdGVDbGljaygpIHtcclxuICAgIHRoaXMudXBkYXRlQUlTdWdlc3N0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgY29weUNsaWNrKCkge1xyXG4gICAgdGhpcy5jb3B5VGV4dFRvQ2xpcGJvYXJkKHRoaXMuQUlSZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgcmVwbGFjZUNsaWNrKCkge1xyXG4gICAgbGV0IHJhbmdlOiBSYW5nZSA9IChcclxuICAgICAgdGhpcy5ydGVPYmogYXMgYW55XHJcbiAgICApLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24uZ2V0UmFuZ2UoXHJcbiAgICAgICh0aGlzLnJ0ZU9iaiBhcyBhbnkpLmNvbnRlbnRNb2R1bGUuZ2V0RG9jdW1lbnQoKVxyXG4gICAgKTtcclxuICAgICh0aGlzLnJ0ZU9iaiBhcyBhbnkpLmZvcm1hdHRlci5lZGl0b3JNYW5hZ2VyLm5vZGVTZWxlY3Rpb24ucmVzdG9yZShyYW5nZSk7XHJcbiAgICAodGhpcy5ydGVPYmogYXMgYW55KS5leGVjdXRlQ29tbWFuZChcImluc2VydEhUTUxcIiwgdGhpcy5BSVJlc3VsdCwge1xyXG4gICAgICB1bmRvOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0b3JfYm94XCIgaWQ9XCJjb250YWluZXJcIj5cclxuICA8ZWpzLXJpY2h0ZXh0ZWRpdG9yXHJcbiAgICAjZWRpdG9yXHJcbiAgICBbaWRdPVwiZWRpdG9ySWRcIlxyXG4gICAgW2hlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgW3NhdmVJbnRlcnZhbF09XCIwXCJcclxuICAgIFthdXRvU2F2ZU9uSWRsZV09XCJhdXRvU2F2ZU9uSWRsZVwiXHJcbiAgICBbdG9vbGJhclNldHRpbmdzXT1cInRvb2xzXCJcclxuICAgIFtidWxsZXRGb3JtYXRMaXN0XT1cImJ1bGxldEZvcm1hdExpc3RcIlxyXG4gICAgW251bWJlckZvcm1hdExpc3RdPVwibnVtYmVyRm9ybWF0TGlzdFwiXHJcbiAgICBbZm9udEZhbWlseV09XCJmYW1pbHlcIlxyXG4gICAgW2ZvbnRTaXplXT1cImZvbnRTaXplXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbaW5zZXJ0SW1hZ2VTZXR0aW5nc109XCJpbnNlcnRJbWFnZVNldHRpbmdzXCJcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgKGFjdGlvbkJlZ2luKT1cIl9hY3Rpb25CZWdpbigkZXZlbnQpXCJcclxuICAgIChjaGFuZ2UpPVwib25Db250ZW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGNyZWF0ZWQpPVwib25DcmVhdGUoKVwiXHJcbiAgICAodG9vbGJhckNsaWNrKT1cIl90b29sYmFyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAoaW5wdXQpPVwiX2lucHV0KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIl9mb2N1cygkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIl9ibHVyKCRldmVudClcIlxyXG4gICAgKGFjdGlvbkNvbXBsZXRlKT1cIl9hY3Rpb25Db21wbGV0ZSgkZXZlbnQpXCJcclxuICAgIChkaWFsb2dPcGVuKT1cIl9kaWFsb2dPcGVuKCRldmVudClcIlxyXG4gICAgKGFmdGVyUGFzdGVDbGVhbnVwKT1cIl9hZnRlclBhc3RlQ2xlYW51cCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9lanMtcmljaHRleHRlZGl0b3I+XHJcbiAgPGVqcy1kaWFsb2dcclxuICAgICNBSWRpYWxvZ1xyXG4gICAgaWQ9XCJBSWRpYWxvZ1wiXHJcbiAgICBbbmdDbGFzc109XCJzaXplXCJcclxuICAgIFt2aXNpYmxlXT1cImZhbHNlXCJcclxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcclxuICAgIFtpc01vZGFsXT1cInRydWVcIlxyXG4gICAgW2hlaWdodF09XCJkaWFsb2dIZWlnaHRcIlxyXG4gICAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICAgIG1heEhlaWdodD1cIjgwJVwiXHJcbiAgICBjc3NDbGFzcz1cImUtcnRlLWVsZW1lbnRzIGN1c3RvbS1kaWFsb2ctcnRlXCJcclxuICAgIHpJbmRleD1cIjEwMDBcIlxyXG4gICAgKGNsb3NlKT1cImNsb3NlRGlhbG9nKClcIlxyXG4gICAgKG92ZXJsYXlDbGljayk9XCJvbk92ZXJsYXlDbGljaygpXCJcclxuICAgIChvcGVuKT1cImRpYWxvZ1Nob3coKVwiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5BSSBBc3Npc3Q8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idXR0b25zXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dab29tQnRuXCIgY2xhc3M9XCJoZWFkZXItem9vbVwiIChjbGljayk9XCJvblpvb20oKVwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlci1pY29uXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJzaXplID09PSAnbGFyZ2VzdCdcIlxyXG4gICAgICAgICAgICBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1nL2RpYWxvZy1zaHJpbmsuc3ZnXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWljb25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cInNpemUgIT09ICdsYXJnZXN0J1wiXHJcbiAgICAgICAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGlhbG9nLWdyb3cuc3ZnXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImhlYWRlci1pY29uXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9kaWFsb2ctY2xvc2Uuc3ZnXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgPGRpdiBpZD1cImRpYWxvZy1mb290ZXItY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tcm93LTBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjdXNjb2wtMFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogbGVmdFwiXHJcbiAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY3VzY29sLTFcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZWpzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgI3NlbnRpbWVudEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY29udGVudD1cIvCfmIogTmV1dHJhbFwiXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIGNzc0NsYXNzPVwic2VudGltZW50XCJcclxuICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZWpzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgI2NvcHlCdXR0b25cclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ9XCJDb3B5XCJcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb3B5LWJ0blwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29weUNsaWNrKClcIlxyXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBlanMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAjcmVwbGFjZUJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY29udGVudD1cIlJlcGxhY2VcIlxyXG4gICAgICAgICAgICAgICAgaXNQcmltYXJ5PVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBsYWNlQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1yb3ctMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImN1c2NvbC0wXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICA8ZWpzLWRyb3Bkb3dubGlzdFxyXG4gICAgICAgICAgICAgICNxdWVyeUNhdGVnb3J5XHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgIGlkPVwicXVlcnlDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicXVlcnlMaXN0XCJcclxuICAgICAgICAgICAgICBpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgIFtmaWVsZHNdPVwieyB0ZXh0OiAndGV4dCcsIHZhbHVlOiAnaWQnIH1cIlxyXG4gICAgICAgICAgICAgIChzZWxlY3QpPVwib25RdWVyeVNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIFJlcGhyYXNlXHJcbiAgICAgICAgICAgIDwvZWpzLWRyb3Bkb3dubGlzdD5cclxuICAgICAgICAgICAgPGVqcy1kcm9wZG93bmxpc3RcclxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkUXVlcnkgPT0gJ1JlcGhyYXNlJ1wiXHJcbiAgICAgICAgICAgICAgaWQ9XCJjaGlwcy1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICNjaGlwTGlzdFxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE2MHB4XCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoaXBWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicmVwaHJhc2VUeWxlTGlzdFwiXHJcbiAgICAgICAgICAgICAgW2ZpZWxkc109XCJ7IHRleHQ6ICd0ZXh0JywgdmFsdWU6ICdpZCcgfVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvbkNoaXBDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Vqcy1kcm9wZG93bmxpc3Q+XHJcbiAgICAgICAgICAgIDxlanMtZHJvcGRvd25saXN0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFF1ZXJ5ID09ICdUcmFuc2xhdGUnXCJcclxuICAgICAgICAgICAgICAjbGFuZ3VhZ2VDYXRlZ29yeVxyXG4gICAgICAgICAgICAgIGluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJsYW5ndWFnZS1DYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwibGFuZ3VhZ2VMaXN0XCJcclxuICAgICAgICAgICAgICBbZmllbGRzXT1cInsgdGV4dDogJ3RleHQnLCB2YWx1ZTogJ2lkJyB9XCJcclxuICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uTGFuZ3VhZ2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9lanMtZHJvcGRvd25saXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY3VzY29sLTFcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIDxlanMtY2hpcGxpc3RcclxuICAgICAgICAgICAgICBpZD1cImNoaXBzLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgI2NoaXBMaXN0XHJcbiAgICAgICAgICAgICAgW2NoaXBzXT1cIlsnU3RhbmRhcmQnLCAnRmx1ZW50JywgJ1Byb2Zlc3Npb25hbCddXCJcclxuICAgICAgICAgICAgICBzZWxlY3Rpb249XCJTaW5nbGVcIlxyXG4gICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRDaGlwc109XCJbMF1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Vqcy1jaGlwbGlzdD4gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBlanMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgI3JlZ2VuZXJhdGVCdXR0b25cclxuICAgICAgICAgICAgICBjb250ZW50PVwiUmVnZW5lcmF0ZVwiXHJcbiAgICAgICAgICAgICAgaXNQcmltYXJ5PVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZ2VuZXJhdGVDbGljaygpXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1yb3ctMVwiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImN1c2NvbC0wXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0OyBoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICAgICAgICA8ZWpzLXJpY2h0ZXh0ZWRpdG9yXHJcbiAgICAgICAgICAgICAgICAjbGVmdFJ0ZVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJsZWZ0UnRlXCJcclxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxyXG4gICAgICAgICAgICAgICAgW3Rvb2xiYXJTZXR0aW5nc109XCJ7IGVuYWJsZTogZmFsc2UgfVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFuYWx5c2lzIG9mIEFJIFN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3M9XCJlLW91dGxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Vqcy1yaWNodGV4dGVkaXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjdXNjb2wtMVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgIDxlanMtcmljaHRleHRlZGl0b3JcclxuICAgICAgICAgICAgICAgICNyaWdodFJ0ZVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyaWdodFJ0ZVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcclxuICAgICAgICAgICAgICAgIFt0b29sYmFyU2V0dGluZ3NdPVwieyBlbmFibGU6IGZhbHNlIH1cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBbmFseXNpcyBvZiBBSSBTdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8IS0tIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC0tPlxyXG4gICAgICAgICAgICAgIDwvZWpzLXJpY2h0ZXh0ZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tcmVzdWx0cy1mb3VuZFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm5vLXJlc3VsdHMtZm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDI0NHB4OyBhbGlnbi1jb250ZW50OiBjZW50ZXJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTBcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjUwXCJcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Nkbi1ib2xkZGVzay9hZ2VudC1hbmd1bGFyLWFwcC9pbWFnZXMvbGlnaHQvbm8tcmVjb3Jkcy13YXJuaW5nLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5ObyByZXN1bHRzIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cInNrZWxldG9uSWRcIj5cclxuICAgICAgICAgICAgICAgIDxlanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgICAgI3NrZWxldG9uSWQxXHJcbiAgICAgICAgICAgICAgICAgIHNoYXBlPVwiUmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgICAgICAgICA+PC9lanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgIDxlanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgICAgI3NrZWxldG9uSWQyXHJcbiAgICAgICAgICAgICAgICAgIHNoYXBlPVwiUmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOTAlXCJcclxuICAgICAgICAgICAgICAgID48L2Vqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgPGVqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgICAjc2tlbGV0b25JZDNcclxuICAgICAgICAgICAgICAgICAgc2hhcGU9XCJSZWN0YW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3MCVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICA8ZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICAgICNza2VsZXRvbklkNFxyXG4gICAgICAgICAgICAgICAgICBzaGFwZT1cIlJlY3RhbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2cHhcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjUwJVwiXHJcbiAgICAgICAgICAgICAgICA+PC9lanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgIDxlanMtc2tlbGV0b25cclxuICAgICAgICAgICAgICAgICAgI3NrZWxldG9uSWQ1XHJcbiAgICAgICAgICAgICAgICAgIHNoYXBlPVwiUmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAlXCJcclxuICAgICAgICAgICAgICAgID48L2Vqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgPGVqcy1za2VsZXRvblxyXG4gICAgICAgICAgICAgICAgICAjc2tlbGV0b25JZDZcclxuICAgICAgICAgICAgICAgICAgc2hhcGU9XCJSZWN0YW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMCVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWpzLXNrZWxldG9uXHJcbiAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Vqcy1kaWFsb2c+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwidG9hc3RcIiAqbmdJZj1cInNob3dNc2dcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidG9hc3RfdGV4dFwiPkZpcnN0LCBTZWxlY3Qgc29tZSB0ZXh0PC9zcGFuXHJcbiAgICA+PHNwYW4gY2xhc3M9XCJjbG9zZV9pY29uXCIgKGNsaWNrKT1cImhpZGVUb2FzdCgpXCI+PC9zcGFuPlxyXG4gIDwvZGl2PiAtLT5cclxuPC9kaXY+XHJcbiJdfQ==
|