@smarterplan/ngx-smarterplan-core 1.2.49 → 1.2.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +139 -15
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2020/lib/ngx-smarterplan-core.module.mjs +1 -4
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +161 -179
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +161 -179
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/menu-bar/menu-bar.component.d.ts +29 -2
- package/lib/ngx-smarterplan-core.module.d.ts +9 -10
- package/package.json +1 -1
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +0 -147
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +0 -35
|
@@ -375,10 +375,10 @@ export class NavigationBarComponent {
|
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
NavigationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationBarComponent, deps: [{ token: 'currentAwsKinesisAnalyticsService' }, { token: i1.Router }, { token: i2.SpaceService }, { token: i3.BaseUserService }, { token: i4.ZoneService }, { token: i5.VisitService }, { token: i6.ViewerService }, { token: i7.NavigatorService }, { token: i8.ZoneChangeService }, { token: i9.BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
378
|
-
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1\">\r\n <div class=\"d-flex flex-column\">\r\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationClick()\">\r\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\r\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\r\n </select>\r\n <p class=\"m-0 fw-bold lh-base align-middle text-center\" *ngIf=\"showLocation()\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n\r\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\r\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\r\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\r\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\r\n </option>\r\n </select>\r\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\r\n (ngModelChange)=\"onFloorClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\r\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\r\n (ngModelChange)=\"onZoneClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\r\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\r\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\r\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\r\n </select>\r\n <!-- <select class=\"form-control flex-fill\">\r\n <option i18n>{{'Favorites' | translate}}</option>\r\n </select> -->\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\">\r\n <div class=\"outer_circle w-auto m-1\">\r\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\r\n (click)=\"goTo()\"></button>\r\n </div>\r\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d w-auto m-1\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\r\n <span class=\"link-light w-auto m-1\" (click)=\"onHideClick()\">{{ \"Hide\" | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle}#btn-icon:hover{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%234BA4A8%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}#btn-icon[disabled]:hover{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\n"], directives: [{ type: i10.NgbNavbar, selector: ".navbar" }, { type: i11.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i11.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i13.TranslatePipe } });
|
|
378
|
+
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1 mt-2\">\r\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationClick()\">\r\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\r\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\r\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\r\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\r\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\r\n </option>\r\n </select>\r\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\r\n (ngModelChange)=\"onFloorClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\r\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\r\n (ngModelChange)=\"onZoneClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\r\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\r\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\r\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\r\n </select>\r\n <!-- <select class=\"form-control flex-fill\">\r\n <option i18n>{{'Favorites' | translate}}</option>\r\n </select> -->\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\" *ngIf=\"showLocation()\">\r\n <p class=\"fw-bold lh-base align-middle text-center\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\">\r\n <button (click)=\"goTo()\"\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">\r\n <i class=\"icon-go-to-3d d-inline-block\"></i> {{'3D visit' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:100%;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}.btn-3d .icon-go-to-3d{width:30px;height:30px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle;fill:var(--smarterplan-primary)}.btn-3d:hover:enabled .icon-go-to-3d{background:url(\"data:image/svg+xml,%3Csvg width%3D%2260%22 height%3D%2260%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 version%3D%221.1%22 xml%3Aspace%3D%22preserve%22%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cg id%3D%22svg_1%22%3E %3Cpath class%3D%22st0%22 d%3D%22m43.9%2C32.1l0%2C-14.4c0%2C-0.4 -0.2%2C-0.7 -0.5%2C-0.9l-12.8%2C-8c-0.2%2C-0.1 -0.4%2C-0.2 -0.6%2C-0.2c-0.2%2C0 -0.4%2C0.1 -0.6%2C0.2l-12.8%2C8c-0.3%2C0.2 -0.5%2C0.5 -0.5%2C0.9l0%2C14.4c0%2C0.4 0.2%2C0.7 0.5%2C0.9l12.8%2C8c0.3%2C0.2 0.8%2C0.2 1.1%2C0l12.8%2C-8c0.4%2C-0.2 0.6%2C-0.5 0.6%2C-0.9zm-15%2C6.1l-10.7%2C-6.7l0%2C-12l10.7%2C6.7l0%2C12zm1.1%2C-13.8l-10.8%2C-6.8l10.8%2C-6.7l10.8%2C6.8l-10.8%2C6.7zm11.8%2C7.1l-10.7%2C6.7l0%2C-12l10.7%2C-6.7l0%2C12z%22 fill%3D%22%23ffffff%22 id%3D%22svg_2%22%2F%3E %3Cpath class%3D%22st0%22 d%3D%22m56.1%2C29.3l-10.3%2C-6.8l0%2C2l1.4%2C1l0%2C0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2 0.4%2C0.5 0.4%2C0.8c0%2C0.3 -0.2%2C0.6 -0.4%2C0.8l-6.8%2C4.7l0%2C0l-0.9%2C0.7l0%2C0l-2.9%2C2l0%2C0l-13.8%2C9.6c-0.3%2C0.2 -0.8%2C0.2 -1.1%2C0l-14.2%2C-9.8l-2.6%2C-1.8l0%2C0l-7.7%2C-5.4c-0.3%2C-0.2 -0.4%2C-0.5 -0.4%2C-0.8c0%2C-0.3 0.2%2C-0.6 0.4%2C-0.8l0%2C0l7.3%2C-5l0%2C0l0.5%2C-0.3l0%2C0l1.4%2C-1l0%2C-2l-10.3%2C6.8c-0.8%2C0.5 -1.2%2C1.4 -1.2%2C2.4c0%2C0.9 0.5%2C1.8 1.2%2C2.4l8.8%2C6.1l0%2C0l4.5%2C3.1l11.2%2C7.7c1%2C0.7 2.3%2C0.7 3.3%2C0l13.7%2C-9.5l1.9%2C-1.3l0%2C0l8.8%2C-6.1c0.8%2C-0.5 1.2%2C-1.4 1.2%2C-2.4s-0.4%2C-1.9 -1.2%2C-2.4z%22 fill%3D%22%23ffffff%22 id%3D%22svg_3%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-3d[disabled]:hover .icon-go-to-3d{fill:var(--smarterplan-primary)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\n"], directives: [{ type: i10.NgbNavbar, selector: ".navbar" }, { type: i11.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i11.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i13.TranslatePipe } });
|
|
379
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationBarComponent, decorators: [{
|
|
380
380
|
type: Component,
|
|
381
|
-
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1
|
|
381
|
+
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1 mt-2\">\r\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationClick()\">\r\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\r\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\r\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\r\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\r\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\r\n </option>\r\n </select>\r\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\r\n (ngModelChange)=\"onFloorClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\r\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\r\n (ngModelChange)=\"onZoneClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\r\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\r\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\r\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\r\n </select>\r\n <!-- <select class=\"form-control flex-fill\">\r\n <option i18n>{{'Favorites' | translate}}</option>\r\n </select> -->\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\" *ngIf=\"showLocation()\">\r\n <p class=\"fw-bold lh-base align-middle text-center\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\">\r\n <button (click)=\"goTo()\"\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">\r\n <i class=\"icon-go-to-3d d-inline-block\"></i> {{'3D visit' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:100%;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}.btn-3d .icon-go-to-3d{width:30px;height:30px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle;fill:var(--smarterplan-primary)}.btn-3d:hover:enabled .icon-go-to-3d{background:url(\"data:image/svg+xml,%3Csvg width%3D%2260%22 height%3D%2260%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 version%3D%221.1%22 xml%3Aspace%3D%22preserve%22%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cg id%3D%22svg_1%22%3E %3Cpath class%3D%22st0%22 d%3D%22m43.9%2C32.1l0%2C-14.4c0%2C-0.4 -0.2%2C-0.7 -0.5%2C-0.9l-12.8%2C-8c-0.2%2C-0.1 -0.4%2C-0.2 -0.6%2C-0.2c-0.2%2C0 -0.4%2C0.1 -0.6%2C0.2l-12.8%2C8c-0.3%2C0.2 -0.5%2C0.5 -0.5%2C0.9l0%2C14.4c0%2C0.4 0.2%2C0.7 0.5%2C0.9l12.8%2C8c0.3%2C0.2 0.8%2C0.2 1.1%2C0l12.8%2C-8c0.4%2C-0.2 0.6%2C-0.5 0.6%2C-0.9zm-15%2C6.1l-10.7%2C-6.7l0%2C-12l10.7%2C6.7l0%2C12zm1.1%2C-13.8l-10.8%2C-6.8l10.8%2C-6.7l10.8%2C6.8l-10.8%2C6.7zm11.8%2C7.1l-10.7%2C6.7l0%2C-12l10.7%2C-6.7l0%2C12z%22 fill%3D%22%23ffffff%22 id%3D%22svg_2%22%2F%3E %3Cpath class%3D%22st0%22 d%3D%22m56.1%2C29.3l-10.3%2C-6.8l0%2C2l1.4%2C1l0%2C0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2 0.4%2C0.5 0.4%2C0.8c0%2C0.3 -0.2%2C0.6 -0.4%2C0.8l-6.8%2C4.7l0%2C0l-0.9%2C0.7l0%2C0l-2.9%2C2l0%2C0l-13.8%2C9.6c-0.3%2C0.2 -0.8%2C0.2 -1.1%2C0l-14.2%2C-9.8l-2.6%2C-1.8l0%2C0l-7.7%2C-5.4c-0.3%2C-0.2 -0.4%2C-0.5 -0.4%2C-0.8c0%2C-0.3 0.2%2C-0.6 0.4%2C-0.8l0%2C0l7.3%2C-5l0%2C0l0.5%2C-0.3l0%2C0l1.4%2C-1l0%2C-2l-10.3%2C6.8c-0.8%2C0.5 -1.2%2C1.4 -1.2%2C2.4c0%2C0.9 0.5%2C1.8 1.2%2C2.4l8.8%2C6.1l0%2C0l4.5%2C3.1l11.2%2C7.7c1%2C0.7 2.3%2C0.7 3.3%2C0l13.7%2C-9.5l1.9%2C-1.3l0%2C0l8.8%2C-6.1c0.8%2C-0.5 1.2%2C-1.4 1.2%2C-2.4s-0.4%2C-1.9 -1.2%2C-2.4z%22 fill%3D%22%23ffffff%22 id%3D%22svg_3%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-3d[disabled]:hover .icon-go-to-3d{fill:var(--smarterplan-primary)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\n"] }]
|
|
382
382
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
383
383
|
type: Inject,
|
|
384
384
|
args: ['currentAwsKinesisAnalyticsService']
|
|
@@ -386,4 +386,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
386
386
|
type: ViewChild,
|
|
387
387
|
args: ['navbarSelectMenu']
|
|
388
388
|
}] } });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtYmFyL25hdmlnYXRpb24tYmFyL25hdmlnYXRpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWJhci9uYXZpZ2F0aW9uLWJhci9uYXZpZ2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFnQnJELE1BQU0sT0FBTyxzQkFBc0I7SUF1Q2pDLFlBRUUsMkJBQWdDLEVBQ3hCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixXQUE0QixFQUM1QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsaUJBQW9DLEVBQ3BDLHFCQUE0QztRQVI1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNw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LENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUNFLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRztZQUN2QixJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGdCQUFnQixFQUNyQjtZQUNBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztTQUNuQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O29IQXJjVSxzQkFBc0Isa0JBd0N2QixtQ0FBbUM7d0dBeENsQyxzQkFBc0IsZ0xDbkJuQyxzb0hBb0RNOzRGRGpDTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkE0QzNCLE1BQU07MkJBQUMsbUNBQW1DOzhTQXJDZCxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGFjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RlbHMvc3BhY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpc2l0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGVscy92aXNpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWm9uZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RlbHMvem9uZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZpZXdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3BhY2UsIFZpc2l0LCBab25lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFpvbmVDaGFuZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3pvbmVDaGFuZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9iYXNlVmlzaWJpbGl0eS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW5hdmlnYXRpb24tYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24tYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhd3NLaW5lc2lzQW5hbHl0aWNzOiBhbnk7IC8vQVdTXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ25hdmJhclNlbGVjdE1lbnUnKSBuYXZiYXJTZWxlY3RNZW51ITogYW55O1xyXG5cclxuICBsb2NhdGlvbnM6IFNwYWNlW107XHJcblxyXG4gIGN1cnJlbnRMb2NhdGlvbklEOiBzdHJpbmc7XHJcblxyXG4gIGN1cnJlbnRNb2RlbDNkOiBzdHJpbmc7XHJcblxyXG4gIHNlbGVjdGVkTG9jYXRpb246IFNwYWNlID0gbnVsbDtcclxuXHJcbiAgc2VsZWN0ZWRNb2RlbDNkOiBzdHJpbmc7XHJcblxyXG4gIHNlbGVjdGVkRmxvb3I6IFpvbmUgPSBudWxsO1xyXG5cclxuICBzZWxlY3RlZFpvbmU6IFpvbmUgPSBudWxsO1xyXG5cclxuICBzZWxlY3RlZENoaWxkWm9uZTogWm9uZSA9IG51bGw7XHJcblxyXG4gIHZpc2l0c1BlclNwYWNlOiBWaXNpdFtdID0gbnVsbDtcclxuXHJcbiAgZmxvb3JzUGVyU3BhY2U6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHpvbmVzUGVyU3BhY2U6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHpvbmVzUGVyRmxvb3I6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIGNoaWxkcmVuWm9uZXM6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHN3ZWVwVG9Hbzogc3RyaW5nO1xyXG5cclxuICBmbG9vclRvR286IFpvbmU7XHJcblxyXG4gIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgbmF2RXZlbnRzOiBPYnNlcnZhYmxlPE5hdmlnYXRpb25FbmQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXHJcbiAgICBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ6IGFueSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNwYWNlU2VydmljZTogU3BhY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lU2VydmljZTogWm9uZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpc2l0U2VydmljZTogVmlzaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3ZXJTZXJ2aWNlOiBWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lQ2hhbmdlU2VydmljZTogWm9uZUNoYW5nZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhc2VWaXNpYmlsaXR5U2VydmljZTogQmFzZVZpc2liaWxpdHlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XHJcbiAgICB0aGlzLnNwYWNlU2VydmljZS5sb2NhdGlvblVwZGF0ZWRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsb2NzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbnMgPSBsb2NzO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkXHJcbiAgICAgICAgICApOyAvLyBVcGRhdGUgT2JqZWN0IChvYmplY3QgYWRkcmVzcyB3aWxsIGNoYW5nZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMudmlld2VyU2VydmljZS52aWV3ZXJJc09uXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogeyBzcGFjZUlEOiBzdHJpbmc7IG1vZGVsM0Q6IHN0cmluZzsgc3dlZXA6IHN0cmluZyB8IG51bGwgfSkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ21lbnUgbmF2aWdhdGlvbiByZWNlaXZlZCB1cGRhdGUnLCBkYXRhKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uSUQgPSBkYXRhLnNwYWNlSUQ7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbDNkID0gZGF0YS5tb2RlbDNEO1xyXG4gICAgICAgICAgaWYgKCFkYXRhLnNwYWNlSUQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvY2F0aW9uSWQnKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kVXBkYXRlTG9jYXRpb25FdmVudCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICghdGhpcy5zZWxlY3RlZExvY2F0aW9uIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkICE9PSBkYXRhLnNwYWNlSUQpICYmXHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25zXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uID0gdGhpcy5maW5kTG9jYXRpb25CeUlEKGRhdGEuc3BhY2VJRCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXZSBsaXN0ZW4gZm9yIExvY2F0aW9uIGNoYW5nZSBldmVudFxyXG4gICAgICovXHJcbiAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UubG9jYXRpb25JRENoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uSUQgPSBpZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPSB0aGlzLmZpbmRMb2NhdGlvbkJ5SUQoaWQpO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyTG9jYXRpb25JRCA9IGlkO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3RlZExvY2F0aW9uQ2hhbmdlZCgpLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lc0ZvclVzZXJDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jICh6b25lcykgPT4ge1xyXG4gICAgICAgIGlmICh6b25lcykge1xyXG4gICAgICAgICAgYXdhaXQgd2FpdFVudGlsKCgpID0+IHRoaXMuZmxvb3JzUGVyU3BhY2UgIT09IG51bGwpO1xyXG4gICAgICAgICAgY29uc3QgZmxvb3Jab25lID0gem9uZXMuZmluZChcclxuICAgICAgICAgICAgKHpvbmUpID0+IHpvbmUubGF5ZXIgJiYgem9uZS5sYXllci5uYW1lID09PSAnRkxPT1InXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKGZsb29yWm9uZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSB0aGlzLmZsb29yc1BlclNwYWNlLmZpbmQoXHJcbiAgICAgICAgICAgICAgKGYpID0+IGYuaWQgPT09IGZsb29yWm9uZS5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAvLyBFbWl0IGV2ZW50IHRvIGRpc3BhdGNoIHZhbHVlIG9mICB0aGlzLnNlbGVjdGVkRmxvb3IgaW4gYWxsIHBvaS90aWNrZXQvZXF1aXBtZW50L21lYXN1cmUgc2VydmljZXNcclxuICAgICAgICAgICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmxvb3IpO1xyXG4gICAgICAgICAgICB0aGlzLm9uRmxvb3JDbGljayhmYWxzZSkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIGF3YWl0IHRoaXMuaW5pdExvY2F0aW9ucygpO1xyXG4gICAgdGhpcy5oYW5kbGVTdGFydFVybCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBDYXB0dXJlIHRoZSBcImlkXCIgaW4gbG9jYWxpc2F0aW9uLzppZCByb3V0ZXNcclxuICBoYW5kbGVTdGFydFVybCgpIHtcclxuICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvY2FsaXNhdGlvbi8nKSkge1xyXG4gICAgICBjb25zdCBwYXRocyA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnLycpOyAvLyAvZGFzaGJvYXJkL2xvY2FsaXNhdGlvbi9mYzBhYWRiNy0zYzg5LTQzNDktYWQxZi1iZmU5YjQ0OTE2YzBcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXHJcbiAgICAgIGNvbnN0IGxvY0lEID0gcGF0aHNbM107XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2NhdGlvbklEICE9PSBsb2NJRCkge1xyXG4gICAgICAgIHRoaXMuY2xlYXJEYXRhKCk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb25JRCA9IGxvY0lEO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRChsb2NJRCk7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnROYXZCYXJMb2NhdGlvbklEID0gbG9jSUQ7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkTG9jYXRpb25DaGFuZ2VkKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0TG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbnMgPSB0aGlzLnNwYWNlU2VydmljZS5sb2NhdGlvbnNGb3JVc2VyO1xyXG4gICAgaWYgKHRoaXMubG9jYXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9ucyA9IGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmdldExvY2F0aW9uc0ZvckN1cnJlbnRVc2VyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb25JRCAmJiB0aGlzLmxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRCh0aGlzLmN1cnJlbnRMb2NhdGlvbklEKTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhIGxvY2F0aW9uIHdpdGggYSBnaXZlbiBJRFxyXG4gICAqIEBwYXJhbSBpZCBJRCBmb3IgdGhlIGxvY2F0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIGxvY2F0aW9uIG9yIG51bGwgaWYgbm8gbG9jYXRpb24gd2VyZSBmb3VuZFxyXG4gICAqL1xyXG4gIGZpbmRMb2NhdGlvbkJ5SUQoaWQ6IHN0cmluZyk6IFNwYWNlIHtcclxuICAgIGNvbnN0IHNwYWNlID0gdGhpcy5sb2NhdGlvbnMuZmluZCgobG9jKSA9PiBsb2MuaWQgPT09IGlkKTtcclxuICAgIHJldHVybiBzcGFjZSB8fCBudWxsOyAvKiogQ29udmVydCB0byBudWxsIGlmIHVuZGVmaW5lZCAqL1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRhKGNsZWFyVmlzaXRzOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5mbG9vcnNQZXJTcGFjZSA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSBudWxsO1xyXG4gICAgdGhpcy56b25lc1BlckZsb29yID0gbnVsbDtcclxuICAgIHRoaXMuY2hpbGRyZW5ab25lcyA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwzZCA9IG51bGw7XHJcbiAgICB0aGlzLnN3ZWVwVG9HbyA9IG51bGw7XHJcbiAgICB0aGlzLmZsb29yVG9HbyA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkWm9uZSA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2hpbGRab25lID0gbnVsbDtcclxuICAgIGlmIChjbGVhclZpc2l0cykge1xyXG4gICAgICB0aGlzLnZpc2l0c1BlclNwYWNlID0gbnVsbDtcclxuICAgICAgdGhpcy56b25lc1BlclNwYWNlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdsb2NhdGlvbklkJyk7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZmxvb3JJZCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3pvbmVJZCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NoaWxkWm9uZUlkJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBzZWxlY3RlZExvY2F0aW9uIGNoYW5nZXNcclxuICAgKiBTZW5kIGEgZXZlbnQgdG8gbG9jYXRpb25JRENoYW5nZSBmcm9tIE5hdmlnYXRvclNlcnZpY2VcclxuICAgKiBUaGUgZXZlbnQgd2lsbCBiZSBjYXRjaCBieSB0aGlzIGNvbXBvbmVudCBhbmQgdGhlIGZpbHRlciBiYXIgd2lsbCBiZSB1cGRhdGVcclxuICAgKi9cclxuICBzZW5kVXBkYXRlTG9jYXRpb25FdmVudCgpIHtcclxuICAgIGNvbnN0IGxvY2F0aW9uSUQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPyB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQgOiBudWxsO1xyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmxvY2F0aW9uSURDaGFuZ2UubmV4dChsb2NhdGlvbklEKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xvY2F0aW9uSWQnLCB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvY2F0aW9uSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2VsZWN0ZWRMb2NhdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnZpc2l0c1BlclNwYWNlID0gYXdhaXQgdGhpcy52aXNpdFNlcnZpY2UuZ2V0VmlzaXRzRm9yU3BhY2VGb3JVc2VyKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbi5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnpvbmVzUGVyU3BhY2UgPSBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLmdldFpvbmVzQnlTcGFjZUZvclVzZXIoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLnZpc2l0c1BlclNwYWNlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbDNkID0gdGhpcy52aXNpdHNQZXJTcGFjZVswXS5tb2RlbDNkO1xyXG4gICAgICAgIHRoaXMuZmxvb3JzUGVyU3BhY2UgPSB0aGlzLnpvbmVzUGVyU3BhY2UuZmlsdGVyKFxyXG4gICAgICAgICAgKHpvbmUpID0+IHpvbmUubGF5ZXIgJiYgem9uZS5sYXllci5uYW1lLmluY2x1ZGVzKCdGTE9PUicpXHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyBzb3J0IGZyb20gaGlnaGVzdCBmbG9vciB0byBsb3dlc3RcclxuICAgICAgICB0aGlzLmZsb29yc1BlclNwYWNlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgIGlmIChhLm1ldGFkYXRhICYmIGIubWV0YWRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFBID0gSlNPTi5wYXJzZShhLm1ldGFkYXRhKTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFCID0gSlNPTi5wYXJzZShiLm1ldGFkYXRhKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICBtZXRhZGF0YUIubWF0dGVycG9ydEZsb29yU2VxdWVuY2UgLVxyXG4gICAgICAgICAgICAgIG1ldGFkYXRhQS5tYXR0ZXJwb3J0Rmxvb3JTZXF1ZW5jZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgbXVsdGlGbG9vclpvbmVzID0gdGhpcy56b25lc1BlclNwYWNlLmZpbHRlcihcclxuICAgICAgICAgICh6b25lKSA9PiB6b25lLmlzTXVsdGlwbGVGbG9vclpvbmVcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIHNvcnQgYWxwaGFiZXRpY2FsbHlcclxuICAgICAgICBtdWx0aUZsb29yWm9uZXMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbiAgICAgICAgLy8gbWVyZ2UgbXVsdGlGbG9vciBhbmQgRmxvb3JzXHJcbiAgICAgICAgdGhpcy5mbG9vcnNQZXJTcGFjZSA9IFsuLi50aGlzLmZsb29yc1BlclNwYWNlLCAuLi5tdWx0aUZsb29yWm9uZXNdO1xyXG4gICAgICAgIGlmICh0aGlzLmZsb29yc1BlclNwYWNlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgW3RoaXMuc2VsZWN0ZWRGbG9vcl0gPSB0aGlzLmZsb29yc1BlclNwYWNlO1xyXG4gICAgICAgICAgdGhpcy5vbkZsb29yQ2xpY2soZmFsc2UpLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBvbkNob3NlbkxvY2F0aW9uJywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Mb2NhdGlvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5jbGVhckRhdGEoKTtcclxuICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uRmxvb3JDbGljayhlbWl0RXZlbnQgPSB0cnVlKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdmbG9vcklkJywgdGhpcy5zZWxlY3RlZEZsb29yLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdmbG9vcklkJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yICYmIHRoaXMuc2VsZWN0ZWRGbG9vci5pc011bHRpcGxlRmxvb3Jab25lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab25lID0gdGhpcy5zZWxlY3RlZEZsb29yO1xyXG4gICAgICB0aGlzLm9uWm9uZUNsaWNrKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uWm9uZUNsaWNrKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zd2VlcFRvR28gPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvbmUgPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZENoaWxkWm9uZSA9IG51bGw7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnem9uZUlkJyk7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2hpbGRab25lSWQnKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmxvb3IgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudE5hdkJhclpvbmVJRCA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChlbWl0RXZlbnQpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KHRoaXMuc2VsZWN0ZWRGbG9vci5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnROYXZCYXJab25lSUQgPSB0aGlzLnNlbGVjdGVkRmxvb3IuaWQ7XHJcbiAgICBhd2FpdCB3YWl0VW50aWwoXHJcbiAgICAgICgpID0+IHRoaXMuem9uZXNQZXJTcGFjZSAhPT0gbnVsbCAmJiB0aGlzLnpvbmVzUGVyU3BhY2UgIT09IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIHRoaXMuem9uZXNQZXJGbG9vciA9IHRoaXMuem9uZXNQZXJTcGFjZS5maWx0ZXIoXHJcbiAgICAgICh6b25lKSA9PlxyXG4gICAgICAgIC8vIHpvbmUuaWQgPT09IHRoaXMuc2VsZWN0ZWRGbG9vci5pZCB8fFxyXG4gICAgICAgIHpvbmUucGFyZW50SUQgPT09IHRoaXMuc2VsZWN0ZWRGbG9vci5pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuem9uZXNQZXJGbG9vci5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IENvbGxhdG9yID0gbmV3IEludGwuQ29sbGF0b3IodW5kZWZpbmVkLCB7XHJcbiAgICAgICAgbnVtZXJpYzogdHJ1ZSxcclxuICAgICAgICBzZW5zaXRpdml0eTogJ2FjY2VudCcsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIENvbGxhdG9yLmNvbXBhcmUoYS5jb2RlX3JlZiwgYi5jb2RlX3JlZikgfHxcclxuICAgICAgICBDb2xsYXRvci5jb21wYXJlKGEubmFtZSwgYi5uYW1lKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblpvbmVDbGljaygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDaGlsZFpvbmUgPSBudWxsO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NoaWxkWm9uZUlkJyk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFpvbmUpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3pvbmVJZCcsIHRoaXMuc2VsZWN0ZWRab25lLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd6b25lSWQnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkWm9uZSA9PT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KG51bGwpO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyWm9uZUlEID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UubmF2QmFyWm9uZUlEQ2hhbmdlLm5leHQodGhpcy5zZWxlY3RlZEZsb29yLmlkKTtcclxuICAgICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudE5hdkJhclpvbmVJRCA9IHRoaXMuc2VsZWN0ZWRGbG9vci5pZDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRab25lPy5pZCxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkWm9uZT8ubmFtZVxyXG4gICAgICApLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGlsZHJlblpvbmVzID0gdGhpcy56b25lc1BlclNwYWNlLmZpbHRlcihcclxuICAgICAgKHpvbmUpID0+IHpvbmUucGFyZW50SUQgPT09IHRoaXMuc2VsZWN0ZWRab25lLmlkXHJcbiAgICApO1xyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KHRoaXMuc2VsZWN0ZWRab25lLmlkKTtcclxuICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyWm9uZUlEID0gdGhpcy5zZWxlY3RlZFpvbmUuaWQ7XHJcbiAgICB0aGlzLnNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9uZT8uaWQsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab25lPy5uYW1lXHJcbiAgICApLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICB9XHJcblxyXG4gIG9uQ2hpbGRab25lQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZENoaWxkWm9uZSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hpbGRab25lSWQnLCB0aGlzLnNlbGVjdGVkQ2hpbGRab25lPy5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2hpbGRab25lSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgem9uZUlkOiBzdHJpbmcsXHJcbiAgICB6b25lTmFtZTogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xyXG4gICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiAnWm9uZSBDaGFuZ2UnLFxyXG4gICAgICAgICAgICB6b25lSWQ6IHpvbmVJZCxcclxuICAgICAgICAgICAgem9uZU5hbWU6IHpvbmVOYW1lLFxyXG4gICAgICAgICAgICBsb2NhdGlvbklkOiB0aGlzLnNlbGVjdGVkTG9jYXRpb24/LmlkLFxyXG4gICAgICAgICAgICBsb2NhdGlvbk5hbWU6IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbj8ubmFtZSxcclxuICAgICAgICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZT8uY3UsXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcclxuICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcclxuICAgICAgICAgICAgY2hpbGRab25lSWQ6IHRoaXMuc2VsZWN0ZWRDaGlsZFpvbmU/LmlkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHN0cmVhbU5hbWU6ICdzbWFydGVycGxhbktpbmVzaXMtYW5hbHl0aWNzJyxcclxuICAgICAgICAgIC8vIHBhcnRpdGlvbktleTogXCJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgICdBV1NLaW5lc2lzJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25WaXNpdENsaWNrKGV2ZW50KSB7XHJcbiAgICB0aGlzLmNsZWFyRGF0YShmYWxzZSk7XHJcbiAgICBjb25zdCBpbmRleCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy52aXNpdHNQZXJTcGFjZVtpbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwzZCA9IHZpc2l0Lm1vZGVsM2Q7XHJcbiAgICBjb25zdCBwYXJlbnRab25lRm9yVmlzaXQgPSBhd2FpdCB0aGlzLnZpc2l0U2VydmljZS5nZXREZWZhdWx0Wm9uZUZvclZpc2l0KFxyXG4gICAgICB2aXNpdFxyXG4gICAgKTtcclxuICAgIHRoaXMuZmxvb3JzUGVyU3BhY2UgPSB0aGlzLnpvbmVzUGVyU3BhY2UuZmlsdGVyKFxyXG4gICAgICAoem9uZSkgPT5cclxuICAgICAgICB6b25lLmxheWVyICYmXHJcbiAgICAgICAgem9uZS5sYXllci5uYW1lLmluY2x1ZGVzKCdGTE9PUicpICYmXHJcbiAgICAgICAgem9uZS5wYXJlbnRJRCA9PT0gcGFyZW50Wm9uZUZvclZpc2l0LmlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ29UbygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkWm9uZSAmJiAhdGhpcy5zZWxlY3RlZFpvbmUudmlydHVhbCkge1xyXG4gICAgICB0aGlzLnN3ZWVwVG9HbyA9IHRoaXMuc2VsZWN0ZWRab25lLnN0YXJ0U3dlZXBJRFxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFpvbmUuc3RhcnRTd2VlcElEXHJcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkWm9uZS5zd2VlcElEc1swXTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmxvb3IgJiYgIXRoaXMuc2VsZWN0ZWRab25lKSB7XHJcbiAgICAgIHRoaXMuZmxvb3JUb0dvID0gdGhpcy5zZWxlY3RlZEZsb29yO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNXaXRoaW5TYW1lVmlzaXQoKSkge1xyXG4gICAgICB0aGlzLmdvVG9Td2VlcE9yRmxvb3IoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnN3ZWVwVG9Hbykge1xyXG4gICAgICAgIHRoaXMudmlld2VyU2VydmljZS5zZXRTd2VlcFRvTW92ZSh0aGlzLnN3ZWVwVG9Hbyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmxvb3JUb0dvICYmIHRoaXMuZmxvb3JzUGVyU3BhY2UubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmZsb29yVG9HbyA9IHRoaXMuZmxvb3JUb0dvO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm91dGVyXHJcbiAgICAgICAgLm5hdmlnYXRlKFsndmlzaXQnLCB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWRdLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyBtb2RlbDNEOiB0aGlzLnNlbGVjdGVkTW9kZWwzZCB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzV2l0aGluU2FtZVZpc2l0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb25JRCA9PT0gdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbDNkID09PSB0aGlzLmN1cnJlbnRNb2RlbDNkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ29Ub1N3ZWVwT3JGbG9vcigpIHtcclxuICAgIGlmICh0aGlzLnN3ZWVwVG9Hbykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuZ29Ub1N3ZWVwV2l0aFJvdGF0aW9uKHRoaXMuc3dlZXBUb0dvKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZsb29yVG9Hbykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuZ29Ub0Zsb29yKHRoaXMuZmxvb3JUb0dvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGhhc0hpc3RvcnkoKTogYm9vbGVhbiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLm5hdmlnYXRvclNlcnZpY2UubW9kZWxIYXNIaXN0b3J5KHRoaXMuc2VsZWN0ZWRNb2RlbDNkKTtcclxuICAvLyB9XHJcblxyXG4gIGNhbkdvKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgdmlld2VySXNSZWFkeSA9XHJcbiAgICAgIHRoaXMudmlld2VyU2VydmljZS5pc0xvYWRlZCAmJiB0aGlzLnZpZXdlclNlcnZpY2Uuc2hvd2luZ1ZpZXdlcjtcclxuICAgIGNvbnN0IG5vVmlld2VyID0gIXRoaXMudmlld2VyU2VydmljZS5zaG93aW5nVmlld2VyO1xyXG4gICAgcmV0dXJuIHZpZXdlcklzUmVhZHkgfHwgbm9WaWV3ZXI7XHJcbiAgfVxyXG5cclxuICBzaG93TG9jYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmIChcclxuICAgICAgd2luZG93LmlubmVyV2lkdGggPCA3NTAgJiZcclxuICAgICAgdGhpcy5uYXZiYXJTZWxlY3RNZW51ICYmXHJcbiAgICAgIHRoaXMubmF2YmFyU2VsZWN0TWVudS5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zZWFyY2goJ3Nob3cnKSA9PT0gLTEgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbi5uYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgb25IaWRlQ2xpY2soKSB7XHJcbiAgICB0aGlzLmJhc2VWaXNpYmlsaXR5U2VydmljZS5pc0NoYW5nZVBvc2l0aW9uVmlzaWJsZS5uZXh0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLW1kIG5hdmJhci1kYXJrIG5hdmJhci1pbnZlcnNlIHNlY29uZC1uYXZcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICA8ZGl2ICNuYXZiYXJTZWxlY3RNZW51IGNsYXNzPVwidy0xMDBcIiBpZD1cIm5hdi1pdGVtLWNvbnRhaW5lci1ibHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgcC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWZpbGwgbG9jYXRpb24gc2VsZWN0LW1lbnVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkxvY2F0aW9uQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZD57eyAnTG9jYXRpb24nIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvYyBvZiBsb2NhdGlvbnM7IGluZGV4IGFzIGluZGV4XCIgW25nVmFsdWVdPVwibG9jXCI+IHt7IGxvYy5uYW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLTAgZnctYm9sZCBsaC1iYXNlIGFsaWduLW1pZGRsZSB0ZXh0LWNlbnRlclwiICpuZ0lmPVwic2hvd0xvY2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2hvd0xvY2F0aW9uKCkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZsZXgtZmlsbCBzZWxlY3QtbWVudVwiIChjaGFuZ2UpPVwib25WaXNpdENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlzaXRzUGVyU3BhY2UgJiYgdmlzaXRzUGVyU3BhY2UubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkZWZhdWx0XCIgc2VsZWN0ZWQgZGlzYWJsZWQgaGlkZGVuPnt7J1Zpc2l0JyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmlzaXQgb2YgdmlzaXRzUGVyU3BhY2U7IGluZGV4IGFzIGluZGV4XCIgdmFsdWU9XCJ7e2luZGV4fX1cIj57eyB2aXNpdC5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWZpbGwgZmxvb3Igc2VsZWN0LW1lbnVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmxvb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmxvb3JDbGljaygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgc2VsZWN0ZWQ+e3snRmxvb3InIHwgdHJhbnNsYXRlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBmbG9vciBvZiBmbG9vcnNQZXJTcGFjZVwiIFtuZ1ZhbHVlXT1cImZsb29yXCI+e3sgZmxvb3IubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1maWxsIHNlbGVjdC1tZW51IHpvbmVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkWm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25ab25lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIHNlbGVjdGVkPnt7J1pvbmUnIHwgdHJhbnNsYXRlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB6b25lIG9mIHpvbmVzUGVyRmxvb3JcIiBbbmdWYWx1ZV09XCJ6b25lXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiem9uZS5jb2RlX3JlZlwiPnt7em9uZS5jb2RlX3JlZn19Xzwvc3Bhbj57e3pvbmUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1maWxsIHNlbGVjdC1tZW51XCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENoaWxkWm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZHJlblpvbmVzICYmIGNoaWxkcmVuWm9uZXMubGVuZ3RoPjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoaWxkWm9uZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZCBkaXNhYmxlZD57eydab25lJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgem9uZSBvZiBjaGlsZHJlblpvbmVzXCIgW25nVmFsdWVdPVwiem9uZVwiPnt7IHpvbmUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWZpbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGkxOG4+e3snRmF2b3JpdGVzJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1sLTAgcC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0ZXJfY2lyY2xlIHctYXV0byBtLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSdidG4taWNvbicgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZExvY2F0aW9uIHx8ICFzZWxlY3RlZE1vZGVsM2QgfHwgIWNhbkdvKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29UbygpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG8oKVwiIGNsYXNzPVwiYnRuIHJvdW5kZWQtcGlsbCBidG4tM2Qgdy1hdXRvIG0tMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZExvY2F0aW9uIHx8ICFzZWxlY3RlZE1vZGVsM2QgfHwgIWNhbkdvKClcIj57eyczRCB2aXNpdCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5rLWxpZ2h0IHctYXV0byBtLTFcIiAoY2xpY2spPVwib25IaWRlQ2xpY2soKVwiPnt7IFwiSGlkZVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25hdj4iXX0=
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtYmFyL25hdmlnYXRpb24tYmFyL25hdmlnYXRpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWJhci9uYXZpZ2F0aW9uLWJhci9uYXZpZ2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFnQnJELE1BQU0sT0FBTyxzQkFBc0I7SUF1Q2pDLFlBRUUsMkJBQWdDLEVBQ3hCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixXQUE0QixFQUM1QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsaUJBQW9DLEVBQ3BDLHFCQUE0QztRQVI1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNw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LENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUNFLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRztZQUN2QixJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGdCQUFnQixFQUNyQjtZQUNBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztTQUNuQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O29IQXJjVSxzQkFBc0Isa0JBd0N2QixtQ0FBbUM7d0dBeENsQyxzQkFBc0IsZ0xDbkJuQywyOEdBaURNOzRGRDlCTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkE0QzNCLE1BQU07MkJBQUMsbUNBQW1DOzhTQXJDZCxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGFjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RlbHMvc3BhY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpc2l0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGVscy92aXNpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWm9uZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RlbHMvem9uZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZpZXdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3BhY2UsIFZpc2l0LCBab25lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFpvbmVDaGFuZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3pvbmVDaGFuZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9iYXNlVmlzaWJpbGl0eS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW5hdmlnYXRpb24tYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24tYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhd3NLaW5lc2lzQW5hbHl0aWNzOiBhbnk7IC8vQVdTXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ25hdmJhclNlbGVjdE1lbnUnKSBuYXZiYXJTZWxlY3RNZW51ITogYW55O1xyXG5cclxuICBsb2NhdGlvbnM6IFNwYWNlW107XHJcblxyXG4gIGN1cnJlbnRMb2NhdGlvbklEOiBzdHJpbmc7XHJcblxyXG4gIGN1cnJlbnRNb2RlbDNkOiBzdHJpbmc7XHJcblxyXG4gIHNlbGVjdGVkTG9jYXRpb246IFNwYWNlID0gbnVsbDtcclxuXHJcbiAgc2VsZWN0ZWRNb2RlbDNkOiBzdHJpbmc7XHJcblxyXG4gIHNlbGVjdGVkRmxvb3I6IFpvbmUgPSBudWxsO1xyXG5cclxuICBzZWxlY3RlZFpvbmU6IFpvbmUgPSBudWxsO1xyXG5cclxuICBzZWxlY3RlZENoaWxkWm9uZTogWm9uZSA9IG51bGw7XHJcblxyXG4gIHZpc2l0c1BlclNwYWNlOiBWaXNpdFtdID0gbnVsbDtcclxuXHJcbiAgZmxvb3JzUGVyU3BhY2U6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHpvbmVzUGVyU3BhY2U6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHpvbmVzUGVyRmxvb3I6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIGNoaWxkcmVuWm9uZXM6IFpvbmVbXSA9IG51bGw7XHJcblxyXG4gIHN3ZWVwVG9Hbzogc3RyaW5nO1xyXG5cclxuICBmbG9vclRvR286IFpvbmU7XHJcblxyXG4gIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgbmF2RXZlbnRzOiBPYnNlcnZhYmxlPE5hdmlnYXRpb25FbmQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXHJcbiAgICBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ6IGFueSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNwYWNlU2VydmljZTogU3BhY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lU2VydmljZTogWm9uZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpc2l0U2VydmljZTogVmlzaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3ZXJTZXJ2aWNlOiBWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lQ2hhbmdlU2VydmljZTogWm9uZUNoYW5nZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhc2VWaXNpYmlsaXR5U2VydmljZTogQmFzZVZpc2liaWxpdHlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XHJcbiAgICB0aGlzLnNwYWNlU2VydmljZS5sb2NhdGlvblVwZGF0ZWRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsb2NzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbnMgPSBsb2NzO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkXHJcbiAgICAgICAgICApOyAvLyBVcGRhdGUgT2JqZWN0IChvYmplY3QgYWRkcmVzcyB3aWxsIGNoYW5nZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMudmlld2VyU2VydmljZS52aWV3ZXJJc09uXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogeyBzcGFjZUlEOiBzdHJpbmc7IG1vZGVsM0Q6IHN0cmluZzsgc3dlZXA6IHN0cmluZyB8IG51bGwgfSkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ21lbnUgbmF2aWdhdGlvbiByZWNlaXZlZCB1cGRhdGUnLCBkYXRhKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uSUQgPSBkYXRhLnNwYWNlSUQ7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbDNkID0gZGF0YS5tb2RlbDNEO1xyXG4gICAgICAgICAgaWYgKCFkYXRhLnNwYWNlSUQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvY2F0aW9uSWQnKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kVXBkYXRlTG9jYXRpb25FdmVudCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICghdGhpcy5zZWxlY3RlZExvY2F0aW9uIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkICE9PSBkYXRhLnNwYWNlSUQpICYmXHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25zXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uID0gdGhpcy5maW5kTG9jYXRpb25CeUlEKGRhdGEuc3BhY2VJRCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXZSBsaXN0ZW4gZm9yIExvY2F0aW9uIGNoYW5nZSBldmVudFxyXG4gICAgICovXHJcbiAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UubG9jYXRpb25JRENoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uSUQgPSBpZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPSB0aGlzLmZpbmRMb2NhdGlvbkJ5SUQoaWQpO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyTG9jYXRpb25JRCA9IGlkO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3RlZExvY2F0aW9uQ2hhbmdlZCgpLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lc0ZvclVzZXJDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jICh6b25lcykgPT4ge1xyXG4gICAgICAgIGlmICh6b25lcykge1xyXG4gICAgICAgICAgYXdhaXQgd2FpdFVudGlsKCgpID0+IHRoaXMuZmxvb3JzUGVyU3BhY2UgIT09IG51bGwpO1xyXG4gICAgICAgICAgY29uc3QgZmxvb3Jab25lID0gem9uZXMuZmluZChcclxuICAgICAgICAgICAgKHpvbmUpID0+IHpvbmUubGF5ZXIgJiYgem9uZS5sYXllci5uYW1lID09PSAnRkxPT1InXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKGZsb29yWm9uZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSB0aGlzLmZsb29yc1BlclNwYWNlLmZpbmQoXHJcbiAgICAgICAgICAgICAgKGYpID0+IGYuaWQgPT09IGZsb29yWm9uZS5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAvLyBFbWl0IGV2ZW50IHRvIGRpc3BhdGNoIHZhbHVlIG9mICB0aGlzLnNlbGVjdGVkRmxvb3IgaW4gYWxsIHBvaS90aWNrZXQvZXF1aXBtZW50L21lYXN1cmUgc2VydmljZXNcclxuICAgICAgICAgICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmxvb3IpO1xyXG4gICAgICAgICAgICB0aGlzLm9uRmxvb3JDbGljayhmYWxzZSkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIGF3YWl0IHRoaXMuaW5pdExvY2F0aW9ucygpO1xyXG4gICAgdGhpcy5oYW5kbGVTdGFydFVybCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBDYXB0dXJlIHRoZSBcImlkXCIgaW4gbG9jYWxpc2F0aW9uLzppZCByb3V0ZXNcclxuICBoYW5kbGVTdGFydFVybCgpIHtcclxuICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvY2FsaXNhdGlvbi8nKSkge1xyXG4gICAgICBjb25zdCBwYXRocyA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnLycpOyAvLyAvZGFzaGJvYXJkL2xvY2FsaXNhdGlvbi9mYzBhYWRiNy0zYzg5LTQzNDktYWQxZi1iZmU5YjQ0OTE2YzBcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXHJcbiAgICAgIGNvbnN0IGxvY0lEID0gcGF0aHNbM107XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2NhdGlvbklEICE9PSBsb2NJRCkge1xyXG4gICAgICAgIHRoaXMuY2xlYXJEYXRhKCk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb25JRCA9IGxvY0lEO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRChsb2NJRCk7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnROYXZCYXJMb2NhdGlvbklEID0gbG9jSUQ7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkTG9jYXRpb25DaGFuZ2VkKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0TG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbnMgPSB0aGlzLnNwYWNlU2VydmljZS5sb2NhdGlvbnNGb3JVc2VyO1xyXG4gICAgaWYgKHRoaXMubG9jYXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9ucyA9IGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmdldExvY2F0aW9uc0ZvckN1cnJlbnRVc2VyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb25JRCAmJiB0aGlzLmxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMuZmluZExvY2F0aW9uQnlJRCh0aGlzLmN1cnJlbnRMb2NhdGlvbklEKTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhIGxvY2F0aW9uIHdpdGggYSBnaXZlbiBJRFxyXG4gICAqIEBwYXJhbSBpZCBJRCBmb3IgdGhlIGxvY2F0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIGxvY2F0aW9uIG9yIG51bGwgaWYgbm8gbG9jYXRpb24gd2VyZSBmb3VuZFxyXG4gICAqL1xyXG4gIGZpbmRMb2NhdGlvbkJ5SUQoaWQ6IHN0cmluZyk6IFNwYWNlIHtcclxuICAgIGNvbnN0IHNwYWNlID0gdGhpcy5sb2NhdGlvbnMuZmluZCgobG9jKSA9PiBsb2MuaWQgPT09IGlkKTtcclxuICAgIHJldHVybiBzcGFjZSB8fCBudWxsOyAvKiogQ29udmVydCB0byBudWxsIGlmIHVuZGVmaW5lZCAqL1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRhKGNsZWFyVmlzaXRzOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5mbG9vcnNQZXJTcGFjZSA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSBudWxsO1xyXG4gICAgdGhpcy56b25lc1BlckZsb29yID0gbnVsbDtcclxuICAgIHRoaXMuY2hpbGRyZW5ab25lcyA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwzZCA9IG51bGw7XHJcbiAgICB0aGlzLnN3ZWVwVG9HbyA9IG51bGw7XHJcbiAgICB0aGlzLmZsb29yVG9HbyA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkWm9uZSA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2hpbGRab25lID0gbnVsbDtcclxuICAgIGlmIChjbGVhclZpc2l0cykge1xyXG4gICAgICB0aGlzLnZpc2l0c1BlclNwYWNlID0gbnVsbDtcclxuICAgICAgdGhpcy56b25lc1BlclNwYWNlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdsb2NhdGlvbklkJyk7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZmxvb3JJZCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3pvbmVJZCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NoaWxkWm9uZUlkJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBzZWxlY3RlZExvY2F0aW9uIGNoYW5nZXNcclxuICAgKiBTZW5kIGEgZXZlbnQgdG8gbG9jYXRpb25JRENoYW5nZSBmcm9tIE5hdmlnYXRvclNlcnZpY2VcclxuICAgKiBUaGUgZXZlbnQgd2lsbCBiZSBjYXRjaCBieSB0aGlzIGNvbXBvbmVudCBhbmQgdGhlIGZpbHRlciBiYXIgd2lsbCBiZSB1cGRhdGVcclxuICAgKi9cclxuICBzZW5kVXBkYXRlTG9jYXRpb25FdmVudCgpIHtcclxuICAgIGNvbnN0IGxvY2F0aW9uSUQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPyB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQgOiBudWxsO1xyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmxvY2F0aW9uSURDaGFuZ2UubmV4dChsb2NhdGlvbklEKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xvY2F0aW9uSWQnLCB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvY2F0aW9uSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2VsZWN0ZWRMb2NhdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnZpc2l0c1BlclNwYWNlID0gYXdhaXQgdGhpcy52aXNpdFNlcnZpY2UuZ2V0VmlzaXRzRm9yU3BhY2VGb3JVc2VyKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbi5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnpvbmVzUGVyU3BhY2UgPSBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLmdldFpvbmVzQnlTcGFjZUZvclVzZXIoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLnZpc2l0c1BlclNwYWNlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbDNkID0gdGhpcy52aXNpdHNQZXJTcGFjZVswXS5tb2RlbDNkO1xyXG4gICAgICAgIHRoaXMuZmxvb3JzUGVyU3BhY2UgPSB0aGlzLnpvbmVzUGVyU3BhY2UuZmlsdGVyKFxyXG4gICAgICAgICAgKHpvbmUpID0+IHpvbmUubGF5ZXIgJiYgem9uZS5sYXllci5uYW1lLmluY2x1ZGVzKCdGTE9PUicpXHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyBzb3J0IGZyb20gaGlnaGVzdCBmbG9vciB0byBsb3dlc3RcclxuICAgICAgICB0aGlzLmZsb29yc1BlclNwYWNlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgIGlmIChhLm1ldGFkYXRhICYmIGIubWV0YWRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFBID0gSlNPTi5wYXJzZShhLm1ldGFkYXRhKTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFCID0gSlNPTi5wYXJzZShiLm1ldGFkYXRhKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICBtZXRhZGF0YUIubWF0dGVycG9ydEZsb29yU2VxdWVuY2UgLVxyXG4gICAgICAgICAgICAgIG1ldGFkYXRhQS5tYXR0ZXJwb3J0Rmxvb3JTZXF1ZW5jZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgbXVsdGlGbG9vclpvbmVzID0gdGhpcy56b25lc1BlclNwYWNlLmZpbHRlcihcclxuICAgICAgICAgICh6b25lKSA9PiB6b25lLmlzTXVsdGlwbGVGbG9vclpvbmVcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIHNvcnQgYWxwaGFiZXRpY2FsbHlcclxuICAgICAgICBtdWx0aUZsb29yWm9uZXMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbiAgICAgICAgLy8gbWVyZ2UgbXVsdGlGbG9vciBhbmQgRmxvb3JzXHJcbiAgICAgICAgdGhpcy5mbG9vcnNQZXJTcGFjZSA9IFsuLi50aGlzLmZsb29yc1BlclNwYWNlLCAuLi5tdWx0aUZsb29yWm9uZXNdO1xyXG4gICAgICAgIGlmICh0aGlzLmZsb29yc1BlclNwYWNlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgW3RoaXMuc2VsZWN0ZWRGbG9vcl0gPSB0aGlzLmZsb29yc1BlclNwYWNlO1xyXG4gICAgICAgICAgdGhpcy5vbkZsb29yQ2xpY2soZmFsc2UpLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBvbkNob3NlbkxvY2F0aW9uJywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Mb2NhdGlvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5jbGVhckRhdGEoKTtcclxuICAgIHRoaXMuc2VuZFVwZGF0ZUxvY2F0aW9uRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uRmxvb3JDbGljayhlbWl0RXZlbnQgPSB0cnVlKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdmbG9vcklkJywgdGhpcy5zZWxlY3RlZEZsb29yLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdmbG9vcklkJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yICYmIHRoaXMuc2VsZWN0ZWRGbG9vci5pc011bHRpcGxlRmxvb3Jab25lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab25lID0gdGhpcy5zZWxlY3RlZEZsb29yO1xyXG4gICAgICB0aGlzLm9uWm9uZUNsaWNrKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uWm9uZUNsaWNrKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zd2VlcFRvR28gPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvbmUgPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZENoaWxkWm9uZSA9IG51bGw7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnem9uZUlkJyk7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2hpbGRab25lSWQnKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmxvb3IgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudE5hdkJhclpvbmVJRCA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChlbWl0RXZlbnQpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KHRoaXMuc2VsZWN0ZWRGbG9vci5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnROYXZCYXJab25lSUQgPSB0aGlzLnNlbGVjdGVkRmxvb3IuaWQ7XHJcbiAgICBhd2FpdCB3YWl0VW50aWwoXHJcbiAgICAgICgpID0+IHRoaXMuem9uZXNQZXJTcGFjZSAhPT0gbnVsbCAmJiB0aGlzLnpvbmVzUGVyU3BhY2UgIT09IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIHRoaXMuem9uZXNQZXJGbG9vciA9IHRoaXMuem9uZXNQZXJTcGFjZS5maWx0ZXIoXHJcbiAgICAgICh6b25lKSA9PlxyXG4gICAgICAgIC8vIHpvbmUuaWQgPT09IHRoaXMuc2VsZWN0ZWRGbG9vci5pZCB8fFxyXG4gICAgICAgIHpvbmUucGFyZW50SUQgPT09IHRoaXMuc2VsZWN0ZWRGbG9vci5pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuem9uZXNQZXJGbG9vci5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IENvbGxhdG9yID0gbmV3IEludGwuQ29sbGF0b3IodW5kZWZpbmVkLCB7XHJcbiAgICAgICAgbnVtZXJpYzogdHJ1ZSxcclxuICAgICAgICBzZW5zaXRpdml0eTogJ2FjY2VudCcsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIENvbGxhdG9yLmNvbXBhcmUoYS5jb2RlX3JlZiwgYi5jb2RlX3JlZikgfHxcclxuICAgICAgICBDb2xsYXRvci5jb21wYXJlKGEubmFtZSwgYi5uYW1lKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblpvbmVDbGljaygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDaGlsZFpvbmUgPSBudWxsO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NoaWxkWm9uZUlkJyk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFpvbmUpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3pvbmVJZCcsIHRoaXMuc2VsZWN0ZWRab25lLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd6b25lSWQnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkWm9uZSA9PT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KG51bGwpO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyWm9uZUlEID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UubmF2QmFyWm9uZUlEQ2hhbmdlLm5leHQodGhpcy5zZWxlY3RlZEZsb29yLmlkKTtcclxuICAgICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudE5hdkJhclpvbmVJRCA9IHRoaXMuc2VsZWN0ZWRGbG9vci5pZDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRab25lPy5pZCxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkWm9uZT8ubmFtZVxyXG4gICAgICApLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGlsZHJlblpvbmVzID0gdGhpcy56b25lc1BlclNwYWNlLmZpbHRlcihcclxuICAgICAgKHpvbmUpID0+IHpvbmUucGFyZW50SUQgPT09IHRoaXMuc2VsZWN0ZWRab25lLmlkXHJcbiAgICApO1xyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLm5hdkJhclpvbmVJRENoYW5nZS5uZXh0KHRoaXMuc2VsZWN0ZWRab25lLmlkKTtcclxuICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50TmF2QmFyWm9uZUlEID0gdGhpcy5zZWxlY3RlZFpvbmUuaWQ7XHJcbiAgICB0aGlzLnNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9uZT8uaWQsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab25lPy5uYW1lXHJcbiAgICApLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICB9XHJcblxyXG4gIG9uQ2hpbGRab25lQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZENoaWxkWm9uZSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hpbGRab25lSWQnLCB0aGlzLnNlbGVjdGVkQ2hpbGRab25lPy5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2hpbGRab25lSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbmRLaW5lc2lzQW5hbHl0aWNzRXZlbnRGb3Jab25lKFxyXG4gICAgem9uZUlkOiBzdHJpbmcsXHJcbiAgICB6b25lTmFtZTogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xyXG4gICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiAnWm9uZSBDaGFuZ2UnLFxyXG4gICAgICAgICAgICB6b25lSWQ6IHpvbmVJZCxcclxuICAgICAgICAgICAgem9uZU5hbWU6IHpvbmVOYW1lLFxyXG4gICAgICAgICAgICBsb2NhdGlvbklkOiB0aGlzLnNlbGVjdGVkTG9jYXRpb24/LmlkLFxyXG4gICAgICAgICAgICBsb2NhdGlvbk5hbWU6IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbj8ubmFtZSxcclxuICAgICAgICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZT8uY3UsXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcclxuICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcclxuICAgICAgICAgICAgY2hpbGRab25lSWQ6IHRoaXMuc2VsZWN0ZWRDaGlsZFpvbmU/LmlkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHN0cmVhbU5hbWU6ICdzbWFydGVycGxhbktpbmVzaXMtYW5hbHl0aWNzJyxcclxuICAgICAgICAgIC8vIHBhcnRpdGlvbktleTogXCJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgICdBV1NLaW5lc2lzJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25WaXNpdENsaWNrKGV2ZW50KSB7XHJcbiAgICB0aGlzLmNsZWFyRGF0YShmYWxzZSk7XHJcbiAgICBjb25zdCBpbmRleCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy52aXNpdHNQZXJTcGFjZVtpbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwzZCA9IHZpc2l0Lm1vZGVsM2Q7XHJcbiAgICBjb25zdCBwYXJlbnRab25lRm9yVmlzaXQgPSBhd2FpdCB0aGlzLnZpc2l0U2VydmljZS5nZXREZWZhdWx0Wm9uZUZvclZpc2l0KFxyXG4gICAgICB2aXNpdFxyXG4gICAgKTtcclxuICAgIHRoaXMuZmxvb3JzUGVyU3BhY2UgPSB0aGlzLnpvbmVzUGVyU3BhY2UuZmlsdGVyKFxyXG4gICAgICAoem9uZSkgPT5cclxuICAgICAgICB6b25lLmxheWVyICYmXHJcbiAgICAgICAgem9uZS5sYXllci5uYW1lLmluY2x1ZGVzKCdGTE9PUicpICYmXHJcbiAgICAgICAgem9uZS5wYXJlbnRJRCA9PT0gcGFyZW50Wm9uZUZvclZpc2l0LmlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ29UbygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkWm9uZSAmJiAhdGhpcy5zZWxlY3RlZFpvbmUudmlydHVhbCkge1xyXG4gICAgICB0aGlzLnN3ZWVwVG9HbyA9IHRoaXMuc2VsZWN0ZWRab25lLnN0YXJ0U3dlZXBJRFxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFpvbmUuc3RhcnRTd2VlcElEXHJcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkWm9uZS5zd2VlcElEc1swXTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmxvb3IgJiYgIXRoaXMuc2VsZWN0ZWRab25lKSB7XHJcbiAgICAgIHRoaXMuZmxvb3JUb0dvID0gdGhpcy5zZWxlY3RlZEZsb29yO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNXaXRoaW5TYW1lVmlzaXQoKSkge1xyXG4gICAgICB0aGlzLmdvVG9Td2VlcE9yRmxvb3IoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnN3ZWVwVG9Hbykge1xyXG4gICAgICAgIHRoaXMudmlld2VyU2VydmljZS5zZXRTd2VlcFRvTW92ZSh0aGlzLnN3ZWVwVG9Hbyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmxvb3JUb0dvICYmIHRoaXMuZmxvb3JzUGVyU3BhY2UubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmZsb29yVG9HbyA9IHRoaXMuZmxvb3JUb0dvO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm91dGVyXHJcbiAgICAgICAgLm5hdmlnYXRlKFsndmlzaXQnLCB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWRdLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyBtb2RlbDNEOiB0aGlzLnNlbGVjdGVkTW9kZWwzZCB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzV2l0aGluU2FtZVZpc2l0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb25JRCA9PT0gdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbDNkID09PSB0aGlzLmN1cnJlbnRNb2RlbDNkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ29Ub1N3ZWVwT3JGbG9vcigpIHtcclxuICAgIGlmICh0aGlzLnN3ZWVwVG9Hbykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuZ29Ub1N3ZWVwV2l0aFJvdGF0aW9uKHRoaXMuc3dlZXBUb0dvKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZsb29yVG9Hbykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuZ29Ub0Zsb29yKHRoaXMuZmxvb3JUb0dvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGhhc0hpc3RvcnkoKTogYm9vbGVhbiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLm5hdmlnYXRvclNlcnZpY2UubW9kZWxIYXNIaXN0b3J5KHRoaXMuc2VsZWN0ZWRNb2RlbDNkKTtcclxuICAvLyB9XHJcblxyXG4gIGNhbkdvKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgdmlld2VySXNSZWFkeSA9XHJcbiAgICAgIHRoaXMudmlld2VyU2VydmljZS5pc0xvYWRlZCAmJiB0aGlzLnZpZXdlclNlcnZpY2Uuc2hvd2luZ1ZpZXdlcjtcclxuICAgIGNvbnN0IG5vVmlld2VyID0gIXRoaXMudmlld2VyU2VydmljZS5zaG93aW5nVmlld2VyO1xyXG4gICAgcmV0dXJuIHZpZXdlcklzUmVhZHkgfHwgbm9WaWV3ZXI7XHJcbiAgfVxyXG5cclxuICBzaG93TG9jYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmIChcclxuICAgICAgd2luZG93LmlubmVyV2lkdGggPCA3NTAgJiZcclxuICAgICAgdGhpcy5uYXZiYXJTZWxlY3RNZW51ICYmXHJcbiAgICAgIHRoaXMubmF2YmFyU2VsZWN0TWVudS5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zZWFyY2goJ3Nob3cnKSA9PT0gLTEgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbi5uYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgb25IaWRlQ2xpY2soKSB7XHJcbiAgICB0aGlzLmJhc2VWaXNpYmlsaXR5U2VydmljZS5pc0NoYW5nZVBvc2l0aW9uVmlzaWJsZS5uZXh0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLW1kIG5hdmJhci1kYXJrIG5hdmJhci1pbnZlcnNlIHNlY29uZC1uYXZcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICA8ZGl2ICNuYXZiYXJTZWxlY3RNZW51IGNsYXNzPVwidy0xMDBcIiBpZD1cIm5hdi1pdGVtLWNvbnRhaW5lci1ibHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgcC0xIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1maWxsIGxvY2F0aW9uIHNlbGVjdC1tZW51XCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZExvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkxvY2F0aW9uQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIHNlbGVjdGVkPnt7ICdMb2NhdGlvbicgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb2Mgb2YgbG9jYXRpb25zOyBpbmRleCBhcyBpbmRleFwiIFtuZ1ZhbHVlXT1cImxvY1wiPiB7eyBsb2MubmFtZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZsZXgtZmlsbCBzZWxlY3QtbWVudVwiIChjaGFuZ2UpPVwib25WaXNpdENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlzaXRzUGVyU3BhY2UgJiYgdmlzaXRzUGVyU3BhY2UubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkZWZhdWx0XCIgc2VsZWN0ZWQgZGlzYWJsZWQgaGlkZGVuPnt7J1Zpc2l0JyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmlzaXQgb2YgdmlzaXRzUGVyU3BhY2U7IGluZGV4IGFzIGluZGV4XCIgdmFsdWU9XCJ7e2luZGV4fX1cIj57eyB2aXNpdC5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWZpbGwgZmxvb3Igc2VsZWN0LW1lbnVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmxvb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmxvb3JDbGljaygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgc2VsZWN0ZWQ+e3snRmxvb3InIHwgdHJhbnNsYXRlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBmbG9vciBvZiBmbG9vcnNQZXJTcGFjZVwiIFtuZ1ZhbHVlXT1cImZsb29yXCI+e3sgZmxvb3IubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1maWxsIHNlbGVjdC1tZW51IHpvbmVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkWm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25ab25lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIHNlbGVjdGVkPnt7J1pvbmUnIHwgdHJhbnNsYXRlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB6b25lIG9mIHpvbmVzUGVyRmxvb3JcIiBbbmdWYWx1ZV09XCJ6b25lXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiem9uZS5jb2RlX3JlZlwiPnt7em9uZS5jb2RlX3JlZn19Xzwvc3Bhbj57e3pvbmUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1maWxsIHNlbGVjdC1tZW51XCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENoaWxkWm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZHJlblpvbmVzICYmIGNoaWxkcmVuWm9uZXMubGVuZ3RoPjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoaWxkWm9uZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZCBkaXNhYmxlZD57eydab25lJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgem9uZSBvZiBjaGlsZHJlblpvbmVzXCIgW25nVmFsdWVdPVwiem9uZVwiPnt7IHpvbmUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWZpbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGkxOG4+e3snRmF2b3JpdGVzJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1sLTAgcC0xXCIgKm5nSWY9XCJzaG93TG9jYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmdy1ib2xkIGxoLWJhc2UgYWxpZ24tbWlkZGxlIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2hvd0xvY2F0aW9uKCkgfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbWwtMCBwLTFcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG8oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgdy0yNSBteC0yIHctbWQtZml0LWNvbnRlbnQgaC1tZC1maXQtY29udGVudCBhbGlnbi1zZWxmLW1kLWNlbnRlciBidG4tM2RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRMb2NhdGlvbiB8fCAhc2VsZWN0ZWRNb2RlbDNkIHx8ICFjYW5HbygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLWdvLXRvLTNkIGQtaW5saW5lLWJsb2NrXCI+PC9pPiB7eyczRCB2aXNpdCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmF2PiJdfQ==
|
|
@@ -13,7 +13,6 @@ import { AvatarComponent } from './components/menu-bar/avatar/avatar.component';
|
|
|
13
13
|
import { NavigationBarComponent } from './components/menu-bar/navigation-bar/navigation-bar.component';
|
|
14
14
|
import { CommonModule } from '@angular/common';
|
|
15
15
|
import { RouterModule } from '@angular/router';
|
|
16
|
-
import { RangeDatePickerComponent } from './components/menu-bar/range-date-picker/range-date-picker.component';
|
|
17
16
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
18
17
|
import { LoaderComponent } from './components/loader/loader.component';
|
|
19
18
|
import { SupportModalComponent } from './components/support-modal/support-modal.component';
|
|
@@ -46,7 +45,6 @@ NgxSmarterplanCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0"
|
|
|
46
45
|
MenuBarComponent,
|
|
47
46
|
AvatarComponent,
|
|
48
47
|
NavigationBarComponent,
|
|
49
|
-
RangeDatePickerComponent,
|
|
50
48
|
LoaderComponent,
|
|
51
49
|
SupportModalComponent,
|
|
52
50
|
FormatDateNumberToDigitsPipe], imports: [FormsModule,
|
|
@@ -89,7 +87,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
89
87
|
MenuBarComponent,
|
|
90
88
|
AvatarComponent,
|
|
91
89
|
NavigationBarComponent,
|
|
92
|
-
RangeDatePickerComponent,
|
|
93
90
|
LoaderComponent,
|
|
94
91
|
SupportModalComponent,
|
|
95
92
|
FormatDateNumberToDigitsPipe
|
|
@@ -119,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
119
116
|
]
|
|
120
117
|
}]
|
|
121
118
|
}] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNtYXJ0ZXJwbGFuLWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9uZ3gtc21hcnRlcnBsYW4tY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBMEN6RixNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUNsQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFFBQVE7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3NIQVhVLHdCQUF3Qjt1SEFBeEIsd0JBQXdCLGlCQXZDakMseUJBQXlCO1FBQ3pCLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLDRCQUE0QixhQUc1QixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixZQUFZO1FBQ1osU0FBUyxpQ0FNVCxrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsZUFBZTt1SEFHTix3QkFBd0IsWUF4QjFCO1lBQ1AsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osWUFBWTtZQUNaLFNBQVM7WUFDVCxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUN2QixNQUFNLEVBQUUsSUFBSTthQUNiLENBQUM7U0FDSDs0RkFlVSx3QkFBd0I7a0JBekNwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix5QkFBeUI7d0JBQ3pCLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxlQUFlLENBQUMsUUFBUSxDQUFDOzRCQUN2QixNQUFNLEVBQUUsSUFBSTt5QkFDYixDQUFDO3FCQUNIO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6QixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENzdkV4cG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jc3YtZXhwb3J0L2Nzdi1leHBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IER1cmF0aW9uVG9TdHJpbmdQaXBlIH0gZnJvbSAnLi9waXBlcy9kdXJhdGlvbi10by1zdHJpbmcucGlwZSc7XHJcbmltcG9ydCB7IEhhc2h0YWdGcm9tSWRQaXBlIH0gZnJvbSAnLi9waXBlcy9oYXNodGFnLWZyb20taWQucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVVcmxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLXVybC5waXBlJztcclxuaW1wb3J0IHsgVGltZURhdGVUb0xvY2FsU3RyaW5nUGlwZSB9IGZyb20gJy4vcGlwZXMvdGltZS1kYXRlLXRvLWxvY2FsLXN0cmluZy5waXBlJztcclxuaW1wb3J0IHsgTW9kYWxTd2l0Y2hWaXNpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1zd2l0Y2gtdmlzaXQvbW9kYWwtc3dpdGNoLXZpc2l0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJuYW1lRnJvbUlkUGlwZSB9IGZyb20gJy4vcGlwZXMvdXNlcm5hbWUtZnJvbS1pZC5waXBlJztcclxuaW1wb3J0IHsgTWVudUJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LWJhci9tZW51LWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1iYXIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtYmFyL25hdmlnYXRpb24tYmFyL25hdmlnYXRpb24tYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VwcG9ydE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N1cHBvcnQtbW9kYWwvc3VwcG9ydC1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybWF0RGF0ZU51bWJlclRvRGlnaXRzUGlwZSB9IGZyb20gJy4vcGlwZXMvZm9ybWF0LWRhdGUtbnVtYmVyLXRvLWRpZ2l0cy5waXBlJztcclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRpbWVEYXRlVG9Mb2NhbFN0cmluZ1BpcGUsXHJcbiAgICBTYWZlVXJsUGlwZSxcclxuICAgIEhhc2h0YWdGcm9tSWRQaXBlLFxyXG4gICAgRHVyYXRpb25Ub1N0cmluZ1BpcGUsXHJcbiAgICBDc3ZFeHBvcnRDb21wb25lbnQsXHJcbiAgICBTZWFyY2hCYXJDb21wb25lbnQsXHJcbiAgICBVc2VybmFtZUZyb21JZFBpcGUsXHJcbiAgICBNb2RhbFN3aXRjaFZpc2l0Q29tcG9uZW50LFxyXG4gICAgTWVudUJhckNvbXBvbmVudCxcclxuICAgIEF2YXRhckNvbXBvbmVudCxcclxuICAgIE5hdmlnYXRpb25CYXJDb21wb25lbnQsXHJcbiAgICBMb2FkZXJDb21wb25lbnQsXHJcbiAgICBTdXBwb3J0TW9kYWxDb21wb25lbnQsXHJcbiAgICBGb3JtYXREYXRlTnVtYmVyVG9EaWdpdHNQaXBlXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBOZ2JNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoe1xyXG4gICAgICBleHRlbmQ6IHRydWVcclxuICAgIH0pXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDc3ZFeHBvcnRDb21wb25lbnQsXHJcbiAgICBTZWFyY2hCYXJDb21wb25lbnQsXHJcbiAgICBUaW1lRGF0ZVRvTG9jYWxTdHJpbmdQaXBlLFxyXG4gICAgU2FmZVVybFBpcGUsXHJcbiAgICBIYXNodGFnRnJvbUlkUGlwZSxcclxuICAgIER1cmF0aW9uVG9TdHJpbmdQaXBlLFxyXG4gICAgVXNlcm5hbWVGcm9tSWRQaXBlLFxyXG4gICAgTWVudUJhckNvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIFN1cHBvcnRNb2RhbENvbXBvbmVudCxcclxuICAgIEF2YXRhckNvbXBvbmVudCxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hTbWFydGVycGxhbkNvcmVNb2R1bGUge1xyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4U21hcnRlcnBsYW5Db3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTmd4U21hcnRlcnBsYW5Db3JlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnY29uZmlnJyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|