ngx-histaff-alpha 2.7.2 → 2.7.3

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.
@@ -104,7 +104,7 @@ export class ItemComponent {
104
104
  this.subscriptions.map(x => x.unsubscribe());
105
105
  }
106
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ItemComponent, deps: [{ token: i1.Router }, { token: i2.NavigatorService }, { token: i3.MultiLanguageService }, { token: i4.LayoutService }, { token: i5.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ItemComponent, isStandalone: true, selector: "app-item", inputs: { item: "item", level: "level" }, viewQueries: [{ propertyName: "me", first: true, predicate: ["me"], descendants: true }, { propertyName: "children", first: true, predicate: ["children"], descendants: true }, { propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "subArrow", first: true, predicate: ["subArrow"], descendants: true }], ngImport: i0, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.expanded]=\"item.tree$Expanded\" [class.highlighted]=\"item.tree$Highlighted\">\r\n\r\n <div class=\"menu-item-wrapper\" (click)=\"onClick($event, item)\">\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-right\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-down\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-child-right\"\r\n *ngIf=\"!!!leftbarReduced && !!!hasChildren && !!item.tree$Selected && item.code !== 'MENU.DASHBOARD' && item.code !== 'MENU.HOME'\"></i>\r\n &nbsp;\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\" [appTooltip]=\"caption\"\r\n (click)=\"onModuleIconClick($event, item);false\" *ngIf=\"!!item.iconClass\"></i>\r\n\r\n <a #link [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && hasChildren\" class=\"has-submenu\">\r\n <ng-container (click)=\"subArrowClicked($event);false\"> <!--false is important here-->\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container>\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n <a [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && !hasChildren\" [routerLink]=\"item.url\"\r\n (click)=\"onClick($event, item)\" [appTooltip]=\"caption\">\r\n {{ caption }}\r\n </a>\r\n\r\n </div>\r\n\r\n <ul #children *ngIf=\"!!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced\" [ngStyle]=\"{ padding: 0}\"\r\n [class.expanded]=\"item.tree$Expanded\">\r\n <div>\r\n <app-item *ngFor=\"let child of item.tree$Children\" [item]=\"child\" [level]=\"level+1\"\r\n (clicked)=\"onClick($event, child)\"></app-item>\r\n </div>\r\n </ul>\r\n\r\n</li>", styles: [".navigator-container{--active-item-border-color: white;--line-height: 16px;--level-gap: 10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .parent{--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i[class^=custom-icon-parent-],.navigator-container .parent i[class^=custom-icon-child-]{position:absolute}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"1\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"1\"]{left:var(--size-left-bar-the-first-icon-left)!important}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"2\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"2\"]{left:46px!important}.navigator-container .parent i[class^=custom-icon-child-][data-level=\"3\"]{left:calc(var(--size-header-logo-left) - 2 * var(--level-gap))!important}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;left:var(--size-left-bar-the-second-icon-left)!important;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0!important;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper:hover{background-color:#eaf1fb}.navigator-container .parent a{position:absolute!important;margin-left:0!important;padding-left:0!important;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a[data-level=\"1\"]{left:var(--size-header-logo-left);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]{left:calc(var(--size-header-logo-left) + var(--level-gap));max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap))}.navigator-container .parent a[data-level=\"3\"]{left:calc(var(--size-header-logo-left) - var(--level-gap) + 3px);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0;font-size:13px}.navigator-container .parent[data-level=\"2\"] a{margin-left:10px;font-size:13px}.navigator-container .parent[data-level=\"3\"] a{margin-left:20px;font-size:13px}.navigator-container .parent[data-level=\"2\"]>.menu-item-wrapper{margin-left:20px}.navigator-container .parent .menu-item-wrapper{height:35px;padding-left:0!important;display:flex;align-items:center;width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) - var(--size-scrollbar-width) + 5px);margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;font-size:13px;color:#a9a9a9;cursor:pointer}.navigator-container .parent .menu-item-wrapper>i{color:#000}.navigator-container .parent li:hover>.menu-item-wrapper:before{content:\"\";display:inline-block;position:absolute;left:0;height:33px;width:calc(var(--size-left-bar-full-width) - 20px);background-color:#eaf1fb;border-top-right-radius:50px;border-bottom-right-radius:50px}.navigator-container .parent>ul{display:block;position:relative;overflow:hidden;display:none;opacity:0;transition:opacity .5s ease-out}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul{display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent.expanded[data-level=\"2\"]>ul{margin-left:25px}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper{background-color:#fff;border-top-right-radius:50px;border-bottom-right-radius:50px;margin-right:2px;display:flex;justify-content:flex-start}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper:hover{background-color:#fff}.navigator-container .expanded>ul{overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-radius:20px;width:37px}.navigator-container .custom-icon-parent-down{background-image:url('data:image/svg+xml,<svg width=\"8\" height=\"4\" viewBox=\"0 0 8 4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 3.88867L0.535899 0.555338L7.4641 0.555339L4 3.88867Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:8px;height:5px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-icon-parent-right{background-image:url('data:image/svg+xml,<svg width=\"5\" height=\"5\" viewBox=\"0 0 4 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 4L0.666667 7.4641L0.666667 0.535898L4 4Z\" fill=\"%23000000\"/></svg>');display:block;position:absolute;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat;float:left}.navigator-container .custom-icon-child-right{position:absolute;background-image:url('data:image/svg+xml,<svg width=\"9\" height=\"12\" viewBox=\"0 0 9 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.08811 5.23421C8.56399 5.63384 8.56399 6.36616 8.08811 6.76579L2.3931 11.5484C1.74247 12.0947 0.75 11.6322 0.75 10.7826L0.750001 1.21742C0.750001 0.367809 1.74247 -0.0947444 2.39309 0.451638L8.08811 5.23421Z\" fill=\"%23F37540\"/></svg>');display:flex;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-organization-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.98901 9.6555H15.0112V11.5377H15.989V8.67772H10.489V6.72217H9.51123V8.67772H4.01123V11.5377H4.98901V9.6555Z\" fill=\"%23000000\"/><path d=\"M7.5555 12.2222H1.44439C1.12024 12.2222 0.80936 12.3509 0.580149 12.5801C0.350937 12.8094 0.222168 13.1202 0.222168 13.4444V17.1111C0.222168 17.4352 0.350937 17.7461 0.580149 17.9753C0.80936 18.2045 1.12024 18.3333 1.44439 18.3333H7.5555C7.87966 18.3333 8.19053 18.2045 8.41974 17.9753C8.64895 17.7461 8.77772 17.4352 8.77772 17.1111V13.4444C8.77772 13.1202 8.64895 12.8094 8.41974 12.5801C8.19053 12.3509 7.87966 12.2222 7.5555 12.2222ZM1.44439 17.1111V13.4444H7.5555V17.1111H1.44439Z\" fill=\"%23000000\"/><path d=\"M18.5555 12.2222H12.4444C12.1202 12.2222 11.8094 12.3509 11.5801 12.5801C11.3509 12.8094 11.2222 13.1202 11.2222 13.4444V17.1111C11.2222 17.4352 11.3509 17.7461 11.5801 17.9753C11.8094 18.2045 12.1202 18.3333 12.4444 18.3333H18.5555C18.8797 18.3333 19.1905 18.2045 19.4197 17.9753C19.649 17.7461 19.7777 17.4352 19.7777 17.1111V13.4444C19.7777 13.1202 19.649 12.8094 19.4197 12.5801C19.1905 12.3509 18.8797 12.2222 18.5555 12.2222ZM12.4444 17.1111V13.4444H18.5555V17.1111H12.4444Z\" fill=\"%23000000\"/><path d=\"M6.94439 6.11111H13.0555C13.3797 6.11111 13.6905 5.98234 13.9197 5.75313C14.149 5.52392 14.2777 5.21304 14.2777 4.88889V1.22222C14.2777 0.898069 14.149 0.587192 13.9197 0.35798C13.6905 0.128769 13.3797 0 13.0555 0H6.94439C6.62024 0 6.30936 0.128769 6.08015 0.35798C5.85094 0.587192 5.72217 0.898069 5.72217 1.22222V4.88889C5.72217 5.21304 5.85094 5.52392 6.08015 5.75313C6.30936 5.98234 6.62024 6.11111 6.94439 6.11111ZM6.94439 1.22222H13.0555V4.88889H6.94439V1.22222Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-profile-icon{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"0.75\" y=\"0.75\" width=\"16.5\" height=\"16.5\" rx=\"4.25\" stroke=\"%23000000\" stroke-width=\"1.5\"/><path d=\"M14.5164 16.5755V15.2137C14.5164 14.4914 14.2258 13.7987 13.7086 13.2879C13.1913 12.7772 12.4898 12.4902 11.7583 12.4902H6.2422C5.51071 12.4902 4.80919 12.7772 4.29195 13.2879C3.77471 13.7987 3.48413 14.4914 3.48413 15.2137V16.5755\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.00011 9.57227C10.4432 9.57227 11.613 8.39647 11.613 6.94605C11.613 5.49562 10.4432 4.31982 9.00011 4.31982C7.55704 4.31982 6.38721 5.49562 6.38721 6.94605C6.38721 8.39647 7.55704 9.57227 9.00011 9.57227Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-insurence-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.8 1H17.2C17.6774 1 18.1352 1.1873 18.4728 1.5207C18.8104 1.8541 19 2.30628 19 2.77778V8.11111C19 10.4686 18.0518 12.7295 16.364 14.3965C14.6761 16.0635 12.3869 17 10 17C8.8181 17 7.64778 16.7701 6.55585 16.3234C5.46392 15.8767 4.47177 15.2219 3.63604 14.3965C1.94821 12.7295 1 10.4686 1 8.11111V2.77778C1 2.30628 1.18964 1.8541 1.52721 1.5207C1.86477 1.1873 2.32261 1 2.8 1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 8.5L9.5 11.5L15 6\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-education-icon{background-image:url('data:image/svg+xml,<svg width=\"21\" height=\"19\" viewBox=\"0 0 21 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 1H6.66667C7.6686 1 8.62949 1.39801 9.33796 2.10649C10.0464 2.81496 10.4444 3.77585 10.4444 4.77778V18C10.4444 17.2486 10.1459 16.5279 9.61458 15.9965C9.08323 15.4652 8.36256 15.1667 7.61111 15.1667H1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.8889 1H14.2222C13.2203 1 12.2594 1.39801 11.5509 2.10649C10.8425 2.81496 10.4445 3.77585 10.4445 4.77778V18C10.4445 17.2486 10.743 16.5279 11.2743 15.9965C11.8057 15.4652 12.5263 15.1667 13.2778 15.1667H19.8889V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}\n"], dependencies: [{ kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }], encapsulation: i0.ViewEncapsulation.None }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ItemComponent, isStandalone: true, selector: "app-item", inputs: { item: "item", level: "level" }, viewQueries: [{ propertyName: "me", first: true, predicate: ["me"], descendants: true }, { propertyName: "children", first: true, predicate: ["children"], descendants: true }, { propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "subArrow", first: true, predicate: ["subArrow"], descendants: true }], ngImport: i0, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.expanded]=\"item.tree$Expanded\" [class.highlighted]=\"item.tree$Highlighted\">\r\n\r\n <div class=\"menu-item-wrapper\" (click)=\"onClick($event, item)\">\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-right\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-down\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-child-right\"\r\n *ngIf=\"!!!leftbarReduced && !!!hasChildren && !!item.tree$Selected && item.code !== 'MENU.DASHBOARD' && item.code !== 'MENU.HOME'\"></i>\r\n &nbsp;\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\" [appTooltip]=\"caption\"\r\n (click)=\"onModuleIconClick($event, item);false\" *ngIf=\"!!item.iconClass\"></i>\r\n\r\n <a #link [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && hasChildren\" class=\"has-submenu\" [appTooltip]=\"caption\">\r\n <ng-container (click)=\"subArrowClicked($event);false\"> <!--false is important here-->\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container>\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n <a [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && !hasChildren\" [routerLink]=\"item.url\"\r\n (click)=\"onClick($event, item)\" [appTooltip]=\"caption\">\r\n {{ caption }}\r\n </a>\r\n\r\n </div>\r\n\r\n <ul #children *ngIf=\"!!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced\" [ngStyle]=\"{ padding: 0}\"\r\n [class.expanded]=\"item.tree$Expanded\">\r\n <div>\r\n <app-item *ngFor=\"let child of item.tree$Children\" [item]=\"child\" [level]=\"level+1\"\r\n (clicked)=\"onClick($event, child)\"></app-item>\r\n </div>\r\n </ul>\r\n\r\n</li>", styles: [".navigator-container{--active-item-border-color: white;--line-height: 16px;--level-gap: 10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .parent{--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i[class^=custom-icon-parent-],.navigator-container .parent i[class^=custom-icon-child-]{position:absolute}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"1\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"1\"]{left:var(--size-left-bar-the-first-icon-left)!important}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"2\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"2\"]{left:46px!important}.navigator-container .parent i[class^=custom-icon-child-][data-level=\"3\"]{left:calc(var(--size-header-logo-left) - 2 * var(--level-gap))!important}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;left:var(--size-left-bar-the-second-icon-left)!important;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0!important;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper:hover{background-color:#eaf1fb}.navigator-container .parent a{position:absolute!important;margin-left:0!important;padding-left:0!important;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a[data-level=\"1\"]{left:var(--size-header-logo-left);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]{left:calc(var(--size-header-logo-left) + var(--level-gap));max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap))}.navigator-container .parent a[data-level=\"3\"]{left:calc(var(--size-header-logo-left) - var(--level-gap) + 3px);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0;font-size:13px}.navigator-container .parent[data-level=\"2\"] a{margin-left:10px;font-size:13px}.navigator-container .parent[data-level=\"3\"] a{margin-left:20px;font-size:13px}.navigator-container .parent[data-level=\"2\"]>.menu-item-wrapper{margin-left:20px}.navigator-container .parent .menu-item-wrapper{height:35px;padding-left:0!important;display:flex;align-items:center;width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) - var(--size-scrollbar-width) + 5px);margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;font-size:13px;color:#a9a9a9;cursor:pointer}.navigator-container .parent .menu-item-wrapper>i{color:#000}.navigator-container .parent li:hover>.menu-item-wrapper:before{content:\"\";display:inline-block;position:absolute;left:0;height:33px;width:calc(var(--size-left-bar-full-width) - 20px);background-color:#eaf1fb;border-top-right-radius:50px;border-bottom-right-radius:50px}.navigator-container .parent>ul{display:block;position:relative;overflow:hidden;display:none;opacity:0;transition:opacity .5s ease-out}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul{display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent.expanded[data-level=\"2\"]>ul{margin-left:25px}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper{background-color:#fff;border-top-right-radius:50px;border-bottom-right-radius:50px;margin-right:2px;display:flex;justify-content:flex-start}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper:hover{background-color:#fff}.navigator-container .expanded>ul{overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-radius:20px;width:37px}.navigator-container .custom-icon-parent-down{background-image:url('data:image/svg+xml,<svg width=\"8\" height=\"4\" viewBox=\"0 0 8 4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 3.88867L0.535899 0.555338L7.4641 0.555339L4 3.88867Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:8px;height:5px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-icon-parent-right{background-image:url('data:image/svg+xml,<svg width=\"5\" height=\"5\" viewBox=\"0 0 4 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 4L0.666667 7.4641L0.666667 0.535898L4 4Z\" fill=\"%23000000\"/></svg>');display:block;position:absolute;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat;float:left}.navigator-container .custom-icon-child-right{position:absolute;background-image:url('data:image/svg+xml,<svg width=\"9\" height=\"12\" viewBox=\"0 0 9 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.08811 5.23421C8.56399 5.63384 8.56399 6.36616 8.08811 6.76579L2.3931 11.5484C1.74247 12.0947 0.75 11.6322 0.75 10.7826L0.750001 1.21742C0.750001 0.367809 1.74247 -0.0947444 2.39309 0.451638L8.08811 5.23421Z\" fill=\"%23F37540\"/></svg>');display:flex;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-organization-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.98901 9.6555H15.0112V11.5377H15.989V8.67772H10.489V6.72217H9.51123V8.67772H4.01123V11.5377H4.98901V9.6555Z\" fill=\"%23000000\"/><path d=\"M7.5555 12.2222H1.44439C1.12024 12.2222 0.80936 12.3509 0.580149 12.5801C0.350937 12.8094 0.222168 13.1202 0.222168 13.4444V17.1111C0.222168 17.4352 0.350937 17.7461 0.580149 17.9753C0.80936 18.2045 1.12024 18.3333 1.44439 18.3333H7.5555C7.87966 18.3333 8.19053 18.2045 8.41974 17.9753C8.64895 17.7461 8.77772 17.4352 8.77772 17.1111V13.4444C8.77772 13.1202 8.64895 12.8094 8.41974 12.5801C8.19053 12.3509 7.87966 12.2222 7.5555 12.2222ZM1.44439 17.1111V13.4444H7.5555V17.1111H1.44439Z\" fill=\"%23000000\"/><path d=\"M18.5555 12.2222H12.4444C12.1202 12.2222 11.8094 12.3509 11.5801 12.5801C11.3509 12.8094 11.2222 13.1202 11.2222 13.4444V17.1111C11.2222 17.4352 11.3509 17.7461 11.5801 17.9753C11.8094 18.2045 12.1202 18.3333 12.4444 18.3333H18.5555C18.8797 18.3333 19.1905 18.2045 19.4197 17.9753C19.649 17.7461 19.7777 17.4352 19.7777 17.1111V13.4444C19.7777 13.1202 19.649 12.8094 19.4197 12.5801C19.1905 12.3509 18.8797 12.2222 18.5555 12.2222ZM12.4444 17.1111V13.4444H18.5555V17.1111H12.4444Z\" fill=\"%23000000\"/><path d=\"M6.94439 6.11111H13.0555C13.3797 6.11111 13.6905 5.98234 13.9197 5.75313C14.149 5.52392 14.2777 5.21304 14.2777 4.88889V1.22222C14.2777 0.898069 14.149 0.587192 13.9197 0.35798C13.6905 0.128769 13.3797 0 13.0555 0H6.94439C6.62024 0 6.30936 0.128769 6.08015 0.35798C5.85094 0.587192 5.72217 0.898069 5.72217 1.22222V4.88889C5.72217 5.21304 5.85094 5.52392 6.08015 5.75313C6.30936 5.98234 6.62024 6.11111 6.94439 6.11111ZM6.94439 1.22222H13.0555V4.88889H6.94439V1.22222Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-profile-icon{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"0.75\" y=\"0.75\" width=\"16.5\" height=\"16.5\" rx=\"4.25\" stroke=\"%23000000\" stroke-width=\"1.5\"/><path d=\"M14.5164 16.5755V15.2137C14.5164 14.4914 14.2258 13.7987 13.7086 13.2879C13.1913 12.7772 12.4898 12.4902 11.7583 12.4902H6.2422C5.51071 12.4902 4.80919 12.7772 4.29195 13.2879C3.77471 13.7987 3.48413 14.4914 3.48413 15.2137V16.5755\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.00011 9.57227C10.4432 9.57227 11.613 8.39647 11.613 6.94605C11.613 5.49562 10.4432 4.31982 9.00011 4.31982C7.55704 4.31982 6.38721 5.49562 6.38721 6.94605C6.38721 8.39647 7.55704 9.57227 9.00011 9.57227Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-insurence-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.8 1H17.2C17.6774 1 18.1352 1.1873 18.4728 1.5207C18.8104 1.8541 19 2.30628 19 2.77778V8.11111C19 10.4686 18.0518 12.7295 16.364 14.3965C14.6761 16.0635 12.3869 17 10 17C8.8181 17 7.64778 16.7701 6.55585 16.3234C5.46392 15.8767 4.47177 15.2219 3.63604 14.3965C1.94821 12.7295 1 10.4686 1 8.11111V2.77778C1 2.30628 1.18964 1.8541 1.52721 1.5207C1.86477 1.1873 2.32261 1 2.8 1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 8.5L9.5 11.5L15 6\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-education-icon{background-image:url('data:image/svg+xml,<svg width=\"21\" height=\"19\" viewBox=\"0 0 21 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 1H6.66667C7.6686 1 8.62949 1.39801 9.33796 2.10649C10.0464 2.81496 10.4444 3.77585 10.4444 4.77778V18C10.4444 17.2486 10.1459 16.5279 9.61458 15.9965C9.08323 15.4652 8.36256 15.1667 7.61111 15.1667H1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.8889 1H14.2222C13.2203 1 12.2594 1.39801 11.5509 2.10649C10.8425 2.81496 10.4445 3.77585 10.4445 4.77778V18C10.4445 17.2486 10.743 16.5279 11.2743 15.9965C11.8057 15.4652 12.5263 15.1667 13.2778 15.1667H19.8889V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}\n"], dependencies: [{ kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }], encapsulation: i0.ViewEncapsulation.None }); }
108
108
  }
