UNPKG

acr-assist-simulator-module

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

132 lines (131 loc) 18.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Component, Input } from '@angular/core'; import { AllReportText, MainReportText } from '../assist-data-element/assist-data-element.component'; import { AllTextReport } from '../../core/models/report-text.model'; var /** @type {?} */ $ = require('jquery'); var AssistReportTextComponent = /** @class */ (function () { function AssistReportTextComponent() { this.allReportTexts = []; this.sections = []; setInterval(function () { }, 1000); } /** * @param {?} changes * @return {?} */ AssistReportTextComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { this.mainReportTexts = new MainReportText(); this.onSelect(this.selectedSectionId); }; /** * @param {?} sectionId * @return {?} */ AssistReportTextComponent.prototype.onSelect = /** * @param {?} sectionId * @return {?} */ function (sectionId) { // console.log(this.reportText.allReportText); this.selectedSectionId = sectionId; this.sections = []; this.selectedSection = null; for (var /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].reportText !== '') { this.sections.push(section); } } if (sectionId === 'undefined' || sectionId === undefined || sectionId === 'All') { var /** @type {?} */ allText = void 0; this.allTextReport = []; allText = ''; for (var /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].reportText !== '') { var /** @type {?} */ textReport = new AllTextReport(); textReport.heading = section; textReport.content = this.removeEmptyLine(this.reportText.allReportText[section].reportText); this.allTextReport.push(textReport); } } this.selectedSectionId = 'All'; } for (var /** @type {?} */ section in this.reportText.allReportText) { if (this.reportText.allReportText[section].sectionId === sectionId) { this.selectedSection = this.reportText.allReportText[section].reportText; this.selectedSection = this.reportText.reportTextMainContent + ((this.selectedSection !== undefined && this.selectedSection !== '') ? this.removeEmptyLine(this.selectedSection) : ''); break; } } this.mainReportTexts = new MainReportText(); this.allReportTexts = []; for (var /** @type {?} */ section in this.reportText.allReportText) { var /** @type {?} */ allreportText = new AllReportText(); allreportText.reportText = this.removeEmptyLine(this.reportText.allReportText[section].reportText); allreportText.sectionId = this.reportText.allReportText[section].sectionId; this.allReportTexts.push(allreportText); } this.mainReportTexts.allReportText = this.allReportTexts; this.mainReportTexts.reportTextMainContent = this.reportText.reportTextMainContent; }; /** * @param {?} inputText * @return {?} */ AssistReportTextComponent.prototype.removeEmptyLine = /** * @param {?} inputText * @return {?} */ function (inputText) { if (inputText.trim().length !== 0) { var /** @type {?} */ lines = inputText.split('\n'); var /** @type {?} */ uniquelines_1 = []; lines.forEach(function (line, i) { if (line.trim().length !== 0) { uniquelines_1.push(line); } }); return uniquelines_1.join('\n'); } }; AssistReportTextComponent.decorators = [ { type: Component, args: [{ selector: 'acr-assist-report-text', template: "<ng-container *ngFor=\"let textReport of allTextReport; let lastitem = last\">\n <dt class=\"text-capitalize\">{{textReport.heading}}</dt>\n <dd>\n <p class=\"white-space-line\" [innerHTML]=\"textReport.content\"></p>\n </dd>\n <hr *ngIf=\"!lastitem\">\n</ng-container>\n", styles: ["", ".required-field{color:red}.padding-l-5{padding-left:5px}.whitespace{margin-left:5px}.max-w-h-100{max-width:100%;max-height:100%}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.carousel-control.left{background-repeat:repeat-x}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control.right{background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.scroll{overflow-y:scroll;overflow-x:hidden}.div-simulator-form-height{height:calc(100vh - 100px);overflow-y:scroll;overflow-x:hidden}.div-report-text-scroll{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 300px)}.padding-r-10{padding-right:10px}.slide-left{left:30px}.slide-right{right:30px}hr{margin-top:10px;margin-bottom:10px}.white-space-line{white-space:pre-line;word-wrap:break-word}p{margin:0 0 10px}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}h4.modal-title.float-left{float:left}.margin-b-0{margin-bottom:0}.font-weight-400{font-weight:400}.custom-radio-style{float:left;margin-right:15px}.zoom{width:100%;overflow:auto}.zoom img{height:auto;width:100%;min-width:100%;max-width:inherit!important}.btn-zoom{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-zoom.hover,.btn-zoom:active,.btn-zoom:hover{background-color:#e7e7e7}@media (min-width:768px){label.control-label{padding-left:20px}}.padding-5{padding:5px}"] },] }, ]; /** @nocollapse */ AssistReportTextComponent.ctorParameters = function () { return []; }; AssistReportTextComponent.propDecorators = { reportText: [{ type: Input }] }; return AssistReportTextComponent; }()); export { AssistReportTextComponent }; function AssistReportTextComponent_tsickle_Closure_declarations() { /** @type {?} */ AssistReportTextComponent.prototype.reportText; /** @type {?} */ AssistReportTextComponent.prototype.allReportTexts; /** @type {?} */ AssistReportTextComponent.prototype.selectedSection; /** @type {?} */ AssistReportTextComponent.prototype.mainReportTexts; /** @type {?} */ AssistReportTextComponent.prototype.selectedSectionId; /** @type {?} */ AssistReportTextComponent.prototype.allTextReport; /** @type {?} */ AssistReportTextComponent.prototype.sections; /** @type {?} */ AssistReportTextComponent.prototype.prevSectionId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fjci1hc3Npc3Qtc2ltdWxhdG9yLW1vZHVsZS8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9hY3ItYXNzaXN0LXNpbXVsYXRvci9hc3Npc3QtcmVwb3J0LXRleHQvYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLHFCQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7O0lBMkIxQjs4QkFYaUMsRUFBRTt3QkFLZixFQUFFO1FBT2xCLFdBQVcsQ0FBQztTQUNiLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDVDs7Ozs7SUFQSiwrQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDdkM7Ozs7O0lBTUMsNENBQVE7Ozs7SUFBUixVQUFTLFNBQVM7O1FBRWhCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsR0FBRyxDQUFDLENBQUMscUJBQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNwRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxD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LElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7S0FDdEY7Ozs7O0lBQ0QsbURBQWU7Ozs7SUFBZixVQUFnQixTQUFpQjtRQUM3QixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMscUJBQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMscUJBQU0sYUFBVyxHQUFHLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsT0FBTyxDQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsYUFBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7YUFDSixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsYUFBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtLQUNGOztnQkFyRkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSx3UkFPWDtvQkFDQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsazdDQUFrN0MsQ0FBQztpQkFDajhDOzs7Ozs2QkFHQSxLQUFLOztvQ0FsQk47O1NBZ0JhLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFsbFJlcG9ydFRleHQsIE1haW5SZXBvcnRUZXh0IH0gZnJvbSAnLi4vYXNzaXN0LWRhdGEtZWxlbWVudC9hc3Npc3QtZGF0YS1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsbFRleHRSZXBvcnQgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtdGV4dC5tb2RlbCc7XHJcbmNvbnN0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhY3ItYXNzaXN0LXJlcG9ydC10ZXh0JyxcclxuICB0ZW1wbGF0ZTogYDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRleHRSZXBvcnQgb2YgYWxsVGV4dFJlcG9ydDsgbGV0IGxhc3RpdGVtID0gbGFzdFwiPlxyXG4gIDxkdCBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPnt7dGV4dFJlcG9ydC5oZWFkaW5nfX08L2R0PlxyXG4gIDxkZD5cclxuICAgIDxwIGNsYXNzPVwid2hpdGUtc3BhY2UtbGluZVwiIFtpbm5lckhUTUxdPVwidGV4dFJlcG9ydC5jb250ZW50XCI+PC9wPlxyXG4gIDwvZGQ+XHJcbiAgPGhyICpuZ0lmPVwiIWxhc3RpdGVtXCI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5gLFxyXG4gIHN0eWxlczogW2BgLCBgLnJlcXVpcmVkLWZpZWxke2NvbG9yOnJlZH0ucGFkZGluZy1sLTV7cGFkZGluZy1sZWZ0OjVweH0ud2hpdGVzcGFjZXttYXJnaW4tbGVmdDo1cHh9Lm1heC13LWgtMTAwe21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2Fyb3VzZWwtY29udHJvbD4uZmF7Zm9udC1zaXplOjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt6LWluZGV4OjU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDotMjBweH0uY2Fyb3VzZWwtY29udHJvbC5sZWZ0e2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5jYXJvdXNlbC1jb250cm9sLmxlZnQsLmNhcm91c2VsLWNvbnRyb2wucmlnaHR7YmFja2dyb3VuZC1pbWFnZTpub25lfS5jYXJvdXNlbC1jb250cm9sLnJpZ2h0e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYmEoMCwwLDAsLjAwMDEpIDAscmdiYSgwLDAsMCwuNSkgMTAwJSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LnNjcm9sbHtvdmVyZmxvdy15OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbn0uZGl2LXNpbXVsYXRvci1mb3JtLWhlaWdodHtoZWlnaHQ6Y2FsYygxMDB2aCAtIDEwMHB4KTtvdmVyZmxvdy15OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbn0uZGl2LXJlcG9ydC10ZXh0LXNjcm9sbHtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMzAwcHgpfS5wYWRkaW5nLXItMTB7cGFkZGluZy1yaWdodDoxMHB4fS5zbGlkZS1sZWZ0e2xlZnQ6MzBweH0uc2xpZGUtcmlnaHR7cmlnaHQ6MzBweH1ocnttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS53aGl0ZS1zcGFjZS1saW5le3doaXRlLXNwYWNlOnByZS1saW5lO3dvcmQtd3JhcDpicmVhay13b3JkfXB7bWFyZ2luOjAgMCAxMHB4fS5mb3JtLWNvbnRyb2x7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtib3JkZXItY29sb3I6I2QyZDZkZX1oNC5tb2RhbC10aXRsZS5mbG9hdC1sZWZ0e2Zsb2F0OmxlZnR9Lm1hcmdpbi1iLTB7bWFyZ2luLWJvdHRvbTowfS5mb250LXdlaWdodC00MDB7Zm9udC13ZWlnaHQ6NDAwfS5jdXN0b20tcmFkaW8tc3R5bGV7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTVweH0uem9vbXt3aWR0aDoxMDAlO292ZXJmbG93OmF1dG99Lnpvb20gaW1ne2hlaWdodDphdXRvO3dpZHRoOjEwMCU7bWluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOmluaGVyaXQhaW1wb3J0YW50fS5idG4tem9vbXtiYWNrZ3JvdW5kLWNvbG9yOiNmNGY0ZjQ7Y29sb3I6IzQ0NDtib3JkZXItY29sb3I6I2RkZH0uYnRuLXpvb20uaG92ZXIsLmJ0bi16b29tOmFjdGl2ZSwuYnRuLXpvb206aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTdlN2U3fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtsYWJlbC5jb250cm9sLWxhYmVse3BhZGRpbmctbGVmdDoyMHB4fX0ucGFkZGluZy01e3BhZGRpbmc6NXB4fWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3Npc3RSZXBvcnRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbkBJbnB1dCgpIHJlcG9ydFRleHQ6IE1haW5SZXBvcnRUZXh0O1xyXG5hbGxSZXBvcnRUZXh0czogQWxsUmVwb3J0VGV4dCBbXSA9IFtdO1xyXG5zZWxlY3RlZFNlY3Rpb246IHN0cmluZztcclxubWFpblJlcG9ydFRleHRzOiBNYWluUmVwb3J0VGV4dDtcclxuc2VsZWN0ZWRTZWN0aW9uSWQ6IHN0cmluZztcclxuYWxsVGV4dFJlcG9ydDogQWxsVGV4dFJlcG9ydFtdO1xyXG5zZWN0aW9uczogc3RyaW5nIFtdID0gW107XHJcbnByZXZTZWN0aW9uSWQ6IHN0cmluZztcclxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIHRoaXMubWFpblJlcG9ydFRleHRzID0gbmV3IE1haW5SZXBvcnRUZXh0KCk7XHJcbiAgdGhpcy5vblNlbGVjdCh0aGlzLnNlbGVjdGVkU2VjdGlvbklkKTtcclxufVxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICB9LCAxMDAwKTtcclxuICAgfVxyXG5cclxuICBvblNlbGVjdChzZWN0aW9uSWQpIHtcclxuICAgLy8gY29uc29sZS5sb2codGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25JZCA9IHNlY3Rpb25JZDtcclxuICAgIHRoaXMuc2VjdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gbnVsbDtcclxuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBpbiB0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dCkge1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0ucmVwb3J0VGV4dCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNlY3Rpb25zLnB1c2goc2VjdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzZWN0aW9uSWQgPT09ICd1bmRlZmluZWQnIHx8IHNlY3Rpb25JZCA9PT0gdW5kZWZpbmVkIHx8IHNlY3Rpb25JZCA9PT0gJ0FsbCcgKSB7XHJcbiAgICAgIGxldCBhbGxUZXh0OiBzdHJpbmc7XHJcbiAgICAgIHRoaXMuYWxsVGV4dFJlcG9ydCA9IFtdO1xyXG4gICAgICBhbGxUZXh0ID0gJyc7XHJcbiAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBpbiB0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dFtzZWN0aW9uXS5yZXBvcnRUZXh0ICE9PSAnJykge1xyXG4gICAgICAgICAgY29uc3QgdGV4dFJlcG9ydDogQWxsVGV4dFJlcG9ydCA9IG5ldyBBbGxUZXh0UmVwb3J0KCk7XHJcbiAgICAgICAgICB0ZXh0UmVwb3J0LmhlYWRpbmcgPSAgc2VjdGlvbjtcclxuICAgICAgICAgIHRleHRSZXBvcnQuY29udGVudCA9IHRoaXMucmVtb3ZlRW1wdHlMaW5lKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQpO1xyXG4gICAgICAgICAgdGhpcy5hbGxUZXh0UmVwb3J0LnB1c2ggKHRleHRSZXBvcnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbklkID0gJ0FsbCc7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIGluIHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0KSB7XHJcbiAgICAgIGlmICh0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dFtzZWN0aW9uXS5zZWN0aW9uSWQgPT09IHNlY3Rpb25JZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0ucmVwb3J0VGV4dDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IHRoaXMucmVwb3J0VGV4dC5yZXBvcnRUZXh0TWFpbkNvbnRlbnQgKyAoKHRoaXMuc2VsZWN0ZWRTZWN0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb24gIT09ICcnKSA/IHRoaXMucmVtb3ZlRW1wdHlMaW5lKHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA6ICcnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5tYWluUmVwb3J0VGV4dHMgPSBuZXcgTWFpblJlcG9ydFRleHQoKTtcclxuICAgIHRoaXMuYWxsUmVwb3J0VGV4dHMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBpbiB0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dCkge1xyXG4gICAgICBjb25zdCBhbGxyZXBvcnRUZXh0ID0gbmV3IEFsbFJlcG9ydFRleHQoKTtcclxuICAgICAgYWxscmVwb3J0VGV4dC5yZXBvcnRUZXh0ID0gdGhpcy5yZW1vdmVFbXB0eUxpbmUodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0ucmVwb3J0VGV4dCk7XHJcbiAgICAgIGFsbHJlcG9ydFRleHQuc2VjdGlvbklkID0gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0uc2VjdGlvbklkO1xyXG4gICAgICB0aGlzLmFsbFJlcG9ydFRleHRzLnB1c2goYWxscmVwb3J0VGV4dCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1haW5SZXBvcnRUZXh0cy5hbGxSZXBvcnRUZXh0ID0gdGhpcy5hbGxSZXBvcnRUZXh0cztcclxuICAgIHRoaXMubWFpblJlcG9ydFRleHRzLnJlcG9ydFRleHRNYWluQ29udGVudCA9IHRoaXMucmVwb3J0VGV4dC5yZXBvcnRUZXh0TWFpbkNvbnRlbnQ7XHJcbn1cclxucmVtb3ZlRW1wdHlMaW5lKGlucHV0VGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChpbnB1dFRleHQudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICBjb25zdCBsaW5lcyA9IGlucHV0VGV4dC5zcGxpdCgnXFxuJyk7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZWxpbmVzID0gW107XHJcbiAgICAgIGxpbmVzLmZvckVhY2goIGZ1bmN0aW9uIChsaW5lLCBpKSB7XHJcbiAgICAgICAgICBpZiAobGluZS50cmltKCkubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHVuaXF1ZWxpbmVzLnB1c2gobGluZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdW5pcXVlbGluZXMuam9pbignXFxuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==