@resolveio/client-lib-core 1.1.17 → 1.1.19

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.
@@ -36,6 +36,8 @@ export class CoreComponent extends BaseComponent {
36
36
  this.navTabs = '';
37
37
  this.userHasPhoneNumber = false;
38
38
  this.client = '';
39
+ this.showNavbarModule = true;
40
+ this.showLogin = true;
39
41
  this.year = (new Date()).getFullYear().toString();
40
42
  this.fullScreen = false;
41
43
  this.windowSizeHeight = window.innerHeight;
@@ -312,7 +314,7 @@ export class CoreComponent extends BaseComponent {
312
314
  }, false);
313
315
  }
314
316
  getNavbarModuleHeight() {
315
- return this.el_navBarModule.nativeElement.children[0].clientHeight;
317
+ return this.el_navBarModule ? this.el_navBarModule.nativeElement.children[0].clientHeight : 0;
316
318
  }
317
319
  onPushBackButton() {
318
320
  window.history.back();
@@ -341,10 +343,10 @@ export class CoreComponent extends BaseComponent {
341
343
  }
342
344
  }
343
345
  CoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CoreComponent, deps: [{ token: i1.DeviceDetectorService }, { token: i2.DialogService }, { token: i3.ResizeService }, { token: i4.ProviderService }, { token: i5.OfflineManagerService }, { token: i6.LocalStorageService }, { token: i7.AuthService }, { token: i8.AuthPermissionService }], target: i0.ɵɵFactoryTarget.Component });