109
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ItemComponent, decorators: [{
110
110
  type: Component,
@@ -112,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
112
112
  CommonModule,
113
113
  RouterModule,
114
114
  TooltipDirective,
115
- ], encapsulation: ViewEncapsulation.None, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.expanded]=\"item.tree$Expanded\" [class.highlighted]=\"item.tree$Highlighted\">\r\n\r\n <div class=\"menu-item-wrapper\" (click)=\"onClick($event, item)\">\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-right\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-down\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-child-right\"\r\n *ngIf=\"!!!leftbarReduced && !!!hasChildren && !!item.tree$Selected && item.code !== 'MENU.DASHBOARD' && item.code !== 'MENU.HOME'\"></i>\r\n &nbsp;\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\" [appTooltip]=\"caption\"\r\n (click)=\"onModuleIconClick($event, item);false\" *ngIf=\"!!item.iconClass\"></i>\r\n\r\n <a #link [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && hasChildren\" class=\"has-submenu\">\r\n <ng-container (click)=\"subArrowClicked($event);false\"> <!--false is important here-->\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container>\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n <a [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && !hasChildren\" [routerLink]=\"item.url\"\r\n (click)=\"onClick($event, item)\" [appTooltip]=\"caption\">\r\n {{ caption }}\r\n </a>\r\n\r\n </div>\r\n\r\n <ul #children *ngIf=\"!!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced\" [ngStyle]=\"{ padding: 0}\"\r\n [class.expanded]=\"item.tree$Expanded\">\r\n <div>\r\n <app-item *ngFor=\"let child of item.tree$Children\" [item]=\"child\" [level]=\"level+1\"\r\n (clicked)=\"onClick($event, child)\"></app-item>\r\n </div>\r\n </ul>\r\n\r\n</li>", styles: [".navigator-container{--active-item-border-color: white;--line-height: 16px;--level-gap: 10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .parent{--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i[class^=custom-icon-parent-],.navigator-container .parent i[class^=custom-icon-child-]{position:absolute}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"1\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"1\"]{left:var(--size-left-bar-the-first-icon-left)!important}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"2\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"2\"]{left:46px!important}.navigator-container .parent i[class^=custom-icon-child-][data-level=\"3\"]{left:calc(var(--size-header-logo-left) - 2 * var(--level-gap))!important}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;left:var(--size-left-bar-the-second-icon-left)!important;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0!important;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper:hover{background-color:#eaf1fb}.navigator-container .parent a{position:absolute!important;margin-left:0!important;padding-left:0!important;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a[data-level=\"1\"]{left:var(--size-header-logo-left);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]{left:calc(var(--size-header-logo-left) + var(--level-gap));max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap))}.navigator-container .parent a[data-level=\"3\"]{left:calc(var(--size-header-logo-left) - var(--level-gap) + 3px);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0;font-size:13px}.navigator-container .parent[data-level=\"2\"] a{margin-left:10px;font-size:13px}.navigator-container .parent[data-level=\"3\"] a{margin-left:20px;font-size:13px}.navigator-container .parent[data-level=\"2\"]>.menu-item-wrapper{margin-left:20px}.navigator-container .parent .menu-item-wrapper{height:35px;padding-left:0!important;display:flex;align-items:center;width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) - var(--size-scrollbar-width) + 5px);margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;font-size:13px;color:#a9a9a9;cursor:pointer}.navigator-container .parent .menu-item-wrapper>i{color:#000}.navigator-container .parent li:hover>.menu-item-wrapper:before{content:\"\";display:inline-block;position:absolute;left:0;height:33px;width:calc(var(--size-left-bar-full-width) - 20px);background-color:#eaf1fb;border-top-right-radius:50px;border-bottom-right-radius:50px}.navigator-container .parent>ul{display:block;position:relative;overflow:hidden;display:none;opacity:0;transition:opacity .5s ease-out}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul{display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent.expanded[data-level=\"2\"]>ul{margin-left:25px}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper{background-color:#fff;border-top-right-radius:50px;border-bottom-right-radius:50px;margin-right:2px;display:flex;justify-content:flex-start}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper:hover{background-color:#fff}.navigator-container .expanded>ul{overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-radius:20px;width:37px}.navigator-container .custom-icon-parent-down{background-image:url('data:image/svg+xml,<svg width=\"8\" height=\"4\" viewBox=\"0 0 8 4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 3.88867L0.535899 0.555338L7.4641 0.555339L4 3.88867Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:8px;height:5px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-icon-parent-right{background-image:url('data:image/svg+xml,<svg width=\"5\" height=\"5\" viewBox=\"0 0 4 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 4L0.666667 7.4641L0.666667 0.535898L4 4Z\" fill=\"%23000000\"/></svg>');display:block;position:absolute;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat;float:left}.navigator-container .custom-icon-child-right{position:absolute;background-image:url('data:image/svg+xml,<svg width=\"9\" height=\"12\" viewBox=\"0 0 9 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.08811 5.23421C8.56399 5.63384 8.56399 6.36616 8.08811 6.76579L2.3931 11.5484C1.74247 12.0947 0.75 11.6322 0.75 10.7826L0.750001 1.21742C0.750001 0.367809 1.74247 -0.0947444 2.39309 0.451638L8.08811 5.23421Z\" fill=\"%23F37540\"/></svg>');display:flex;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-organization-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.98901 9.6555H15.0112V11.5377H15.989V8.67772H10.489V6.72217H9.51123V8.67772H4.01123V11.5377H4.98901V9.6555Z\" fill=\"%23000000\"/><path d=\"M7.5555 12.2222H1.44439C1.12024 12.2222 0.80936 12.3509 0.580149 12.5801C0.350937 12.8094 0.222168 13.1202 0.222168 13.4444V17.1111C0.222168 17.4352 0.350937 17.7461 0.580149 17.9753C0.80936 18.2045 1.12024 18.3333 1.44439 18.3333H7.5555C7.87966 18.3333 8.19053 18.2045 8.41974 17.9753C8.64895 17.7461 8.77772 17.4352 8.77772 17.1111V13.4444C8.77772 13.1202 8.64895 12.8094 8.41974 12.5801C8.19053 12.3509 7.87966 12.2222 7.5555 12.2222ZM1.44439 17.1111V13.4444H7.5555V17.1111H1.44439Z\" fill=\"%23000000\"/><path d=\"M18.5555 12.2222H12.4444C12.1202 12.2222 11.8094 12.3509 11.5801 12.5801C11.3509 12.8094 11.2222 13.1202 11.2222 13.4444V17.1111C11.2222 17.4352 11.3509 17.7461 11.5801 17.9753C11.8094 18.2045 12.1202 18.3333 12.4444 18.3333H18.5555C18.8797 18.3333 19.1905 18.2045 19.4197 17.9753C19.649 17.7461 19.7777 17.4352 19.7777 17.1111V13.4444C19.7777 13.1202 19.649 12.8094 19.4197 12.5801C19.1905 12.3509 18.8797 12.2222 18.5555 12.2222ZM12.4444 17.1111V13.4444H18.5555V17.1111H12.4444Z\" fill=\"%23000000\"/><path d=\"M6.94439 6.11111H13.0555C13.3797 6.11111 13.6905 5.98234 13.9197 5.75313C14.149 5.52392 14.2777 5.21304 14.2777 4.88889V1.22222C14.2777 0.898069 14.149 0.587192 13.9197 0.35798C13.6905 0.128769 13.3797 0 13.0555 0H6.94439C6.62024 0 6.30936 0.128769 6.08015 0.35798C5.85094 0.587192 5.72217 0.898069 5.72217 1.22222V4.88889C5.72217 5.21304 5.85094 5.52392 6.08015 5.75313C6.30936 5.98234 6.62024 6.11111 6.94439 6.11111ZM6.94439 1.22222H13.0555V4.88889H6.94439V1.22222Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-profile-icon{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"0.75\" y=\"0.75\" width=\"16.5\" height=\"16.5\" rx=\"4.25\" stroke=\"%23000000\" stroke-width=\"1.5\"/><path d=\"M14.5164 16.5755V15.2137C14.5164 14.4914 14.2258 13.7987 13.7086 13.2879C13.1913 12.7772 12.4898 12.4902 11.7583 12.4902H6.2422C5.51071 12.4902 4.80919 12.7772 4.29195 13.2879C3.77471 13.7987 3.48413 14.4914 3.48413 15.2137V16.5755\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.00011 9.57227C10.4432 9.57227 11.613 8.39647 11.613 6.94605C11.613 5.49562 10.4432 4.31982 9.00011 4.31982C7.55704 4.31982 6.38721 5.49562 6.38721 6.94605C6.38721 8.39647 7.55704 9.57227 9.00011 9.57227Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-insurence-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.8 1H17.2C17.6774 1 18.1352 1.1873 18.4728 1.5207C18.8104 1.8541 19 2.30628 19 2.77778V8.11111C19 10.4686 18.0518 12.7295 16.364 14.3965C14.6761 16.0635 12.3869 17 10 17C8.8181 17 7.64778 16.7701 6.55585 16.3234C5.46392 15.8767 4.47177 15.2219 3.63604 14.3965C1.94821 12.7295 1 10.4686 1 8.11111V2.77778C1 2.30628 1.18964 1.8541 1.52721 1.5207C1.86477 1.1873 2.32261 1 2.8 1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 8.5L9.5 11.5L15 6\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-education-icon{background-image:url('data:image/svg+xml,<svg width=\"21\" height=\"19\" viewBox=\"0 0 21 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 1H6.66667C7.6686 1 8.62949 1.39801 9.33796 2.10649C10.0464 2.81496 10.4444 3.77585 10.4444 4.77778V18C10.4444 17.2486 10.1459 16.5279 9.61458 15.9965C9.08323 15.4652 8.36256 15.1667 7.61111 15.1667H1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.8889 1H14.2222C13.2203 1 12.2594 1.39801 11.5509 2.10649C10.8425 2.81496 10.4445 3.77585 10.4445 4.77778V18C10.4445 17.2486 10.743 16.5279 11.2743 15.9965C11.8057 15.4652 12.5263 15.1667 13.2778 15.1667H19.8889V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}\n"] }]
115
+ ], encapsulation: ViewEncapsulation.None, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.expanded]=\"item.tree$Expanded\" [class.highlighted]=\"item.tree$Highlighted\">\r\n\r\n <div class=\"menu-item-wrapper\" (click)=\"onClick($event, item)\">\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-right\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-parent-down\"\r\n *ngIf=\"(!!!leftbarReduced && !!hasChildren && !!item.tree$Selected)\"></i>\r\n <i [attr.data-level]=\"level\" class=\"custom-icon-child-right\"\r\n *ngIf=\"!!!leftbarReduced && !!!hasChildren && !!item.tree$Selected && item.code !== 'MENU.DASHBOARD' && item.code !== 'MENU.HOME'\"></i>\r\n &nbsp;\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\" [appTooltip]=\"caption\"\r\n (click)=\"onModuleIconClick($event, item);false\" *ngIf=\"!!item.iconClass\"></i>\r\n\r\n <a #link [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && hasChildren\" class=\"has-submenu\" [appTooltip]=\"caption\">\r\n <ng-container (click)=\"subArrowClicked($event);false\"> <!--false is important here-->\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container>\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n <a [attr.data-level]=\"level\" *ngIf=\"!leftbarReduced && !hasChildren\" [routerLink]=\"item.url\"\r\n (click)=\"onClick($event, item)\" [appTooltip]=\"caption\">\r\n {{ caption }}\r\n </a>\r\n\r\n </div>\r\n\r\n <ul #children *ngIf=\"!!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced\" [ngStyle]=\"{ padding: 0}\"\r\n [class.expanded]=\"item.tree$Expanded\">\r\n <div>\r\n <app-item *ngFor=\"let child of item.tree$Children\" [item]=\"child\" [level]=\"level+1\"\r\n (clicked)=\"onClick($event, child)\"></app-item>\r\n </div>\r\n </ul>\r\n\r\n</li>", styles: [".navigator-container{--active-item-border-color: white;--line-height: 16px;--level-gap: 10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .parent{--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i[class^=custom-icon-parent-],.navigator-container .parent i[class^=custom-icon-child-]{position:absolute}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"1\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"1\"]{left:var(--size-left-bar-the-first-icon-left)!important}.navigator-container .parent i[class^=custom-icon-parent-][data-level=\"2\"],.navigator-container .parent i[class^=custom-icon-child-][data-level=\"2\"]{left:46px!important}.navigator-container .parent i[class^=custom-icon-child-][data-level=\"3\"]{left:calc(var(--size-header-logo-left) - 2 * var(--level-gap))!important}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;left:var(--size-left-bar-the-second-icon-left)!important;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0!important;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper:hover{background-color:#eaf1fb}.navigator-container .parent a{position:absolute!important;margin-left:0!important;padding-left:0!important;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a[data-level=\"1\"]{left:var(--size-header-logo-left);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]{left:calc(var(--size-header-logo-left) + var(--level-gap));max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap))}.navigator-container .parent a[data-level=\"3\"]{left:calc(var(--size-header-logo-left) - var(--level-gap) + 3px);max-width:calc(var(--size-left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0;font-size:13px}.navigator-container .parent[data-level=\"2\"] a{margin-left:10px;font-size:13px}.navigator-container .parent[data-level=\"3\"] a{margin-left:20px;font-size:13px}.navigator-container .parent[data-level=\"2\"]>.menu-item-wrapper{margin-left:20px}.navigator-container .parent .menu-item-wrapper{height:35px;padding-left:0!important;display:flex;align-items:center;width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) - var(--size-scrollbar-width) + 5px);margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;font-size:13px;color:#a9a9a9;cursor:pointer}.navigator-container .parent .menu-item-wrapper>i{color:#000}.navigator-container .parent li:hover>.menu-item-wrapper:before{content:\"\";display:inline-block;position:absolute;left:0;height:33px;width:calc(var(--size-left-bar-full-width) - 20px);background-color:#eaf1fb;border-top-right-radius:50px;border-bottom-right-radius:50px}.navigator-container .parent>ul{display:block;position:relative;overflow:hidden;display:none;opacity:0;transition:opacity .5s ease-out}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul{display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent.expanded[data-level=\"2\"]>ul{margin-left:25px}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper{background-color:#fff;border-top-right-radius:50px;border-bottom-right-radius:50px;margin-right:2px;display:flex;justify-content:flex-start}.navigator-container .expanded[data-level=\"1\"]>.menu-item-wrapper:hover{background-color:#fff}.navigator-container .expanded>ul{overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-radius:20px;width:37px}.navigator-container .custom-icon-parent-down{background-image:url('data:image/svg+xml,<svg width=\"8\" height=\"4\" viewBox=\"0 0 8 4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 3.88867L0.535899 0.555338L7.4641 0.555339L4 3.88867Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:8px;height:5px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-icon-parent-right{background-image:url('data:image/svg+xml,<svg width=\"5\" height=\"5\" viewBox=\"0 0 4 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 4L0.666667 7.4641L0.666667 0.535898L4 4Z\" fill=\"%23000000\"/></svg>');display:block;position:absolute;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat;float:left}.navigator-container .custom-icon-child-right{position:absolute;background-image:url('data:image/svg+xml,<svg width=\"9\" height=\"12\" viewBox=\"0 0 9 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.08811 5.23421C8.56399 5.63384 8.56399 6.36616 8.08811 6.76579L2.3931 11.5484C1.74247 12.0947 0.75 11.6322 0.75 10.7826L0.750001 1.21742C0.750001 0.367809 1.74247 -0.0947444 2.39309 0.451638L8.08811 5.23421Z\" fill=\"%23F37540\"/></svg>');display:flex;width:8px;height:8px;align-items:center;justify-content:center;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-organization-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.98901 9.6555H15.0112V11.5377H15.989V8.67772H10.489V6.72217H9.51123V8.67772H4.01123V11.5377H4.98901V9.6555Z\" fill=\"%23000000\"/><path d=\"M7.5555 12.2222H1.44439C1.12024 12.2222 0.80936 12.3509 0.580149 12.5801C0.350937 12.8094 0.222168 13.1202 0.222168 13.4444V17.1111C0.222168 17.4352 0.350937 17.7461 0.580149 17.9753C0.80936 18.2045 1.12024 18.3333 1.44439 18.3333H7.5555C7.87966 18.3333 8.19053 18.2045 8.41974 17.9753C8.64895 17.7461 8.77772 17.4352 8.77772 17.1111V13.4444C8.77772 13.1202 8.64895 12.8094 8.41974 12.5801C8.19053 12.3509 7.87966 12.2222 7.5555 12.2222ZM1.44439 17.1111V13.4444H7.5555V17.1111H1.44439Z\" fill=\"%23000000\"/><path d=\"M18.5555 12.2222H12.4444C12.1202 12.2222 11.8094 12.3509 11.5801 12.5801C11.3509 12.8094 11.2222 13.1202 11.2222 13.4444V17.1111C11.2222 17.4352 11.3509 17.7461 11.5801 17.9753C11.8094 18.2045 12.1202 18.3333 12.4444 18.3333H18.5555C18.8797 18.3333 19.1905 18.2045 19.4197 17.9753C19.649 17.7461 19.7777 17.4352 19.7777 17.1111V13.4444C19.7777 13.1202 19.649 12.8094 19.4197 12.5801C19.1905 12.3509 18.8797 12.2222 18.5555 12.2222ZM12.4444 17.1111V13.4444H18.5555V17.1111H12.4444Z\" fill=\"%23000000\"/><path d=\"M6.94439 6.11111H13.0555C13.3797 6.11111 13.6905 5.98234 13.9197 5.75313C14.149 5.52392 14.2777 5.21304 14.2777 4.88889V1.22222C14.2777 0.898069 14.149 0.587192 13.9197 0.35798C13.6905 0.128769 13.3797 0 13.0555 0H6.94439C6.62024 0 6.30936 0.128769 6.08015 0.35798C5.85094 0.587192 5.72217 0.898069 5.72217 1.22222V4.88889C5.72217 5.21304 5.85094 5.52392 6.08015 5.75313C6.30936 5.98234 6.62024 6.11111 6.94439 6.11111ZM6.94439 1.22222H13.0555V4.88889H6.94439V1.22222Z\" fill=\"%23000000\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-profile-icon{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"0.75\" y=\"0.75\" width=\"16.5\" height=\"16.5\" rx=\"4.25\" stroke=\"%23000000\" stroke-width=\"1.5\"/><path d=\"M14.5164 16.5755V15.2137C14.5164 14.4914 14.2258 13.7987 13.7086 13.2879C13.1913 12.7772 12.4898 12.4902 11.7583 12.4902H6.2422C5.51071 12.4902 4.80919 12.7772 4.29195 13.2879C3.77471 13.7987 3.48413 14.4914 3.48413 15.2137V16.5755\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.00011 9.57227C10.4432 9.57227 11.613 8.39647 11.613 6.94605C11.613 5.49562 10.4432 4.31982 9.00011 4.31982C7.55704 4.31982 6.38721 5.49562 6.38721 6.94605C6.38721 8.39647 7.55704 9.57227 9.00011 9.57227Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-insurence-icon{background-image:url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.8 1H17.2C17.6774 1 18.1352 1.1873 18.4728 1.5207C18.8104 1.8541 19 2.30628 19 2.77778V8.11111C19 10.4686 18.0518 12.7295 16.364 14.3965C14.6761 16.0635 12.3869 17 10 17C8.8181 17 7.64778 16.7701 6.55585 16.3234C5.46392 15.8767 4.47177 15.2219 3.63604 14.3965C1.94821 12.7295 1 10.4686 1 8.11111V2.77778C1 2.30628 1.18964 1.8541 1.52721 1.5207C1.86477 1.1873 2.32261 1 2.8 1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 8.5L9.5 11.5L15 6\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .custom-education-icon{background-image:url('data:image/svg+xml,<svg width=\"21\" height=\"19\" viewBox=\"0 0 21 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 1H6.66667C7.6686 1 8.62949 1.39801 9.33796 2.10649C10.0464 2.81496 10.4444 3.77585 10.4444 4.77778V18C10.4444 17.2486 10.1459 16.5279 9.61458 15.9965C9.08323 15.4652 8.36256 15.1667 7.61111 15.1667H1V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.8889 1H14.2222C13.2203 1 12.2594 1.39801 11.5509 2.10649C10.8425 2.81496 10.4445 3.77585 10.4445 4.77778V18C10.4445 17.2486 10.743 16.5279 11.2743 15.9965C11.8057 15.4652 12.5263 15.1667 13.2778 15.1667H19.8889V1Z\" stroke=\"%23000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>');display:flex;align-items:center;justify-content:center;width:15px;height:15px;background-size:contain;background-repeat:no-repeat}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}\n"] }]
116
116
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavigatorService }, { type: i3.MultiLanguageService }, { type: i4.LayoutService }, { type: i5.MenuService }], propDecorators: { item: [{
117
117
  type: Input
118
118
  }], level: [{
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
130
130
  type: ViewChild,
131
131
  args: ['subArrow']
132
132
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL2l0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7OztBQWNuRSxNQUFNLE9BQU8sYUFBYTtJQWlCeEIsWUFDVSxNQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLFdBQXdCO1FBSnhCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBWGxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBUS9CLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsZ0ZBQWdGO1lB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ZSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDOzhHQXZIVSxhQUFhO2tHQUFiLGFBQWEscWNDdkIxQiw4akZBNENLLHM5V0RyQlEsYUFBYSwrRUFSdEIsWUFBWSxvVkFDWixZQUFZLGdSQUNaLGdCQUFnQjs7MkZBTVAsYUFBYTtrQkFaekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7bU1BSTVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ1csRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNRLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDRixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ00sUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU5hdmlnYXRvckl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lOYXZpZ2F0b3JJdGVtJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pdGVtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW0hOiBJTmF2aWdhdG9ySXRlbTtcclxuICBASW5wdXQoKSBsZXZlbCE6IG51bWJlcjtcclxuICBAVmlld0NoaWxkKCdtZScpIG1lITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGlsZHJlbicpIGNoaWxkcmVuITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdsaW5rJykgbGluayE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc3ViQXJyb3cnKSBzdWJBcnJvdyE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNhcHRpb24hOiBzdHJpbmc7XHJcblxyXG4gIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWFpbldpbmRvd1N0YXRlITogc3RyaW5nO1xyXG4gIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGVmdGJhclJlZHVjZWQhOiBib29sZWFuO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaXRlbSkge1xyXG4gICAgICAvLyBjb25zdCBmaWx0ZXIgPSBPYmplY3Qua2V5cyh0aGlzLml0ZW0pLmZpbHRlcihrZXkgPT4ga2V5ID09PSBcInRyZWUkQ2hpbGRyZW5cIik7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGZpbHRlcilcclxuICAgICAgaWYgKHRoaXMuaXRlbS50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdGhpcy5tbHMudHJhbnModGhpcy5pdGVtIS5jb2RlKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLnN1YnNjcmliZSh4ID0+IHRoaXMubGVmdGJhclJlZHVjZWQgPSB4KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgc3ViQXJyb3dDbGlja2VkKGV2ZW50OiBFdmVudCkge1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkcmVuLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID09PSAnY2hpbGQgc3ViLW1lbnUnKSB7XHJcbiAgICAgIHRoaXMuY2hpbGRyZW4ubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnY2hpbGQgc3ViLW1lbnUgZXhwYW5kZWQnO1xyXG4gICAgICB0aGlzLnN1YkFycm93Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5zdWJBcnJvdy5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCcgcGx1cycsICcnKSArICcgbWludXMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkcmVuLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID09PSAnY2hpbGQgc3ViLW1lbnUgZXhwYW5kZWQnKSB7XHJcbiAgICAgIHRoaXMuY2hpbGRyZW4ubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnY2hpbGQgc3ViLW1lbnUnO1xyXG4gICAgICB0aGlzLnN1YkFycm93Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5zdWJBcnJvdy5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCcgbWludXMnLCAnJykgKyAnIHBsdXMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBJTmF2aWdhdG9ySXRlbSkge1xyXG4gICAgaWYodGhpcy5pdGVtIS50cmVlJFNlbGVjdGVkID09IHRydWUgJiYgISF0aGlzLml0ZW0hLnRyZWUkUGFyZW50ICYmICh0aGlzLml0ZW0hLnRyZWUkVGllciAhPSAyIHx8IHRoaXMuaXRlbSEudHJlZSRUaWVyID09IDIgJiYgdGhpcy5pdGVtIS50cmVlJENoaWxkcmVuLmxlbmd0aCA9PSAwKSl7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5jaGlsZHJlbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IHJlY3QuaGVpZ2h0O1xyXG4gICAgICBpZiAoaGVpZ2h0ID09PSAwKSB7IFxyXG4gICAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH0gXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmKGl0ZW0udHJlZSRUaWVyID09IDEgfHxpdGVtLnRyZWUkVGllciA9PSAyKXtcclxuICAgICAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY2hpbGRyZW4taGVpZ2h0JywgaGVpZ2h0ICsgJ3B4JylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UubmF2aWdhdGlvbiQudmFsdWUubWFwKHggPT4ge1xyXG4gICAgICAgIGlmKHgudHJlZSRDaGlsZHJlbil7XHJcbiAgICAgICAgICB4LnRyZWUkQ2hpbGRyZW4ubWFwKCh5IDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHkudHJlZSRDaGlsZHJlbil7XHJcbiAgICAgICAgICAgICAgeS50cmVlJENoaWxkcmVuLm1hcCgoeiA6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoeiAhPSBpdGVtKXtcclxuICAgICAgICAgICAgICAgICAgei50cmVlJFNlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9ZWxzZSBpZiAoeSAhPSBpdGVtKXtcclxuICAgICAgICAgICAgICB5LnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC8vIGFycmF5SXRlbXMubWFwKHggPT4ge1xyXG4gICAgICAvLyAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIC8vICAgaWYoeCAhPSBpdGVtKXtcclxuICAgICAgLy8gICAgIHgudHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSlcclxuICAgICAgXHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGl0ZW0pXHJcbiAgICBpZighIWl0ZW0udHJlZSRQYXJlbnQpe1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbWVudUN1cnJlbnRDbGlja2VkJywgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb2R1bGVJY29uQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogSU5hdmlnYXRvckl0ZW0pIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc29sZS5sb2coXCJvbk1vZHVsZUljb25DbGljayBldmVudFwiLCBldmVudClcclxuICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0YmFyUmVkdWNlZCQubmV4dChmYWxzZSk7XHJcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2l6ZS1sZWZ0LWJhci1jdXJyZW50LXdpZHRoJywgJzI4MHB4Jyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bGkgI21lIFtpZF09XCInbWFpbi1tZW51LScgKyBpdGVtLmlkXCIgY2xhc3M9XCJwYXJlbnRcIiBbYXR0ci5kYXRhLWxldmVsXT1cImxldmVsXCIgW2NsYXNzLnJlZHVjZWRdPVwibGVmdGJhclJlZHVjZWRcIlxyXG4gICAgW2NsYXNzLmV4cGFuZGVkXT1cIml0ZW0udHJlZSRFeHBhbmRlZFwiIFtjbGFzcy5oaWdobGlnaHRlZF09XCJpdGVtLnRyZWUkSGlnaGxpZ2h0ZWRcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICAgICAgPGkgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiIGNsYXNzPVwiY3VzdG9tLWljb24tcGFyZW50LXJpZ2h0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCIoISEhbGVmdGJhclJlZHVjZWQgJiYgISFoYXNDaGlsZHJlbiAmJiAhISFpdGVtLnRyZWUkU2VsZWN0ZWQpXCI+PC9pPlxyXG4gICAgICAgIDxpIFthdHRyLmRhdGEtbGV2ZWxdPVwibGV2ZWxcIiBjbGFzcz1cImN1c3RvbS1pY29uLXBhcmVudC1kb3duXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIoISEhbGVmdGJhclJlZHVjZWQgJiYgISFoYXNDaGlsZHJlbiAmJiAhIWl0ZW0udHJlZSRTZWxlY3RlZClcIj48L2k+XHJcbiAgICAgICAgPGkgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiIGNsYXNzPVwiY3VzdG9tLWljb24tY2hpbGQtcmlnaHRcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIiEhIWxlZnRiYXJSZWR1Y2VkICYmICEhIWhhc0NoaWxkcmVuICYmICEhaXRlbS50cmVlJFNlbGVjdGVkICYmIGl0ZW0uY29kZSAhPT0gJ01FTlUuREFTSEJPQVJEJyAmJiBpdGVtLmNvZGUgIT09ICdNRU5VLkhPTUUnXCI+PC9pPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxpIFthdHRyLmRhdGEtbGV2ZWxdPVwibGV2ZWxcIiBbY2xhc3NdPVwiaXRlbS5pY29uQ2xhc3MgKyAnIG1vZHVsZS1pY29uJ1wiIFthcHBUb29sdGlwXT1cImNhcHRpb25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Nb2R1bGVJY29uQ2xpY2soJGV2ZW50LCBpdGVtKTtmYWxzZVwiICpuZ0lmPVwiISFpdGVtLmljb25DbGFzc1wiPjwvaT5cclxuXHJcbiAgICAgICAgPGEgI2xpbmsgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiICpuZ0lmPVwiIWxlZnRiYXJSZWR1Y2VkICYmIGhhc0NoaWxkcmVuXCIgY2xhc3M9XCJoYXMtc3VibWVudVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIChjbGljayk9XCJzdWJBcnJvd0NsaWNrZWQoJGV2ZW50KTtmYWxzZVwiPiA8IS0tZmFsc2UgaXMgaW1wb3J0YW50IGhlcmUtLT5cclxuICAgICAgICAgICAgICAgIDxzcGFuICNzdWJBcnJvdyAqbmdJZj1cIighIWl0ZW0ucGljdHVyZUJhc2U2NCB8fCAhIWl0ZW0ucGljdHVyZVVyaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInaW1nLXNwYW4gcGx1cyBsZXZlbCcgKyBsZXZlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLnBpY3R1cmVCYXNlNjQgfHwgaXRlbS5waWN0dXJlVXJpXCIgKm5nSWY9XCIhIWl0ZW0ucGljdHVyZUJhc2U2NFwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gI3N1YkFycm93ICpuZ0lmPVwiISEhaXRlbS5waWN0dXJlQmFzZTY0ICYmICEhIWl0ZW0ucGljdHVyZVVyaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidwbHVzIGxldmVsJyArIGxldmVsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCIoISFpdGVtLnBpY3R1cmVCYXNlNjQgfHwgISFpdGVtLnBpY3R1cmVVcmkpXCIgW3NyY109XCJpdGVtLnBpY3R1cmVCYXNlNjQgfHwgaXRlbS5waWN0dXJlVXJpXCI+XHJcblxyXG4gICAgICAgICAgICB7eyBjYXB0aW9uIH19XHJcblxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSBbYXR0ci5kYXRhLWxldmVsXT1cImxldmVsXCIgKm5nSWY9XCIhbGVmdGJhclJlZHVjZWQgJiYgIWhhc0NoaWxkcmVuXCIgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGl0ZW0pXCIgW2FwcFRvb2x0aXBdPVwiY2FwdGlvblwiPlxyXG4gICAgICAgICAgICB7eyBjYXB0aW9uIH19XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDx1bCAjY2hpbGRyZW4gKm5nSWY9XCIhIWhhc0NoaWxkcmVuICYmICEhaXRlbS50cmVlJENoaWxkcmVuIS5sZW5ndGggJiYgISEhbGVmdGJhclJlZHVjZWRcIiBbbmdTdHlsZV09XCJ7IHBhZGRpbmc6IDB9XCJcclxuICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiaXRlbS50cmVlJEV4cGFuZGVkXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGFwcC1pdGVtICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLnRyZWUkQ2hpbGRyZW5cIiBbaXRlbV09XCJjaGlsZFwiIFtsZXZlbF09XCJsZXZlbCsxXCJcclxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2xpY2soJGV2ZW50LCBjaGlsZClcIj48L2FwcC1pdGVtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC91bD5cclxuXHJcbjwvbGk+Il19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL2l0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7OztBQWNuRSxNQUFNLE9BQU8sYUFBYTtJQWlCeEIsWUFDVSxNQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLFdBQXdCO1FBSnhCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBWGxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBUS9CLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsZ0ZBQWdGO1lB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ZSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDOzhHQXZIVSxhQUFhO2tHQUFiLGFBQWEscWNDdkIxQix1bEZBNENLLHM5V0RyQlEsYUFBYSwrRUFSdEIsWUFBWSxvVkFDWixZQUFZLGdSQUNaLGdCQUFnQjs7MkZBTVAsYUFBYTtrQkFaekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7bU1BSTVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ1csRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNRLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDRixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ00sUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU5hdmlnYXRvckl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lOYXZpZ2F0b3JJdGVtJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pdGVtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW0hOiBJTmF2aWdhdG9ySXRlbTtcclxuICBASW5wdXQoKSBsZXZlbCE6IG51bWJlcjtcclxuICBAVmlld0NoaWxkKCdtZScpIG1lITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGlsZHJlbicpIGNoaWxkcmVuITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdsaW5rJykgbGluayE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc3ViQXJyb3cnKSBzdWJBcnJvdyE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNhcHRpb24hOiBzdHJpbmc7XHJcblxyXG4gIGhhc0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWFpbldpbmRvd1N0YXRlITogc3RyaW5nO1xyXG4gIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGVmdGJhclJlZHVjZWQhOiBib29sZWFuO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaXRlbSkge1xyXG4gICAgICAvLyBjb25zdCBmaWx0ZXIgPSBPYmplY3Qua2V5cyh0aGlzLml0ZW0pLmZpbHRlcihrZXkgPT4ga2V5ID09PSBcInRyZWUkQ2hpbGRyZW5cIik7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGZpbHRlcilcclxuICAgICAgaWYgKHRoaXMuaXRlbS50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdGhpcy5tbHMudHJhbnModGhpcy5pdGVtIS5jb2RlKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLnN1YnNjcmliZSh4ID0+IHRoaXMubGVmdGJhclJlZHVjZWQgPSB4KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgc3ViQXJyb3dDbGlja2VkKGV2ZW50OiBFdmVudCkge1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkcmVuLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID09PSAnY2hpbGQgc3ViLW1lbnUnKSB7XHJcbiAgICAgIHRoaXMuY2hpbGRyZW4ubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnY2hpbGQgc3ViLW1lbnUgZXhwYW5kZWQnO1xyXG4gICAgICB0aGlzLnN1YkFycm93Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5zdWJBcnJvdy5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCcgcGx1cycsICcnKSArICcgbWludXMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkcmVuLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID09PSAnY2hpbGQgc3ViLW1lbnUgZXhwYW5kZWQnKSB7XHJcbiAgICAgIHRoaXMuY2hpbGRyZW4ubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSAnY2hpbGQgc3ViLW1lbnUnO1xyXG4gICAgICB0aGlzLnN1YkFycm93Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5zdWJBcnJvdy5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCcgbWludXMnLCAnJykgKyAnIHBsdXMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBJTmF2aWdhdG9ySXRlbSkge1xyXG4gICAgaWYodGhpcy5pdGVtIS50cmVlJFNlbGVjdGVkID09IHRydWUgJiYgISF0aGlzLml0ZW0hLnRyZWUkUGFyZW50ICYmICh0aGlzLml0ZW0hLnRyZWUkVGllciAhPSAyIHx8IHRoaXMuaXRlbSEudHJlZSRUaWVyID09IDIgJiYgdGhpcy5pdGVtIS50cmVlJENoaWxkcmVuLmxlbmd0aCA9PSAwKSl7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5jaGlsZHJlbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IHJlY3QuaGVpZ2h0O1xyXG4gICAgICBpZiAoaGVpZ2h0ID09PSAwKSB7IFxyXG4gICAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH0gXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmKGl0ZW0udHJlZSRUaWVyID09IDEgfHxpdGVtLnRyZWUkVGllciA9PSAyKXtcclxuICAgICAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY2hpbGRyZW4taGVpZ2h0JywgaGVpZ2h0ICsgJ3B4JylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UubmF2aWdhdGlvbiQudmFsdWUubWFwKHggPT4ge1xyXG4gICAgICAgIGlmKHgudHJlZSRDaGlsZHJlbil7XHJcbiAgICAgICAgICB4LnRyZWUkQ2hpbGRyZW4ubWFwKCh5IDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHkudHJlZSRDaGlsZHJlbil7XHJcbiAgICAgICAgICAgICAgeS50cmVlJENoaWxkcmVuLm1hcCgoeiA6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoeiAhPSBpdGVtKXtcclxuICAgICAgICAgICAgICAgICAgei50cmVlJFNlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9ZWxzZSBpZiAoeSAhPSBpdGVtKXtcclxuICAgICAgICAgICAgICB5LnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC8vIGFycmF5SXRlbXMubWFwKHggPT4ge1xyXG4gICAgICAvLyAgIGl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIC8vICAgaWYoeCAhPSBpdGVtKXtcclxuICAgICAgLy8gICAgIHgudHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSlcclxuICAgICAgXHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGl0ZW0pXHJcbiAgICBpZighIWl0ZW0udHJlZSRQYXJlbnQpe1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbWVudUN1cnJlbnRDbGlja2VkJywgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb2R1bGVJY29uQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogSU5hdmlnYXRvckl0ZW0pIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc29sZS5sb2coXCJvbk1vZHVsZUljb25DbGljayBldmVudFwiLCBldmVudClcclxuICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0YmFyUmVkdWNlZCQubmV4dChmYWxzZSk7XHJcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2l6ZS1sZWZ0LWJhci1jdXJyZW50LXdpZHRoJywgJzI4MHB4Jyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bGkgI21lIFtpZF09XCInbWFpbi1tZW51LScgKyBpdGVtLmlkXCIgY2xhc3M9XCJwYXJlbnRcIiBbYXR0ci5kYXRhLWxldmVsXT1cImxldmVsXCIgW2NsYXNzLnJlZHVjZWRdPVwibGVmdGJhclJlZHVjZWRcIlxyXG4gICAgW2NsYXNzLmV4cGFuZGVkXT1cIml0ZW0udHJlZSRFeHBhbmRlZFwiIFtjbGFzcy5oaWdobGlnaHRlZF09XCJpdGVtLnRyZWUkSGlnaGxpZ2h0ZWRcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICAgICAgPGkgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiIGNsYXNzPVwiY3VzdG9tLWljb24tcGFyZW50LXJpZ2h0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCIoISEhbGVmdGJhclJlZHVjZWQgJiYgISFoYXNDaGlsZHJlbiAmJiAhISFpdGVtLnRyZWUkU2VsZWN0ZWQpXCI+PC9pPlxyXG4gICAgICAgIDxpIFthdHRyLmRhdGEtbGV2ZWxdPVwibGV2ZWxcIiBjbGFzcz1cImN1c3RvbS1pY29uLXBhcmVudC1kb3duXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIoISEhbGVmdGJhclJlZHVjZWQgJiYgISFoYXNDaGlsZHJlbiAmJiAhIWl0ZW0udHJlZSRTZWxlY3RlZClcIj48L2k+XHJcbiAgICAgICAgPGkgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiIGNsYXNzPVwiY3VzdG9tLWljb24tY2hpbGQtcmlnaHRcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIiEhIWxlZnRiYXJSZWR1Y2VkICYmICEhIWhhc0NoaWxkcmVuICYmICEhaXRlbS50cmVlJFNlbGVjdGVkICYmIGl0ZW0uY29kZSAhPT0gJ01FTlUuREFTSEJPQVJEJyAmJiBpdGVtLmNvZGUgIT09ICdNRU5VLkhPTUUnXCI+PC9pPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxpIFthdHRyLmRhdGEtbGV2ZWxdPVwibGV2ZWxcIiBbY2xhc3NdPVwiaXRlbS5pY29uQ2xhc3MgKyAnIG1vZHVsZS1pY29uJ1wiIFthcHBUb29sdGlwXT1cImNhcHRpb25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Nb2R1bGVJY29uQ2xpY2soJGV2ZW50LCBpdGVtKTtmYWxzZVwiICpuZ0lmPVwiISFpdGVtLmljb25DbGFzc1wiPjwvaT5cclxuXHJcbiAgICAgICAgPGEgI2xpbmsgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiICpuZ0lmPVwiIWxlZnRiYXJSZWR1Y2VkICYmIGhhc0NoaWxkcmVuXCIgY2xhc3M9XCJoYXMtc3VibWVudVwiIFthcHBUb29sdGlwXT1cImNhcHRpb25cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAoY2xpY2spPVwic3ViQXJyb3dDbGlja2VkKCRldmVudCk7ZmFsc2VcIj4gPCEtLWZhbHNlIGlzIGltcG9ydGFudCBoZXJlLS0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAjc3ViQXJyb3cgKm5nSWY9XCIoISFpdGVtLnBpY3R1cmVCYXNlNjQgfHwgISFpdGVtLnBpY3R1cmVVcmkpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2ltZy1zcGFuIHBsdXMgbGV2ZWwnICsgbGV2ZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5waWN0dXJlQmFzZTY0IHx8IGl0ZW0ucGljdHVyZVVyaVwiICpuZ0lmPVwiISFpdGVtLnBpY3R1cmVCYXNlNjRcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICNzdWJBcnJvdyAqbmdJZj1cIiEhIWl0ZW0ucGljdHVyZUJhc2U2NCAmJiAhISFpdGVtLnBpY3R1cmVVcmlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCIncGx1cyBsZXZlbCcgKyBsZXZlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiKCEhaXRlbS5waWN0dXJlQmFzZTY0IHx8ICEhaXRlbS5waWN0dXJlVXJpKVwiIFtzcmNdPVwiaXRlbS5waWN0dXJlQmFzZTY0IHx8IGl0ZW0ucGljdHVyZVVyaVwiPlxyXG5cclxuICAgICAgICAgICAge3sgY2FwdGlvbiB9fVxyXG5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGEgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiICpuZ0lmPVwiIWxlZnRiYXJSZWR1Y2VkICYmICFoYXNDaGlsZHJlblwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0udXJsXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpdGVtKVwiIFthcHBUb29sdGlwXT1cImNhcHRpb25cIj5cclxuICAgICAgICAgICAge3sgY2FwdGlvbiB9fVxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8dWwgI2NoaWxkcmVuICpuZ0lmPVwiISFoYXNDaGlsZHJlbiAmJiAhIWl0ZW0udHJlZSRDaGlsZHJlbiEubGVuZ3RoICYmICEhIWxlZnRiYXJSZWR1Y2VkXCIgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAwfVwiXHJcbiAgICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIml0ZW0udHJlZSRFeHBhbmRlZFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxhcHAtaXRlbSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS50cmVlJENoaWxkcmVuXCIgW2l0ZW1dPVwiY2hpbGRcIiBbbGV2ZWxdPVwibGV2ZWwrMVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJvbkNsaWNrKCRldmVudCwgY2hpbGQpXCI+PC9hcHAtaXRlbT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvdWw+XHJcblxyXG48L2xpPiJdfQ==
@@ -5,6 +5,9 @@ import { CommonModule } from '@angular/common';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { ItemComponent } from './item.component';
7
7
  import { CoreLoadingSurfaceComponent } from '../../core-loading-surface/core-loading-surface/core-loading-surface.component';
8
+ import { TranslatePipe } from '../../../app-pipes/translate.pipe';
9
+ import { TooltipDirective } from '../../tooltip/tooltip.directive';
10
+ import { CoreLineComponent } from '../../core-line/core-line/core-line.component';
8
11
  import * as i0 from "@angular/core";
9
12
  import * as i1 from "../../../services/navigator.service";
10
13
  import * as i2 from "../../../services/sys-menu.service";
@@ -32,6 +35,7 @@ export class NavigatorComponent {
32
35
  this.authService = authService;
33
36
  this.alertService = alertService;
34
37
  this.appConfigService = appConfigService;
38
+ this.wideMode$ = new BehaviorSubject(true);
35
39
  this.linerItems$ = new BehaviorSubject([]);
36
40
  this.subscriptions = [];
37
41
  this.flatNavigationCheck = [];
@@ -40,6 +44,8 @@ export class NavigatorComponent {
40
44
  this.searchFor = '';
41
45
  this.searchStream$ = new BehaviorSubject('');
42
46
  this.checkedLoadingMenu = false;
47
+ this.mls.lang$.subscribe(x => this.lang = x);
48
+ this.wideMode$.subscribe(x => this.wideMode = x);
43
49
  }
44
50
  ngOnInit() {
45
51
  this.menuClickedItem = JSON.parse(localStorage.getItem('menuCurrentClicked'));
@@ -354,7 +360,7 @@ export class NavigatorComponent {
354
360
  });
355
361
  }
356
362
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NavigatorComponent, deps: [{ token: i1.NavigatorService }, { token: i2.SysMenuService }, { token: i3.RecursiveService }, { token: i4.Router }, { token: i5.MenuService }, { token: i6.OrganizationService }, { token: i7.LayoutService }, { token: i8.MultiLanguageService }, { token: i9.AuthService }, { token: i10.AlertService }, { token: i11.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
357
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: NavigatorComponent, isStandalone: true, selector: "corelib-navigator", inputs: { logoTemplate: "logoTemplate", rightPartHeadeMenuItem: "rightPartHeadeMenuItem", rightIcon: "rightIcon" }, viewQueries: [{ propertyName: "mainMenu", first: true, predicate: ["mainMenu"], descendants: true }], ngImport: i0, template: "<div class=\"navigator-container\">\r\n\r\n <div class=\"input-search-container\" [class.opacity0]=\"!!leftbarReduced\">\r\n <input id=\"navigator-search\" placeholder=\"T\u00ECm ki\u1EBFm ...\" type=\"text\" [(ngModel)]=\"searchFor\"\r\n (ngModelChange)=\"onSearchChange($event)\">\r\n <div class=\"search-clear-wrapper\" *ngIf=\"!!searchFor.length\" (click)=\"clearSearch()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div id=\"nav\">\r\n <core-loading-surface *ngIf=\"loading\"></core-loading-surface>\r\n <ul id=\"main-menu\" #mainMenu [ngStyle]=\"{ padding: 0}\">\r\n <!-- <li id=\"first-menu-item\" class=\"first-menu-iem\"><a title=\"Go to home page\" routerLink=\"/\">\r\n <span id=\"logo-menu\">\r\n <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n </span>\r\n &nbsp;</a>\r\n </li> -->\r\n <ng-container *ngIf=\"items?.length\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <app-item [item]=\"item\" [level]=\"1\"></app-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <li class=\"parent right-part-item\" *ngIf=\"!!rightIcon\">\r\n <a (click)=\"rightIcon.function()\" class=\"no-vertical-padding\">\r\n <div class=\"right-icon-wrapper\">\r\n <i [class]=\"'right-icon ' + rightIcon.featherClass\"></i>\r\n <div class=\"right-icon-badge\">\r\n {{ rightIcon.badgeCount }}\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".navigator-container{position:relative;display:block}.navigator-container .input-search-container{margin-left:12px;margin-bottom:var(--size-layout-block-cell-spacing);width:calc(var(--size-left-bar-current-width) - var(--size-left-bar-the-second-icon-left) - var(--size-scrollbar-width) - 1px);border-radius:20px;background-color:#e7e7e7}.navigator-container .input-search-container .search-clear-wrapper{display:block;position:absolute;top:5px;right:20px;width:24px;height:24px;cursor:pointer}.navigator-container .input-search-container .search-clear-wrapper i{font-size:24px;color:#848484}.navigator-container #navigator-search{font-family:Open Sans,sans-serif!important;-webkit-appearance:none;appearance:none;font-size:13px;width:100%;max-width:400px;height:35px;border:none;border-radius:20px;background-color:#e7e7e7;color:#000;padding-left:20px;position:relative;display:inline-block}.navigator-container .search-wrapper{padding:5px;position:relative}.navigator-container #main-menu{height:calc(100vh - var(--size-header-height) - 40px - var(--size-layout-block-cell-spacing) * 2);overflow-x:hidden;overflow-y:auto}.navigator-container ul{padding:0!important}.navigator-container .custom-item:hover{background-color:#eaf1fb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }] }); }
363
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: NavigatorComponent, isStandalone: true, selector: "corelib-navigator", inputs: { wideMode$: "wideMode$", logoTemplate: "logoTemplate", rightPartHeadeMenuItem: "rightPartHeadeMenuItem", rightIcon: "rightIcon" }, viewQueries: [{ propertyName: "mainMenu", first: true, predicate: ["mainMenu"], descendants: true }], ngImport: i0, template: "<div class=\"navigator-container\">\r\n\r\n <div class=\"input-search-container\" [class.opacity0]=\"!!leftbarReduced\">\r\n <input id=\"navigator-search\" [placeholder]=\"'UI_COMMON_PLACE_HOLDER_SEARCH_HERE' | translate: lang\" type=\"text\" [(ngModel)]=\"searchFor\"\r\n (ngModelChange)=\"onSearchChange($event)\">\r\n <div class=\"search-clear-wrapper\" *ngIf=\"!!searchFor.length\" (click)=\"clearSearch()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div id=\"nav\">\r\n <core-loading-surface *ngIf=\"loading\"></core-loading-surface>\r\n <ul id=\"main-menu\" #mainMenu [ngStyle]=\"{ padding: 0}\">\r\n <!-- <li id=\"first-menu-item\" class=\"first-menu-iem\"><a title=\"Go to home page\" routerLink=\"/\">\r\n <span id=\"logo-menu\">\r\n <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n </span>\r\n &nbsp;</a>\r\n </li> -->\r\n <ng-container *ngIf=\"items?.length\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <app-item [item]=\"item\" [level]=\"1\"></app-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <li class=\"parent right-part-item\" *ngIf=\"!!rightIcon\">\r\n <a (click)=\"rightIcon.function()\" class=\"no-vertical-padding\">\r\n <div class=\"right-icon-wrapper\">\r\n <i [class]=\"'right-icon ' + rightIcon.featherClass\"></i>\r\n <div class=\"right-icon-badge\">\r\n {{ rightIcon.badgeCount }}\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n <div class=\"collapse-toggler\" [appTooltip]=\"(wideMode ? 'UI_LEFTBAR_TOGGLER_COLLAPSE' : 'UI_LEFTBAR_TOGGLER_EXPAND') | translate: lang\" [showAnyway]=\"true\" position=\"above\">\r\n <div class=\"collapse-toggler-inner\">\r\n <div class=\"core-line-wrapper\">\r\n <core-line></core-line>\r\n </div>\r\n \r\n <span>\r\n <i class=\"feather-chevrons-left\"></i>\r\n </span>\r\n @if (wideMode) {\r\n <span>\r\n {{ 'UI_LEFTBAR_TOGGLER_COLLAPSE' | translate: lang }}\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".navigator-container{--font-size: 13px;position:relative;display:block;font-size:var(--font-size)}.navigator-container .input-search-container{margin-left:12px;margin-bottom:var(--size-layout-block-cell-spacing);width:calc(var(--size-left-bar-current-width) - var(--size-left-bar-the-second-icon-left) - var(--size-scrollbar-width) - 1px);border-radius:20px;background-color:#e7e7e7}.navigator-container .input-search-container .search-clear-wrapper{display:block;position:absolute;top:5px;right:20px;width:24px;height:24px;cursor:pointer}.navigator-container .input-search-container .search-clear-wrapper i{font-size:24px;color:#848484}.navigator-container #navigator-search{font-family:Open Sans,sans-serif!important;-webkit-appearance:none;appearance:none;font-size:13px;width:100%;max-width:400px;height:35px;border:none;border-radius:20px;background-color:#e7e7e7;color:#000;padding-left:20px;position:relative;display:inline-block}.navigator-container .search-wrapper{padding:5px;position:relative}.navigator-container #main-menu{height:calc(100vh - var(--size-header-height) - 40px - var(--size-layout-block-cell-spacing) * 2);overflow-x:hidden;overflow-y:auto}.navigator-container ul{padding:0!important}.navigator-container .custom-item:hover{background-color:#eaf1fb}.navigator-container .collapse-toggler{width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) * 2);display:block;position:fixed;bottom:var(--size-layout-block-cell-spacing);left:var(--size-layout-block-cell-spacing);z-index:1;cursor:pointer;user-select:none;-webkit-user-select:none;height:50px;border-radius:5px}.navigator-container .collapse-toggler .core-line-wrapper{width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) * 2);display:block;position:absolute;left:0;top:calc(var(--size-layout-block-cell-spacing) * -1);z-index:1}.navigator-container .collapse-toggler:hover{background-color:#e1e3e5}.navigator-container .collapse-toggler .collapse-toggler-inner{display:flex;align-items:center;justify-content:flex-start;height:50px}.navigator-container .collapse-toggler .collapse-toggler-inner span{height:50px;display:flex;align-items:center;justify-content:flex-start}.navigator-container .collapse-toggler .collapse-toggler-inner span i{width:24px;height:24px;font-size:24px;color:#6b6b6b}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreLineComponent, selector: "core-line" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }] }); }
358
364
  }
359
365
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NavigatorComponent, decorators: [{
360
366
  type: Component,
@@ -363,8 +369,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
363
369
  FormsModule,
364
370
  ItemComponent,
365
371
  CoreLoadingSurfaceComponent,
366
- ], template: "<div class=\"navigator-container\">\r\n\r\n <div class=\"input-search-container\" [class.opacity0]=\"!!leftbarReduced\">\r\n <input id=\"navigator-search\" placeholder=\"T\u00ECm ki\u1EBFm ...\" type=\"text\" [(ngModel)]=\"searchFor\"\r\n (ngModelChange)=\"onSearchChange($event)\">\r\n <div class=\"search-clear-wrapper\" *ngIf=\"!!searchFor.length\" (click)=\"clearSearch()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div id=\"nav\">\r\n <core-loading-surface *ngIf=\"loading\"></core-loading-surface>\r\n <ul id=\"main-menu\" #mainMenu [ngStyle]=\"{ padding: 0}\">\r\n <!-- <li id=\"first-menu-item\" class=\"first-menu-iem\"><a title=\"Go to home page\" routerLink=\"/\">\r\n <span id=\"logo-menu\">\r\n <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n </span>\r\n &nbsp;</a>\r\n </li> -->\r\n <ng-container *ngIf=\"items?.length\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <app-item [item]=\"item\" [level]=\"1\"></app-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <li class=\"parent right-part-item\" *ngIf=\"!!rightIcon\">\r\n <a (click)=\"rightIcon.function()\" class=\"no-vertical-padding\">\r\n <div class=\"right-icon-wrapper\">\r\n <i [class]=\"'right-icon ' + rightIcon.featherClass\"></i>\r\n <div class=\"right-icon-badge\">\r\n {{ rightIcon.badgeCount }}\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".navigator-container{position:relative;display:block}.navigator-container .input-search-container{margin-left:12px;margin-bottom:var(--size-layout-block-cell-spacing);width:calc(var(--size-left-bar-current-width) - var(--size-left-bar-the-second-icon-left) - var(--size-scrollbar-width) - 1px);border-radius:20px;background-color:#e7e7e7}.navigator-container .input-search-container .search-clear-wrapper{display:block;position:absolute;top:5px;right:20px;width:24px;height:24px;cursor:pointer}.navigator-container .input-search-container .search-clear-wrapper i{font-size:24px;color:#848484}.navigator-container #navigator-search{font-family:Open Sans,sans-serif!important;-webkit-appearance:none;appearance:none;font-size:13px;width:100%;max-width:400px;height:35px;border:none;border-radius:20px;background-color:#e7e7e7;color:#000;padding-left:20px;position:relative;display:inline-block}.navigator-container .search-wrapper{padding:5px;position:relative}.navigator-container #main-menu{height:calc(100vh - var(--size-header-height) - 40px - var(--size-layout-block-cell-spacing) * 2);overflow-x:hidden;overflow-y:auto}.navigator-container ul{padding:0!important}.navigator-container .custom-item:hover{background-color:#eaf1fb}\n"] }]
367
- }], ctorParameters: () => [{ type: i1.NavigatorService }, { type: i2.SysMenuService }, { type: i3.RecursiveService }, { type: i4.Router }, { type: i5.MenuService }, { type: i6.OrganizationService }, { type: i7.LayoutService }, { type: i8.MultiLanguageService }, { type: i9.AuthService }, { type: i10.AlertService }, { type: i11.AppConfigService }], propDecorators: { mainMenu: [{
372
+ TranslatePipe,
373
+ CoreLineComponent,
374
+ TooltipDirective
375
+ ], template: "<div class=\"navigator-container\">\r\n\r\n <div class=\"input-search-container\" [class.opacity0]=\"!!leftbarReduced\">\r\n <input id=\"navigator-search\" [placeholder]=\"'UI_COMMON_PLACE_HOLDER_SEARCH_HERE' | translate: lang\" type=\"text\" [(ngModel)]=\"searchFor\"\r\n (ngModelChange)=\"onSearchChange($event)\">\r\n <div class=\"search-clear-wrapper\" *ngIf=\"!!searchFor.length\" (click)=\"clearSearch()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div id=\"nav\">\r\n <core-loading-surface *ngIf=\"loading\"></core-loading-surface>\r\n <ul id=\"main-menu\" #mainMenu [ngStyle]=\"{ padding: 0}\">\r\n <!-- <li id=\"first-menu-item\" class=\"first-menu-iem\"><a title=\"Go to home page\" routerLink=\"/\">\r\n <span id=\"logo-menu\">\r\n <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n </span>\r\n &nbsp;</a>\r\n </li> -->\r\n <ng-container *ngIf=\"items?.length\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <app-item [item]=\"item\" [level]=\"1\"></app-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <li class=\"parent right-part-item\" *ngIf=\"!!rightIcon\">\r\n <a (click)=\"rightIcon.function()\" class=\"no-vertical-padding\">\r\n <div class=\"right-icon-wrapper\">\r\n <i [class]=\"'right-icon ' + rightIcon.featherClass\"></i>\r\n <div class=\"right-icon-badge\">\r\n {{ rightIcon.badgeCount }}\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n <div class=\"collapse-toggler\" [appTooltip]=\"(wideMode ? 'UI_LEFTBAR_TOGGLER_COLLAPSE' : 'UI_LEFTBAR_TOGGLER_EXPAND') | translate: lang\" [showAnyway]=\"true\" position=\"above\">\r\n <div class=\"collapse-toggler-inner\">\r\n <div class=\"core-line-wrapper\">\r\n <core-line></core-line>\r\n </div>\r\n \r\n <span>\r\n <i class=\"feather-chevrons-left\"></i>\r\n </span>\r\n @if (wideMode) {\r\n <span>\r\n {{ 'UI_LEFTBAR_TOGGLER_COLLAPSE' | translate: lang }}\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".navigator-container{--font-size: 13px;position:relative;display:block;font-size:var(--font-size)}.navigator-container .input-search-container{margin-left:12px;margin-bottom:var(--size-layout-block-cell-spacing);width:calc(var(--size-left-bar-current-width) - var(--size-left-bar-the-second-icon-left) - var(--size-scrollbar-width) - 1px);border-radius:20px;background-color:#e7e7e7}.navigator-container .input-search-container .search-clear-wrapper{display:block;position:absolute;top:5px;right:20px;width:24px;height:24px;cursor:pointer}.navigator-container .input-search-container .search-clear-wrapper i{font-size:24px;color:#848484}.navigator-container #navigator-search{font-family:Open Sans,sans-serif!important;-webkit-appearance:none;appearance:none;font-size:13px;width:100%;max-width:400px;height:35px;border:none;border-radius:20px;background-color:#e7e7e7;color:#000;padding-left:20px;position:relative;display:inline-block}.navigator-container .search-wrapper{padding:5px;position:relative}.navigator-container #main-menu{height:calc(100vh - var(--size-header-height) - 40px - var(--size-layout-block-cell-spacing) * 2);overflow-x:hidden;overflow-y:auto}.navigator-container ul{padding:0!important}.navigator-container .custom-item:hover{background-color:#eaf1fb}.navigator-container .collapse-toggler{width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) * 2);display:block;position:fixed;bottom:var(--size-layout-block-cell-spacing);left:var(--size-layout-block-cell-spacing);z-index:1;cursor:pointer;user-select:none;-webkit-user-select:none;height:50px;border-radius:5px}.navigator-container .collapse-toggler .core-line-wrapper{width:calc(var(--size-left-bar-current-width) - var(--size-layout-block-cell-spacing) * 2);display:block;position:absolute;left:0;top:calc(var(--size-layout-block-cell-spacing) * -1);z-index:1}.navigator-container .collapse-toggler:hover{background-color:#e1e3e5}.navigator-container .collapse-toggler .collapse-toggler-inner{display:flex;align-items:center;justify-content:flex-start;height:50px}.navigator-container .collapse-toggler .collapse-toggler-inner span{height:50px;display:flex;align-items:center;justify-content:flex-start}.navigator-container .collapse-toggler .collapse-toggler-inner span i{width:24px;height:24px;font-size:24px;color:#6b6b6b}\n"] }]
376
+ }], ctorParameters: () => [{ type: i1.NavigatorService }, { type: i2.SysMenuService }, { type: i3.RecursiveService }, { type: i4.Router }, { type: i5.MenuService }, { type: i6.OrganizationService }, { type: i7.LayoutService }, { type: i8.MultiLanguageService }, { type: i9.AuthService }, { type: i10.AlertService }, { type: i11.AppConfigService }], propDecorators: { wideMode$: [{
377
+ type: Input
378
+ }], mainMenu: [{
368
379
  type: ViewChild,
369
380
  args: ["mainMenu"]
370
381
  }], logoTemplate: [{
@@ -374,4 +385,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
374
385
  }], rightIcon: [{
375
386
  type: Input
376
387
  }] } });
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL25hdmlnYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQVFyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQW9CN0gsTUFBTSxPQUFPLGtCQUFrQjtJQTBCN0IsWUFDVSxnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDZCxXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsYUFBNEIsRUFDNUIsR0FBeUIsRUFDekIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsZ0JBQWtDO1FBVmxDLHFCQUFnQixHQUFoQixnQkFBZ0Is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QUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFO29CQUNuQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNkLE9BQU87aUJBQ1I7YUFDRjtZQUFBLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBb0I7UUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUM7Z0JBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F2WlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsdVNDekMvQixpekRBc0NNLDJ3Q0RMRixZQUFZLHVWQUNaLFdBQVcsa25CQUNYLGFBQWEsZ0ZBQ2IsMkJBQTJCOzsyRkFLbEIsa0JBQWtCO2tCQVo5QixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsMkJBQTJCO3FCQUM1Qjt1WEFNc0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUtaLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IE5hdmlnYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IFN5c01lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3lzLW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlY3Vyc2l2ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZWN1cnNpdmUuc2VydmljZSc7XHJcbmltcG9ydCB7IElSaWdodEljb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lSaWdodEljb24nO1xyXG5pbXBvcnQgeyBJTmF2aWdhdG9ySXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSU5hdmlnYXRvckl0ZW0nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IElGb3JtYXRlZFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JRm9ybWF0ZWRSZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlTG9hZGluZ1N1cmZhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWxvYWRpbmctc3VyZmFjZS9jb3JlLWxvYWRpbmctc3VyZmFjZS9jb3JlLWxvYWRpbmctc3VyZmFjZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBJRmxhdE5hdmlnYXRpb25DaGVjayB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBjb3VudDogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmVsaWItbmF2aWdhdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSXRlbUNvbXBvbmVudCxcclxuICAgIENvcmVMb2FkaW5nU3VyZmFjZUNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25hdmlnYXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKFwibWFpbk1lbnVcIikgbWFpbk1lbnUhOiBFbGVtZW50UmVmO1xyXG4gIGxpc3RlbmVyRm4hOiAoKSA9PiB2b2lkO1xyXG5cclxuICBpdGVtcyE6IElOYXZpZ2F0b3JJdGVtW107XHJcblxyXG4gIEBJbnB1dCgpIGxvZ29UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcmlnaHRQYXJ0SGVhZGVNZW51SXRlbSE6IElOYXZpZ2F0b3JJdGVtO1xyXG4gIEBJbnB1dCgpIHJpZ2h0SWNvbiE6IElSaWdodEljb247XHJcblxyXG4gIGxpbmVySXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJTmF2aWdhdG9ySXRlbVtdPihbXSk7XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGZsYXROYXZpZ2F0aW9uQ2hlY2s6IElGbGF0TmF2aWdhdGlvbkNoZWNrW10gPSBbXTtcclxuICBpdGVtc0Vycm9yczogc3RyaW5nW10gPSBbXTtcclxuICBsZWZ0YmFyUmVkdWNlZCE6IGJvb2xlYW47XHJcblxyXG4gIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBzZWFyY2hGb3I6IHN0cmluZyA9ICcnO1xyXG4gIHNlYXJjaFN0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIG1lbnVDbGlja2VkSXRlbSEgOiBJTmF2aWdhdG9ySXRlbVxyXG4gIGNoZWNrZWRMb2FkaW5nTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgc3lzTWVudVNlcnZpY2U6IFN5c01lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWN1cnNpdmVTZXJ2aWNlOiBSZWN1cnNpdmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMubWVudUNsaWNrZWRJdGVtID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVudUN1cnJlbnRDbGlja2VkJykhKVxyXG4gICAgaWYoISF0aGlzLm1lbnVDbGlja2VkSXRlbSl7XHJcbiAgICAgIHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGluZXJJdGVtcyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYoISF4ICYmIHgubGVuZ3RoID4gMCAmJiB0aGlzLmNoZWNrZWRMb2FkaW5nTWVudSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgIGxldCBhcnJheSA6IElOYXZpZ2F0b3JJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgbGV0IGFycmF5UGFycmVudCA6IElOYXZpZ2F0b3JJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgaWYodGhpcy5tZW51Q2xpY2tlZEl0ZW0/LnRyZWUkVGllciA9PSAyKXtcclxuICAgICAgICAgICAgICBhcnJheSA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZClcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnQgPSB4LmZpbHRlcih5ID0+IHkuaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRQYXJlbnQpXHJcbiAgICAgICAgICAgICAgYXJyYXlbMF0udHJlZSRTZWxlY3RlZCA9dHJ1ZVxyXG4gICAgICAgICAgICAgIGlmKHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICBhcnJheVswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnRbMF0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgYXJyYXlQYXJyZW50WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheVBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYoZWxzLmlkID09IGFycmF5UGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbHMudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVscy50cmVlJENoaWxkcmVuLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoeC5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYoYXJyYXlbMF0udHJlZSRFeHBhbmRlZCl7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5tYXAoZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkQ2hpbGRyZW4ubWFwKGVsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbC5pZCA9PSBhcnJheVswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMucm91dGVyLnVybCA9PSBlbC51cmwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZWwudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5tZW51Q2xpY2tlZEl0ZW0/LnRyZWUkVGllciA9PSAzKXsgLy9u4bq/dSBsw6AgMyBj4bqlcFxyXG4gICAgICAgICAgICAgIGFycmF5ID0geC5maWx0ZXIoeSA9PiB5LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLmlkKVxyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudCA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS50cmVlJFBhcmVudClcclxuICAgICAgICAgICAgICBsZXQgYXJyYXlHcmFuZFBhcnJlbnQgPSB4LmZpbHRlcih6ID0+IHouaWQgPT0gYXJyYXlQYXJyZW50WzBdLnBhcmVudClcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5UGFycmVudFswXS5pZClcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyBhcnJheUdyYW5kUGFycmVudFswXS5pZClcclxuICAgICAgICAgICAgICBhcnJheVswXS50cmVlJFNlbGVjdGVkID10cnVlXHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudFswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheUdyYW5kUGFycmVudFswXS50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheUdyYW5kUGFycmVudFswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBpZiAoYXJyYXlHcmFuZFBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVscy5pZCA9PSBhcnJheUdyYW5kUGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZihlbHMudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgIGVscy50cmVlJENoaWxkcmVuLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgaWYoeC5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgeC50cmVlJFNlbGVjdGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheUdyYW5kUGFycmVudFswXS50cmVlJEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVscy5pZCA9PSBhcnJheUdyYW5kUGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbHMudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVscy50cmVlJENoaWxkcmVuLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoeC5pZCA9PSBhcnJheVBhcnJlbnRbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHgudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih4LnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJENoaWxkcmVuLm1hcCh5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHkuaWQgPT0gYXJyYXlbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2hlY2tlZExvYWRpbmdNZW51ID0gdHJ1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0sMjAwMClcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLnN1YnNjcmliZSh4ID0+IHRoaXMubGVmdGJhclJlZHVjZWQgPSB4KVxyXG4gICAgICApXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLm1scy50cmFucygnVUlfQ09NTU9OX1BMQUNFX0hPTERFUl9TRUFSQ0hfSEVSRScpKVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnNlYXJjaFN0cmVhbSRcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3N3aXRjaE1hcCB3b3JrcyA9PT09PT09PT09PT09PT09PT09PT09PT09PScpO1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdG9yU2VydmljZS5maW5kSXRlbSh0ZXh0LCB0aGlzLml0ZW1zKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5pdGVtcz8ubWFwKChpdGVtOiBJTmF2aWdhdG9ySXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVOYXZpZ2F0aW9uSXRlbShpdGVtKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLml0ZW1zRXJyb3JzLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJOYXZpZ2F0aW9uIGl0ZW1zIGVycm9yXCIpO1xyXG4gICAgICAgIHRoaXMuaXRlbXNFcnJvcnM/Lm1hcChlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+ICEheCksXHJcbiAgICAgICAgICBtYXAoeCA9PiB4Py5pZCksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoeCA9PiB0aGlzLnN5c01lbnVTZXJ2aWNlLnJlYWRQZXJtaXR0ZWRNZW51KHghLCB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUpKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgYm9keS5pbm5lckJvZHkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAvLyBpbiByZWN1cnNpdmUgY29kZSB3ZSB3aWxsIHJlYWQgZnJvbSBib3R0b20gdG8gdG9wXHJcbiAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPiBiLm9yZGVyTnVtYmVyKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPT09IGIub3JkZXJOdW1iZXIpIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgIGlmIChhLm9yZGVyTnVtYmVyIDwgYi5vcmRlck51bWJlcikgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMubGluZXJJdGVtcyQubmV4dChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvZHkuaW5uZXJCb2R5KSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJzaXZlU2VydmljZS5saW5lckFycmF5VG9OZXN0ZWRBcnJheShcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgXCJpZFwiLFxyXG4gICAgICAgICAgICAgICAgXCJjb2RlXCIsXHJcbiAgICAgICAgICAgICAgICBcInBhcmVudFwiLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQudmFsdWUsXHJcbiAgICAgICAgICAgICAgICBcIm9yZGVyTnVtXCJcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSByLmxpc3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLm5hdmlnYXRpb24kLm5leHQoci5saXN0KTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvL2lmIChpc0Rldk1vZGUoKSlcclxuICAgICAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeSh4LCBudWxsLCAyKSwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4gISF4KVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayh4ISk7XHJcbiAgICAgICAgICBpZiAoeD8udHJlZSRDaGlsZHJlbiAmJiB4Py50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKCEhdGhpcy5pdGVtcylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtQWN0aXZhdGVkID0gdGhpcy5pdGVtcy5maWx0ZXIoeSA9PiB5ICE9PSB4ICYmIHkuaWQgIT09IHgudHJlZSRQYXJlbnQgJiYgeS50cmVlJFNlbGVjdGVkID09IHRydWUpXHJcbiAgICAgICAgICAgICAgaXRlbUFjdGl2YXRlZD8ubWFwKHogPT4gei50cmVlJFNlbGVjdGVkID0gZmFsc2UpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgLy8gICBsZXQgbWVudSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZW51SXRlbXMnKVxyXG4gICAgICAgICAgICAvLyAgIGlmKCEhbWVudSl7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLml0ZW1zID0gSlNPTi5wYXJzZShtZW51KVxyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2codGhpcy5pdGVtcylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghIXggJiYgISF4LnBhcmVudCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXRlbXMubWFwKHBhcmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQudHJlZSRDaGlsZHJlbi5tYXAoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY2hpbGQudHJlZSRDaGlsZHJlbi5sZW5ndGggPT0gMCAmJiBjaGlsZCAhPSB4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjaGlsZC50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkQ2hpbGRyZW4ubWFwKGsgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuaWQgIT0gay5wYXJlbnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjaGlsZCAhPSB4ICYmIHgucGFyZW50ICE9IGNoaWxkLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZih4LmlkID09IClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmICh4LnBhcmVudCA9PSBjaGlsZC5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gay50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtZW51SXRlbXMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLml0ZW1zKSk7XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGluZXJJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgICAgIGl0ZW1zPy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgeC5pZClcclxuICAgICAgICAgICAgaWYgKHgudHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHgudHJlZSRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoZSlcclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hGb3IgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoXCJcIik7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU5hdmlnYXRpb25JdGVtKGl0ZW06IElOYXZpZ2F0b3JJdGVtKSB7XHJcbiAgICBpZiAoISEhaXRlbS5pZCkge1xyXG4gICAgICB0aGlzLml0ZW1zRXJyb3JzLnB1c2goYFZhbHVlIG9mIHByb3BlcnR5IFwiaWRcIiBvZiBuYXZpZ2F0aW9uIGl0ZW0gXCIke2l0ZW0uY29kZX1cIiBpcyBub3Qgc2V0YCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZsYXROYXZpZ2F0aW9uQ2hlY2suZmlsdGVyKHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XHJcbiAgICBpZiAoZmlsdGVyLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZsYXROYXZpZ2F0aW9uQ2hlY2sucHVzaCh7XHJcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgY291bnQ6IDAsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pdGVtc0Vycm9ycy5wdXNoKGBEdXBsaWNhdGVkIE5hdmlnYXRpb24gaWQgJHtpdGVtLmlkfWApO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNDaGlsZHJlbihpdGVtKSkge1xyXG4gICAgICBpdGVtLnRyZWUkQ2hpbGRyZW4/Lm1hcChjaGlsZCA9PiB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZU5hdmlnYXRpb25JdGVtKGNoaWxkKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZHJlbihpdGVtOiBJTmF2aWdhdG9ySXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgT2JqZWN0LmtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBpZiAoa2V5ID09PSBcInRyZWUkQ2hpbGRyZW5cIikge1xyXG4gICAgICAgIGlmICghIWl0ZW1bJ3RyZWUkQ2hpbGRyZW4nXT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaXRlbUhhc0NoaWxkcmVuKGl0ZW06IElOYXZpZ2F0b3JJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09ICd0cmVlJENoaWxkcmVuJykge1xyXG4gICAgICAgIGlmICghIWl0ZW1bJ3RyZWUkQ2hpbGRyZW4nXT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9uSXRlbUNsaWNrKGl0ZW06IElOYXZpZ2F0b3JJdGVtKSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lckl0ZW1zJC52YWx1ZTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLnNlZnRUb2dnbGVFeHBhbmRTaWJsaW5nc0NvbGxhcHNlKGN1cnJlbnQsIGl0ZW0uaWQpO1xyXG4gICAgdGhpcy5saW5lckl0ZW1zJC5uZXh0KGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHtcclxuICAgICAgaWYgKHgpIHgudW5zdWJzY3JpYmUoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufSIsIjxkaXYgY2xhc3M9XCJuYXZpZ2F0b3ItY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXNlYXJjaC1jb250YWluZXJcIiBbY2xhc3Mub3BhY2l0eTBdPVwiISFsZWZ0YmFyUmVkdWNlZFwiPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cIm5hdmlnYXRvci1zZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlTDrG0ga2nhur9tIC4uLlwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hGb3JcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNsZWFyLXdyYXBwZXJcIiAqbmdJZj1cIiEhc2VhcmNoRm9yLmxlbmd0aFwiIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBpZD1cIm5hdlwiPlxyXG4gICAgICAgIDxjb3JlLWxvYWRpbmctc3VyZmFjZSAqbmdJZj1cImxvYWRpbmdcIj48L2NvcmUtbG9hZGluZy1zdXJmYWNlPlxyXG4gICAgICAgIDx1bCBpZD1cIm1haW4tbWVudVwiICNtYWluTWVudSBbbmdTdHlsZV09XCJ7IHBhZGRpbmc6IDB9XCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGxpIGlkPVwiZmlyc3QtbWVudS1pdGVtXCIgY2xhc3M9XCJmaXJzdC1tZW51LWllbVwiPjxhIHRpdGxlPVwiR28gdG8gaG9tZSBwYWdlXCIgcm91dGVyTGluaz1cIi9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cImxvZ28tbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvZ29UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDs8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtaXRlbSBbaXRlbV09XCJpdGVtXCIgW2xldmVsXT1cIjFcIj48L2FwcC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInBhcmVudCByaWdodC1wYXJ0LWl0ZW1cIiAqbmdJZj1cIiEhcmlnaHRJY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmlnaHRJY29uLmZ1bmN0aW9uKClcIiBjbGFzcz1cIm5vLXZlcnRpY2FsLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCIncmlnaHQtaWNvbiAnICsgcmlnaHRJY29uLmZlYXRoZXJDbGFzc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWljb24tYmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJpZ2h0SWNvbi5iYWRnZUNvdW50IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL25hdmlnYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQVFyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFFN0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFzQmxGLE1BQU0sT0FBTyxrQkFBa0I7SUE4QjdCLFlBQ1UsZ0JBQWtDLEVBQ2xDLGNBQThCLEVB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O2tHQUFsQixrQkFBa0IsK1RDL0MvQiwrakZBc0RNLDQxRURsQkYsWUFBWSx1VkFDWixXQUFXLGtuQkFDWCxhQUFhLGdGQUNiLDJCQUEyQiwyRkFDM0IsYUFBYSxrREFDYixpQkFBaUIsc0RBQ2pCLGdCQUFnQjs7MkZBS1Asa0JBQWtCO2tCQWY5QixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsMkJBQTJCO3dCQUMzQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3FCQUNqQjt1WEFNUSxTQUFTO3NCQUFqQixLQUFLO2dCQUVpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBTVosWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3lzTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zeXMtbWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVjdXJzaXZlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlY3Vyc2l2ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVJpZ2h0SWNvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSVJpZ2h0SWNvbic7XHJcbmltcG9ydCB7IElOYXZpZ2F0b3JJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JTmF2aWdhdG9ySXRlbSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVMb2FkaW5nU3VyZmFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbG9hZGluZy1zdXJmYWNlL2NvcmUtbG9hZGluZy1zdXJmYWNlL2NvcmUtbG9hZGluZy1zdXJmYWNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlTGluZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbGluZS9jb3JlLWxpbmUvY29yZS1saW5lLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgSUZsYXROYXZpZ2F0aW9uQ2hlY2sge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgY291bnQ6IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlbGliLW5hdmlnYXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEl0ZW1Db21wb25lbnQsXHJcbiAgICBDb3JlTG9hZGluZ1N1cmZhY2VDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgQ29yZUxpbmVDb21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0b3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgd2lkZU1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcIm1haW5NZW51XCIpIG1haW5NZW51ITogRWxlbWVudFJlZjtcclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICBsYW5nITogc3RyaW5nO1xyXG5cclxuICBpdGVtcyE6IElOYXZpZ2F0b3JJdGVtW107XHJcblxyXG4gIEBJbnB1dCgpIGxvZ29UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcmlnaHRQYXJ0SGVhZGVNZW51SXRlbSE6IElOYXZpZ2F0b3JJdGVtO1xyXG4gIEBJbnB1dCgpIHJpZ2h0SWNvbiE6IElSaWdodEljb247XHJcblxyXG4gIGxpbmVySXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJTmF2aWdhdG9ySXRlbVtdPihbXSk7XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGZsYXROYXZpZ2F0aW9uQ2hlY2s6IElGbGF0TmF2aWdhdGlvbkNoZWNrW10gPSBbXTtcclxuICBpdGVtc0Vycm9yczogc3RyaW5nW10gPSBbXTtcclxuICBsZWZ0YmFyUmVkdWNlZCE6IGJvb2xlYW47XHJcblxyXG4gIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBzZWFyY2hGb3I6IHN0cmluZyA9ICcnO1xyXG4gIHNlYXJjaFN0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIG1lbnVDbGlja2VkSXRlbSEgOiBJTmF2aWdhdG9ySXRlbVxyXG4gIGNoZWNrZWRMb2FkaW5nTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdpZGVNb2RlITogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5hdmlnYXRvclNlcnZpY2U6IE5hdmlnYXRvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN5c01lbnVTZXJ2aWNlOiBTeXNNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVjdXJzaXZlU2VydmljZTogUmVjdXJzaXZlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uU2VydmljZTogT3JnYW5pemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpO1xyXG4gICAgdGhpcy53aWRlTW9kZSQuc3Vic2NyaWJlKHggPT4gdGhpcy53aWRlTW9kZSA9IHgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5tZW51Q2xpY2tlZEl0ZW0gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZW51Q3VycmVudENsaWNrZWQnKSEpXHJcbiAgICBpZighIXRoaXMubWVudUNsaWNrZWRJdGVtKXtcclxuICAgICAgdGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5saW5lckl0ZW1zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZighIXggJiYgeC5sZW5ndGggPiAwICYmIHRoaXMuY2hlY2tlZExvYWRpbmdNZW51ID09IGZhbHNlKXtcclxuICAgICAgICAgICAgbGV0IGFycmF5IDogSU5hdmlnYXRvckl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgYXJyYXlQYXJyZW50IDogSU5hdmlnYXRvckl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgICBpZih0aGlzLm1lbnVDbGlja2VkSXRlbT8udHJlZSRUaWVyID09IDIpe1xyXG4gICAgICAgICAgICAgIGFycmF5ID0geC5maWx0ZXIoeSA9PiB5LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLmlkKVxyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudCA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS50cmVlJFBhcmVudClcclxuICAgICAgICAgICAgICBhcnJheVswXS50cmVlJFNlbGVjdGVkID10cnVlXHJcbiAgICAgICAgICAgICAgaWYodGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgIGFycmF5WzBdLnRyZWUkRXhwYW5kZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudFswXS50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyBhcnJheVBhcnJlbnRbMF0uaWQpXHJcbiAgICAgICAgICAgICAgbGV0IGVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgYXJyYXlbMF0uaWQpXHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5UGFycmVudFswXS50cmVlJEV4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZihlbHMuaWQgPT0gYXJyYXlQYXJyZW50WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGVscy50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkQ2hpbGRyZW4ubWFwKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih4LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB4LnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheVBhcnJlbnRbMF0udHJlZSRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZihhcnJheVswXS50cmVlJEV4cGFuZGVkKXtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QuYWRkKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLm1hcChlbHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBlbHMudHJlZSRDaGlsZHJlbi5tYXAoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGVsLmlkID09IGFycmF5WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVsLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yb3V0ZXIudXJsID09IGVsLnVybCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLm1lbnVDbGlja2VkSXRlbT8udHJlZSRUaWVyID09IDMpeyAvL27hur91IGzDoCAzIGPhuqVwXHJcbiAgICAgICAgICAgICAgYXJyYXkgPSB4LmZpbHRlcih5ID0+IHkuaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0uaWQpXHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50ID0geC5maWx0ZXIoeSA9PiB5LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkUGFyZW50KVxyXG4gICAgICAgICAgICAgIGxldCBhcnJheUdyYW5kUGFycmVudCA9IHguZmlsdGVyKHogPT4gei5pZCA9PSBhcnJheVBhcnJlbnRbMF0ucGFyZW50KVxyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgYXJyYXlQYXJyZW50WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5R3JhbmRQYXJyZW50WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGFycmF5WzBdLnRyZWUkU2VsZWN0ZWQgPXRydWVcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnRbMF0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGFycmF5R3JhbmRQYXJyZW50WzBdLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGFycmF5R3JhbmRQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGlmIChhcnJheUdyYW5kUGFycmVudFswXS50cmVlJEV4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYoZWxzLmlkID09IGFycmF5R3JhbmRQYXJyZW50WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmKGVscy50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgZWxzLnRyZWUkQ2hpbGRyZW4ubWFwKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBpZih4LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICB4LnRyZWUkU2VsZWN0ZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5R3JhbmRQYXJyZW50WzBdLnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGlmIChhcnJheVBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYoZWxzLmlkID09IGFycmF5R3JhbmRQYXJyZW50WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGVscy50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkQ2hpbGRyZW4ubWFwKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih4LmlkID09IGFycmF5UGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB4LnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHgudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB4LnRyZWUkQ2hpbGRyZW4ubWFwKHkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoeS5pZCA9PSBhcnJheVswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheVBhcnJlbnRbMF0udHJlZSRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jaGVja2VkTG9hZGluZ01lbnUgPSB0cnVlXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfSwyMDAwKVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0YmFyUmVkdWNlZCQuc3Vic2NyaWJlKHggPT4gdGhpcy5sZWZ0YmFyUmVkdWNlZCA9IHgpXHJcbiAgICAgIClcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMubWxzLnRyYW5zKCdVSV9DT01NT05fUExBQ0VfSE9MREVSX1NFQVJDSF9IRVJFJykpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuc2VhcmNoU3RyZWFtJFxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRleHQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc3dpdGNoTWFwIHdvcmtzID09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmZpbmRJdGVtKHRleHQsIHRoaXMuaXRlbXMpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLml0ZW1zPy5tYXAoKGl0ZW06IElOYXZpZ2F0b3JJdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZU5hdmlnYXRpb25JdGVtKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICghIXRoaXMuaXRlbXNFcnJvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc29sZS5ncm91cChcIk5hdmlnYXRpb24gaXRlbXMgZXJyb3JcIik7XHJcbiAgICAgICAgdGhpcy5pdGVtc0Vycm9ycz8ubWFwKGVycm9yID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4gISF4KSxcclxuICAgICAgICAgIG1hcCh4ID0+IHg/LmlkKSxcclxuICAgICAgICAgIHN3aXRjaE1hcCh4ID0+IHRoaXMuc3lzTWVudVNlcnZpY2UucmVhZFBlcm1pdHRlZE1lbnUoeCEsIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSkpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5O1xyXG4gICAgICAgICAgICBib2R5LmlubmVyQm9keS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGluIHJlY3Vyc2l2ZSBjb2RlIHdlIHdpbGwgcmVhZCBmcm9tIGJvdHRvbSB0byB0b3BcclxuICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA+IGIub3JkZXJOdW1iZXIpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA9PT0gYi5vcmRlck51bWJlcikgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPCBiLm9yZGVyTnVtYmVyKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5saW5lckl0ZW1zJC5uZXh0KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYm9keS5pbm5lckJvZHkpKSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnNpdmVTZXJ2aWNlLmxpbmVyQXJyYXlUb05lc3RlZEFycmF5KFxyXG4gICAgICAgICAgICAgICAgYm9keS5pbm5lckJvZHksXHJcbiAgICAgICAgICAgICAgICBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICBcImNvZGVcIixcclxuICAgICAgICAgICAgICAgIFwicGFyZW50XCIsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC52YWx1ZSxcclxuICAgICAgICAgICAgICAgIFwib3JkZXJOdW1cIlxyXG4gICAgICAgICAgICAgICkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHIubGlzdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UubmF2aWdhdGlvbiQubmV4dChyLmxpc3QpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGlzRGV2TW9kZSgpKVxyXG4gICAgICAgICAgICAvL3RoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KHgsIG51bGwsIDIpLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY2xpY2tlZEl0ZW0kLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoeCA9PiAhIXgpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uSXRlbUNsaWNrKHghKTtcclxuICAgICAgICAgIGlmICh4Py50cmVlJENoaWxkcmVuICYmIHg/LnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYoISF0aGlzLml0ZW1zKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW1BY3RpdmF0ZWQgPSB0aGlzLml0ZW1zLmZpbHRlcih5ID0+IHkgIT09IHggJiYgeS5pZCAhPT0geC50cmVlJFBhcmVudCAmJiB5LnRyZWUkU2VsZWN0ZWQgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICBpdGVtQWN0aXZhdGVkPy5tYXAoeiA9PiB6LnRyZWUkU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBlbHNle1xyXG4gICAgICAgICAgICAvLyAgIGxldCBtZW51ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21lbnVJdGVtcycpXHJcbiAgICAgICAgICAgIC8vICAgaWYoISFtZW51KXtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuaXRlbXMgPSBKU09OLnBhcnNlKG1lbnUpXHJcbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyh0aGlzLml0ZW1zKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCEheCAmJiAhIXgucGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5tYXAocGFyZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmVudC50cmVlJENoaWxkcmVuLm1hcChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC50cmVlJENoaWxkcmVuLmxlbmd0aCA9PSAwICYmIGNoaWxkICE9IHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGNoaWxkLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRDaGlsZHJlbi5tYXAoayA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZihjaGlsZC5pZCAhPSBrLnBhcmVudCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoaWxkICE9IHggJiYgeC5wYXJlbnQgIT0gY2hpbGQuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmKHguaWQgPT0gKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYgKHgucGFyZW50ID09IGNoaWxkLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21lbnVJdGVtcycsIEpTT04uc3RyaW5naWZ5KHRoaXMuaXRlbXMpKTtcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5saW5lckl0ZW1zJC5zdWJzY3JpYmUoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgaXRlbXM/Lm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyB4LmlkKVxyXG4gICAgICAgICAgICBpZiAoeC50cmVlJEV4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoeC50cmVlJEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2UoZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaFN0cmVhbSQubmV4dChlKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaEZvciA9IFwiXCI7XHJcbiAgICB0aGlzLnNlYXJjaFN0cmVhbSQubmV4dChcIlwiKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlTmF2aWdhdGlvbkl0ZW0oaXRlbTogSU5hdmlnYXRvckl0ZW0pIHtcclxuICAgIGlmICghISFpdGVtLmlkKSB7XHJcbiAgICAgIHRoaXMuaXRlbXNFcnJvcnMucHVzaChgVmFsdWUgb2YgcHJvcGVydHkgXCJpZFwiIG9mIG5hdmlnYXRpb24gaXRlbSBcIiR7aXRlbS5jb2RlfVwiIGlzIG5vdCBzZXRgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmxhdE5hdmlnYXRpb25DaGVjay5maWx0ZXIoeCA9PiB4LmlkID09PSBpdGVtLmlkKTtcclxuICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZmxhdE5hdmlnYXRpb25DaGVjay5wdXNoKHtcclxuICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICBjb3VudDogMCxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLml0ZW1zRXJyb3JzLnB1c2goYER1cGxpY2F0ZWQgTmF2aWdhdGlvbiBpZCAke2l0ZW0uaWR9YCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKGl0ZW0pKSB7XHJcbiAgICAgIGl0ZW0udHJlZSRDaGlsZHJlbj8ubWFwKGNoaWxkID0+IHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlTmF2aWdhdGlvbkl0ZW0oY2hpbGQpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGhhc0NoaWxkcmVuKGl0ZW06IElOYXZpZ2F0b3JJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09IFwidHJlZSRDaGlsZHJlblwiKSB7XHJcbiAgICAgICAgaWYgKCEhaXRlbVsndHJlZSRDaGlsZHJlbiddPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBpdGVtSGFzQ2hpbGRyZW4oaXRlbTogSU5hdmlnYXRvckl0ZW0pOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIE9iamVjdC5rZXlzKGl0ZW0pLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgaWYgKGtleSA9PT0gJ3RyZWUkQ2hpbGRyZW4nKSB7XHJcbiAgICAgICAgaWYgKCEhaXRlbVsndHJlZSRDaGlsZHJlbiddPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgb25JdGVtQ2xpY2soaXRlbTogSU5hdmlnYXRvckl0ZW0pIHtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmxpbmVySXRlbXMkLnZhbHVlO1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2Uuc2VmdFRvZ2dsZUV4cGFuZFNpYmxpbmdzQ29sbGFwc2UoY3VycmVudCwgaXRlbS5pZCk7XHJcbiAgICB0aGlzLmxpbmVySXRlbXMkLm5leHQoaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4ge1xyXG4gICAgICBpZiAoeCkgeC51bnN1YnNjcmliZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG59IiwiPGRpdiBjbGFzcz1cIm5hdmlnYXRvci1jb250YWluZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VhcmNoLWNvbnRhaW5lclwiIFtjbGFzcy5vcGFjaXR5MF09XCIhIWxlZnRiYXJSZWR1Y2VkXCI+XHJcbiAgICAgICAgPGlucHV0IGlkPVwibmF2aWdhdG9yLXNlYXJjaFwiIFtwbGFjZWhvbGRlcl09XCInVUlfQ09NTU9OX1BMQUNFX0hPTERFUl9TRUFSQ0hfSEVSRScgfCB0cmFuc2xhdGU6IGxhbmdcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoRm9yXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jbGVhci13cmFwcGVyXCIgKm5nSWY9XCIhIXNlYXJjaEZvci5sZW5ndGhcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgaWQ9XCJuYXZcIj5cclxuICAgICAgICA8Y29yZS1sb2FkaW5nLXN1cmZhY2UgKm5nSWY9XCJsb2FkaW5nXCI+PC9jb3JlLWxvYWRpbmctc3VyZmFjZT5cclxuICAgICAgICA8dWwgaWQ9XCJtYWluLW1lbnVcIiAjbWFpbk1lbnUgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAwfVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxsaSBpZD1cImZpcnN0LW1lbnUtaXRlbVwiIGNsYXNzPVwiZmlyc3QtbWVudS1pZW1cIj48YSB0aXRsZT1cIkdvIHRvIGhvbWUgcGFnZVwiIHJvdXRlckxpbms9XCIvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJsb2dvLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2dvVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7PC9hPlxyXG4gICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtsZXZlbF09XCIxXCI+PC9hcHAtaXRlbT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJwYXJlbnQgcmlnaHQtcGFydC1pdGVtXCIgKm5nSWY9XCIhIXJpZ2h0SWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJpZ2h0SWNvbi5mdW5jdGlvbigpXCIgY2xhc3M9XCJuby12ZXJ0aWNhbC1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3JpZ2h0LWljb24gJyArIHJpZ2h0SWNvbi5mZWF0aGVyQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1pY29uLWJhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByaWdodEljb24uYmFkZ2VDb3VudCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS10b2dnbGVyXCIgW2FwcFRvb2x0aXBdPVwiKHdpZGVNb2RlID8gJ1VJX0xFRlRCQVJfVE9HR0xFUl9DT0xMQVBTRScgOiAnVUlfTEVGVEJBUl9UT0dHTEVSX0VYUEFORCcpIHwgdHJhbnNsYXRlOiBsYW5nXCIgW3Nob3dBbnl3YXldPVwidHJ1ZVwiIHBvc2l0aW9uPVwiYWJvdmVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLXRvZ2dsZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3JlLWxpbmUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLWxpbmU+PC9jb3JlLWxpbmU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWNoZXZyb25zLWxlZnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHdpZGVNb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdVSV9MRUZUQkFSX1RPR0dMRVJfQ09MTEFQU0UnIHwgdHJhbnNsYXRlOiBsYW5nIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=