344
- CoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CoreComponent, selector: "resolveio-client-lib-core", inputs: { environment: "environment", logo: "logo", navTabs: "navTabs", userHasPhoneNumber: "userHasPhoneNumber", client: "client" }, providers: [ProviderService], viewQueries: [{ propertyName: "el_navBarMain", first: true, predicate: ["navBarMain"], descendants: true, read: ElementRef, static: true }, { propertyName: "el_navBarModule", first: true, predicate: ["navBarModule"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left.px]=\"windowSizeWidth > 1200 && collapsableMenu ? 55 : 0\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu ? closeNav() : null\">\n\t\t\t\t<div style=\"padding-top: 15px; -webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<div [style.height.px]=\"windowSizeHeight + 1 - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 60 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n", styles: ["\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n"], components: [{ type: i9.NavbarMainComponent, selector: "navbar-main", inputs: ["logo", "navTabs", "fontSize"] }, { type: i10.NavbarModuleComponent, selector: "navbar-module", inputs: ["sideNavHeight", "sideNavWidth"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
346
+ CoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CoreComponent, selector: "resolveio-client-lib-core", inputs: { environment: "environment", logo: "logo", navTabs: "navTabs", userHasPhoneNumber: "userHasPhoneNumber", client: "client", showNavbarModule: "showNavbarModule", showLogin: "showLogin" }, providers: [ProviderService], viewQueries: [{ propertyName: "el_navBarMain", first: true, predicate: ["navBarMain"], descendants: true, read: ElementRef, static: true }, { propertyName: "el_navBarModule", first: true, predicate: ["navBarModule"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && showLogin\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [showLogin]=\"showLogin\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left.px]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 55 : 0\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\">\n\t\t\t\t<div style=\"padding-top: 15px; -webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<div [style.height.px]=\"windowSizeHeight + 1 - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 60 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n", styles: ["\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n"], components: [{ type: i9.NavbarMainComponent, selector: "navbar-main", inputs: ["logo", "navTabs", "fontSize", "showLogin"] }, { type: i10.NavbarModuleComponent, selector: "navbar-module", inputs: ["sideNavHeight", "sideNavWidth"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
345
347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CoreComponent, decorators: [{
346
348
  type: Component,
347
- args: [{ providers: [ProviderService], selector: 'resolveio-client-lib-core', template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left.px]=\"windowSizeWidth > 1200 && collapsableMenu ? 55 : 0\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu ? closeNav() : null\">\n\t\t\t\t<div style=\"padding-top: 15px; -webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<div [style.height.px]=\"windowSizeHeight + 1 - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 60 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n" }]
349
+ args: [{ providers: [ProviderService], selector: 'resolveio-client-lib-core', template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline)\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && showLogin\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [showLogin]=\"showLogin\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left.px]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 55 : 0\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\">\n\t\t\t\t<div style=\"padding-top: 15px; -webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<div [style.height.px]=\"windowSizeHeight + 1 - ((isDevice || windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - statusHeight - connectedHeight - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 60 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n" }]
348
350
  }], ctorParameters: function () { return [{ type: i1.DeviceDetectorService }, { type: i2.DialogService }, { type: i3.ResizeService }, { type: i4.ProviderService }, { type: i5.OfflineManagerService }, { type: i6.LocalStorageService }, { type: i7.AuthService }, { type: i8.AuthPermissionService }]; }, propDecorators: { environment: [{
349
351
  type: Input,
350
352
  args: ['environment']
@@ -360,6 +362,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
360
362
  }], client: [{
361
363
  type: Input,
362
364
  args: ['client']
365
+ }], showNavbarModule: [{
366
+ type: Input,
367
+ args: ['showNavbarModule']
368
+ }], showLogin: [{
369
+ type: Input,
370
+ args: ['showLogin']
363
371
  }], el_navBarMain: [{
364
372
  type: ViewChild,
365
373
  args: ['navBarMain', { read: ElementRef, static: true }]
@@ -379,4 +387,4 @@ function hexToRGB(hex, alpha) {
379
387
  return "rgb(" + r + ", " + g + ", " + b + ")";
380
388
  }
381
389
  }
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQXlDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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O0FBQ3RDLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSztJQUN4QixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFdEMsSUFBSSxLQUFLLEVBQUU7UUFDUCxPQUFPLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDO0tBQ2pFO1NBQU07UUFDSCxPQUFPLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNqRDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0dXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FwcC1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3dpbmRvdy1yZXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZlVG9hc3QgfSBmcm9tICduZ3gtdG9hc3RyJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAncmVzb2x2ZWlvLWNsaWVudC1saWItY29yZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9jb3JlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3JlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDtcblx0QElucHV0KCdsb2dvJykgbG9nbyA9ICcnO1xuXHRASW5wdXQoJ25hdlRhYnMnKSBuYXZUYWJzID0gJyc7XG5cdEBJbnB1dCgndXNlckhhc1Bob25lTnVtYmVyJykgdXNlckhhc1Bob25lTnVtYmVyID0gZmFsc2U7XG5cdEBJbnB1dCgnY2xpZW50JykgY2xpZW50ID0gJyc7XG5cblx0QFZpZXdDaGlsZCgnbmF2QmFyTWFpbicsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNYWluOiBFbGVtZW50UmVmO1xuXHRAVmlld0NoaWxkKCduYXZCYXJNb2R1bGUnLCB7cmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlfSkgZWxfbmF2QmFyTW9kdWxlOiBFbGVtZW50UmVmO1xuXG5cdHllYXI6IHN0cmluZyA9IChuZXcgRGF0ZSgpKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG5cblx0ZnVsbFNjcmVlbiA9IGZhbHNlO1xuXG5cdHdpbmRvd1NpemVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cdHdpbmRvd1NpemVXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG5cdG5hdmJhck1haW5IZWlnaHQgPSAwO1xuXHRzdGF0dXNIZWlnaHQgPSAwO1xuXHRjb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRpc0RldmljZSA9IGZhbHNlO1xuXHRzaG93TmF2aWdhdGlvbk1lbnUgPSBmYWxzZTtcblxuXHRzd0ZsYWdBbGVydDogQWN0aXZlVG9hc3Q8YW55PiA9IG51bGw7XG5cdFxuXHRpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0c29ja2V0U3RhdHVzOiBudW1iZXI7XG5cblx0dXNlcjogVXNlck1vZGVsO1xuXHRzdGF0dXM6IEFwcFN0YXR1c01vZGVsO1xuXG5cdGNvbGxhcHNhYmxlTWVudSA9IHRydWU7XG5cdGZvbnRTaXplID0gMTI7XG5cdG9wZW5lZFdpbmRvdyA9IGZhbHNlO1xuXG5cdGlzT2ZmbGluZSA9IGZhbHNlO1xuXHRmb3VuZFVwZGF0ZSA9IGZhbHNlO1xuXG5cdG9yaWVudGF0aW9uID0gJ3BvcnRyYWl0JztcblxuXHQvLyBwcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZGV2aWNlRGV0OiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9yZXNpemVTZXJ2aWNlOiBSZXNpemVTZXJ2aWNlLCBwdWJsaWMgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBfYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2FwczogQXV0aFBlcm1pc3Npb25TZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRDbGllbnQodGhpcy5jbGllbnQpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0TmF2VGFicyh0aGlzLm5hdlRhYnMpO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuaW5pdExvZ2luTWFuYWdlcih0aGlzLmVudmlyb25tZW50KTtcblx0XHRcblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudCAmJiB0aGlzLmVudmlyb25tZW50Lk1TX0FMTE9XRUQpIHtcblx0XHRcdHRoaXMuX2F1dGguc2V0dXBNU1NpbmdsZVNpZ25Pbih0aGlzLmVudmlyb25tZW50KTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5lbnZpcm9ubWVudCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXRFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50KTtcblx0XHR9XG5cblx0XHR0aGlzLl9hdXRoLnNldFVzZXJIYXNQaG9uZU51bWJlcih0aGlzLnVzZXJIYXNQaG9uZU51bWJlcik7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEN1c3RvbUhvbWVQYWdlKHRoaXMuY3VzdG9tSG9tZVBhZ2UpO1xuXG5cdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FwcC5zZXRMb2dvKHRoaXMubG9nbyk7XG5cblx0XHR0aGlzLl9yZXNpemVTZXJ2aWNlLm9uUmVzaXplJC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMud2luZG93U2l6ZUhlaWdodCA9IHZhbC5pbm5lckhlaWdodDtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplV2lkdGggPSB2YWwuaW5uZXJXaWR0aDtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fSk7XG5cdFx0XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5mdWxsU2NyZWVuLnN1YnNjcmliZShmdWxsU2NyZWVuID0+IHtcblx0XHRcdHRoaXMuZnVsbFNjcmVlbiA9IGZ1bGxTY3JlZW47XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC51c2VyLnN1YnNjcmliZSh1c2VyID0+IHtcblx0XHRcdGlmICh1c2VyICYmIHVzZXIuc2V0dGluZ3MpIHtcblx0XHRcdFx0dGhpcy5jb2xsYXBzYWJsZU1lbnUgPSB1c2VyLnNldHRpbmdzLmNvbGxhcHNhYmxlX21lbnU7XG5cdFx0XHRcdHRoaXMuZm9udFNpemUgPSB1c2VyLnNldHRpbmdzLmZvbnRfc2l6ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLndhcm5pbmdfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5zdWNjZXNzX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5kYW5nZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5pbmZvX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8taG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9faG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MucHJpbWFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc2Vjb25kYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodXNlciAmJiAoIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddIHx8ICF1c2VyLm90aGVyWydjdXN0b21lcnMnXS5sZW5ndGgpICYmICF1c2VyLm90aGVyWydpZF9jdXN0b21lciddICYmICF1c2VyLnNldHRpbmdzICYmICF0aGlzLm9wZW5lZFdpbmRvdykge1xuXHRcdFx0XHR0aGlzLm9wZW5lZFdpbmRvdyA9IHRydWU7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWNvbG9yJywgJyNmZmMxMDcnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctZm9udC1jb2xvcicsICcjMDAwMDAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjIsIDE3MCwgMTIsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctaG92ZXItY29sb3InLCAnI2UwYTgwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1jb2xvcicsICcjMjhhNzQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNzIsIDE4MCwgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtaG92ZXItY29sb3InLCAnIzIxODgzOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWNvbG9yJywgJyNkYzM1NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsICcjYzgyMzMzJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWNvbG9yJywgJyMxN2EyYjgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg1OCwgMTc2LCAxOTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8taG92ZXItY29sb3InLCAnIzEzODQ5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1jb2xvcicsICcjMDA3YmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMzgsIDE0MywgMjU1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWhvdmVyLWNvbG9yJywgJyMwMDY5ZDknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1jb2xvcicsICcjODY4ZTk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1ob3Zlci1jb2xvcicsICcjNWE2MjY4Jyk7XG5cdFx0XHRcdHRoaXMuZm9udFNpemUgPSAxMjtcblx0XHRcdFx0dGhpcy5fZHMubm90aWZ5KCdIZWxsbywgJyArIHVzZXIuZnVsbG5hbWUgKyAnIGl0IGxvb2tzIGxpa2UgdGhlcmUgYXJlIG5vIHVzZXIgc2V0dGluZ3Mgc2F2ZWQgZm9yIHlvdS4gVG8gYWRqdXN0IHlvdXIgdXNlciBzZXR0aW5ncyBjbGljayB5b3VyIG5hbWUgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSBuZXh0IHRvIHRoZSBsb2dvdXQgYnV0dG9uLCBhZGp1c3QgYW55IHNldHRpbmdzIHlvdSB3YW50LCB0aGVuIGNsaWNrIHN1Ym1pdCB0byBhcHBseSB0aGVtLicpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwuc3BsaXQoJy8nKVswXSArICcvdXNlci1zZXR0aW5ncy9zZXR0aW5ncycpXG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVzZXIgPSB1c2VyO1xuXHRcdH0pO1xuXG5cdFx0Ly8gaWYgKCF0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyKSB7XG5cdFx0Ly8gXHR0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gdGhpcy5fc2VydmljZXMuX3JvdXRlci5lcnJvckhhbmRsZXI7XG5cdFx0Ly8gXHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlciA9IGZ1bmN0aW9uIChlcnI6IGFueSkge1x0XG5cdFx0Ly8gXHRcdHJldHVybiB0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyLmFwcGx5KHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIsIGFyZ3VtZW50cyk7XG5cdFx0Ly8gXHR9O1xuXHRcdC8vIH1cblxuXHRcdGlmICh0aGlzLl9kZXZpY2VEZXQuaXNNb2JpbGUoKSB8fCB0aGlzLl9kZXZpY2VEZXQuaXNUYWJsZXQoKSkge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZSh0cnVlKTtcblx0XHRcdHRoaXMuaXNEZXZpY2UgPSB0cnVlO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNEZXZpY2UoZmFsc2UpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50LklTX1BST0RVQ1RJT04pIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2ZsYWdXaXRoVHlwZScsICduZXdTVycpLnN1YnNjcmliZShmbGFnID0+IHtcblx0XHRcdFx0aWYgKGZsYWcpIHtcblx0XHRcdFx0XHR0aGlzLnN3RmxhZ0FsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1RoaXMgcGFnZSB3aWxsIHJlbG9hZCBvbmNlIG5ldyB2ZXJzaW9uIGhhcyBiZWVuIGRvd25sb2FkZWQnLCAwKTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzSW52YWxpZFNXKHRydWUpO1xuXG5cdFx0XHRcdFx0aWYgKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcikge1xuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdFx0XHRcdH0sIDMwMDApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKS50aGVuKHJlZ2lzdHJhdGlvbnMgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoIXJlZ2lzdHJhdGlvbnMgfHwgIXJlZ2lzdHJhdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHRcdFx0XHRcdFx0fSwgMzAwMCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIGVyciA9PiB7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdFx0XHRcdFx0fSwgMzAwMCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zd0ZsYWdBbGVydCkge1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkU1coZmFsc2UpO1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5jbGVhckFsZXJ0KHRoaXMuc3dGbGFnQWxlcnQudG9hc3RJZCk7XG5cdFx0XHRcdFx0dGhpcy5zd0ZsYWdBbGVydCA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX29mZmxpbmUub2ZmbGluZU1vZGUuc3Vic2NyaWJlKG9mZmxpbmUgPT4ge1xuXHRcdFx0dGhpcy5pc09mZmxpbmUgPSBvZmZsaW5lO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0U29ja2V0U3RhdHVzKCkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnNvY2tldFN0YXR1cyA9IHN0YXR1cztcblx0XHRcdFxuXHRcdFx0aWYgKCF0aGlzLnVzZXIpIHtcblx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuQ09OTkVDVElORykge1xuXHRcdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDQwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgnYXBwc3RhdHVzJykuc3Vic2NyaWJlKGFwcHN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnN0YXR1cyA9IGFwcHN0YXR1czsgLy9PSyBpZiBub3QgZGVmaW5lZFxuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRIYXNTdGF0dXNNZXNzYWdlKHRoaXMuc3RhdHVzID8gdHJ1ZSA6IGZhbHNlKTtcblx0XHRcdHRoaXMuc3RhdHVzSGVpZ2h0ID0gdGhpcy5zdGF0dXMgPyA0MCA6IDA7XG5cdFx0fSk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCAxMDApO1xuXHRcdFxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDEwMDApO1xuXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgNTAwMCk7XG5cblx0XHRpZiAodGhpcy5pc0RldmljZSkge1xuXHRcdFx0bGV0IGZpcnN0UmVkaXJlY3QgPSBmYWxzZTtcblx0XHRcdGxldCBsYXN0VVJMID0gdGhpcy5fc3RvcmFnZS5nZXQoJ2xhc3RVUkwnKTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXHRcdFx0XHRpZiAobGFzdFVSTCAmJiBsYXN0VVJMICE9PSAnLycgJiYgIWZpcnN0UmVkaXJlY3QpIHtcblx0XHRcdFx0XHRpZiAoZXZlbnQudXJsID09PSAnJyB8fCBldmVudC51cmwgPT09ICcvJykge1xuXHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxhc3RVUkwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZpcnN0UmVkaXJlY3QgPSB0cnVlO1xuXG5cdFx0XHRcdGlmIChldmVudC51cmwpIHtcblx0XHRcdFx0XHR0aGlzLl9zdG9yYWdlLnNldCgnbGFzdFVSTCcsIGV2ZW50LnVybCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpIHtcblx0XHRcdFx0XHR0aGlzLl9zdG9yYWdlLnNldCgnbGFzdFVSTCcsIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcblx0XHRcdFx0fVx0XHRcdFx0XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoWydpUGFkJywgJ2lQaG9uZScsICdpUG9kJ10uaW5kZXhPZihuYXZpZ2F0b3IucGxhdGZvcm0pID49IDAgJiYgKCdzdGFuZGFsb25lJyBpbiB3aW5kb3cubmF2aWdhdG9yKSAmJiAoPGFueT53aW5kb3cubmF2aWdhdG9yKS5zdGFuZGFsb25lKSB7XG5cdFx0XHR0aGlzLnNob3dOYXZpZ2F0aW9uTWVudSA9IHRydWU7XG5cdFx0fVxuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gLTkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdwb3J0cmFpdCc7XG5cdFx0XHR9XG5cdFx0fSwgdHJ1ZSk7XG5cblx0XHRsZXQgbW91c2V3aGVlbEV2ZW50O1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUgPT09ICdJTlBVVCcgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudFsndHlwZSddID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0cnVlKTtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAobW91c2V3aGVlbEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgbW91c2V3aGVlbEV2ZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCk7XG4gICAgICAgICAgICB9XG5cdFx0fSwgdHJ1ZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgKGUpID0+IHtcblx0XHRcdGxldCBldiA9IGUgfHwgZXZlbnQ7XG5cdFx0XHRldi5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0sIGZhbHNlKTtcblx0XHRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdH1cblxuXHRnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWxfbmF2QmFyTW9kdWxlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHR9XG5cblx0b25QdXNoQmFja0J1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG5cdH1cblxuXHRvblB1c2hSZWxvYWRCdXR0b24oKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHR9XG5cblx0b25QdXNoRm9yd2FyZEJ1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCk7XG5cdH1cblxuXHRvcGVuTmF2KCkge1xuXHRcdGxldCB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpO1xuXHRcdGxldCB5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpO1xuXHRcdGlmICh4LnN0eWxlLndpZHRoID09PSAnNDBweCcgJiYgeS5zdHlsZS5wYWRkaW5nTGVmdCA9PT0gJzU1cHgnKSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzE5NXB4Jztcblx0XHRcdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMjEwcHgnO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHguc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1xuXHRcdH1cblx0fVxuXHRcdFxuXHRjbG9zZU5hdigpIHtcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2U2lkJykuc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1x0XG5cdH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTW91c2V3aGVlbEV2ZW50KCkge1xuXHQoPGFueT5kb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ibHVyKCk7XG59XG5cbmZ1bmN0aW9uIGhleFRvUkdCKGhleCwgYWxwaGEpIHtcbiAgICBsZXQgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpLFxuICAgICAgICBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgIGIgPSBwYXJzZUludChoZXguc2xpY2UoNSwgNyksIDE2KTtcblxuICAgIGlmIChhbHBoYSkge1xuICAgICAgICByZXR1cm4gXCJyZ2JhKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIsIFwiICsgYWxwaGEgKyBcIilcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJyZ2IoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIilcIjtcbiAgICB9XG59IiwiPHN0eWxlPlxuXHQ6cm9vdCB7XG4gICAgICAgIC0td2FybmluZy1jb2xvcjogI2ZmYzEwNztcbiAgICAgICAgLS13YXJuaW5nLWZvbnQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIC0td2FybmluZy1ob3Zlci1jb2xvcjogI2UwYTgwMDtcbiAgICAgICAgLS13YXJuaW5nLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpO1xuICAgICAgICAtLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gICAgICAgIC0tc3VjY2Vzcy1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXN1Y2Nlc3MtaG92ZXItY29sb3I6ICMyMTg4Mzg7XG4gICAgICAgIC0tc3VjY2Vzcy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpO1xuICAgICAgICAtLWRhbmdlci1jb2xvcjogI2RjMzU0NTtcbiAgICAgICAgLS1kYW5nZXItZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1kYW5nZXItaG92ZXItY29sb3I6ICNjODIzMzM7XG4gICAgICAgIC0tZGFuZ2VyLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSk7XG4gICAgICAgIC0taW5mby1jb2xvcjogIzE3YTJiODtcbiAgICAgICAgLS1pbmZvLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0taW5mby1ob3Zlci1jb2xvcjogIzEzODQ5NjtcbiAgICAgICAgLS1pbmZvLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpO1xuICAgICAgICAtLXByaW1hcnktY29sb3I6ICMwMDdiZmY7XG4gICAgICAgIC0tcHJpbWFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXByaW1hcnktaG92ZXItY29sb3I6ICMwMDY5ZDk7XG4gICAgICAgIC0tcHJpbWFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KTtcbiAgICAgICAgLS1zZWNvbmRhcnktY29sb3I6ICM4NjhlOTY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAjNWE2MjY4O1xuICAgICAgICAtLXNlY29uZGFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSk7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmcge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS13YXJuaW5nLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpmb2N1cywgLmJ0bi1zdWNjZXNzLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zdWNjZXNzLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1kYW5nZXItc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0taW5mby1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tcHJpbWFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHR9XG5cdFxuICBcdEBtZWRpYSBwcmludCB7XG5cdCAgXHQuZG9udFByaW50ICoge1xuXHRcdCAgXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdCAgXHR9XG5cblx0XHQubXlEaXZUb1ByaW50Q3Mge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cdFx0XHRkaXNwbGF5OiBpbml0aWFsO1xuXHRcdH1cblxuXHRcdC5yZW1vdmVPdmVyZmxvdyB7XG5cdFx0XHRvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgXG5cdFx0XHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblx0XHR9XG4gIFx0fVxuXG4gIFx0LmhpZGVUaGlzIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQubmF2U2lkYmFyIHtcblx0XHR3aWR0aDogMHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiAwLjVzO1xuXHRcdHBhZGRpbmctdG9wOiAwcHg7XG5cdH1cblxuXHQubmF2U2lkYmFyIGEge1xuXHRcdHBhZGRpbmc6IDhweCA4cHggOHB4IDMycHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRjb2xvcjogIzgxODE4MTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhOmhvdmVyIHtcblx0XHRjb2xvcjogI2YxZjFmMTtcblx0fVxuXG5cdC5vcGVuYnRuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nOiA1cHggMjBweDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDk5OTk5OTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5vcGVuYnRuIHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG5cdFx0bWFyZ2luLXRvcDogLTU1cHg7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDMwcHg7XG5cdH1cblx0I21haW5fY29udCB7XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZy1sZWZ0IC41cztcblx0fVxuXG5cdC5zaWRfaW5yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cblxuPC9zdHlsZT5cbjxkaXYgKm5nSWY9XCJpc0RldmljZVwiPlxuXHQ8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cIi9hc3NldHMvY3NzL3RhYmxldC5jc3NcIj5cbjwvZGl2PlxuPGRpdiAjc2hlbGw+XG5cdDxkaXYgKm5nSWY9XCJ1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKiogT0ZGTElORSBNT0RFICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cIiF1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKiogUExFQVNFIExPR0lOICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cInN0YXR1c1wiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKioge3sgc3RhdHVzLm1lc3NhZ2UgfX0gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwiZnVsbFNjcmVlblwiPlxuXHRcdDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJqb2Jib2FyZGZzb3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxuXHQ8L2Rpdj5cblx0PGRpdiBbbmdDbGFzc109XCJbJ2NvbnRhaW5lci1mbHVpZCcsIGZ1bGxTY3JlZW4gPyAnaGlkZVRoaXMnIDogJyddXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDxuYXZiYXItbWFpbiBzdHlsZT1cIndpZHRoOiAxMDAlXCIgdG91ckFuY2hvcj1cIm5hdkJhck1haW5cIiAjbmF2QmFyTWFpbiBbbG9nb109XCJsb2dvXCIgW25hdlRhYnNdPVwibmF2VGFic1wiIFtmb250U2l6ZV09XCJmb250U2l6ZVwiPjwvbmF2YmFyLW1haW4+XG5cdFx0PC9kaXY+XG5cdFx0PG5nLXRlbXBsYXRlIG5nYk1vZGFsQ29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0PGRpdiBpZD1cIm5hdlNpZFwiIFtuZ0NsYXNzXT1cIlsnZG9udFByaW50Jywgd2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnbmF2U2lkYmFyJyA6ICdjb2wteGwtMSddXCIgW3N0eWxlLndpZHRoXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gNDAgKyAncHgnIDogMTAwICsgJyUnXCIgW3N0eWxlLm1hcmdpbi10b3AucHhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyBuYXZiYXJNYWluSGVpZ2h0ICsgc3RhdHVzSGVpZ2h0ICsgY29ubmVjdGVkSGVpZ2h0IDogMFwiID5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm9wZW5idG5cIiAqbmdJZj1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51XCIgKG1vdXNlZW50ZXIpPVwib3Blbk5hdigpXCI+PHNwYW4+TUVOVTwvc3Bhbj48L2Rpdj5cblx0XHRcdFx0PGRpdiBbbmdDbGFzc109XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICdzaWRfaW5yJyA6ICcnXCI+XG5cdFx0XHRcdFx0PG5hdmJhci1tb2R1bGUgI25hdkJhck1vZHVsZSB0b3VyQW5jaG9yPVwibmF2QmFyTW9kdWxlXCIgW3NpZGVOYXZXaWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICc5MCUnIDogJ2F1dG8nXCIgW3NpZGVOYXZIZWlnaHRdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyB3aW5kb3dTaXplSGVpZ2h0IC0gbmF2YmFyTWFpbkhlaWdodCAtIHN0YXR1c0hlaWdodCAtIGNvbm5lY3RlZEhlaWdodCAtIChzaG93TmF2aWdhdGlvbk1lbnUgPyAoNTQgKyBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDIwIDogMCkgOiAnJ1wiPjwvbmF2YmFyLW1vZHVsZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgW2lkXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgPyAnbWFpbl9jb250JyA6ICdtYWluX2NvbnRfbW9iaWxlJ1wiIFtuZ0NsYXNzXT1cIlt3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICdjb2wteGwtMTInIDogJ2NvbC14bC0xMSddXCIgW3N0eWxlLnBhZGRpbmctbGVmdC5weF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDU1IDogMFwiIChtb3VzZWVudGVyKT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gY2xvc2VOYXYoKSA6IG51bGxcIj5cblx0XHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4OyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2hcIiBbc3R5bGUub3ZlcmZsb3cteV09XCIoaXNEZXZpY2UgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSkgPyAnaW5pdGlhbCcgOiAnc2Nyb2xsJ1wiIFtzdHlsZS5oZWlnaHQucHhdPVwid2luZG93U2l6ZUhlaWdodCAtICgoaXNEZXZpY2UgfHwgd2luZG93U2l6ZVdpZHRoIDw9IDEyMDApICYmICFzaG93TmF2aWdhdGlvbk1lbnUgPyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyAyMCA6IDApXCIgY2xhc3M9XCJyZW1vdmVPdmVyZmxvd1wiPlxuXHRcdFx0XHRcdDxkaXYgW3N0eWxlLmhlaWdodC5weF09XCJ3aW5kb3dTaXplSGVpZ2h0ICsgMSAtICgoaXNEZXZpY2UgfHwgd2luZG93U2l6ZVdpZHRoIDw9IDEyMDApICYmICFzaG93TmF2aWdhdGlvbk1lbnUgPyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyA2MCA6IDApXCIgY2xhc3M9XCJyZW1vdmVPdmVyZmxvd1wiPlxuXHRcdFx0XHRcdFx0PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnVcIiBzdHlsZT1cImhlaWdodDogNTRweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCIgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDx0YWJsZSBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG5cdFx0XHRcdDx0cj5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoQmFja0J1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1sZWZ0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hSZWxvYWRCdXR0b24oKVwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoRm9yd2FyZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1yaWdodFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0PC90cj5cblx0XHRcdDwvdGFibGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFpc0RldmljZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBoZWlnaHQ6IDIwcHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgbWFyZ2luLWxlZnQ6IC0xNXB4OyBtYXJnaW4tcmlnaHQ6IC0xNXB4O1wiPiZjb3B5OyB7e3llYXJ9fSBSRVNPTFZFSU8gQUxMIFJJR0hUUyBSRVNFUlZFRDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQTJDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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LFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNJLGVBQWU7c0JBQTNFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDOztBQTZXNUQsU0FBUyxxQkFBcUI7SUFDdkIsUUFBUSxDQUFDLGFBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUs7SUFDeEIsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNqQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNqQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLElBQUksS0FBSyxFQUFFO1FBQ1AsT0FBTyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztLQUNqRTtTQUFNO1FBQ0gsT0FBTyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7S0FDakQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgQXBwU3RhdHVzTW9kZWwgfSBmcm9tICcuL21vZGVscy9hcHAtc3RhdHVzLm1vZGVsJztcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xuaW1wb3J0IHsgUmVzaXplU2VydmljZSB9IGZyb20gJy4vdXRpbC93aW5kb3ctcmVzaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNvbHZlaW8tY2xhc3MnO1xuaW1wb3J0IHsgT2ZmbGluZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LWxvY2Fsc3RvcmFnZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2ZVRvYXN0IH0gZnJvbSAnbmd4LXRvYXN0cic7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHRzZWxlY3RvcjogJ3Jlc29sdmVpby1jbGllbnQtbGliLWNvcmUnLFxuXHR0ZW1wbGF0ZVVybDogJy4vY29yZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRASW5wdXQoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ7XG5cdEBJbnB1dCgnbG9nbycpIGxvZ28gPSAnJztcblx0QElucHV0KCduYXZUYWJzJykgbmF2VGFicyA9ICcnO1xuXHRASW5wdXQoJ3VzZXJIYXNQaG9uZU51bWJlcicpIHVzZXJIYXNQaG9uZU51bWJlciA9IGZhbHNlO1xuXHRASW5wdXQoJ2NsaWVudCcpIGNsaWVudCA9ICcnO1xuXHRASW5wdXQoJ3Nob3dOYXZiYXJNb2R1bGUnKSBzaG93TmF2YmFyTW9kdWxlID0gdHJ1ZTtcblx0QElucHV0KCdzaG93TG9naW4nKSBzaG93TG9naW4gPSB0cnVlO1xuXG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1haW4nLCB7cmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlfSkgZWxfbmF2QmFyTWFpbjogRWxlbWVudFJlZjtcblx0QFZpZXdDaGlsZCgnbmF2QmFyTW9kdWxlJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1vZHVsZTogRWxlbWVudFJlZjtcblxuXHR5ZWFyOiBzdHJpbmcgPSAobmV3IERhdGUoKSkuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xuXG5cdGZ1bGxTY3JlZW4gPSBmYWxzZTtcblxuXHR3aW5kb3dTaXplSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXHR3aW5kb3dTaXplV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuXHRuYXZiYXJNYWluSGVpZ2h0ID0gMDtcblx0c3RhdHVzSGVpZ2h0ID0gMDtcblx0Y29ubmVjdGVkSGVpZ2h0ID0gMDtcblx0aXNEZXZpY2UgPSBmYWxzZTtcblx0c2hvd05hdmlnYXRpb25NZW51ID0gZmFsc2U7XG5cblx0c3dGbGFnQWxlcnQ6IEFjdGl2ZVRvYXN0PGFueT4gPSBudWxsO1xuXHRcblx0aXNDb25uZWN0ZWQgPSBmYWxzZTtcblx0aXNDb25uZWN0aW5nID0gZmFsc2U7XG5cdHNvY2tldFN0YXR1czogbnVtYmVyO1xuXG5cdHVzZXI6IFVzZXJNb2RlbDtcblx0c3RhdHVzOiBBcHBTdGF0dXNNb2RlbDtcblxuXHRjb2xsYXBzYWJsZU1lbnUgPSB0cnVlO1xuXHRmb250U2l6ZSA9IDEyO1xuXHRvcGVuZWRXaW5kb3cgPSBmYWxzZTtcblxuXHRpc09mZmxpbmUgPSBmYWxzZTtcblx0Zm91bmRVcGRhdGUgPSBmYWxzZTtcblxuXHRvcmllbnRhdGlvbiA9ICdwb3J0cmFpdCc7XG5cblx0Ly8gcHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX2RldmljZURldDogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfcmVzaXplU2VydmljZTogUmVzaXplU2VydmljZSwgcHVibGljIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9vZmZsaW5lOiBPZmZsaW5lTWFuYWdlclNlcnZpY2UsIHByaXZhdGUgX3N0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEVudmlyb25tZW50KHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q2xpZW50KHRoaXMuY2xpZW50KTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldE5hdlRhYnModGhpcy5uYXZUYWJzKTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmluaXRMb2dpbk1hbmFnZXIodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0XG5cdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgdGhpcy5lbnZpcm9ubWVudC5NU19BTExPV0VEKSB7XG5cdFx0XHR0aGlzLl9hdXRoLnNldHVwTVNTaW5nbGVTaWduT24odGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0fVxuXHRcdGVsc2UgaWYgKHRoaXMuZW52aXJvbm1lbnQpIHtcblx0XHRcdHRoaXMuX2F1dGguc2V0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fYXV0aC5zZXRVc2VySGFzUGhvbmVOdW1iZXIodGhpcy51c2VySGFzUGhvbmVOdW1iZXIpO1xuXG5cdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FwcC5zZXRDdXN0b21Ib21lUGFnZSh0aGlzLmN1c3RvbUhvbWVQYWdlKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0TG9nbyh0aGlzLmxvZ28pO1xuXG5cdFx0dGhpcy5fcmVzaXplU2VydmljZS5vblJlc2l6ZSQuc3Vic2NyaWJlKCh2YWwpID0+IHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVIZWlnaHQgPSB2YWwuaW5uZXJIZWlnaHQ7XG5cdFx0XHRcdHRoaXMud2luZG93U2l6ZVdpZHRoID0gdmFsLmlubmVyV2lkdGg7XG5cdFx0XHR9LCAxMDApO1xuXHRcdH0pO1xuXHRcdFxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuZnVsbFNjcmVlbi5zdWJzY3JpYmUoZnVsbFNjcmVlbiA9PiB7XG5cdFx0XHR0aGlzLmZ1bGxTY3JlZW4gPSBmdWxsU2NyZWVuO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQudXNlci5zdWJzY3JpYmUodXNlciA9PiB7XG5cdFx0XHRpZiAodXNlciAmJiB1c2VyLnNldHRpbmdzKSB7XG5cdFx0XHRcdHRoaXMuY29sbGFwc2FibGVNZW51ID0gdXNlci5zZXR0aW5ncy5jb2xsYXBzYWJsZV9tZW51O1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gdXNlci5zZXR0aW5ncy5mb250X3NpemU7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy53YXJuaW5nX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5kYW5nZXJfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5kYW5nZXJfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5kYW5nZXJfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuaW5mb19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnByaW1hcnlfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc2Vjb25kYXJ5X2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Muc2Vjb25kYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc2Vjb25kYXJ5X2hvdmVyX2NvbG9yKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHVzZXIgJiYgKCF1c2VyLm90aGVyWydjdXN0b21lcnMnXSB8fCAhdXNlci5vdGhlclsnY3VzdG9tZXJzJ10ubGVuZ3RoKSAmJiAhdXNlci5vdGhlclsnaWRfY3VzdG9tZXInXSAmJiAhdXNlci5zZXR0aW5ncyAmJiAhdGhpcy5vcGVuZWRXaW5kb3cpIHtcblx0XHRcdFx0dGhpcy5vcGVuZWRXaW5kb3cgPSB0cnVlO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHRcdHRoaXMuX2RzLm5vdGlmeSgnSGVsbG8sICcgKyB1c2VyLmZ1bGxuYW1lICsgJyBpdCBsb29rcyBsaWtlIHRoZXJlIGFyZSBubyB1c2VyIHNldHRpbmdzIHNhdmVkIGZvciB5b3UuIFRvIGFkanVzdCB5b3VyIHVzZXIgc2V0dGluZ3MgY2xpY2sgeW91ciBuYW1lIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgbmV4dCB0byB0aGUgbG9nb3V0IGJ1dHRvbiwgYWRqdXN0IGFueSBzZXR0aW5ncyB5b3Ugd2FudCwgdGhlbiBjbGljayBzdWJtaXQgdG8gYXBwbHkgdGhlbS4nKTtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIudXJsLnNwbGl0KCcvJylbMF0gKyAnL3VzZXItc2V0dGluZ3Mvc2V0dGluZ3MnKVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWNvbG9yJywgJyNmZmMxMDcnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctZm9udC1jb2xvcicsICcjMDAwMDAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjIsIDE3MCwgMTIsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctaG92ZXItY29sb3InLCAnI2UwYTgwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1jb2xvcicsICcjMjhhNzQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNzIsIDE4MCwgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtaG92ZXItY29sb3InLCAnIzIxODgzOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWNvbG9yJywgJyNkYzM1NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsICcjYzgyMzMzJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWNvbG9yJywgJyMxN2EyYjgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg1OCwgMTc2LCAxOTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8taG92ZXItY29sb3InLCAnIzEzODQ5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1jb2xvcicsICcjMDA3YmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMzgsIDE0MywgMjU1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWhvdmVyLWNvbG9yJywgJyMwMDY5ZDknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1jb2xvcicsICcjODY4ZTk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1ob3Zlci1jb2xvcicsICcjNWE2MjY4Jyk7XG5cdFx0XHRcdHRoaXMuZm9udFNpemUgPSAxMjtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy51c2VyID0gdXNlcjtcblx0XHR9KTtcblxuXHRcdC8vIGlmICghdGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlcikge1xuXHRcdC8vIFx0dGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciA9IHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyO1xuXHRcdC8vIFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5lcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyOiBhbnkpIHtcdFxuXHRcdC8vIFx0XHRyZXR1cm4gdGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlci5hcHBseSh0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyLCBhcmd1bWVudHMpO1xuXHRcdC8vIFx0fTtcblx0XHQvLyB9XG5cblx0XHRpZiAodGhpcy5fZGV2aWNlRGV0LmlzTW9iaWxlKCkgfHwgdGhpcy5fZGV2aWNlRGV0LmlzVGFibGV0KCkpIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNEZXZpY2UodHJ1ZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gdHJ1ZTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKGZhbHNlKTtcblx0XHRcdHRoaXMuaXNEZXZpY2UgPSBmYWxzZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudC5JU19QUk9EVUNUSU9OKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdmbGFnV2l0aFR5cGUnLCAnbmV3U1cnKS5zdWJzY3JpYmUoZmxhZyA9PiB7XG5cdFx0XHRcdGlmIChmbGFnKSB7XG5cdFx0XHRcdFx0dGhpcy5zd0ZsYWdBbGVydCA9IHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnaW5mbycsICdUaGlzIHBhZ2Ugd2lsbCByZWxvYWQgb25jZSBuZXcgdmVyc2lvbiBoYXMgYmVlbiBkb3dubG9hZGVkJywgMCk7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0ludmFsaWRTVyh0cnVlKTtcblxuXHRcdFx0XHRcdGlmICghbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIpIHtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHRcdFx0XHR9LCAzMDAwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihyZWdpc3RyYXRpb25zID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKCFyZWdpc3RyYXRpb25zIHx8ICFyZWdpc3RyYXRpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0XHRcdH0sIDMwMDApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LCBlcnIgPT4ge1xuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHRcdFx0XHRcdH0sIDMwMDApO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc3dGbGFnQWxlcnQpIHtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzSW52YWxpZFNXKGZhbHNlKTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuY2xlYXJBbGVydCh0aGlzLnN3RmxhZ0FsZXJ0LnRvYXN0SWQpO1xuXHRcdFx0XHRcdHRoaXMuc3dGbGFnQWxlcnQgPSBudWxsO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0aGlzLl9vZmZsaW5lLm9mZmxpbmVNb2RlLnN1YnNjcmliZShvZmZsaW5lID0+IHtcblx0XHRcdHRoaXMuaXNPZmZsaW5lID0gb2ZmbGluZTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFNvY2tldFN0YXR1cygpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zb2NrZXRTdGF0dXMgPSBzdGF0dXM7XG5cdFx0XHRcblx0XHRcdGlmICghdGhpcy51c2VyKSB7XG5cdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblxuXHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDQwO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHtcblx0XHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0aWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2FwcHN0YXR1cycpLnN1YnNjcmliZShhcHBzdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zdGF0dXMgPSBhcHBzdGF0dXM7IC8vT0sgaWYgbm90IGRlZmluZWRcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SGFzU3RhdHVzTWVzc2FnZSh0aGlzLnN0YXR1cyA/IHRydWUgOiBmYWxzZSk7XG5cdFx0XHR0aGlzLnN0YXR1c0hlaWdodCA9IHRoaXMuc3RhdHVzID8gNDAgOiAwO1xuXHRcdH0pO1xuXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwKTtcblx0XHRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCAxMDAwKTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDUwMDApO1xuXG5cdFx0aWYgKHRoaXMuaXNEZXZpY2UpIHtcblx0XHRcdGxldCBmaXJzdFJlZGlyZWN0ID0gZmFsc2U7XG5cdFx0XHRsZXQgbGFzdFVSTCA9IHRoaXMuX3N0b3JhZ2UuZ2V0KCdsYXN0VVJMJyk7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblx0XHRcdFx0aWYgKGxhc3RVUkwgJiYgbGFzdFVSTCAhPT0gJy8nICYmICFmaXJzdFJlZGlyZWN0KSB7XG5cdFx0XHRcdFx0aWYgKGV2ZW50LnVybCA9PT0gJycgfHwgZXZlbnQudXJsID09PSAnLycpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsYXN0VVJMKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmaXJzdFJlZGlyZWN0ID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoZXZlbnQudXJsKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmwpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmxBZnRlclJlZGlyZWN0cyk7XG5cdFx0XHRcdH1cdFx0XHRcdFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKFsnaVBhZCcsICdpUGhvbmUnLCAnaVBvZCddLmluZGV4T2YobmF2aWdhdG9yLnBsYXRmb3JtKSA+PSAwICYmICgnc3RhbmRhbG9uZScgaW4gd2luZG93Lm5hdmlnYXRvcikgJiYgKDxhbnk+d2luZG93Lm5hdmlnYXRvcikuc3RhbmRhbG9uZSkge1xuXHRcdFx0dGhpcy5zaG93TmF2aWdhdGlvbk1lbnUgPSB0cnVlO1xuXHRcdH1cblxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsICgpID0+IHtcblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IC05MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSA5MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSAwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXHRcdFx0fVxuXHRcdH0sIHRydWUpO1xuXG5cdFx0bGV0IG1vdXNld2hlZWxFdmVudDtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lID09PSAnSU5QVVQnICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRbJ3R5cGUnXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBtb3VzZXdoZWVsRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKG1vdXNld2hlZWxFdmVudCkge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQpO1xuICAgICAgICAgICAgfVxuXHRcdH0sIHRydWUpO1xuXHRcdFxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4ge1xuXHRcdFx0bGV0IGV2ID0gZSB8fCBldmVudDtcblx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSwgZmFsc2UpO1xuXHR9XG5cblx0Z2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkge1xuXHRcdHJldHVybiB0aGlzLmVsX25hdkJhck1vZHVsZSA/IHRoaXMuZWxfbmF2QmFyTW9kdWxlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0IDogMDtcblx0fVxuXG5cdG9uUHVzaEJhY2tCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuYmFjaygpO1xuXHR9XG5cblx0b25QdXNoUmVsb2FkQnV0dG9uKCkge1xuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0fVxuXG5cdG9uUHVzaEZvcndhcmRCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpO1xuXHR9XG5cblx0b3Blbk5hdigpIHtcblx0XHRsZXQgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZTaWQnKTtcblx0XHRsZXQgeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKTtcblx0XHRpZiAoeC5zdHlsZS53aWR0aCA9PT0gJzQwcHgnICYmIHkuc3R5bGUucGFkZGluZ0xlZnQgPT09ICc1NXB4Jykge1xuXHRcdFx0eC5zdHlsZS53aWR0aCA9ICcxOTVweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzIxMHB4Jztcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdFx0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4Jztcblx0XHR9XG5cdH1cblx0XHRcblx0Y2xvc2VOYXYoKSB7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpLnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4JztcdFxuXHR9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZU1vdXNld2hlZWxFdmVudCgpIHtcblx0KDxhbnk+ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuYmx1cigpO1xufVxuXG5mdW5jdGlvbiBoZXhUb1JHQihoZXgsIGFscGhhKSB7XG4gICAgbGV0IHIgPSBwYXJzZUludChoZXguc2xpY2UoMSwgMyksIDE2KSxcbiAgICAgICAgZyA9IHBhcnNlSW50KGhleC5zbGljZSgzLCA1KSwgMTYpLFxuICAgICAgICBiID0gcGFyc2VJbnQoaGV4LnNsaWNlKDUsIDcpLCAxNik7XG5cbiAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgcmV0dXJuIFwicmdiYShcIiArIHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYiArIFwiLCBcIiArIGFscGhhICsgXCIpXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFwicmdiKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIpXCI7XG4gICAgfVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLXdhcm5pbmctY29sb3I6ICNmZmMxMDc7XG4gICAgICAgIC0td2FybmluZy1mb250LWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAtLXdhcm5pbmctaG92ZXItY29sb3I6ICNlMGE4MDA7XG4gICAgICAgIC0td2FybmluZy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KTtcbiAgICAgICAgLS1zdWNjZXNzLWNvbG9yOiAjMjhhNzQ1O1xuICAgICAgICAtLXN1Y2Nlc3MtZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1zdWNjZXNzLWhvdmVyLWNvbG9yOiAjMjE4ODM4O1xuICAgICAgICAtLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KTtcbiAgICAgICAgLS1kYW5nZXItY29sb3I6ICNkYzM1NDU7XG4gICAgICAgIC0tZGFuZ2VyLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tZGFuZ2VyLWhvdmVyLWNvbG9yOiAjYzgyMzMzO1xuICAgICAgICAtLWRhbmdlci1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpO1xuICAgICAgICAtLWluZm8tY29sb3I6ICMxN2EyYjg7XG4gICAgICAgIC0taW5mby1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLWluZm8taG92ZXItY29sb3I6ICMxMzg0OTY7XG4gICAgICAgIC0taW5mby1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KTtcbiAgICAgICAgLS1wcmltYXJ5LWNvbG9yOiAjMDA3YmZmO1xuICAgICAgICAtLXByaW1hcnktZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1wcmltYXJ5LWhvdmVyLWNvbG9yOiAjMDA2OWQ5O1xuICAgICAgICAtLXByaW1hcnktc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSk7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWNvbG9yOiAjODY4ZTk2O1xuICAgICAgICAtLXNlY29uZGFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXNlY29uZGFyeS1ob3Zlci1jb2xvcjogIzVhNjI2ODtcbiAgICAgICAgLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpO1xuICAgIH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nIHtcblx0XHRjb2xvcjogdmFyKC0td2FybmluZy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0td2FybmluZy1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmc6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzIHtcblx0XHRjb2xvcjogdmFyKC0tc3VjY2Vzcy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3M6Zm9jdXMsIC5idG4tc3VjY2Vzcy5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc3VjY2Vzcy1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3M6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyOmZvY3VzLCAuYnRuLWRhbmdlci5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tZGFuZ2VyLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tZGFuZ2VyLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXItaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbyB7XG5cdFx0Y29sb3I6IHZhcigtLWluZm8tZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mby1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvOmZvY3VzLCAuYnRuLWluZm8uZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWluZm8tc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeSB7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5OmZvY3VzLCAuYnRuLXByaW1hcnkuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXByaW1hcnktc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeTpmb2N1cywgLmJ0bi1zZWNvbmRhcnkuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXNlY29uZGFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXNlY29uZGFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcblx0fVxuXHRcbiAgXHRAbWVkaWEgcHJpbnQge1xuXHQgIFx0LmRvbnRQcmludCAqIHtcblx0XHQgIFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHQgIFx0fVxuXG5cdFx0Lm15RGl2VG9QcmludENzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTJweDtcblx0XHRcdHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuXHRcdFx0ZGlzcGxheTogaW5pdGlhbDtcblx0XHR9XG5cblx0XHQucmVtb3ZlT3ZlcmZsb3cge1xuXHRcdFx0b3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7IFxuXHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0fVxuICBcdH1cblxuICBcdC5oaWRlVGhpcyB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lm5hdlNpZGJhciB7XG5cdFx0d2lkdGg6IDBweDtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogMC41cztcblx0XHRwYWRkaW5nLXRvcDogMHB4O1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhIHtcblx0XHRwYWRkaW5nOiA4cHggOHB4IDhweCAzMnB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0Y29sb3I6ICM4MTgxODE7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dHJhbnNpdGlvbjogMC4zcztcblx0fVxuXG5cdC5uYXZTaWRiYXIgYTpob3ZlciB7XG5cdFx0Y29sb3I6ICNmMWYxZjE7XG5cdH1cblxuXHQub3BlbmJ0biB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZzogNXB4IDIwcHg7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiA5OTk5OTk7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQub3BlbmJ0biBzcGFuIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtOTBkZWcpO1xuXHRcdG1hcmdpbi10b3A6IC01NXB4O1xuXHRcdGxldHRlci1zcGFjaW5nOiAzMHB4O1xuXHR9XG5cdCNtYWluX2NvbnQge1xuXHRcdHRyYW5zaXRpb246IHBhZGRpbmctbGVmdCAuNXM7XG5cdH1cblxuXHQuc2lkX2luciB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHR9XG5cbjwvc3R5bGU+XG48ZGl2ICpuZ0lmPVwiaXNEZXZpY2VcIj5cblx0PGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCIvYXNzZXRzL2Nzcy90YWJsZXQuY3NzXCI+XG48L2Rpdj5cbjxkaXYgI3NoZWxsPlxuXHQ8ZGl2ICpuZ0lmPVwidXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSlcIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+KioqIE9GRkxJTkUgTU9ERSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCIhdXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSkgJiYgc2hvd0xvZ2luXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiPioqKiBQTEVBU0UgTE9HSU4gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwic3RhdHVzXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiPioqKiB7eyBzdGF0dXMubWVzc2FnZSB9fSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCJmdWxsU2NyZWVuXCI+XG5cdFx0PHJvdXRlci1vdXRsZXQgbmFtZT1cImpvYmJvYXJkZnNvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGFpbmVyLWZsdWlkJywgZnVsbFNjcmVlbiA/ICdoaWRlVGhpcycgOiAnJ11cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImZvbnRTaXplXCI+XG5cdFx0PGRpdiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PG5hdmJhci1tYWluIHN0eWxlPVwid2lkdGg6IDEwMCVcIiB0b3VyQW5jaG9yPVwibmF2QmFyTWFpblwiICNuYXZCYXJNYWluIFtsb2dvXT1cImxvZ29cIiBbbmF2VGFic109XCJuYXZUYWJzXCIgW2ZvbnRTaXplXT1cImZvbnRTaXplXCIgW3Nob3dMb2dpbl09XCJzaG93TG9naW5cIj48L25hdmJhci1tYWluPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZSBuZ2JNb2RhbENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgaWQ9XCJuYXZTaWRcIiAqbmdJZj1cInNob3dOYXZiYXJNb2R1bGVcIiBbbmdDbGFzc109XCJbJ2RvbnRQcmludCcsIHdpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ25hdlNpZGJhcicgOiAnY29sLXhsLTEnXVwiIFtzdHlsZS53aWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDQwICsgJ3B4JyA6IDEwMCArICclJ1wiIFtzdHlsZS5tYXJnaW4tdG9wLnB4XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gbmF2YmFyTWFpbkhlaWdodCArIHN0YXR1c0hlaWdodCArIGNvbm5lY3RlZEhlaWdodCA6IDBcIiA+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJvcGVuYnRuXCIgKm5nSWY9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudVwiIChtb3VzZWVudGVyKT1cIm9wZW5OYXYoKVwiPjxzcGFuPk1FTlU8L3NwYW4+PC9kaXY+XG5cdFx0XHRcdDxkaXYgW25nQ2xhc3NdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnc2lkX2lucicgOiAnJ1wiPlxuXHRcdFx0XHRcdDxuYXZiYXItbW9kdWxlICNuYXZCYXJNb2R1bGUgdG91ckFuY2hvcj1cIm5hdkJhck1vZHVsZVwiIFtzaWRlTmF2V2lkdGhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnOTAlJyA6ICdhdXRvJ1wiIFtzaWRlTmF2SGVpZ2h0XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gd2luZG93U2l6ZUhlaWdodCAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyAyMCA6IDApIDogJydcIj48L25hdmJhci1tb2R1bGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IFtpZF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwID8gJ21haW5fY29udCcgOiAnbWFpbl9jb250X21vYmlsZSdcIiBbbmdDbGFzc109XCJbd2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnY29sLXhsLTEyJyA6ICdjb2wteGwtMTEnXVwiIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgJiYgc2hvd05hdmJhck1vZHVsZSA/IDU1IDogMFwiIChtb3VzZWVudGVyKT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ICYmIHNob3dOYXZiYXJNb2R1bGUgPyBjbG9zZU5hdigpIDogbnVsbFwiPlxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaFwiIFtzdHlsZS5vdmVyZmxvdy15XT1cIihpc0RldmljZSAmJiAhc2hvd05hdmlnYXRpb25NZW51KSA/ICdpbml0aWFsJyA6ICdzY3JvbGwnXCIgW3N0eWxlLmhlaWdodC5weF09XCJ3aW5kb3dTaXplSGVpZ2h0IC0gKChpc0RldmljZSB8fCB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSA/IChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDIwIDogMClcIiBjbGFzcz1cInJlbW92ZU92ZXJmbG93XCI+XG5cdFx0XHRcdFx0PGRpdiBbc3R5bGUuaGVpZ2h0LnB4XT1cIndpbmRvd1NpemVIZWlnaHQgKyAxIC0gKChpc0RldmljZSB8fCB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSA/IChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDYwIDogMClcIiBjbGFzcz1cInJlbW92ZU92ZXJmbG93XCI+XG5cdFx0XHRcdFx0XHQ8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cImlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudVwiIHN0eWxlPVwiaGVpZ2h0OiA1NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7IG1hcmdpbi1sZWZ0OiAtMTVweDsgbWFyZ2luLXJpZ2h0OiAtMTVweDtcIiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cblx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hCYWNrQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWxlZnRcIiBzdHlsZT1cImNvbG9yOiBibGFjazsgZm9udC1zaXplOiAyMHB4XCI+PC9pPjwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5XCIgKGNsaWNrKT1cIm9uUHVzaFJlbG9hZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hGb3J3YXJkQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LXJpZ2h0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHQ8L3RyPlxuXHRcdFx0PC90YWJsZT5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwiIWlzRGV2aWNlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMjBweDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+JmNvcHk7IHt7eWVhcn19IFJFU09MVkVJTyBBTEwgUklHSFRTIFJFU0VSVkVEPC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=