@netgrif/components 6.4.0-beta.9 → 6.4.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/admin/user-invite/user-invite.component.mjs +2 -2
- package/esm2020/lib/data-fields/boolean-field/boolean-default-field/boolean-default-field.component.mjs +1 -1
- package/esm2020/lib/data-fields/button-field/button-default-field/button-default-field.component.mjs +13 -11
- package/esm2020/lib/data-fields/data-field-template/data-field-template.component.mjs +3 -3
- package/esm2020/lib/data-fields/data-fields.module.mjs +17 -5
- package/esm2020/lib/data-fields/date-field/date-default-field/date-default-field.component.mjs +19 -14
- package/esm2020/lib/data-fields/date-time-field/date-time-default-field/date-time-default-field.component.mjs +19 -14
- package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/file-list-field/file-list-default-field/file-list-default-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/number-field/number-decimal-field/number-decimal-field.component.mjs +38 -0
- package/esm2020/lib/data-fields/string-collection-field/string-collection-default-field/string-collection-default-field.component.mjs +29 -0
- package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/text-field/signature-pad-field/signature-pad-field.component.mjs +95 -0
- package/esm2020/lib/data-fields/text-field/text-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/user-field/user-default-field/user-default-field.component.mjs +3 -3
- package/esm2020/lib/data-fields/user-list-field/user-list-default-field/user-list-default-field.component.mjs +3 -3
- package/esm2020/lib/dialog/admin-impersonate-dialog/admin-impersonate-dialog.component.mjs +1 -1
- package/esm2020/lib/dialog/dialog.module.mjs +6 -2
- package/esm2020/lib/dialog/filter-selector-dialog/filter-selector-dialog.component.mjs +5 -7
- package/esm2020/lib/dialog/import-net-dialog/import-net-dialog.component.mjs +1 -1
- package/esm2020/lib/dialog/multi-user-assign-dialog/multi-user-assign-dialog.component.mjs +5 -3
- package/esm2020/lib/dialog/new-case-dialog/new-case-dialog.component.mjs +4 -4
- package/esm2020/lib/navigation/breadcrumbs/breadcrumbs.component.mjs +9 -8
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.mjs +3 -6
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.mjs +4 -2
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +8 -9
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.mjs +1 -1
- package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs +3 -3
- package/esm2020/lib/navigation/quick-panel/components/language-selector/language-selector.component.mjs +9 -25
- package/esm2020/lib/navigation/quick-panel/components/quick-panel.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel/task-panel.component.mjs +10 -5
- package/esm2020/lib/side-menu/content-components/admin-impersonate/admin-impersonate.component.mjs +2 -1
- package/esm2020/lib/side-menu/content-components/filter-selector/filter-selector.component.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/import-net/import-net.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.mjs +9 -4
- package/esm2020/lib/side-menu/content-components/load-filter/load-filter.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/multi-user-assign/multi-user-assign.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/multi-user-assign/side-menu-multi-user-assign-component.module.mjs +4 -4
- package/esm2020/lib/side-menu/content-components/new-case/new-case.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/option-selector/option-selector.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/save-filter/save-filter.component.mjs +4 -1
- package/esm2020/lib/side-menu/content-components/side-menu-content-component.module.mjs +8 -2
- package/esm2020/lib/side-menu/content-components/user-assign/user-assign.component.mjs +2 -1
- package/esm2020/lib/side-menu/content-components/user-impersonate/user-impersonate.component.mjs +4 -1
- package/esm2020/lib/side-menu/side-menu-container/side-menu-container.component.mjs +4 -1
- package/fesm2015/netgrif-components.mjs +366 -175
- package/fesm2015/netgrif-components.mjs.map +1 -1
- package/fesm2020/netgrif-components.mjs +355 -175
- package/fesm2020/netgrif-components.mjs.map +1 -1
- package/lib/data-fields/button-field/button-default-field/button-default-field.component.d.ts +7 -3
- package/lib/data-fields/data-fields.module.d.ts +22 -19
- package/lib/data-fields/date-field/date-default-field/date-default-field.component.d.ts +5 -4
- package/lib/data-fields/date-time-field/date-time-default-field/date-time-default-field.component.d.ts +5 -4
- package/lib/data-fields/number-field/number-decimal-field/number-decimal-field.component.d.ts +13 -0
- package/lib/data-fields/string-collection-field/string-collection-default-field/string-collection-default-field.component.d.ts +9 -0
- package/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.d.ts +2 -1
- package/lib/data-fields/text-field/signature-pad-field/signature-pad-field.component.d.ts +31 -0
- package/lib/navigation/breadcrumbs/breadcrumbs.component.d.ts +4 -2
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.d.ts +3 -3
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.d.ts +5 -4
- package/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.d.ts +5 -5
- package/lib/navigation/quick-panel/components/language-selector/language-selector.component.d.ts +4 -7
- package/lib/panel/task-panel/task-panel.component.d.ts +3 -3
- package/lib/side-menu/content-components/admin-impersonate/admin-impersonate.component.d.ts +1 -0
- package/lib/side-menu/content-components/filter-selector/filter-selector.component.d.ts +2 -0
- package/lib/side-menu/content-components/import-net/import-net.component.d.ts +3 -0
- package/lib/side-menu/content-components/load-filter/load-filter.component.d.ts +3 -0
- package/lib/side-menu/content-components/multi-user-assign/multi-user-assign.component.d.ts +3 -0
- package/lib/side-menu/content-components/new-case/new-case.component.d.ts +3 -0
- package/lib/side-menu/content-components/option-selector/option-selector.component.d.ts +3 -0
- package/lib/side-menu/content-components/save-filter/save-filter.component.d.ts +3 -0
- package/lib/side-menu/content-components/user-assign/user-assign.component.d.ts +1 -0
- package/lib/side-menu/content-components/user-impersonate/user-impersonate.component.d.ts +3 -0
- package/lib/side-menu/side-menu-container/side-menu-container.component.d.ts +3 -0
- package/nae-theme.scss +0 -5
- package/nae-typography.scss +1 -1
- package/package.json +2 -2
- package/src/lib/data-fields/data-field.theme.scss +22 -7
- package/src/lib/side-menu/side-menu.theme.scss +1 -1
package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs
CHANGED
|
@@ -31,7 +31,7 @@ export class NavigationDoubleDrawerComponent extends AbstractNavigationDoubleDra
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
NavigationDoubleDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationDoubleDrawerComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.BreakpointObserver }, { token: i3.LanguageService }, { token: i4.TranslateService }, { token: i3.UserService }, { token: i3.AccessService }, { token: i3.LoggerService }, { token: i3.ConfigurationService }, { token: i3.UriService }, { token: i3.CaseResourceService }, { token: i3.ImpersonationUserSelectService }, { token: i3.ImpersonationService }, { token: i3.DynamicNavigationRouteProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
NavigationDoubleDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NavigationDoubleDrawerComponent, selector: "nc-navigation-double-drawer", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-control rail-color height-60\" [ngClass]=\"{'index-menu': !configLeftMenu.opened}\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n</div>\n<mat-toolbar fxHide.gt-sm class=\"toolbar\">\n <mat-toolbar-row fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\n <div fxFlex fxLayoutAlign=\"start center\">\n <button mat-icon-button (click)=\"toggleMenu()\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"center center\" fxFlex>\n <img #logo [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg-tool\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div fxFlex></div>\n </mat-toolbar-row>\n</mat-toolbar>\n<mat-spinner *ngIf=\"!logo\"></mat-spinner>\n<mat-sidenav-container class=\"rail-container deny-select\">\n <mat-sidenav mode=\"side\" [(opened)]=\"configLeftMenu.opened\" position=\"start\"\n [disableClose]=\"configLeftMenu.disableClose\"\n class=\"rail-content\">\n\n <div fxLayout=\"column\" class=\"rail-color\" fxFlex>\n\n <div *ngTemplateOutlet=\"portalLeftMenu || defaultLeftSide\"></div>\n\n <div fxFlex></div>\n\n <mat-menu #userRailMenu=\"matMenu\">\n <div mat-menu-item role=\"menuitem\" class=\"large-menu-item\" fxLayout=\"row\" fxFlexAlign=\"center center\"\n [routerLink]=\"profileRouterLink\" routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"margin-auto\" fxFlex>face</mat-icon>\n <div class=\"large-menu-item\" fxLayout=\"column\" fxFlexAlign=\"start center\" fxFlex>\n <span *ngIf=\"!user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}}</span>\n <span *ngIf=\"user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}} ({{user.getSelfOrImpersonated().fullName}})</span>\n <span class=\"large-menu-item-text\" style=\"font-size: 12px;\" fxFlex=\"50\">{{user.email}}</span>\n </div>\n </div>\n <button *ngIf=\"includeImpersonation && !user.isImpersonating()\" mat-menu-item (click)=\"impersonate()\">\n <mat-icon>supervisor_account</mat-icon>\n <span>{{'side-menu.impersonation.submit' | translate}}</span>\n </button>\n <button *ngIf=\"includeImpersonation && user.isImpersonating()\" mat-menu-item (click)=\"stopImpersonating()\">\n <mat-icon>clear</mat-icon>\n <span>{{'side-menu.impersonation.cease' | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n <span>{{ 'toolbar.menu.logout' | translate }}</span>\n </button>\n </mat-menu>\n <button *ngIf=\"includeUser\" mat-icon-button [matMenuTriggerFor]=\"userRailMenu\" class=\"menu-button mat-typography menu-font-color\"\n [matTooltip]=\"user.fullName\"\n [matTooltipPosition]=\"'right'\">\n <mat-icon>account_circle</mat-icon>\n </button>\n\n <div *ngIf=\"includeLanguage\" fxLayout=\"row\" class=\"icon-container\" fxLayoutAlign=\"center center\">\n <nc-language-selector fxLayout=\"row\" [language]=\"getLang()\"></nc-language-selector>\n </div>\n\n <mat-menu #railMenu=\"matMenu\">\n <button *ngFor='let item of hiddenCustomItems; trackBy: itemsTrackBy' mat-menu-item\n [routerLink]='item.routing.path' routerLinkActive=\"active-tree-node\">\n <mat-icon>{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n </button>\n </mat-menu>\n <!-- <div fxLayout=\"row\" class=\"margin-bottom-x2 icon-container\" matTooltip=\"Otvori\u0165 menu\"-->\n <!-- matTooltipPosition=\"right\"-->\n <!-- fxLayoutAlign=\"center center\">-->\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"railMenu\">-->\n <!-- <mat-icon class=\"icon-large sidemenu-icon\">more_vert</mat-icon>-->\n <!-- </button>-->\n <!-- </div>-->\n <button mat-icon-button [matMenuTriggerFor]=\"railMenu\"\n class=\"menu-button mat-typography menu-font-color margin-bottom-x2\"\n [matTooltip]=\"'toolbar.menu.open' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"first-content index-menu\" >\n <mat-sidenav-container class=\"drawer-container\" (backdropClick)=\"toggleLeftMenu()\">\n <mat-sidenav [mode]=\"configRightMenu.mode\" [(opened)]=\"configRightMenu.opened\" position=\"start\"\n [disableClose]=\"configRightMenu.disableClose\"\n class=\"drawer-content\"\n mwlResizable\n [style.width.px]=\"configRightMenu.width\"\n [resizeCursorPrecision]=\"20\"\n [resizeEdges]=\"{right: true}\"\n (resizing)=\"onResizeEvent($event)\">\n\n <div *ngTemplateOutlet=\"portalRightMenu || defaultRightSide\"></div>\n\n </mat-sidenav>\n\n <mat-sidenav-content class=\"content-color\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n</mat-sidenav-container>\n\n<ng-template #defaultLeftSide>\n\n <div class=\"height-60 border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleRightMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n\n <button mat-icon-button (click)=\"onHomeClick()\" class=\"menu-button mat-typography menu-font-color margin-top-default\"\n [matTooltip]=\"'toolbar.menu.home' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>home</mat-icon>\n </button>\n\n <button *ngIf='!isOnZeroLevel() && (canGoBackLoading$ | async) === false' mat-icon-button (click)=\"onBackClick()\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"'toolbar.menu.back' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div *ngIf=\"(canGoBackLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div class=\"margin-top-x2\"></div>\n\n <button *ngFor='let folder of leftItems; trackBy: itemsTrackBy' mat-icon-button (click)=\"onItemClick(folder)\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"folder.navigation.title\" [matTooltipPosition]=\"'right'\"\n [ngClass]=\"isItemAndNodeEqual(folder, currentNode) ? 'rail-selected-color' : 'menu-font-color'\" [routerLink]='folder.routing.path'\n routerLinkActive=\"active\">\n <mat-icon>{{folder.navigation.icon}}</mat-icon>\n </button>\n\n <div *ngIf=\"(leftLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n\n<ng-template #defaultRightSide>\n <div class=\"logo border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <img *ngIf=\"image !== undefined\" [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div *ngIf=\"(rightLoading$ | async) === false\">\n <div fxLayout=\"column\" fxLayoutAlign=\"end end\" class=\"order-icon-wrapper\">\n <button mat-icon-button fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"mat-button mat-typography menu-font-color order-icon\" (click)=\"switchOrder()\"\n [matTooltip]=\"isAscending() ? ('dynamicNavigation.ascending' | translate) : ('dynamicNavigation.descending' | translate)\">\n <mat-icon>{{isAscending() ? \"expand_more\" : \"expand_less\"}}</mat-icon>\n </button>\n </div>\n <div *ngFor='let item of rightItems; trackBy: itemsTrackBy' (click)=\"onItemClick(item)\"\n class=\"tree-node mat-typography mat-body-2\" fxLayoutAlign=\"start center\" [routerLink]='item.routing.path'\n routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"tree-node-icon\">{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n <span class=\"menu-item-focus-overlay\"></span>\n </div>\n <div *ngIf=\"moreItems.length > 0\">\n <button mat-button color=\"primary\" (click)=\"loadMoreItems()\">{{'dynamicNavigation.loadMoreItems' | translate}}</button>\n </div>\n </div>\n <div *ngIf=\"(rightLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"40\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n", styles: [".rail-container{height:100%}.rail-content{width:52px;min-width:52px;border-right:none!important}.drawer-container{height:100%}.menu-button{margin-left:6px;margin-right:6px;border-radius:8px}.drawer-content{width:300px;min-width:300px;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.height-60{height:60px}.drawer-control{position:absolute;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.index-menu{z-index:2}.first-content{box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.border-bottom{border-bottom:1px solid #E2E8F0}.logo{height:60px}.logo-closed{width:60px!important}.logoimg{margin-left:auto;margin-right:auto;height:35px;outline:none!important;cursor:pointer}.icon-large{height:40px;width:40px;font-size:40px;color:#000000b3}.icon-container{outline:none!important;height:40px}.icon-large:hover{cursor:pointer}.menu-font-color{color:#000000b3!important}.margin-top-65{margin-top:49px}.margin-auto{margin:auto}.padding-top-65{padding-top:49px}.padding-top-8{padding-top:8px}.margin-bottom-x2{margin-bottom:16px}.tree-node{outline:none!important;cursor:pointer;padding:10px 8px;margin:0 8px;color:#000000b3;position:relative;border-radius:8px;font-weight:500;font-size:14px;line-height:20px;letter-spacing:.1px}.tree-node mat-icon.tree-node-icon{height:24px;width:24px;font-size:24px;margin-right:4px}.tree-node .tree-node-label{height:24px;font-size:16px}.tree-node .margin-component{width:8px;margin-right:4px}.tree-node .menu-item-focus-overlay{opacity:0;position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:black;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}.tree-node:hover .menu-item-focus-overlay{opacity:.04}.margin-top-default{margin-top:8px}.margin-top-x2{margin-top:16px}.logoimg-tool{height:33px;outline:none!important;cursor:pointer;background:#fafafa}.toolbar{min-height:50px!important;height:50px;border-bottom:1px solid #E2E8F0}@media screen and (max-width: 959.99px){.rail-container{height:calc(100% - 50px)}.rail-content{width:52px;min-width:52px;top:0;border-right:none!important}.margin-top-65{margin-top:16px}.padding-top-65{padding-top:16px}}.profile-tooltip{font-size:20px}.sidemenu-icon{line-height:unset!important}.line{width:calc(100% - 16px);padding-left:8px;padding-right:8px;flex:1}.headline-text{font-weight:400;font-size:12px;line-height:16px;letter-spacing:.4px;padding-top:4px}.headline-padding{padding:0 8px}.large-menu-item{height:64px;line-height:64px}.large-menu-item-text{line-height:32px}.cursor-pointer{cursor:pointer}.box-container{box-sizing:content-box;display:block;overflow:hidden}.content-color{background-color:#f8fafc}.expansion-indicator{color:#00000080;margin-right:10px}.expansion-indicator:after{border-style:solid;border-width:0 2px 2px 0;content:\"\";display:inline-block;padding:3px;vertical-align:middle;transform:rotate(45deg)}.order-icon{transform:scale(.7)}.order-text{color:#000000b3}.order-icon-wrapper{margin-bottom:0}.deny-select{-webkit-user-select:none;user-select:none}\n"], components: [{ type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.LanguageSelectorComponent, selector: "nc-language-selector" }, { type: i9.MatSidenavContent, selector: "mat-sidenav-content" }], directives: [{ type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i7.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i12.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.ResizableDirective, selector: "[mwlResizable]", inputs: ["resizeEdges", "enableGhostResize", "resizeSnapGrid", "resizeCursors", "resizeCursorPrecision", "ghostElementPositioning", "allowNegativeResizes", "mouseMoveThrottleMS", "validateResize"], outputs: ["resizeStart", "resizing", "resizeEnd"] }], pipes: { "translate": i4.TranslatePipe, "async": i14.AsyncPipe }, animations: [
|
|
34
|
+
NavigationDoubleDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NavigationDoubleDrawerComponent, selector: "nc-navigation-double-drawer", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-control rail-color height-60\" [ngClass]=\"{'index-menu': !configLeftMenu.opened}\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n</div>\n<mat-toolbar fxHide.gt-sm class=\"toolbar\">\n <mat-toolbar-row fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\n <div fxFlex fxLayoutAlign=\"start center\">\n <button mat-icon-button (click)=\"toggleMenu()\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"center center\" fxFlex>\n <img #logo [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg-tool\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div fxFlex></div>\n </mat-toolbar-row>\n</mat-toolbar>\n<mat-spinner *ngIf=\"!logo\"></mat-spinner>\n<mat-sidenav-container class=\"rail-container deny-select\">\n <mat-sidenav mode=\"side\" [(opened)]=\"configLeftMenu.opened\" position=\"start\"\n [disableClose]=\"configLeftMenu.disableClose\"\n class=\"rail-content\">\n\n <div fxLayout=\"column\" class=\"rail-color\" fxFlex>\n\n <div *ngTemplateOutlet=\"portalLeftMenu || defaultLeftSide\"></div>\n\n <div fxFlex></div>\n\n <mat-menu #userRailMenu=\"matMenu\">\n <div mat-menu-item role=\"menuitem\" class=\"large-menu-item\" fxLayout=\"row\" fxFlexAlign=\"center center\"\n [routerLink]=\"profileRouterLink\" routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"margin-auto\" fxFlex>face</mat-icon>\n <div class=\"large-menu-item\" fxLayout=\"column\" fxFlexAlign=\"start center\" fxFlex>\n <span *ngIf=\"!user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}}</span>\n <span *ngIf=\"user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}} ({{user.getSelfOrImpersonated().fullName}})</span>\n <span class=\"large-menu-item-text\" style=\"font-size: 12px;\" fxFlex=\"50\">{{user.email}}</span>\n </div>\n </div>\n <button *ngIf=\"includeImpersonation && !user.isImpersonating()\" mat-menu-item (click)=\"impersonate()\">\n <mat-icon>supervisor_account</mat-icon>\n <span>{{'side-menu.impersonation.submit' | translate}}</span>\n </button>\n <button *ngIf=\"includeImpersonation && user.isImpersonating()\" mat-menu-item (click)=\"stopImpersonating()\">\n <mat-icon>clear</mat-icon>\n <span>{{'side-menu.impersonation.cease' | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n <span>{{ 'toolbar.menu.logout' | translate }}</span>\n </button>\n </mat-menu>\n <button *ngIf=\"includeUser\" mat-icon-button [matMenuTriggerFor]=\"userRailMenu\" class=\"menu-button mat-typography menu-font-color\"\n [matTooltip]=\"user.fullName\"\n [matTooltipPosition]=\"'right'\">\n <mat-icon>account_circle</mat-icon>\n </button>\n\n <div *ngIf=\"includeLanguage\" fxLayout=\"row\" class=\"icon-container\" fxLayoutAlign=\"center center\">\n <nc-language-selector fxLayout=\"row\" ></nc-language-selector>\n </div>\n\n <mat-menu #railMenu=\"matMenu\">\n <button *ngFor='let item of hiddenCustomItems; trackBy: itemsTrackBy' mat-menu-item\n [routerLink]='item.routing.path' routerLinkActive=\"active-tree-node\">\n <mat-icon>{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n </button>\n </mat-menu>\n <!-- <div fxLayout=\"row\" class=\"margin-bottom-x2 icon-container\" matTooltip=\"Otvori\u0165 menu\"-->\n <!-- matTooltipPosition=\"right\"-->\n <!-- fxLayoutAlign=\"center center\">-->\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"railMenu\">-->\n <!-- <mat-icon class=\"icon-large sidemenu-icon\">more_vert</mat-icon>-->\n <!-- </button>-->\n <!-- </div>-->\n <button mat-icon-button [matMenuTriggerFor]=\"railMenu\"\n class=\"menu-button mat-typography menu-font-color margin-bottom-x2\"\n [matTooltip]=\"'toolbar.menu.open' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"first-content index-menu\" >\n <mat-sidenav-container class=\"drawer-container\" (backdropClick)=\"toggleLeftMenu()\">\n <mat-sidenav [mode]=\"configRightMenu.mode\" [(opened)]=\"configRightMenu.opened\" position=\"start\"\n [disableClose]=\"configRightMenu.disableClose\"\n class=\"drawer-content\"\n mwlResizable\n [style.width.px]=\"configRightMenu.width\"\n [resizeCursorPrecision]=\"20\"\n [resizeEdges]=\"{right: true}\"\n (resizing)=\"onResizeEvent($event)\">\n\n <div *ngTemplateOutlet=\"portalRightMenu || defaultRightSide\"></div>\n\n </mat-sidenav>\n\n <mat-sidenav-content class=\"content-color\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n</mat-sidenav-container>\n\n<ng-template #defaultLeftSide>\n\n <div class=\"height-60 border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleRightMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n\n <button mat-icon-button (click)=\"onHomeClick()\" class=\"menu-button mat-typography menu-font-color margin-top-default\"\n [matTooltip]=\"'toolbar.menu.home' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>home</mat-icon>\n </button>\n\n <button *ngIf='!isOnZeroLevel() && (canGoBackLoading$ | async) === false' mat-icon-button (click)=\"onBackClick()\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"'toolbar.menu.back' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div *ngIf=\"(canGoBackLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div class=\"margin-top-x2\"></div>\n\n <button *ngFor='let folder of leftItems; trackBy: itemsTrackBy' mat-icon-button (click)=\"onItemClick(folder)\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"folder.navigation.title\" [matTooltipPosition]=\"'right'\"\n [ngClass]=\"isItemAndNodeEqual(folder, currentNode) ? 'rail-selected-color' : 'menu-font-color'\" [routerLink]='folder.routing.path'\n routerLinkActive=\"active\">\n <mat-icon>{{folder.navigation.icon}}</mat-icon>\n </button>\n\n <div *ngIf=\"(leftLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n\n<ng-template #defaultRightSide>\n <div class=\"logo border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <img *ngIf=\"image !== undefined\" [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div *ngIf=\"(rightLoading$ | async) === false\">\n <div fxLayout=\"column\" fxLayoutAlign=\"end end\" class=\"order-icon-wrapper\">\n <button mat-icon-button fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"mat-button mat-typography menu-font-color order-icon\" (click)=\"switchOrder()\"\n [matTooltip]=\"isAscending() ? ('dynamicNavigation.ascending' | translate) : ('dynamicNavigation.descending' | translate)\">\n <mat-icon>{{isAscending() ? \"expand_more\" : \"expand_less\"}}</mat-icon>\n </button>\n </div>\n <div *ngFor='let item of rightItems; trackBy: itemsTrackBy' (click)=\"onItemClick(item)\"\n class=\"tree-node mat-typography mat-body-2\" fxLayoutAlign=\"start center\" [routerLink]='item.routing.path'\n routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"tree-node-icon\">{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n <span class=\"menu-item-focus-overlay\"></span>\n </div>\n <div *ngIf=\"moreItems.length > 0\">\n <button mat-button color=\"primary\" (click)=\"loadMoreItems()\">{{'dynamicNavigation.loadMoreItems' | translate}}</button>\n </div>\n </div>\n <div *ngIf=\"(rightLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"40\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n", styles: [".rail-container{height:100%}.rail-content{width:52px;min-width:52px;border-right:none!important}.drawer-container{height:100%}.menu-button{margin-left:6px;margin-right:6px;border-radius:8px}.drawer-content{width:300px;min-width:300px;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.height-60{height:60px}.drawer-control{position:absolute;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.index-menu{z-index:2}.first-content{box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.border-bottom{border-bottom:1px solid #E2E8F0}.logo{height:60px}.logo-closed{width:60px!important}.logoimg{margin-left:auto;margin-right:auto;height:35px;outline:none!important;cursor:pointer}.icon-large{height:40px;width:40px;font-size:40px;color:#000000b3}.icon-container{outline:none!important;height:40px}.icon-large:hover{cursor:pointer}.menu-font-color{color:#000000b3!important}.margin-top-65{margin-top:49px}.margin-auto{margin:auto}.padding-top-65{padding-top:49px}.padding-top-8{padding-top:8px}.margin-bottom-x2{margin-bottom:16px}.tree-node{outline:none!important;cursor:pointer;padding:10px 8px;margin:0 8px;color:#000000b3;position:relative;border-radius:8px;font-weight:500;font-size:14px;line-height:20px;letter-spacing:.1px}.tree-node mat-icon.tree-node-icon{height:24px;width:24px;font-size:24px;margin-right:4px}.tree-node .tree-node-label{height:24px;font-size:16px}.tree-node .margin-component{width:8px;margin-right:4px}.tree-node .menu-item-focus-overlay{opacity:0;position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:black;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}.tree-node:hover .menu-item-focus-overlay{opacity:.04}.margin-top-default{margin-top:8px}.margin-top-x2{margin-top:16px}.logoimg-tool{height:33px;outline:none!important;cursor:pointer;background:#fafafa}.toolbar{min-height:50px!important;height:50px;border-bottom:1px solid #E2E8F0}@media screen and (max-width: 959.99px){.rail-container{height:calc(100% - 50px)}.rail-content{width:52px;min-width:52px;top:0;border-right:none!important}.margin-top-65{margin-top:16px}.padding-top-65{padding-top:16px}}.profile-tooltip{font-size:20px}.sidemenu-icon{line-height:unset!important}.line{width:calc(100% - 16px);padding-left:8px;padding-right:8px;flex:1}.headline-text{font-weight:400;font-size:12px;line-height:16px;letter-spacing:.4px;padding-top:4px}.headline-padding{padding:0 8px}.large-menu-item{height:64px;line-height:64px}.large-menu-item-text{line-height:32px}.cursor-pointer{cursor:pointer}.box-container{box-sizing:content-box;display:block;overflow:hidden}.content-color{background-color:#f8fafc}.expansion-indicator{color:#00000080;margin-right:10px}.expansion-indicator:after{border-style:solid;border-width:0 2px 2px 0;content:\"\";display:inline-block;padding:3px;vertical-align:middle;transform:rotate(45deg)}.order-icon{transform:scale(.7)}.order-text{color:#000000b3}.order-icon-wrapper{margin-bottom:0}.deny-select{-webkit-user-select:none;user-select:none}\n"], components: [{ type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.LanguageSelectorComponent, selector: "nc-language-selector" }, { type: i9.MatSidenavContent, selector: "mat-sidenav-content" }], directives: [{ type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i7.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i12.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.ResizableDirective, selector: "[mwlResizable]", inputs: ["resizeEdges", "enableGhostResize", "resizeSnapGrid", "resizeCursors", "resizeCursorPrecision", "ghostElementPositioning", "allowNegativeResizes", "mouseMoveThrottleMS", "validateResize"], outputs: ["resizeStart", "resizing", "resizeEnd"] }], pipes: { "translate": i4.TranslatePipe, "async": i14.AsyncPipe }, animations: [
|
|
35
35
|
trigger('sectionExpansion', [
|
|
36
36
|
state('expanded, void', style({
|
|
37
37
|
height: '*',
|
|
@@ -84,6 +84,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
84
84
|
animate('225ms cubic-bezier(0.4,0.0,0.2,1)')
|
|
85
85
|
])
|
|
86
86
|
])
|
|
87
|
-
], template: "<div class=\"drawer-control rail-color height-60\" [ngClass]=\"{'index-menu': !configLeftMenu.opened}\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n</div>\n<mat-toolbar fxHide.gt-sm class=\"toolbar\">\n <mat-toolbar-row fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\n <div fxFlex fxLayoutAlign=\"start center\">\n <button mat-icon-button (click)=\"toggleMenu()\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"center center\" fxFlex>\n <img #logo [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg-tool\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div fxFlex></div>\n </mat-toolbar-row>\n</mat-toolbar>\n<mat-spinner *ngIf=\"!logo\"></mat-spinner>\n<mat-sidenav-container class=\"rail-container deny-select\">\n <mat-sidenav mode=\"side\" [(opened)]=\"configLeftMenu.opened\" position=\"start\"\n [disableClose]=\"configLeftMenu.disableClose\"\n class=\"rail-content\">\n\n <div fxLayout=\"column\" class=\"rail-color\" fxFlex>\n\n <div *ngTemplateOutlet=\"portalLeftMenu || defaultLeftSide\"></div>\n\n <div fxFlex></div>\n\n <mat-menu #userRailMenu=\"matMenu\">\n <div mat-menu-item role=\"menuitem\" class=\"large-menu-item\" fxLayout=\"row\" fxFlexAlign=\"center center\"\n [routerLink]=\"profileRouterLink\" routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"margin-auto\" fxFlex>face</mat-icon>\n <div class=\"large-menu-item\" fxLayout=\"column\" fxFlexAlign=\"start center\" fxFlex>\n <span *ngIf=\"!user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}}</span>\n <span *ngIf=\"user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}} ({{user.getSelfOrImpersonated().fullName}})</span>\n <span class=\"large-menu-item-text\" style=\"font-size: 12px;\" fxFlex=\"50\">{{user.email}}</span>\n </div>\n </div>\n <button *ngIf=\"includeImpersonation && !user.isImpersonating()\" mat-menu-item (click)=\"impersonate()\">\n <mat-icon>supervisor_account</mat-icon>\n <span>{{'side-menu.impersonation.submit' | translate}}</span>\n </button>\n <button *ngIf=\"includeImpersonation && user.isImpersonating()\" mat-menu-item (click)=\"stopImpersonating()\">\n <mat-icon>clear</mat-icon>\n <span>{{'side-menu.impersonation.cease' | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n <span>{{ 'toolbar.menu.logout' | translate }}</span>\n </button>\n </mat-menu>\n <button *ngIf=\"includeUser\" mat-icon-button [matMenuTriggerFor]=\"userRailMenu\" class=\"menu-button mat-typography menu-font-color\"\n [matTooltip]=\"user.fullName\"\n [matTooltipPosition]=\"'right'\">\n <mat-icon>account_circle</mat-icon>\n </button>\n\n <div *ngIf=\"includeLanguage\" fxLayout=\"row\" class=\"icon-container\" fxLayoutAlign=\"center center\">\n <nc-language-selector fxLayout=\"row\" [language]=\"getLang()\"></nc-language-selector>\n </div>\n\n <mat-menu #railMenu=\"matMenu\">\n <button *ngFor='let item of hiddenCustomItems; trackBy: itemsTrackBy' mat-menu-item\n [routerLink]='item.routing.path' routerLinkActive=\"active-tree-node\">\n <mat-icon>{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n </button>\n </mat-menu>\n <!-- <div fxLayout=\"row\" class=\"margin-bottom-x2 icon-container\" matTooltip=\"Otvori\u0165 menu\"-->\n <!-- matTooltipPosition=\"right\"-->\n <!-- fxLayoutAlign=\"center center\">-->\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"railMenu\">-->\n <!-- <mat-icon class=\"icon-large sidemenu-icon\">more_vert</mat-icon>-->\n <!-- </button>-->\n <!-- </div>-->\n <button mat-icon-button [matMenuTriggerFor]=\"railMenu\"\n class=\"menu-button mat-typography menu-font-color margin-bottom-x2\"\n [matTooltip]=\"'toolbar.menu.open' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"first-content index-menu\" >\n <mat-sidenav-container class=\"drawer-container\" (backdropClick)=\"toggleLeftMenu()\">\n <mat-sidenav [mode]=\"configRightMenu.mode\" [(opened)]=\"configRightMenu.opened\" position=\"start\"\n [disableClose]=\"configRightMenu.disableClose\"\n class=\"drawer-content\"\n mwlResizable\n [style.width.px]=\"configRightMenu.width\"\n [resizeCursorPrecision]=\"20\"\n [resizeEdges]=\"{right: true}\"\n (resizing)=\"onResizeEvent($event)\">\n\n <div *ngTemplateOutlet=\"portalRightMenu || defaultRightSide\"></div>\n\n </mat-sidenav>\n\n <mat-sidenav-content class=\"content-color\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n</mat-sidenav-container>\n\n<ng-template #defaultLeftSide>\n\n <div class=\"height-60 border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleRightMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n\n <button mat-icon-button (click)=\"onHomeClick()\" class=\"menu-button mat-typography menu-font-color margin-top-default\"\n [matTooltip]=\"'toolbar.menu.home' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>home</mat-icon>\n </button>\n\n <button *ngIf='!isOnZeroLevel() && (canGoBackLoading$ | async) === false' mat-icon-button (click)=\"onBackClick()\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"'toolbar.menu.back' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div *ngIf=\"(canGoBackLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div class=\"margin-top-x2\"></div>\n\n <button *ngFor='let folder of leftItems; trackBy: itemsTrackBy' mat-icon-button (click)=\"onItemClick(folder)\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"folder.navigation.title\" [matTooltipPosition]=\"'right'\"\n [ngClass]=\"isItemAndNodeEqual(folder, currentNode) ? 'rail-selected-color' : 'menu-font-color'\" [routerLink]='folder.routing.path'\n routerLinkActive=\"active\">\n <mat-icon>{{folder.navigation.icon}}</mat-icon>\n </button>\n\n <div *ngIf=\"(leftLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n\n<ng-template #defaultRightSide>\n <div class=\"logo border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <img *ngIf=\"image !== undefined\" [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div *ngIf=\"(rightLoading$ | async) === false\">\n <div fxLayout=\"column\" fxLayoutAlign=\"end end\" class=\"order-icon-wrapper\">\n <button mat-icon-button fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"mat-button mat-typography menu-font-color order-icon\" (click)=\"switchOrder()\"\n [matTooltip]=\"isAscending() ? ('dynamicNavigation.ascending' | translate) : ('dynamicNavigation.descending' | translate)\">\n <mat-icon>{{isAscending() ? \"expand_more\" : \"expand_less\"}}</mat-icon>\n </button>\n </div>\n <div *ngFor='let item of rightItems; trackBy: itemsTrackBy' (click)=\"onItemClick(item)\"\n class=\"tree-node mat-typography mat-body-2\" fxLayoutAlign=\"start center\" [routerLink]='item.routing.path'\n routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"tree-node-icon\">{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n <span class=\"menu-item-focus-overlay\"></span>\n </div>\n <div *ngIf=\"moreItems.length > 0\">\n <button mat-button color=\"primary\" (click)=\"loadMoreItems()\">{{'dynamicNavigation.loadMoreItems' | translate}}</button>\n </div>\n </div>\n <div *ngIf=\"(rightLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"40\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n", styles: [".rail-container{height:100%}.rail-content{width:52px;min-width:52px;border-right:none!important}.drawer-container{height:100%}.menu-button{margin-left:6px;margin-right:6px;border-radius:8px}.drawer-content{width:300px;min-width:300px;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.height-60{height:60px}.drawer-control{position:absolute;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.index-menu{z-index:2}.first-content{box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.border-bottom{border-bottom:1px solid #E2E8F0}.logo{height:60px}.logo-closed{width:60px!important}.logoimg{margin-left:auto;margin-right:auto;height:35px;outline:none!important;cursor:pointer}.icon-large{height:40px;width:40px;font-size:40px;color:#000000b3}.icon-container{outline:none!important;height:40px}.icon-large:hover{cursor:pointer}.menu-font-color{color:#000000b3!important}.margin-top-65{margin-top:49px}.margin-auto{margin:auto}.padding-top-65{padding-top:49px}.padding-top-8{padding-top:8px}.margin-bottom-x2{margin-bottom:16px}.tree-node{outline:none!important;cursor:pointer;padding:10px 8px;margin:0 8px;color:#000000b3;position:relative;border-radius:8px;font-weight:500;font-size:14px;line-height:20px;letter-spacing:.1px}.tree-node mat-icon.tree-node-icon{height:24px;width:24px;font-size:24px;margin-right:4px}.tree-node .tree-node-label{height:24px;font-size:16px}.tree-node .margin-component{width:8px;margin-right:4px}.tree-node .menu-item-focus-overlay{opacity:0;position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:black;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}.tree-node:hover .menu-item-focus-overlay{opacity:.04}.margin-top-default{margin-top:8px}.margin-top-x2{margin-top:16px}.logoimg-tool{height:33px;outline:none!important;cursor:pointer;background:#fafafa}.toolbar{min-height:50px!important;height:50px;border-bottom:1px solid #E2E8F0}@media screen and (max-width: 959.99px){.rail-container{height:calc(100% - 50px)}.rail-content{width:52px;min-width:52px;top:0;border-right:none!important}.margin-top-65{margin-top:16px}.padding-top-65{padding-top:16px}}.profile-tooltip{font-size:20px}.sidemenu-icon{line-height:unset!important}.line{width:calc(100% - 16px);padding-left:8px;padding-right:8px;flex:1}.headline-text{font-weight:400;font-size:12px;line-height:16px;letter-spacing:.4px;padding-top:4px}.headline-padding{padding:0 8px}.large-menu-item{height:64px;line-height:64px}.large-menu-item-text{line-height:32px}.cursor-pointer{cursor:pointer}.box-container{box-sizing:content-box;display:block;overflow:hidden}.content-color{background-color:#f8fafc}.expansion-indicator{color:#00000080;margin-right:10px}.expansion-indicator:after{border-style:solid;border-width:0 2px 2px 0;content:\"\";display:inline-block;padding:3px;vertical-align:middle;transform:rotate(45deg)}.order-icon{transform:scale(.7)}.order-text{color:#000000b3}.order-icon-wrapper{margin-bottom:0}.deny-select{-webkit-user-select:none;user-select:none}\n"] }]
|
|
87
|
+
], template: "<div class=\"drawer-control rail-color height-60\" [ngClass]=\"{'index-menu': !configLeftMenu.opened}\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n</div>\n<mat-toolbar fxHide.gt-sm class=\"toolbar\">\n <mat-toolbar-row fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\n <div fxFlex fxLayoutAlign=\"start center\">\n <button mat-icon-button (click)=\"toggleMenu()\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n <div fxLayoutAlign=\"center center\" fxFlex>\n <img #logo [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg-tool\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div fxFlex></div>\n </mat-toolbar-row>\n</mat-toolbar>\n<mat-spinner *ngIf=\"!logo\"></mat-spinner>\n<mat-sidenav-container class=\"rail-container deny-select\">\n <mat-sidenav mode=\"side\" [(opened)]=\"configLeftMenu.opened\" position=\"start\"\n [disableClose]=\"configLeftMenu.disableClose\"\n class=\"rail-content\">\n\n <div fxLayout=\"column\" class=\"rail-color\" fxFlex>\n\n <div *ngTemplateOutlet=\"portalLeftMenu || defaultLeftSide\"></div>\n\n <div fxFlex></div>\n\n <mat-menu #userRailMenu=\"matMenu\">\n <div mat-menu-item role=\"menuitem\" class=\"large-menu-item\" fxLayout=\"row\" fxFlexAlign=\"center center\"\n [routerLink]=\"profileRouterLink\" routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"margin-auto\" fxFlex>face</mat-icon>\n <div class=\"large-menu-item\" fxLayout=\"column\" fxFlexAlign=\"start center\" fxFlex>\n <span *ngIf=\"!user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}}</span>\n <span *ngIf=\"user.isImpersonating()\" class=\"large-menu-item-text\" fxFlex=\"50\">{{user.fullName}} ({{user.getSelfOrImpersonated().fullName}})</span>\n <span class=\"large-menu-item-text\" style=\"font-size: 12px;\" fxFlex=\"50\">{{user.email}}</span>\n </div>\n </div>\n <button *ngIf=\"includeImpersonation && !user.isImpersonating()\" mat-menu-item (click)=\"impersonate()\">\n <mat-icon>supervisor_account</mat-icon>\n <span>{{'side-menu.impersonation.submit' | translate}}</span>\n </button>\n <button *ngIf=\"includeImpersonation && user.isImpersonating()\" mat-menu-item (click)=\"stopImpersonating()\">\n <mat-icon>clear</mat-icon>\n <span>{{'side-menu.impersonation.cease' | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n <span>{{ 'toolbar.menu.logout' | translate }}</span>\n </button>\n </mat-menu>\n <button *ngIf=\"includeUser\" mat-icon-button [matMenuTriggerFor]=\"userRailMenu\" class=\"menu-button mat-typography menu-font-color\"\n [matTooltip]=\"user.fullName\"\n [matTooltipPosition]=\"'right'\">\n <mat-icon>account_circle</mat-icon>\n </button>\n\n <div *ngIf=\"includeLanguage\" fxLayout=\"row\" class=\"icon-container\" fxLayoutAlign=\"center center\">\n <nc-language-selector fxLayout=\"row\" ></nc-language-selector>\n </div>\n\n <mat-menu #railMenu=\"matMenu\">\n <button *ngFor='let item of hiddenCustomItems; trackBy: itemsTrackBy' mat-menu-item\n [routerLink]='item.routing.path' routerLinkActive=\"active-tree-node\">\n <mat-icon>{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n </button>\n </mat-menu>\n <!-- <div fxLayout=\"row\" class=\"margin-bottom-x2 icon-container\" matTooltip=\"Otvori\u0165 menu\"-->\n <!-- matTooltipPosition=\"right\"-->\n <!-- fxLayoutAlign=\"center center\">-->\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"railMenu\">-->\n <!-- <mat-icon class=\"icon-large sidemenu-icon\">more_vert</mat-icon>-->\n <!-- </button>-->\n <!-- </div>-->\n <button mat-icon-button [matMenuTriggerFor]=\"railMenu\"\n class=\"menu-button mat-typography menu-font-color margin-bottom-x2\"\n [matTooltip]=\"'toolbar.menu.open' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"first-content index-menu\" >\n <mat-sidenav-container class=\"drawer-container\" (backdropClick)=\"toggleLeftMenu()\">\n <mat-sidenav [mode]=\"configRightMenu.mode\" [(opened)]=\"configRightMenu.opened\" position=\"start\"\n [disableClose]=\"configRightMenu.disableClose\"\n class=\"drawer-content\"\n mwlResizable\n [style.width.px]=\"configRightMenu.width\"\n [resizeCursorPrecision]=\"20\"\n [resizeEdges]=\"{right: true}\"\n (resizing)=\"onResizeEvent($event)\">\n\n <div *ngTemplateOutlet=\"portalRightMenu || defaultRightSide\"></div>\n\n </mat-sidenav>\n\n <mat-sidenav-content class=\"content-color\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n</mat-sidenav-container>\n\n<ng-template #defaultLeftSide>\n\n <div class=\"height-60 border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <button mat-icon-button (click)=\"toggleRightMenu()\" class=\"menu-button mat-typography menu-font-color\">\n <mat-icon>menu</mat-icon>\n </button>\n </div>\n\n <button mat-icon-button (click)=\"onHomeClick()\" class=\"menu-button mat-typography menu-font-color margin-top-default\"\n [matTooltip]=\"'toolbar.menu.home' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>home</mat-icon>\n </button>\n\n <button *ngIf='!isOnZeroLevel() && (canGoBackLoading$ | async) === false' mat-icon-button (click)=\"onBackClick()\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"'toolbar.menu.back' | translate\"\n matTooltipPosition=\"right\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div *ngIf=\"(canGoBackLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n\n <div class=\"margin-top-x2\"></div>\n\n <button *ngFor='let folder of leftItems; trackBy: itemsTrackBy' mat-icon-button (click)=\"onItemClick(folder)\"\n class=\"menu-button mat-typography menu-font-color\" [matTooltip]=\"folder.navigation.title\" [matTooltipPosition]=\"'right'\"\n [ngClass]=\"isItemAndNodeEqual(folder, currentNode) ? 'rail-selected-color' : 'menu-font-color'\" [routerLink]='folder.routing.path'\n routerLinkActive=\"active\">\n <mat-icon>{{folder.navigation.icon}}</mat-icon>\n </button>\n\n <div *ngIf=\"(leftLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"30\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n\n<ng-template #defaultRightSide>\n <div class=\"logo border-bottom\" fxLayoutAlign=\"center center\" fxHide.lt-md>\n <img *ngIf=\"image !== undefined\" [alt]=\"imageAlt\" [src]=\"image\" class=\"logoimg\"\n [routerLink]=\"imageRouterLink !== undefined ? imageRouterLink : []\">\n </div>\n <div *ngIf=\"(rightLoading$ | async) === false\">\n <div fxLayout=\"column\" fxLayoutAlign=\"end end\" class=\"order-icon-wrapper\">\n <button mat-icon-button fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"mat-button mat-typography menu-font-color order-icon\" (click)=\"switchOrder()\"\n [matTooltip]=\"isAscending() ? ('dynamicNavigation.ascending' | translate) : ('dynamicNavigation.descending' | translate)\">\n <mat-icon>{{isAscending() ? \"expand_more\" : \"expand_less\"}}</mat-icon>\n </button>\n </div>\n <div *ngFor='let item of rightItems; trackBy: itemsTrackBy' (click)=\"onItemClick(item)\"\n class=\"tree-node mat-typography mat-body-2\" fxLayoutAlign=\"start center\" [routerLink]='item.routing.path'\n routerLinkActive=\"active-tree-node\">\n <mat-icon class=\"tree-node-icon\">{{item.navigation.icon}}</mat-icon>\n <span>{{item.navigation.title}}</span>\n <span class=\"menu-item-focus-overlay\"></span>\n </div>\n <div *ngIf=\"moreItems.length > 0\">\n <button mat-button color=\"primary\" (click)=\"loadMoreItems()\">{{'dynamicNavigation.loadMoreItems' | translate}}</button>\n </div>\n </div>\n <div *ngIf=\"(rightLoading$ | async)\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"40\" mode=\"indeterminate\"></mat-spinner>\n </div>\n</ng-template>\n", styles: [".rail-container{height:100%}.rail-content{width:52px;min-width:52px;border-right:none!important}.drawer-container{height:100%}.menu-button{margin-left:6px;margin-right:6px;border-radius:8px}.drawer-content{width:300px;min-width:300px;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.height-60{height:60px}.drawer-control{position:absolute;box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.index-menu{z-index:2}.first-content{box-shadow:0 2px 4px #0d2d3c29,0 4px 8px #546e7a29}.border-bottom{border-bottom:1px solid #E2E8F0}.logo{height:60px}.logo-closed{width:60px!important}.logoimg{margin-left:auto;margin-right:auto;height:35px;outline:none!important;cursor:pointer}.icon-large{height:40px;width:40px;font-size:40px;color:#000000b3}.icon-container{outline:none!important;height:40px}.icon-large:hover{cursor:pointer}.menu-font-color{color:#000000b3!important}.margin-top-65{margin-top:49px}.margin-auto{margin:auto}.padding-top-65{padding-top:49px}.padding-top-8{padding-top:8px}.margin-bottom-x2{margin-bottom:16px}.tree-node{outline:none!important;cursor:pointer;padding:10px 8px;margin:0 8px;color:#000000b3;position:relative;border-radius:8px;font-weight:500;font-size:14px;line-height:20px;letter-spacing:.1px}.tree-node mat-icon.tree-node-icon{height:24px;width:24px;font-size:24px;margin-right:4px}.tree-node .tree-node-label{height:24px;font-size:16px}.tree-node .margin-component{width:8px;margin-right:4px}.tree-node .menu-item-focus-overlay{opacity:0;position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:black;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}.tree-node:hover .menu-item-focus-overlay{opacity:.04}.margin-top-default{margin-top:8px}.margin-top-x2{margin-top:16px}.logoimg-tool{height:33px;outline:none!important;cursor:pointer;background:#fafafa}.toolbar{min-height:50px!important;height:50px;border-bottom:1px solid #E2E8F0}@media screen and (max-width: 959.99px){.rail-container{height:calc(100% - 50px)}.rail-content{width:52px;min-width:52px;top:0;border-right:none!important}.margin-top-65{margin-top:16px}.padding-top-65{padding-top:16px}}.profile-tooltip{font-size:20px}.sidemenu-icon{line-height:unset!important}.line{width:calc(100% - 16px);padding-left:8px;padding-right:8px;flex:1}.headline-text{font-weight:400;font-size:12px;line-height:16px;letter-spacing:.4px;padding-top:4px}.headline-padding{padding:0 8px}.large-menu-item{height:64px;line-height:64px}.large-menu-item-text{line-height:32px}.cursor-pointer{cursor:pointer}.box-container{box-sizing:content-box;display:block;overflow:hidden}.content-color{background-color:#f8fafc}.expansion-indicator{color:#00000080;margin-right:10px}.expansion-indicator:after{border-style:solid;border-width:0 2px 2px 0;content:\"\";display:inline-block;padding:3px;vertical-align:middle;transform:rotate(45deg)}.order-icon{transform:scale(.7)}.order-text{color:#000000b3}.order-icon-wrapper{margin-bottom:0}.deny-select{-webkit-user-select:none;user-select:none}\n"] }]
|
|
88
88
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.BreakpointObserver }, { type: i3.LanguageService }, { type: i4.TranslateService }, { type: i3.UserService }, { type: i3.AccessService }, { type: i3.LoggerService }, { type: i3.ConfigurationService }, { type: i3.UriService }, { type: i3.CaseResourceService }, { type: i3.ImpersonationUserSelectService }, { type: i3.ImpersonationService }, { type: i3.DynamicNavigationRouteProviderService }]; } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyL25hdmlnYXRpb24tZG91YmxlLWRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZG91YmxlLWRyYXdlci9uYXZpZ2F0aW9uLWRvdWJsZS1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4QyxPQUFPLEVBTUgsdUNBQXVDLEVBTTFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0MvRSxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsdUNBQXVDO0lBT3hGLFlBQVksT0FBZSxFQUNmLGVBQStCLEVBQy9CLFdBQStCLEVBQy9CLGdCQUFpQyxFQUNqQyxpQkFBbUMsRUFDbkMsWUFBeUIsRUFDekIsY0FBNkIsRUFDN0IsSUFBbUIsRUFDbkIsT0FBNkIsRUFDN0IsV0FBdUIsRUFDdkIsb0JBQXlDLEVBQ3pDLHdCQUF3RCxFQUN4RCxjQUFvQyxFQUNwQyw0QkFBbUU7UUFDM0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFHLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFBO1FBcEIxSCxrQkFBYSxHQUFHO1lBQ25CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBa0JGLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs2SEEzQlEsK0JBQStCO2lIQUEvQiwrQkFBK0IsMEZDbEQ1QyxpelRBOEtBLDZ6U0R2SmdCO1FBQ1IsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3hCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxTQUFTO2FBQ3hCLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dCQUNyQixNQUFNLEVBQUUsS0FBSztnQkFDYixVQUFVLEVBQUUsUUFBUTthQUN2QixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzthQUMvQyxDQUFDO1NBQ0wsQ0FBQztRQUNGLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO2dCQUMxQixTQUFTLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsY0FBYzthQUM1QixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzthQUMvQyxDQUFDO1NBQ0wsQ0FBQztLQUNMOzRGQUVRLCtCQUErQjtrQkEvQjNDLFNBQVM7K0JBQ0ksNkJBQTZCLGNBRzNCO3dCQUNSLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTs0QkFDeEIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztnQ0FDMUIsTUFBTSxFQUFFLEdBQUc7Z0NBQ1gsVUFBVSxFQUFFLFNBQVM7NkJBQ3hCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztnQ0FDckIsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsVUFBVSxFQUFFLFFBQVE7NkJBQ3ZCLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0NBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzs2QkFDL0MsQ0FBQzt5QkFDTCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTs0QkFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztnQ0FDMUIsU0FBUyxFQUFFLGdCQUFnQjs2QkFDOUIsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dDQUNyQixTQUFTLEVBQUUsY0FBYzs2QkFDNUIsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQywwQ0FBMEMsRUFBRTtnQ0FDbkQsT0FBTyxDQUFDLG1DQUFtQyxDQUFDOzZCQUMvQyxDQUFDO3lCQUNMLENBQUM7cUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIExhbmd1YWdlU2VydmljZSxcbiAgICBVcmlTZXJ2aWNlLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgVXNlclNlcnZpY2UsXG4gICAgQWJzdHJhY3ROYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50LFxuICAgIER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UsXG4gICAgQWNjZXNzU2VydmljZSxcbiAgICBJbXBlcnNvbmF0aW9uVXNlclNlbGVjdFNlcnZpY2UsXG4gICAgSW1wZXJzb25hdGlvblNlcnZpY2UsXG4gICAgQ2FzZVJlc291cmNlU2VydmljZVxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLWRvdWJsZS1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3NlY3Rpb25FeHBhbnNpb24nLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQsIHZvaWQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQsIHZvaWQgPT4gZXhwYW5kZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKCdpbmRpY2F0b3JSb3RhdGUnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQsIHZvaWQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKSdcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQsIHZvaWQgPT4gZXhwYW5kZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50IHtcblxuICAgIHB1YmxpYyBpc1NlY3Rpb25PcGVuID0ge1xuICAgICAgICBmb2xkZXJzOiB0cnVlLFxuICAgICAgICB2aWV3czogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICBfYnJlYWtwb2ludDogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICAgICAgICAgIF9sYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICAgICAgICAgICAgICBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBfdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9hY2Nlc3NTZXJ2aWNlOiBBY2Nlc3NTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2NvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX3VyaVNlcnZpY2U6IFVyaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2Nhc2VSZXNvdXJjZVNlcnZpY2U6IENhc2VSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2ltcGVyc29uYXRpb25Vc2VyU2VsZWN0OiBJbXBlcnNvbmF0aW9uVXNlclNlbGVjdFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2ltcGVyc29uYXRpb246IEltcGVyc29uYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9keW5hbWljUm91dGVQcm92aWRlclNlcnZpY2U6IER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX3JvdXRlciwgX2FjdGl2YXRlZFJvdXRlLCBfYnJlYWtwb2ludCwgX2xhbmd1YWdlU2VydmljZSwgX3RyYW5zbGF0ZVNlcnZpY2UsIF91c2VyU2VydmljZSwgX2FjY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICBfbG9nLCBfY29uZmlnLCBfdXJpU2VydmljZSwgX2Nhc2VSZXNvdXJjZVNlcnZpY2UsIF9pbXBlcnNvbmF0aW9uVXNlclNlbGVjdCwgX2ltcGVyc29uYXRpb24sIF9keW5hbWljUm91dGVQcm92aWRlclNlcnZpY2UpXG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZVNlY3Rpb24oc2VjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTZWN0aW9uT3BlbltzZWN0aW9uXSA9ICF0aGlzLmlzU2VjdGlvbk9wZW5bc2VjdGlvbl07XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJhd2VyLWNvbnRyb2wgcmFpbC1jb2xvciBoZWlnaHQtNjBcIiBbbmdDbGFzc109XCJ7J2luZGV4LW1lbnUnOiAhY29uZmlnTGVmdE1lbnUub3BlbmVkfVwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhIaWRlLmx0LW1kPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVNZW51KClcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiPlxuICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxtYXQtdG9vbGJhciBmeEhpZGUuZ3Qtc20gY2xhc3M9XCJ0b29sYmFyXCI+XG4gICAgPG1hdC10b29sYmFyLXJvdyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0cmV0Y2hcIj5cbiAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmxleD5cbiAgICAgICAgICAgIDxpbWcgI2xvZ28gW2FsdF09XCJpbWFnZUFsdFwiIFtzcmNdPVwiaW1hZ2VcIiBjbGFzcz1cImxvZ29pbWctdG9vbFwiXG4gICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImltYWdlUm91dGVyTGluayAhPT0gdW5kZWZpbmVkID8gaW1hZ2VSb3V0ZXJMaW5rIDogW11cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuICAgIDwvbWF0LXRvb2xiYXItcm93PlxuPC9tYXQtdG9vbGJhcj5cbjxtYXQtc3Bpbm5lciAqbmdJZj1cIiFsb2dvXCI+PC9tYXQtc3Bpbm5lcj5cbjxtYXQtc2lkZW5hdi1jb250YWluZXIgY2xhc3M9XCJyYWlsLWNvbnRhaW5lciBkZW55LXNlbGVjdFwiPlxuICAgIDxtYXQtc2lkZW5hdiBtb2RlPVwic2lkZVwiIFsob3BlbmVkKV09XCJjb25maWdMZWZ0TWVudS5vcGVuZWRcIiBwb3NpdGlvbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVDbG9zZV09XCJjb25maWdMZWZ0TWVudS5kaXNhYmxlQ2xvc2VcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cInJhaWwtY29udGVudFwiPlxuXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cInJhaWwtY29sb3JcIiBmeEZsZXg+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3J0YWxMZWZ0TWVudSB8fCBkZWZhdWx0TGVmdFNpZGVcIj48L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjdXNlclJhaWxNZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSByb2xlPVwibWVudWl0ZW1cIiBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbVwiIGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInByb2ZpbGVSb3V0ZXJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS10cmVlLW5vZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWFyZ2luLWF1dG9cIiBmeEZsZXg+ZmFjZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS1tZW51LWl0ZW1cIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhGbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdXNlci5pc0ltcGVyc29uYXRpbmcoKVwiICBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbS10ZXh0XCIgZnhGbGV4PVwiNTBcIj57e3VzZXIuZnVsbE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlci5pc0ltcGVyc29uYXRpbmcoKVwiIGNsYXNzPVwibGFyZ2UtbWVudS1pdGVtLXRleHRcIiBmeEZsZXg9XCI1MFwiPnt7dXNlci5mdWxsTmFtZX19ICh7e3VzZXIuZ2V0U2VsZk9ySW1wZXJzb25hdGVkKCkuZnVsbE5hbWV9fSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbS10ZXh0XCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgZnhGbGV4PVwiNTBcIj57e3VzZXIuZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluY2x1ZGVJbXBlcnNvbmF0aW9uICYmICF1c2VyLmlzSW1wZXJzb25hdGluZygpXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiaW1wZXJzb25hdGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+c3VwZXJ2aXNvcl9hY2NvdW50PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3snc2lkZS1tZW51LmltcGVyc29uYXRpb24uc3VibWl0JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbmNsdWRlSW1wZXJzb25hdGlvbiAmJiB1c2VyLmlzSW1wZXJzb25hdGluZygpXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic3RvcEltcGVyc29uYXRpbmcoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydzaWRlLW1lbnUuaW1wZXJzb25hdGlvbi5jZWFzZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJsb2dvdXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZXhpdF90b19hcHA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAndG9vbGJhci5tZW51LmxvZ291dCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluY2x1ZGVVc2VyXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJ1c2VyUmFpbE1lbnVcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInVzZXIuZnVsbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmNsdWRlTGFuZ3VhZ2VcIiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxuYy1sYW5ndWFnZS1zZWxlY3RvciBmeExheW91dD1cInJvd1wiIFtsYW5ndWFnZV09XCJnZXRMYW5nKClcIj48L25jLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjcmFpbE1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9J2xldCBpdGVtIG9mIGhpZGRlbkN1c3RvbUl0ZW1zOyB0cmFja0J5OiBpdGVtc1RyYWNrQnknIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT0naXRlbS5yb3V0aW5nLnBhdGgnIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtdHJlZS1ub2RlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e2l0ZW0ubmF2aWdhdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ubmF2aWdhdGlvbi50aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtYXJnaW4tYm90dG9tLXgyIGljb24tY29udGFpbmVyXCIgbWF0VG9vbHRpcD1cIk90dm9yacWlIG1lbnVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInJhaWxNZW51XCI+LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLWxhcmdlIHNpZGVtZW51LWljb25cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICA8L2J1dHRvbj4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJyYWlsTWVudVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1idXR0b24gbWF0LXR5cG9ncmFwaHkgbWVudS1mb250LWNvbG9yIG1hcmdpbi1ib3R0b20teDJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIndG9vbGJhci5tZW51Lm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbiAgICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cImZpcnN0LWNvbnRlbnQgaW5kZXgtbWVudVwiID5cbiAgICAgICAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cImRyYXdlci1jb250YWluZXJcIiAoYmFja2Ryb3BDbGljayk9XCJ0b2dnbGVMZWZ0TWVudSgpXCI+XG4gICAgICAgICAgICA8bWF0LXNpZGVuYXYgW21vZGVdPVwiY29uZmlnUmlnaHRNZW51Lm1vZGVcIiBbKG9wZW5lZCldPVwiY29uZmlnUmlnaHRNZW51Lm9wZW5lZFwiIHBvc2l0aW9uPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwiY29uZmlnUmlnaHRNZW51LmRpc2FibGVDbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmF3ZXItY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgbXdsUmVzaXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbmZpZ1JpZ2h0TWVudS53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc2l6ZUN1cnNvclByZWNpc2lvbl09XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc2l6ZUVkZ2VzXT1cIntyaWdodDogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNpemluZyk9XCJvblJlc2l6ZUV2ZW50KCRldmVudClcIj5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3J0YWxSaWdodE1lbnUgfHwgZGVmYXVsdFJpZ2h0U2lkZVwiPjwvZGl2PlxuXG4gICAgICAgICAgICA8L21hdC1zaWRlbmF2PlxuXG4gICAgICAgICAgICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cImNvbnRlbnQtY29sb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMZWZ0U2lkZT5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWlnaHQtNjAgYm9yZGVyLWJvdHRvbVwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhIaWRlLmx0LW1kPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlUmlnaHRNZW51KClcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkhvbWVDbGljaygpXCIgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3IgbWFyZ2luLXRvcC1kZWZhdWx0XCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIid0b29sYmFyLm1lbnUuaG9tZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cbiAgICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj0nIWlzT25aZXJvTGV2ZWwoKSAmJiAoY2FuR29CYWNrTG9hZGluZyQgfCBhc3luYykgPT09IGZhbHNlJyBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQmFja0NsaWNrKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3JcIiBbbWF0VG9vbHRpcF09XCIndG9vbGJhci5tZW51LmJhY2snIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGNhbkdvQmFja0xvYWRpbmckIHwgYXN5bmMpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwibWFyZ2luLXRvcC1kZWZhdWx0XCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjMwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1hcmdpbi10b3AteDJcIj48L2Rpdj5cblxuICAgIDxidXR0b24gKm5nRm9yPSdsZXQgZm9sZGVyIG9mIGxlZnRJdGVtczsgdHJhY2tCeTogaXRlbXNUcmFja0J5JyBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGZvbGRlcilcIlxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3JcIiBbbWF0VG9vbHRpcF09XCJmb2xkZXIubmF2aWdhdGlvbi50aXRsZVwiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0l0ZW1BbmROb2RlRXF1YWwoZm9sZGVyLCBjdXJyZW50Tm9kZSkgPyAncmFpbC1zZWxlY3RlZC1jb2xvcicgOiAnbWVudS1mb250LWNvbG9yJ1wiIFtyb3V0ZXJMaW5rXT0nZm9sZGVyLnJvdXRpbmcucGF0aCdcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cbiAgICAgICAgPG1hdC1pY29uPnt7Zm9sZGVyLm5hdmlnYXRpb24uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgKm5nSWY9XCIobGVmdExvYWRpbmckIHwgYXN5bmMpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwibWFyZ2luLXRvcC1kZWZhdWx0XCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjMwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UmlnaHRTaWRlPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvIGJvcmRlci1ib3R0b21cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4SGlkZS5sdC1tZD5cbiAgICAgICAgPGltZyAqbmdJZj1cImltYWdlICE9PSB1bmRlZmluZWRcIiBbYWx0XT1cImltYWdlQWx0XCIgW3NyY109XCJpbWFnZVwiIGNsYXNzPVwibG9nb2ltZ1wiXG4gICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaW1hZ2VSb3V0ZXJMaW5rICE9PSB1bmRlZmluZWQgPyBpbWFnZVJvdXRlckxpbmsgOiBbXVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIocmlnaHRMb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2VcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJlbmQgZW5kXCIgY2xhc3M9XCJvcmRlci1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cIm1hdC1idXR0b24gbWF0LXR5cG9ncmFwaHkgbWVudS1mb250LWNvbG9yIG9yZGVyLWljb25cIiAoY2xpY2spPVwic3dpdGNoT3JkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImlzQXNjZW5kaW5nKCkgPyAoJ2R5bmFtaWNOYXZpZ2F0aW9uLmFzY2VuZGluZycgfCB0cmFuc2xhdGUpIDogKCdkeW5hbWljTmF2aWdhdGlvbi5kZXNjZW5kaW5nJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+e3tpc0FzY2VuZGluZygpID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj0nbGV0IGl0ZW0gb2YgcmlnaHRJdGVtczsgdHJhY2tCeTogaXRlbXNUcmFja0J5JyAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgIGNsYXNzPVwidHJlZS1ub2RlIG1hdC10eXBvZ3JhcGh5IG1hdC1ib2R5LTJcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgW3JvdXRlckxpbmtdPSdpdGVtLnJvdXRpbmcucGF0aCdcbiAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlLXRyZWUtbm9kZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidHJlZS1ub2RlLWljb25cIj57e2l0ZW0ubmF2aWdhdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3tpdGVtLm5hdmlnYXRpb24udGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLWZvY3VzLW92ZXJsYXlcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9yZUl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9hZE1vcmVJdGVtcygpXCI+e3snZHluYW1pY05hdmlnYXRpb24ubG9hZE1vcmVJdGVtcycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKHJpZ2h0TG9hZGluZyQgfCBhc3luYylcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJtYXJnaW4tdG9wLWRlZmF1bHRcIj5cbiAgICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwicHJpbWFyeVwiIGRpYW1ldGVyPVwiNDBcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyL25hdmlnYXRpb24tZG91YmxlLWRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZG91YmxlLWRyYXdlci9uYXZpZ2F0aW9uLWRvdWJsZS1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4QyxPQUFPLEVBTUgsdUNBQXVDLEVBTTFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0MvRSxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsdUNBQXVDO0lBT3hGLFlBQVksT0FBZSxFQUNmLGVBQStCLEVBQy9CLFdBQStCLEVBQy9CLGdCQUFpQyxFQUNqQyxpQkFBbUMsRUFDbkMsWUFBeUIsRUFDekIsY0FBNkIsRUFDN0IsSUFBbUIsRUFDbkIsT0FBNkIsRUFDN0IsV0FBdUIsRUFDdkIsb0JBQXlDLEVBQ3pDLHdCQUF3RCxFQUN4RCxjQUFvQyxFQUNwQyw0QkFBbUU7UUFDM0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFHLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFBO1FBcEIxSCxrQkFBYSxHQUFHO1lBQ25CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBa0JGLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs2SEEzQlEsK0JBQStCO2lIQUEvQiwrQkFBK0IsMEZDbEQ1Qyx5eFRBOEtBLDZ6U0R2SmdCO1FBQ1IsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3hCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxTQUFTO2FBQ3hCLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dCQUNyQixNQUFNLEVBQUUsS0FBSztnQkFDYixVQUFVLEVBQUUsUUFBUTthQUN2QixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzthQUMvQyxDQUFDO1NBQ0wsQ0FBQztRQUNGLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO2dCQUMxQixTQUFTLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsY0FBYzthQUM1QixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzthQUMvQyxDQUFDO1NBQ0wsQ0FBQztLQUNMOzRGQUVRLCtCQUErQjtrQkEvQjNDLFNBQVM7K0JBQ0ksNkJBQTZCLGNBRzNCO3dCQUNSLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTs0QkFDeEIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztnQ0FDMUIsTUFBTSxFQUFFLEdBQUc7Z0NBQ1gsVUFBVSxFQUFFLFNBQVM7NkJBQ3hCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztnQ0FDckIsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsVUFBVSxFQUFFLFFBQVE7NkJBQ3ZCLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsMENBQTBDLEVBQUU7Z0NBQ25ELE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzs2QkFDL0MsQ0FBQzt5QkFDTCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTs0QkFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztnQ0FDMUIsU0FBUyxFQUFFLGdCQUFnQjs2QkFDOUIsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dDQUNyQixTQUFTLEVBQUUsY0FBYzs2QkFDNUIsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQywwQ0FBMEMsRUFBRTtnQ0FDbkQsT0FBTyxDQUFDLG1DQUFtQyxDQUFDOzZCQUMvQyxDQUFDO3lCQUNMLENBQUM7cUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIExhbmd1YWdlU2VydmljZSxcbiAgICBVcmlTZXJ2aWNlLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgVXNlclNlcnZpY2UsXG4gICAgQWJzdHJhY3ROYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50LFxuICAgIER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UsXG4gICAgQWNjZXNzU2VydmljZSxcbiAgICBJbXBlcnNvbmF0aW9uVXNlclNlbGVjdFNlcnZpY2UsXG4gICAgSW1wZXJzb25hdGlvblNlcnZpY2UsXG4gICAgQ2FzZVJlc291cmNlU2VydmljZVxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLWRvdWJsZS1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3NlY3Rpb25FeHBhbnNpb24nLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQsIHZvaWQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQsIHZvaWQgPT4gZXhwYW5kZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKCdpbmRpY2F0b3JSb3RhdGUnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQsIHZvaWQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKSdcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQsIHZvaWQgPT4gZXhwYW5kZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROYXZpZ2F0aW9uRG91YmxlRHJhd2VyQ29tcG9uZW50IHtcblxuICAgIHB1YmxpYyBpc1NlY3Rpb25PcGVuID0ge1xuICAgICAgICBmb2xkZXJzOiB0cnVlLFxuICAgICAgICB2aWV3czogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICBfYnJlYWtwb2ludDogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICAgICAgICAgIF9sYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICAgICAgICAgICAgICBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBfdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9hY2Nlc3NTZXJ2aWNlOiBBY2Nlc3NTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2NvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX3VyaVNlcnZpY2U6IFVyaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2Nhc2VSZXNvdXJjZVNlcnZpY2U6IENhc2VSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2ltcGVyc29uYXRpb25Vc2VyU2VsZWN0OiBJbXBlcnNvbmF0aW9uVXNlclNlbGVjdFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2ltcGVyc29uYXRpb246IEltcGVyc29uYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9keW5hbWljUm91dGVQcm92aWRlclNlcnZpY2U6IER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX3JvdXRlciwgX2FjdGl2YXRlZFJvdXRlLCBfYnJlYWtwb2ludCwgX2xhbmd1YWdlU2VydmljZSwgX3RyYW5zbGF0ZVNlcnZpY2UsIF91c2VyU2VydmljZSwgX2FjY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICBfbG9nLCBfY29uZmlnLCBfdXJpU2VydmljZSwgX2Nhc2VSZXNvdXJjZVNlcnZpY2UsIF9pbXBlcnNvbmF0aW9uVXNlclNlbGVjdCwgX2ltcGVyc29uYXRpb24sIF9keW5hbWljUm91dGVQcm92aWRlclNlcnZpY2UpXG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZVNlY3Rpb24oc2VjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTZWN0aW9uT3BlbltzZWN0aW9uXSA9ICF0aGlzLmlzU2VjdGlvbk9wZW5bc2VjdGlvbl07XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJhd2VyLWNvbnRyb2wgcmFpbC1jb2xvciBoZWlnaHQtNjBcIiBbbmdDbGFzc109XCJ7J2luZGV4LW1lbnUnOiAhY29uZmlnTGVmdE1lbnUub3BlbmVkfVwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhIaWRlLmx0LW1kPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVNZW51KClcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiPlxuICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxtYXQtdG9vbGJhciBmeEhpZGUuZ3Qtc20gY2xhc3M9XCJ0b29sYmFyXCI+XG4gICAgPG1hdC10b29sYmFyLXJvdyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0cmV0Y2hcIj5cbiAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmxleD5cbiAgICAgICAgICAgIDxpbWcgI2xvZ28gW2FsdF09XCJpbWFnZUFsdFwiIFtzcmNdPVwiaW1hZ2VcIiBjbGFzcz1cImxvZ29pbWctdG9vbFwiXG4gICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImltYWdlUm91dGVyTGluayAhPT0gdW5kZWZpbmVkID8gaW1hZ2VSb3V0ZXJMaW5rIDogW11cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuICAgIDwvbWF0LXRvb2xiYXItcm93PlxuPC9tYXQtdG9vbGJhcj5cbjxtYXQtc3Bpbm5lciAqbmdJZj1cIiFsb2dvXCI+PC9tYXQtc3Bpbm5lcj5cbjxtYXQtc2lkZW5hdi1jb250YWluZXIgY2xhc3M9XCJyYWlsLWNvbnRhaW5lciBkZW55LXNlbGVjdFwiPlxuICAgIDxtYXQtc2lkZW5hdiBtb2RlPVwic2lkZVwiIFsob3BlbmVkKV09XCJjb25maWdMZWZ0TWVudS5vcGVuZWRcIiBwb3NpdGlvbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVDbG9zZV09XCJjb25maWdMZWZ0TWVudS5kaXNhYmxlQ2xvc2VcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cInJhaWwtY29udGVudFwiPlxuXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cInJhaWwtY29sb3JcIiBmeEZsZXg+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3J0YWxMZWZ0TWVudSB8fCBkZWZhdWx0TGVmdFNpZGVcIj48L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjdXNlclJhaWxNZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSByb2xlPVwibWVudWl0ZW1cIiBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbVwiIGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInByb2ZpbGVSb3V0ZXJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS10cmVlLW5vZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWFyZ2luLWF1dG9cIiBmeEZsZXg+ZmFjZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS1tZW51LWl0ZW1cIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhGbGV4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdXNlci5pc0ltcGVyc29uYXRpbmcoKVwiICBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbS10ZXh0XCIgZnhGbGV4PVwiNTBcIj57e3VzZXIuZnVsbE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlci5pc0ltcGVyc29uYXRpbmcoKVwiIGNsYXNzPVwibGFyZ2UtbWVudS1pdGVtLXRleHRcIiBmeEZsZXg9XCI1MFwiPnt7dXNlci5mdWxsTmFtZX19ICh7e3VzZXIuZ2V0U2VsZk9ySW1wZXJzb25hdGVkKCkuZnVsbE5hbWV9fSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhcmdlLW1lbnUtaXRlbS10ZXh0XCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgZnhGbGV4PVwiNTBcIj57e3VzZXIuZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluY2x1ZGVJbXBlcnNvbmF0aW9uICYmICF1c2VyLmlzSW1wZXJzb25hdGluZygpXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiaW1wZXJzb25hdGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+c3VwZXJ2aXNvcl9hY2NvdW50PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3snc2lkZS1tZW51LmltcGVyc29uYXRpb24uc3VibWl0JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbmNsdWRlSW1wZXJzb25hdGlvbiAmJiB1c2VyLmlzSW1wZXJzb25hdGluZygpXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic3RvcEltcGVyc29uYXRpbmcoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydzaWRlLW1lbnUuaW1wZXJzb25hdGlvbi5jZWFzZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJsb2dvdXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZXhpdF90b19hcHA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAndG9vbGJhci5tZW51LmxvZ291dCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluY2x1ZGVVc2VyXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJ1c2VyUmFpbE1lbnVcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInVzZXIuZnVsbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmNsdWRlTGFuZ3VhZ2VcIiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxuYy1sYW5ndWFnZS1zZWxlY3RvciBmeExheW91dD1cInJvd1wiID48L25jLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjcmFpbE1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9J2xldCBpdGVtIG9mIGhpZGRlbkN1c3RvbUl0ZW1zOyB0cmFja0J5OiBpdGVtc1RyYWNrQnknIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT0naXRlbS5yb3V0aW5nLnBhdGgnIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtdHJlZS1ub2RlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e2l0ZW0ubmF2aWdhdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ubmF2aWdhdGlvbi50aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJtYXJnaW4tYm90dG9tLXgyIGljb24tY29udGFpbmVyXCIgbWF0VG9vbHRpcD1cIk90dm9yacWlIG1lbnVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInJhaWxNZW51XCI+LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLWxhcmdlIHNpZGVtZW51LWljb25cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICA8L2J1dHRvbj4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJyYWlsTWVudVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1idXR0b24gbWF0LXR5cG9ncmFwaHkgbWVudS1mb250LWNvbG9yIG1hcmdpbi1ib3R0b20teDJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIndG9vbGJhci5tZW51Lm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbiAgICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cImZpcnN0LWNvbnRlbnQgaW5kZXgtbWVudVwiID5cbiAgICAgICAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cImRyYXdlci1jb250YWluZXJcIiAoYmFja2Ryb3BDbGljayk9XCJ0b2dnbGVMZWZ0TWVudSgpXCI+XG4gICAgICAgICAgICA8bWF0LXNpZGVuYXYgW21vZGVdPVwiY29uZmlnUmlnaHRNZW51Lm1vZGVcIiBbKG9wZW5lZCldPVwiY29uZmlnUmlnaHRNZW51Lm9wZW5lZFwiIHBvc2l0aW9uPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwiY29uZmlnUmlnaHRNZW51LmRpc2FibGVDbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmF3ZXItY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgbXdsUmVzaXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbmZpZ1JpZ2h0TWVudS53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc2l6ZUN1cnNvclByZWNpc2lvbl09XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc2l6ZUVkZ2VzXT1cIntyaWdodDogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNpemluZyk9XCJvblJlc2l6ZUV2ZW50KCRldmVudClcIj5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3J0YWxSaWdodE1lbnUgfHwgZGVmYXVsdFJpZ2h0U2lkZVwiPjwvZGl2PlxuXG4gICAgICAgICAgICA8L21hdC1zaWRlbmF2PlxuXG4gICAgICAgICAgICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cImNvbnRlbnQtY29sb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMZWZ0U2lkZT5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWlnaHQtNjAgYm9yZGVyLWJvdHRvbVwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhIaWRlLmx0LW1kPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlUmlnaHRNZW51KClcIiBjbGFzcz1cIm1lbnUtYnV0dG9uIG1hdC10eXBvZ3JhcGh5IG1lbnUtZm9udC1jb2xvclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkhvbWVDbGljaygpXCIgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3IgbWFyZ2luLXRvcC1kZWZhdWx0XCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIid0b29sYmFyLm1lbnUuaG9tZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cbiAgICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj0nIWlzT25aZXJvTGV2ZWwoKSAmJiAoY2FuR29CYWNrTG9hZGluZyQgfCBhc3luYykgPT09IGZhbHNlJyBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQmFja0NsaWNrKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3JcIiBbbWF0VG9vbHRpcF09XCIndG9vbGJhci5tZW51LmJhY2snIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGNhbkdvQmFja0xvYWRpbmckIHwgYXN5bmMpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwibWFyZ2luLXRvcC1kZWZhdWx0XCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjMwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1hcmdpbi10b3AteDJcIj48L2Rpdj5cblxuICAgIDxidXR0b24gKm5nRm9yPSdsZXQgZm9sZGVyIG9mIGxlZnRJdGVtczsgdHJhY2tCeTogaXRlbXNUcmFja0J5JyBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGZvbGRlcilcIlxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJ1dHRvbiBtYXQtdHlwb2dyYXBoeSBtZW51LWZvbnQtY29sb3JcIiBbbWF0VG9vbHRpcF09XCJmb2xkZXIubmF2aWdhdGlvbi50aXRsZVwiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0l0ZW1BbmROb2RlRXF1YWwoZm9sZGVyLCBjdXJyZW50Tm9kZSkgPyAncmFpbC1zZWxlY3RlZC1jb2xvcicgOiAnbWVudS1mb250LWNvbG9yJ1wiIFtyb3V0ZXJMaW5rXT0nZm9sZGVyLnJvdXRpbmcucGF0aCdcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cbiAgICAgICAgPG1hdC1pY29uPnt7Zm9sZGVyLm5hdmlnYXRpb24uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgKm5nSWY9XCIobGVmdExvYWRpbmckIHwgYXN5bmMpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwibWFyZ2luLXRvcC1kZWZhdWx0XCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjMwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UmlnaHRTaWRlPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvIGJvcmRlci1ib3R0b21cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4SGlkZS5sdC1tZD5cbiAgICAgICAgPGltZyAqbmdJZj1cImltYWdlICE9PSB1bmRlZmluZWRcIiBbYWx0XT1cImltYWdlQWx0XCIgW3NyY109XCJpbWFnZVwiIGNsYXNzPVwibG9nb2ltZ1wiXG4gICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaW1hZ2VSb3V0ZXJMaW5rICE9PSB1bmRlZmluZWQgPyBpbWFnZVJvdXRlckxpbmsgOiBbXVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIocmlnaHRMb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2VcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJlbmQgZW5kXCIgY2xhc3M9XCJvcmRlci1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cIm1hdC1idXR0b24gbWF0LXR5cG9ncmFwaHkgbWVudS1mb250LWNvbG9yIG9yZGVyLWljb25cIiAoY2xpY2spPVwic3dpdGNoT3JkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImlzQXNjZW5kaW5nKCkgPyAoJ2R5bmFtaWNOYXZpZ2F0aW9uLmFzY2VuZGluZycgfCB0cmFuc2xhdGUpIDogKCdkeW5hbWljTmF2aWdhdGlvbi5kZXNjZW5kaW5nJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+e3tpc0FzY2VuZGluZygpID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj0nbGV0IGl0ZW0gb2YgcmlnaHRJdGVtczsgdHJhY2tCeTogaXRlbXNUcmFja0J5JyAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgIGNsYXNzPVwidHJlZS1ub2RlIG1hdC10eXBvZ3JhcGh5IG1hdC1ib2R5LTJcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgW3JvdXRlckxpbmtdPSdpdGVtLnJvdXRpbmcucGF0aCdcbiAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlLXRyZWUtbm9kZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidHJlZS1ub2RlLWljb25cIj57e2l0ZW0ubmF2aWdhdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3tpdGVtLm5hdmlnYXRpb24udGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLWZvY3VzLW92ZXJsYXlcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9yZUl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9hZE1vcmVJdGVtcygpXCI+e3snZHluYW1pY05hdmlnYXRpb24ubG9hZE1vcmVJdGVtcycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKHJpZ2h0TG9hZGluZyQgfCBhc3luYylcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJtYXJnaW4tdG9wLWRlZmF1bHRcIj5cbiAgICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwicHJpbWFyeVwiIGRpYW1ldGVyPVwiNDBcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -8,32 +8,16 @@ import * as i4 from "@angular/common";
|
|
|
8
8
|
import * as i5 from "@angular/flex-layout/flex";
|
|
9
9
|
import * as i6 from "@ngx-translate/core";
|
|
10
10
|
export class LanguageSelectorComponent extends AbstractLanguageSelectorComponent {
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
'UQeMOgC/A34fO4ET08UBb2VU4BgE3mkZwfn/Pn6kngO4/Rb9R8dNNSvAFn2tb4H7GESD+CDxxrxZGHpIxXgdALIA5oBPodFgB4BoujsA5Os/V66' +
|
|
16
|
-
'BHQCiQXy6OKC5aytGGkDmg6KIpg6wzN/y/6GN+/8a0+T/8dZF/7n8FoJpEP+BrtV/j6qdtHUACJf27gVbjI5B4pRajuKAdzKq/7HhDxYO/0vQHJ' +
|
|
17
|
-
'HatO3/R3c/rOpJxQQdAMLvtYz/r22c+98dGOTr+leD+dSwnGgHIIcGtSwmywG0wKMOGDwOGEg86oBRBwy4AwD9AXxVUM8swgAAAABJRU5ErkJgg' +
|
|
18
|
-
'g==';
|
|
19
|
-
this.deFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAPElEQVRYw+3WIREAMADDwPjXNk8ZnIQOBIQ/' +
|
|
20
|
-
'6hWVZQQI8AUAcFGAAAHeDoCTAgT4B3BwUoAAAXrFAQIoF+hFdQp+ds+vAAAAAElFTkSuQmCC';
|
|
21
|
-
this.gbFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByElEQVRYw+2WvUvDUBTFA04u7VTo0sGpf4Ao' +
|
|
22
|
-
'1L2L4FApdHN01slBcFIEJ0EcFDqqFaGubkJdtIhVKWhBobjZwc5+NMeeSNI0vOTdpmId8uBt7+N3Ts69LwYAY5TTiAAigH8B8Fwo4LPVwvtHB6u' +
|
|
23
|
-
'7VYxN7cOY3AucpgnU4nFcW0cAqdkD7Z7FjQpeNrdwn0rhrVSCA9BcWsZtIoF2uWwddlV/RXr++NcAJuYOcX5SwUMmg6dczhL71TF7ALysenSGej' +
|
|
24
|
-
'oNqRtSAIVqPDbbmF447QFwIS9a276A1A0dgJ/q9eINxmeK1po+AHv2uZHP+7oRBBCk2n2XEkDqhgpAoloEIHHDC7CycylSPRCA1427ZNJxg8MN0' +
|
|
25
|
-
'MhmRaqVAAg53AAhxw9ALRazDvrr6QCM4nKKHvoTWAd1P0OYYZqQhZBBYqAYLAaMQWPgVAAMKIPKwDK4ujdFC8ASYilxsLRYYiw1lpwXgKXJEiUk' +
|
|
26
|
-
'S5alyxIOelN8AVSq2VzYZNhs2HS8AHbfYLOy3WATC3JDCeCnmu3VXuMHYPcNqRt9ADrV7o1BAO4uqnPDAZCoHhRA6Ub3qXe74QBIVIcB0LnhAEh' +
|
|
27
|
-
'UDwPg50b0VxwBRACc37+H2GuakEPwAAAAAElFTkSuQmCC';
|
|
28
|
-
}
|
|
29
|
-
getFlag(flagCode) {
|
|
30
|
-
return flagCode === 'sk' ? this.skFlag : (flagCode === 'gb' ? this.gbFlag : this.deFlag);
|
|
11
|
+
constructor(_langService, _languageIconsService) {
|
|
12
|
+
super(_langService, _languageIconsService);
|
|
13
|
+
this._langService = _langService;
|
|
14
|
+
this._languageIconsService = _languageIconsService;
|
|
31
15
|
}
|
|
32
16
|
}
|
|
33
|
-
LanguageSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
LanguageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: LanguageSelectorComponent, selector: "nc-language-selector", usesInheritance: true, ngImport: i0, template: "<mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let lang of
|
|
17
|
+
LanguageSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: i1.LanguageService }, { token: i1.LanguageIconsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
LanguageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: LanguageSelectorComponent, selector: "nc-language-selector", usesInheritance: true, ngImport: i0, template: "<mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let lang of getLangKeys()\" mat-menu-item (click)=\"setLang(lang)\" fxLayout=\"row\"\n fxLayoutAlign=\"start center\" [style.backgroundColor]=\"lang === getCurrentLang() ? 'rgba(253,151,31,0.1)':''\">\n <div [innerHTML]=\"getLangIcon(lang)\" class=\"icon-small-dimensions\"></div>\n <span class=\"margin-left-default\">{{'toolbar.menu.' + lang | translate}}</span>\n </button>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <div [innerHTML]=\"getLangIcon(getCurrentLang())\"\n alt=\"Country icon\" class=\"icon-medium-dimensions\">\n </div>\n</button>\n", styles: [".icon-small-dimensions{height:20px;line-height:normal}.margin-left-default{margin-left:8px}.icon-medium-dimensions{height:20px;line-height:normal}\n"], components: [{ type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": i6.TranslatePipe } });
|
|
35
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
|
|
36
20
|
type: Component,
|
|
37
|
-
args: [{ selector: 'nc-language-selector', template: "<mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let lang of
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i1.LanguageService }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
args: [{ selector: 'nc-language-selector', template: "<mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let lang of getLangKeys()\" mat-menu-item (click)=\"setLang(lang)\" fxLayout=\"row\"\n fxLayoutAlign=\"start center\" [style.backgroundColor]=\"lang === getCurrentLang() ? 'rgba(253,151,31,0.1)':''\">\n <div [innerHTML]=\"getLangIcon(lang)\" class=\"icon-small-dimensions\"></div>\n <span class=\"margin-left-default\">{{'toolbar.menu.' + lang | translate}}</span>\n </button>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <div [innerHTML]=\"getLangIcon(getCurrentLang())\"\n alt=\"Country icon\" class=\"icon-medium-dimensions\">\n </div>\n</button>\n", styles: [".icon-small-dimensions{height:20px;line-height:normal}.margin-left-default{margin-left:8px}.icon-medium-dimensions{height:20px;line-height:normal}\n"] }]
|
|
22
|
+
}], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i1.LanguageIconsService }]; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9xdWljay1wYW5lbC9jb21wb25lbnRzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vcXVpY2stcGFuZWwvY29tcG9uZW50cy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxpQ0FBaUMsRUFBd0MsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFPbEgsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlDQUFpQztJQUM1RSxZQUFzQixZQUE2QixFQUFZLHFCQUEyQztRQUN0RyxLQUFLLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFEekIsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQVksMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtJQUUxRyxDQUFDOzt1SEFIUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixtRkNSdEMsaXJCQWFBOzRGRExhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0TGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCwgTGFuZ3VhZ2VTZXJ2aWNlLCBMYW5ndWFnZUljb25zU2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1sYW5ndWFnZS1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbGFuZ1NlcnZpY2U6IExhbmd1YWdlU2VydmljZSwgcHJvdGVjdGVkIF9sYW5ndWFnZUljb25zU2VydmljZTogTGFuZ3VhZ2VJY29uc1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX2xhbmdTZXJ2aWNlLCBfbGFuZ3VhZ2VJY29uc1NlcnZpY2UpO1xuICAgIH1cblxufVxuIiwiPG1hdC1tZW51ICNsYW5ndWFnZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBnZXRMYW5nS2V5cygpXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0TGFuZyhsYW5nKVwiIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImxhbmcgPT09IGdldEN1cnJlbnRMYW5nKCkgPyAncmdiYSgyNTMsMTUxLDMxLDAuMSknOicnXCI+XG4gICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJnZXRMYW5nSWNvbihsYW5nKVwiIGNsYXNzPVwiaWNvbi1zbWFsbC1kaW1lbnNpb25zXCI+PC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWFyZ2luLWxlZnQtZGVmYXVsdFwiPnt7J3Rvb2xiYXIubWVudS4nICsgbGFuZyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cblxuPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxhbmd1YWdlTWVudVwiPlxuICAgIDxkaXYgW2lubmVySFRNTF09XCJnZXRMYW5nSWNvbihnZXRDdXJyZW50TGFuZygpKVwiXG4gICAgICAgICBhbHQ9XCJDb3VudHJ5IGljb25cIiBjbGFzcz1cImljb24tbWVkaXVtLWRpbWVuc2lvbnNcIj5cbiAgICA8L2Rpdj5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -19,9 +19,9 @@ export class QuickPanelComponent extends AbstractQuickPanelComponent {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
QuickPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuickPanelComponent, deps: [{ token: i1.LanguageService }, { token: i1.PaperViewService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
QuickPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuickPanelComponent, selector: "nc-quick-panel", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"quick-panel\" [style.width.px]=\"width\">\n <nc-language-selector *ngIf=\"items.includes('language')\"
|
|
22
|
+
QuickPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuickPanelComponent, selector: "nc-quick-panel", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"quick-panel\" [style.width.px]=\"width\">\n <nc-language-selector *ngIf=\"items.includes('language')\"></nc-language-selector>\n <nc-internal-link *ngIf=\"items.includes('settings')\" icon=\"settings\" link=\"/settings\"></nc-internal-link>\n <nc-impersonate-quick-panel *ngIf=\"items.includes('impersonation')\"></nc-impersonate-quick-panel>\n <nc-logout-shortcut *ngIf=\"items.includes('logout')\"></nc-logout-shortcut>\n\n <button mat-icon-button [matMenuTriggerFor]=\"quickPanelMoreMenu\">\n <mat-icon class=\"quick-panel-more-icon\">more_vert</mat-icon>\n </button>\n</div>\n<mat-menu #quickPanelMoreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"setPaperView()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"isPaperView()\">cancel</mat-icon>\n <mat-icon *ngIf=\"!isPaperView()\">check</mat-icon>\n <span>{{isPaperView() ? 'Disable' : 'Enable'}} Paper View</span>\n </button>\n</mat-menu>\n", styles: [".quick-panel{height:62px;padding:8px}.quick-panel-more-icon{text-align:center;font-size:24px}\n"], components: [{ type: i2.LanguageSelectorComponent, selector: "nc-language-selector" }, { type: i3.InternalLinkComponent, selector: "nc-internal-link" }, { type: i4.ImpersonateQuickPanelComponent, selector: "nc-impersonate-quick-panel" }, { type: i5.LogoutShortcutComponent, selector: "nc-logout-shortcut" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i9.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i9.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuickPanelComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
|
-
args: [{ selector: 'nc-quick-panel', template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"quick-panel\" [style.width.px]=\"width\">\n <nc-language-selector *ngIf=\"items.includes('language')\"
|
|
25
|
+
args: [{ selector: 'nc-quick-panel', template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"quick-panel\" [style.width.px]=\"width\">\n <nc-language-selector *ngIf=\"items.includes('language')\"></nc-language-selector>\n <nc-internal-link *ngIf=\"items.includes('settings')\" icon=\"settings\" link=\"/settings\"></nc-internal-link>\n <nc-impersonate-quick-panel *ngIf=\"items.includes('impersonation')\"></nc-impersonate-quick-panel>\n <nc-logout-shortcut *ngIf=\"items.includes('logout')\"></nc-logout-shortcut>\n\n <button mat-icon-button [matMenuTriggerFor]=\"quickPanelMoreMenu\">\n <mat-icon class=\"quick-panel-more-icon\">more_vert</mat-icon>\n </button>\n</div>\n<mat-menu #quickPanelMoreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"setPaperView()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"isPaperView()\">cancel</mat-icon>\n <mat-icon *ngIf=\"!isPaperView()\">check</mat-icon>\n <span>{{isPaperView() ? 'Disable' : 'Enable'}} Paper View</span>\n </button>\n</mat-menu>\n", styles: [".quick-panel{height:62px;padding:8px}.quick-panel-more-icon{text-align:center;font-size:24px}\n"] }]
|
|
26
26
|
}], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i1.PaperViewService }]; } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9xdWljay1wYW5lbC9jb21wb25lbnRzL3F1aWNrLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vcXVpY2stcGFuZWwvY29tcG9uZW50cy9xdWljay1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQywyQkFBMkIsRUFBb0MsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3hHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwyQkFBMkI7SUFDaEUsWUFBc0IsT0FBd0IsRUFBWSxVQUE0QjtRQUNsRixLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRFQsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBWSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUV0RixDQUFDOztpSEFIUSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw2RUNSaEMsdWhDQWlCQTs0RkRUYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFF1aWNrUGFuZWxDb21wb25lbnQsIExhbmd1YWdlU2VydmljZSwgUGFwZXJWaWV3U2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1xdWljay1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xdWljay1wYW5lbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1aWNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFF1aWNrUGFuZWxDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2VsZWN0OiBMYW5ndWFnZVNlcnZpY2UsIHByb3RlY3RlZCBfcGFwZXJWaWV3OiBQYXBlclZpZXdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF9zZWxlY3QsIF9wYXBlclZpZXcpO1xuICAgIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBjbGFzcz1cInF1aWNrLXBhbmVsXCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCI+XG4gICAgPG5jLWxhbmd1YWdlLXNlbGVjdG9yICpuZ0lmPVwiaXRlbXMuaW5jbHVkZXMoJ2xhbmd1YWdlJylcIj48L25jLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgIDxuYy1pbnRlcm5hbC1saW5rICpuZ0lmPVwiaXRlbXMuaW5jbHVkZXMoJ3NldHRpbmdzJylcIiBpY29uPVwic2V0dGluZ3NcIiBsaW5rPVwiL3NldHRpbmdzXCI+PC9uYy1pbnRlcm5hbC1saW5rPlxuICAgIDxuYy1pbXBlcnNvbmF0ZS1xdWljay1wYW5lbCAqbmdJZj1cIml0ZW1zLmluY2x1ZGVzKCdpbXBlcnNvbmF0aW9uJylcIj48L25jLWltcGVyc29uYXRlLXF1aWNrLXBhbmVsPlxuICAgIDxuYy1sb2dvdXQtc2hvcnRjdXQgKm5nSWY9XCJpdGVtcy5pbmNsdWRlcygnbG9nb3V0JylcIj48L25jLWxvZ291dC1zaG9ydGN1dD5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJxdWlja1BhbmVsTW9yZU1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicXVpY2stcGFuZWwtbW9yZS1pY29uXCI+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPG1hdC1tZW51ICNxdWlja1BhbmVsTW9yZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZXRQYXBlclZpZXcoKVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpc1BhcGVyVmlldygpXCI+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWlzUGFwZXJWaWV3KClcIj5jaGVjazwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7aXNQYXBlclZpZXcoKSA/ICdEaXNhYmxlJyA6ICdFbmFibGUnfX0gUGFwZXIgVmlldzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvbWF0LW1lbnU+XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Inject, Injector, Optional } from '@angular/core';
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
-
import { AbstractTaskPanelComponent, AssignPolicyService, AssignTaskService, BOOLEAN_VALUE_LABEL_ENABLED, CancelTaskService, ChangedFieldsService, DataFocusPolicyService, DelegateTaskService, FinishPolicyService, FinishTaskService, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, SingleTaskContentService, SubjectTaskOperations, TaskContentService, TaskDataService, TaskEventService, TaskRequestStateService, FrontActionService } from '@netgrif/components-core';
|
|
3
|
+
import { AbstractTaskPanelComponent, AssignPolicyService, AssignTaskService, BOOLEAN_VALUE_LABEL_ENABLED, CancelTaskService, ChangedFieldsService, DataFocusPolicyService, DelegateTaskService, FinishPolicyService, FinishTaskService, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, SingleTaskContentService, SubjectTaskOperations, TaskContentService, TaskDataService, TaskEventService, TaskRequestStateService, FrontActionService, NAE_TAB_DATA } from '@netgrif/components-core';
|
|
4
4
|
import { TaskContentComponent } from '../../task-content/task-content/task-content.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@netgrif/components-core";
|
|
@@ -17,8 +17,8 @@ import * as i11 from "@angular/flex-layout/extended";
|
|
|
17
17
|
import * as i12 from "@angular/cdk/portal";
|
|
18
18
|
import * as i13 from "@angular/material/expansion";
|
|
19
19
|
export class TaskPanelComponent extends AbstractTaskPanelComponent {
|
|
20
|
-
constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen) {
|
|
21
|
-
super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen);
|
|
20
|
+
constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen, injectedTabData) {
|
|
21
|
+
super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _finishPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService, overflowService, _taskForceOpen, injectedTabData);
|
|
22
22
|
this._taskContentService = _taskContentService;
|
|
23
23
|
this._log = _log;
|
|
24
24
|
this._taskViewService = _taskViewService;
|
|
@@ -59,7 +59,7 @@ export class TaskPanelComponent extends AbstractTaskPanelComponent {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
TaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskPanelComponent, deps: [{ token: i1.TaskContentService }, { token: i1.LoggerService }, { token: i1.TaskViewService }, { token: i1.PaperViewService }, { token: i1.TaskEventService }, { token: i1.AssignTaskService }, { token: i1.DelegateTaskService }, { token: i1.CancelTaskService }, { token: i1.FinishTaskService }, { token: i1.TaskRequestStateService }, { token: i1.TaskDataService }, { token: i1.AssignPolicyService }, { token: i1.FinishPolicyService }, { token: i1.CallChainService }, { token: i2.TranslateService }, { token: NAE_TASK_OPERATIONS }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: BOOLEAN_VALUE_LABEL_ENABLED, optional: true }, { token: i0.Injector }, { token: i3.CurrencyPipe }, { token: i1.ChangedFieldsService }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
TaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskPanelComponent, deps: [{ token: i1.TaskContentService }, { token: i1.LoggerService }, { token: i1.TaskViewService }, { token: i1.PaperViewService }, { token: i1.TaskEventService }, { token: i1.AssignTaskService }, { token: i1.DelegateTaskService }, { token: i1.CancelTaskService }, { token: i1.FinishTaskService }, { token: i1.TaskRequestStateService }, { token: i1.TaskDataService }, { token: i1.AssignPolicyService }, { token: i1.FinishPolicyService }, { token: i1.CallChainService }, { token: i2.TranslateService }, { token: NAE_TASK_OPERATIONS }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: BOOLEAN_VALUE_LABEL_ENABLED, optional: true }, { token: i0.Injector }, { token: i3.CurrencyPipe }, { token: i1.ChangedFieldsService }, { token: i1.PermissionService }, { token: i1.OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }, { token: NAE_TAB_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
63
|
TaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TaskPanelComponent, selector: "nc-task-panel", providers: [
|
|
64
64
|
{ provide: TaskContentService, useClass: SingleTaskContentService },
|
|
65
65
|
TaskDataService,
|
|
@@ -114,5 +114,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
114
114
|
}, {
|
|
115
115
|
type: Inject,
|
|
116
116
|
args: [NAE_TASK_FORCE_OPEN]
|
|
117
|
+
}] }, { type: undefined, decorators: [{
|
|
118
|
+
type: Optional
|
|
119
|
+
}, {
|
|
120
|
+
type: Inject,
|
|
121
|
+
args: [NAE_TAB_DATA]
|
|
117
122
|
}] }]; } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsL3Rhc2stcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvdGFzay1wYW5lbC90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBRTNCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsdUNBQXVDLEVBSXZDLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLGtCQUFrQixFQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUF5QjVGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBMEI7SUFFOUQsWUFBc0IsbUJBQXVDLEVBQ3ZDLElBQW1CLEVBQ25CLGdCQUFpQyxFQUNqQyxVQUE0QixFQUM1QixpQkFBbUMsRUFDbkMsa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxrQkFBcUMsRUFDckMsa0JBQXFDLEVBQ3JDLFVBQW1DLEVBQ25DLGdCQUFpQyxFQUNqQyxvQkFBeUMsRUFDekMsb0JBQXlDLEVBQ3pDLFVBQTRCLEVBQzVCLFVBQTRCLEVBQ1QsZUFBc0MsRUFDSSxpQkFBd0MsRUFDcEQsU0FBa0IsRUFDbkUsZUFBeUIsRUFDekIsYUFBMkIsRUFDM0IscUJBQTJDLEVBQzNDLGtCQUFxQyxFQUNuQyxlQUFnQyxFQUNPLGNBQXVCO1FBQ2xGLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUNoRyxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQzFGLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFDNUksa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBM0J2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFFaUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUNwRCxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ25FLG9CQUFlLEdBQWYsZUFBZSxDQUFVO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUVJLG1CQUFjLEdBQWQsY0FBYyxDQUFTO1FBS2xGLElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVTLG1CQUFtQjtRQUN6QixNQUFNLFNBQVMsR0FBMEI7WUFDckMsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBQztZQUNqRSxFQUFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBQztTQUNuRSxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLENBQUM7UUFFNUUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDakY7SUFDTCxDQUFDOztnSEEvQ1Esa0JBQWtCLGtnQkFpQlAsbUJBQW1CLGFBQ1AsdUNBQXVDLDZCQUN2QywyQkFBMkIscU1BTTNCLG1CQUFtQjtvR0F6QjFDLGtCQUFrQix3Q0FqQmhCO1FBQ1AsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFDO1FBQ2pFLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQztLQUNsRSxpREN0REwsNi9MQW9HQTs0RkQ1Q2Esa0JBQWtCO2tCQXJCOUIsU0FBUzsrQkFDSSxlQUFlLGFBR2Q7d0JBQ1AsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFDO3dCQUNqRSxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUM7cUJBQ2xFOzswQkFtQlksTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVDQUF1Qzs7MEJBQzFELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMkJBQTJCOzswQkFLOUMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWwsIFN0YXRpY1Byb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnQsXG4gICAgQXNzaWduUG9saWN5U2VydmljZSxcbiAgICBBc3NpZ25UYXNrU2VydmljZSxcbiAgICBCT09MRUFOX1ZBTFVFX0xBQkVMX0VOQUJMRUQsXG4gICAgQ2FsbENoYWluU2VydmljZSxcbiAgICBDYW5jZWxUYXNrU2VydmljZSxcbiAgICBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICBEYXRhRm9jdXNQb2xpY3lTZXJ2aWNlLFxuICAgIERlbGVnYXRlVGFza1NlcnZpY2UsXG4gICAgRGlzYWJsZUJ1dHRvbkZ1bnRpb25zLFxuICAgIEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgRmluaXNoVGFza1NlcnZpY2UsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBOQUVfVEFTS19GT1JDRV9PUEVOLFxuICAgIE5BRV9UQVNLX09QRVJBVElPTlMsXG4gICAgTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TLFxuICAgIE92ZXJmbG93U2VydmljZSxcbiAgICBQYXBlclZpZXdTZXJ2aWNlLFxuICAgIFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIFNpbmdsZVRhc2tDb250ZW50U2VydmljZSxcbiAgICBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgIFRhc2tEYXRhU2VydmljZSxcbiAgICBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgIFRhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlLFxuICAgIFRhc2tWaWV3U2VydmljZSxcbiAgICBGcm9udEFjdGlvblNlcnZpY2Vcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7VGFza0NvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC90YXNrLWNvbnRlbnQvdGFzay1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDdXJyZW5jeVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtdGFzay1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Rhc2stcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFRhc2tDb250ZW50U2VydmljZSwgdXNlQ2xhc3M6IFNpbmdsZVRhc2tDb250ZW50U2VydmljZX0sXG4gICAgICAgIFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgRnJvbnRBY3Rpb25TZXJ2aWNlLFxuICAgICAgICBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICBBc3NpZ25UYXNrU2VydmljZSxcbiAgICAgICAgRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICAgICAgQ2FuY2VsVGFza1NlcnZpY2UsXG4gICAgICAgIEZpbmlzaFRhc2tTZXJ2aWNlLFxuICAgICAgICBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgRGF0YUZvY3VzUG9saWN5U2VydmljZSxcbiAgICAgICAgQXNzaWduUG9saWN5U2VydmljZSxcbiAgICAgICAgRmluaXNoUG9saWN5U2VydmljZSxcbiAgICAgICAgQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgIHtwcm92aWRlOiBOQUVfVEFTS19PUEVSQVRJT05TLCB1c2VDbGFzczogU3ViamVjdFRhc2tPcGVyYXRpb25zfSxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tQYW5lbENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VGFza1BhbmVsQ29tcG9uZW50IHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza0NvbnRlbnRTZXJ2aWNlOiBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BhcGVyVmlldzogUGFwZXJWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tFdmVudFNlcnZpY2U6IFRhc2tFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25UYXNrU2VydmljZTogQXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kZWxlZ2F0ZVRhc2tTZXJ2aWNlOiBEZWxlZ2F0ZVRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FuY2VsVGFza1NlcnZpY2U6IENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmluaXNoVGFza1NlcnZpY2U6IEZpbmlzaFRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1N0YXRlOiBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tEYXRhU2VydmljZTogVGFza0RhdGFTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYXNzaWduUG9saWN5U2VydmljZTogQXNzaWduUG9saWN5U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFBvbGljeVNlcnZpY2U6IEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYWxsQ2hhaW46IENhbGxDaGFpblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChOQUVfVEFTS19PUEVSQVRJT05TKSBfdGFza09wZXJhdGlvbnM6IFN1YmplY3RUYXNrT3BlcmF0aW9ucyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQVNLX1BBTkVMX0RJU0FCTEVfQlVUVE9OX0ZVTkNUSU9OUykgcHJvdGVjdGVkIF9kaXNhYmxlRnVuY3Rpb25zOiBEaXNhYmxlQnV0dG9uRnVudGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChCT09MRUFOX1ZBTFVFX0xBQkVMX0VOQUJMRUQpIHByb3RlY3RlZCBpc0VuYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZWRGaWVsZHNTZXJ2aWNlOiBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBvdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQVNLX0ZPUkNFX09QRU4pIHByb3RlY3RlZCBfdGFza0ZvcmNlT3BlbjogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihfdGFza0NvbnRlbnRTZXJ2aWNlLCBfbG9nLCBfdGFza1ZpZXdTZXJ2aWNlLCBfcGFwZXJWaWV3LCBfdGFza0V2ZW50U2VydmljZSwgX2Fzc2lnblRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgX2RlbGVnYXRlVGFza1NlcnZpY2UsIF9jYW5jZWxUYXNrU2VydmljZSwgX2ZpbmlzaFRhc2tTZXJ2aWNlLCBfdGFza1N0YXRlLCBfdGFza0RhdGFTZXJ2aWNlLFxuICAgICAgICAgICAgX2Fzc2lnblBvbGljeVNlcnZpY2UsIF9maW5pc2hQb2xpY3lTZXJ2aWNlLCBfY2FsbENoYWluLCBfdGFza09wZXJhdGlvbnMsIF9kaXNhYmxlRnVuY3Rpb25zLCBfdHJhbnNsYXRlLCBfY3VycmVuY3lQaXBlLCBfY2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgICAgICBfcGVybWlzc2lvblNlcnZpY2UsIG92ZXJmbG93U2VydmljZSwgX3Rhc2tGb3JjZU9wZW4pO1xuICAgICAgICBpZiAoX3Rhc2tGb3JjZU9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVBhbmVsSGVhZGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVDb250ZW50UG9ydGFsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm92aWRlcnM6IEFycmF5PFN0YXRpY1Byb3ZpZGVyPiA9IFtcbiAgICAgICAgICAgIHtwcm92aWRlOiBUYXNrQ29udGVudFNlcnZpY2UsIHVzZVZhbHVlOiB0aGlzLl90YXNrQ29udGVudFNlcnZpY2V9LFxuICAgICAgICAgICAge3Byb3ZpZGU6IEJPT0xFQU5fVkFMVUVfTEFCRUxfRU5BQkxFRCwgdXNlVmFsdWU6IHRoaXMuaXNFbmFibGVkfVxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7cHJvdmlkZXJzLCBwYXJlbnQ6IHRoaXMuX3BhcmVudEluamVjdG9yfSk7XG5cbiAgICAgICAgaWYgKHRoaXMucGFuZWxDb250ZW50Q29tcG9uZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChUYXNrQ29udGVudENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMucGFuZWxDb250ZW50Q29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmMtYXBwLXBhbmVsIFtwYW5lbENvbnRlbnRdPVwidGFza1BhbmVsQ29udGVudFwiIFtwYW5lbEhlYWRlcl09XCJ0YXNrUGFuZWxIZWFkZXJcIlxuICAgICAgICAgICAgICAoc3RvcExvYWRpbmcpPVwic3RvcExvYWRpbmcoKVwiIChnZXRFeHBhbnNpb25QYW5lbFJlZik9XCJzZXRQYW5lbFJlZigkZXZlbnQpXCIgW2ZpcnN0XT1cImZpcnN0XCIgW2xhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICAgIFtwcmV2ZW50Q29sbGFwc2VdPSdwcmV2ZW50Q29sbGFwc2UnIFtoaWRlUGFuZWxIZWFkZXJdPSdoaWRlUGFuZWxIZWFkZXInPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFza1BhbmVsSGVhZGVyPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dD1cInJvd1wiIGZ4RmxleD1cIjk1XCIgKGNsaWNrKT1cInByZXZlbnRTZWxlY3Rpb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmZWF0dXJlZEZpZWxkc1ZhbHVlczsgbGV0IGkgPSBpbmRleFwiIGZ4RmxleFxuICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtY29sdW1uLWRpdlwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQteGxdPVwiaSA+PSA0ICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LWxnXT1cImkgPj0gMyAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1tZF09XCJpID49IDIgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtc21dPVwiaSA+PSAxICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3BhbmVsLWhlYWRlci1wYWRkaW5nJzogIXRleHRFbGxpcHNpcyAmJiBmaWVsZC50eXBlICE9PSAnYnV0dG9uJ31cIj5cbiAgICAgICAgICAgICAgICA8bmMtcGFuZWwtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGVhZGluZ0ljb25dPVwidGFza1BhbmVsRGF0YS50YXNrLmljb25cIlxuICAgICAgICAgICAgICAgICAgICBbbGVhZGluZ0ljb25FbmFibGVkXT1cImkgPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICBbZmVhdHVyZWRWYWx1ZV09XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0RWxsaXBzaXNdPVwidGV4dEVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgPC9uYy1wYW5lbC1pdGVtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIiBmeEZsZXg9XCI1XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicHJldmVudFBhbmVsT3BlbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nICYmIHNob3dNb3JlTWVudSAmJiAoY2FuQXNzaWduKCkgfHwgY2FuRG8oJ2RlbGVnYXRlJykgfHwgY2FuUmVhc3NpZ24oKSB8fCBjYW5DYW5jZWwoKSB8fCBjYW5GaW5pc2goKSlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuQXNzaWduKClcIiAoY2xpY2spPVwiYXNzaWduKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnYXNzaWduJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldEFzc2lnblRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5EbygnZGVsZWdhdGUnKVwiIChjbGljayk9XCJkZWxlZ2F0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdkZWxlZ2F0ZScpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb25fb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldERlbGVnYXRlVGl0bGUoKSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhblJlYXNzaWduKClcIiAoY2xpY2spPVwiZGVsZWdhdGUoKVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdyZWFzc2lnbicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb25fYWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ3Rhc2tzLnZpZXcucmVhc3NpZ24nIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuQ2FuY2VsKClcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnY2FuY2VsJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldENhbmNlbFRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5GaW5pc2goKVwiIChjbGljayk9XCJmaW5pc2goKVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdmaW5pc2gnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZG9uZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldEZpbmlzaFRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMzBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFza1BhbmVsQ29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLW1haW4tY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCIoaXNGb3JjZU9wZW4oKSAmJiB7J21pbi1oZWlnaHQnOiBnZXRDb250ZW50TWluSGVpZ2h0KCl9KSB8fCBudWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFzay1wYW5lbC1ib2R5XCIgW25nQ2xhc3NdPVwieydwYXBlci12aWV3JzogaXNQYXBlclZpZXcoKX1cIiBmeEZsZXg9XCIxMDBcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWFjdGlvbi1yb3cgKm5nSWY9XCIhaGlkZUFjdGlvblJvd1wiIGZ4TGF5b3V0Lmx0LXNtPVwiY29sdW1uXCIgW25nU3R5bGVdPVwieydqdXN0aWZ5LWNvbnRlbnQnOiBhY3Rpb25Sb3dKdXN0aWZ5Q29udGVudCA/PyAnZmxleC1lbmQnIH1cIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9J2FjdGlvbi1yb3ctc3Bpbm5lcicgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaGlkZVBhbmVsSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjIwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ24ubHQtc209XCJjZW50ZXIgc3RyZXRjaFwiIG5nQ2xhc3MubHQtc209XCJ3aWR0aC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPSdsZXQgYnV0dG9uIG9mICghIWFjdGlvbkJ1dHRvblRlbXBsYXRlcyAmJiBhY3Rpb25CdXR0b25UZW1wbGF0ZXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvblRlbXBsYXRlcyA6IFthc3NpZ25CdXR0b24sIGRlbGVnYXRlQnV0dG9uLCByZWFzc2lnbkJ1dHRvbiwgY2FuY2VsQnV0dG9uLCBmaW5pc2hCdXR0b24sIGNvbGxhcHNlQnV0dG9uXSknPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PSdidXR0b247IGNvbnRleHQ6dGhpc0NvbnRleHQnPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtYWN0aW9uLXJvdz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmMtYXBwLXBhbmVsPlxuXG48bmctdGVtcGxhdGUgI2Fzc2lnbkJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuQXNzaWduKCkgJiYgZ2V0QXNzaWduVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJhc3NpZ24oKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnYXNzaWduJylcIj5cbiAgICAgICAge3sgZ2V0QXNzaWduVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWxlZ2F0ZUJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuRG8oJ2RlbGVnYXRlJykgJiYgZ2V0RGVsZWdhdGVUaXRsZSgpPy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2RlbGVnYXRlJylcIj5cbiAgICAgICAge3sgZ2V0RGVsZWdhdGVUaXRsZSgpIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlYXNzaWduQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5SZWFzc2lnbigpXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ3JlYXNzaWduJylcIj5cbiAgICAgICAge3sgJ3Rhc2tzLnZpZXcucmVhc3NpZ24nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NhbmNlbEJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuQ2FuY2VsKCkgJiYgZ2V0Q2FuY2VsVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJjYW5jZWwoKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnY2FuY2VsJylcIj5cbiAgICAgICAge3sgZ2V0Q2FuY2VsVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmaW5pc2hCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkZpbmlzaCgpICYmIGdldEZpbmlzaFRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiZmluaXNoKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2ZpbmlzaCcpXCI+XG4gICAgICAgIHt7IGdldEZpbmlzaFRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sbGFwc2VCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkNvbGxhcHNlKClcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29sbGFwc2UoKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAge3sgJ3Rhc2tzLnZpZXcuY29sbGFwc2UnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsL3Rhc2stcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvcGFuZWwvdGFzay1wYW5lbC90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBRTNCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsdUNBQXVDLEVBSXZDLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLGtCQUFrQixFQUNsQixZQUFZLEVBRWYsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBeUI1RixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBRTlELFlBQXNCLG1CQUF1QyxFQUN2QyxJQUFtQixFQUNuQixnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsaUJBQW1DLEVBQ25DLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFDekMsa0JBQXFDLEVBQ3JDLGtCQUFxQyxFQUNyQyxVQUFtQyxFQUNuQyxnQkFBaUMsRUFDakMsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN6QyxVQUE0QixFQUM1QixVQUE0QixFQUNULGVBQXNDLEVBQ0ksaUJBQXdDLEVBQ3BELFNBQWtCLEVBQ25FLGVBQXlCLEVBQ3pCLGFBQTJCLEVBQzNCLHFCQUEyQyxFQUMzQyxrQkFBcUMsRUFDbkMsZUFBZ0MsRUFDTyxjQUF1QixFQUN4QyxlQUFnQztRQUMxRSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFDaEcsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUMxRixvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQzVJLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUE1QnhELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUVpQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVCO1FBQ3BELGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbkUsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBRUksbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFNbEYsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRVMsbUJBQW1CO1FBQ3pCLE1BQU0sU0FBUyxHQUEwQjtZQUNyQyxFQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFDO1lBQ2pFLEVBQUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFDO1NBQ25FLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQztRQUU1RSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7O2dIQWhEUSxrQkFBa0Isa2dCQWlCUCxtQkFBbUIsYUFDUCx1Q0FBdUMsNkJBQ3ZDLDJCQUEyQixxTUFNM0IsbUJBQW1CLDZCQUNuQixZQUFZO29HQTFCbkMsa0JBQWtCLHdDQWpCaEI7UUFDUCxFQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUM7UUFDakUsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFDO0tBQ2xFLGlEQ3hETCw2L0xBb0dBOzRGRDFDYSxrQkFBa0I7a0JBckI5QixTQUFTOytCQUNJLGVBQWUsYUFHZDt3QkFDUCxFQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUM7d0JBQ2pFLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQztxQkFDbEU7OzBCQW1CWSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUNBQXVDOzswQkFDMUQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkI7OzBCQUs5QyxRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQ3RDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgU3RhdGljUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudCxcbiAgICBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgIEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgIEJPT0xFQU5fVkFMVUVfTEFCRUxfRU5BQkxFRCxcbiAgICBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgIENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgIERhdGFGb2N1c1BvbGljeVNlcnZpY2UsXG4gICAgRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICBEaXNhYmxlQnV0dG9uRnVudGlvbnMsXG4gICAgRmluaXNoUG9saWN5U2VydmljZSxcbiAgICBGaW5pc2hUYXNrU2VydmljZSxcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE5BRV9UQVNLX0ZPUkNFX09QRU4sXG4gICAgTkFFX1RBU0tfT1BFUkFUSU9OUyxcbiAgICBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlMsXG4gICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgIFBhcGVyVmlld1NlcnZpY2UsXG4gICAgUGVybWlzc2lvblNlcnZpY2UsXG4gICAgU2luZ2xlVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgIFN1YmplY3RUYXNrT3BlcmF0aW9ucyxcbiAgICBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgVGFza0RhdGFTZXJ2aWNlLFxuICAgIFRhc2tFdmVudFNlcnZpY2UsXG4gICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIEZyb250QWN0aW9uU2VydmljZSxcbiAgICBOQUVfVEFCX0RBVEEsXG4gICAgSW5qZWN0ZWRUYWJEYXRhXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge1Rhc2tDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvdGFzay1jb250ZW50L3Rhc2stY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLXRhc2stcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBUYXNrQ29udGVudFNlcnZpY2UsIHVzZUNsYXNzOiBTaW5nbGVUYXNrQ29udGVudFNlcnZpY2V9LFxuICAgICAgICBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgIEZyb250QWN0aW9uU2VydmljZSxcbiAgICAgICAgVGFza0V2ZW50U2VydmljZSxcbiAgICAgICAgQXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgIERlbGVnYXRlVGFza1NlcnZpY2UsXG4gICAgICAgIENhbmNlbFRhc2tTZXJ2aWNlLFxuICAgICAgICBGaW5pc2hUYXNrU2VydmljZSxcbiAgICAgICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgIERhdGFGb2N1c1BvbGljeVNlcnZpY2UsXG4gICAgICAgIEFzc2lnblBvbGljeVNlcnZpY2UsXG4gICAgICAgIEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICB7cHJvdmlkZTogTkFFX1RBU0tfT1BFUkFUSU9OUywgdXNlQ2xhc3M6IFN1YmplY3RUYXNrT3BlcmF0aW9uc30sXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wYXBlclZpZXc6IFBhcGVyVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYXNzaWduVGFza1NlcnZpY2U6IEFzc2lnblRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZGVsZWdhdGVUYXNrU2VydmljZTogRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbmNlbFRhc2tTZXJ2aWNlOiBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFRhc2tTZXJ2aWNlOiBGaW5pc2hUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tTdGF0ZTogVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRGF0YVNlcnZpY2U6IFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblBvbGljeVNlcnZpY2U6IEFzc2lnblBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hQb2xpY3lTZXJ2aWNlOiBGaW5pc2hQb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FsbENoYWluOiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBU0tfT1BFUkFUSU9OUykgX3Rhc2tPcGVyYXRpb25zOiBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlMpIHByb3RlY3RlZCBfZGlzYWJsZUZ1bmN0aW9uczogRGlzYWJsZUJ1dHRvbkZ1bnRpb25zLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQk9PTEVBTl9WQUxVRV9MQUJFTF9FTkFCTEVEKSBwcm90ZWN0ZWQgaXNFbmFibGVkOiBib29sZWFuLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGFyZW50SW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jaGFuZ2VkRmllbGRzU2VydmljZTogQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFTS19GT1JDRV9PUEVOKSBwcm90ZWN0ZWQgX3Rhc2tGb3JjZU9wZW46IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhKSB7XG4gICAgICAgIHN1cGVyKF90YXNrQ29udGVudFNlcnZpY2UsIF9sb2csIF90YXNrVmlld1NlcnZpY2UsIF9wYXBlclZpZXcsIF90YXNrRXZlbnRTZXJ2aWNlLCBfYXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgICAgICBfZGVsZWdhdGVUYXNrU2VydmljZSwgX2NhbmNlbFRhc2tTZXJ2aWNlLCBfZmluaXNoVGFza1NlcnZpY2UsIF90YXNrU3RhdGUsIF90YXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICBfYXNzaWduUG9saWN5U2VydmljZSwgX2ZpbmlzaFBvbGljeVNlcnZpY2UsIF9jYWxsQ2hhaW4sIF90YXNrT3BlcmF0aW9ucywgX2Rpc2FibGVGdW5jdGlvbnMsIF90cmFuc2xhdGUsIF9jdXJyZW5jeVBpcGUsIF9jaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgICAgIF9wZXJtaXNzaW9uU2VydmljZSwgb3ZlcmZsb3dTZXJ2aWNlLCBfdGFza0ZvcmNlT3BlbiwgaW5qZWN0ZWRUYWJEYXRhKTtcbiAgICAgICAgaWYgKF90YXNrRm9yY2VPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVQYW5lbEhlYWRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQ29udGVudFBvcnRhbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXJzOiBBcnJheTxTdGF0aWNQcm92aWRlcj4gPSBbXG4gICAgICAgICAgICB7cHJvdmlkZTogVGFza0NvbnRlbnRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlfSxcbiAgICAgICAgICAgIHtwcm92aWRlOiBCT09MRUFOX1ZBTFVFX0xBQkVMX0VOQUJMRUQsIHVzZVZhbHVlOiB0aGlzLmlzRW5hYmxlZH1cbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3Byb3ZpZGVycywgcGFyZW50OiB0aGlzLl9wYXJlbnRJbmplY3Rvcn0pO1xuXG4gICAgICAgIGlmICh0aGlzLnBhbmVsQ29udGVudENvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoVGFza0NvbnRlbnRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLnBhbmVsQ29udGVudENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5jLWFwcC1wYW5lbCBbcGFuZWxDb250ZW50XT1cInRhc2tQYW5lbENvbnRlbnRcIiBbcGFuZWxIZWFkZXJdPVwidGFza1BhbmVsSGVhZGVyXCJcbiAgICAgICAgICAgICAgKHN0b3BMb2FkaW5nKT1cInN0b3BMb2FkaW5nKClcIiAoZ2V0RXhwYW5zaW9uUGFuZWxSZWYpPVwic2V0UGFuZWxSZWYoJGV2ZW50KVwiIFtmaXJzdF09XCJmaXJzdFwiIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICBbcHJldmVudENvbGxhcHNlXT0ncHJldmVudENvbGxhcHNlJyBbaGlkZVBhbmVsSGVhZGVyXT0naGlkZVBhbmVsSGVhZGVyJz5cbiAgICA8bmctdGVtcGxhdGUgI3Rhc2tQYW5lbEhlYWRlcj5cbiAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeEZsZXg9XCI5NVwiIChjbGljayk9XCJwcmV2ZW50U2VsZWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmVhdHVyZWRGaWVsZHNWYWx1ZXM7IGxldCBpID0gaW5kZXhcIiBmeEZsZXhcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWNvbHVtbi1kaXZcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LXhsXT1cImkgPj0gNCAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1sZ109XCJpID49IDMgJiYgcmVzcG9uc2l2ZUJvZHkgJiYgIW92ZXJmbG93TW9kZVwiXG4gICAgICAgICAgICAgICAgIFtmeEhpZGUubHQtbWRdPVwiaSA+PSAyICYmIHJlc3BvbnNpdmVCb2R5ICYmICFvdmVyZmxvd01vZGVcIlxuICAgICAgICAgICAgICAgICBbZnhIaWRlLmx0LXNtXT1cImkgPj0gMSAmJiByZXNwb25zaXZlQm9keSAmJiAhb3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwYW5lbC1oZWFkZXItcGFkZGluZyc6ICF0ZXh0RWxsaXBzaXMgJiYgZmllbGQudHlwZSAhPT0gJ2J1dHRvbid9XCI+XG4gICAgICAgICAgICAgICAgPG5jLXBhbmVsLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uXT1cInRhc2tQYW5lbERhdGEudGFzay5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdJY29uRW5hYmxlZF09XCJpID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVkVmFsdWVdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dEVsbGlwc2lzXT1cInRleHRFbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDwvbmMtcGFuZWwtaXRlbT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgZnhGbGV4PVwiNVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInByZXZlbnRQYW5lbE9wZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiBzaG93TW9yZU1lbnUgJiYgKGNhbkFzc2lnbigpIHx8IGNhbkRvKCdkZWxlZ2F0ZScpIHx8IGNhblJlYXNzaWduKCkgfHwgY2FuQ2FuY2VsKCkgfHwgY2FuRmluaXNoKCkpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkFzc2lnbigpXCIgKGNsaWNrKT1cImFzc2lnbigpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2Fzc2lnbicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRBc3NpZ25UaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRG8oJ2RlbGVnYXRlJylcIiAoY2xpY2spPVwiZGVsZWdhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZGVsZWdhdGUnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXREZWxlZ2F0ZVRpdGxlKCkgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5SZWFzc2lnbigpXCIgKGNsaWNrKT1cImRlbGVnYXRlKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgncmVhc3NpZ24nKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uX2FkZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICd0YXNrcy52aWV3LnJlYXNzaWduJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdJZj1cImNhbkNhbmNlbCgpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2NhbmNlbCcpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRDYW5jZWxUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiY2FuRmluaXNoKClcIiAoY2xpY2spPVwiZmluaXNoKClcIiBbZGlzYWJsZWRdPVwiY2FuRGlzYWJsZSgnZmluaXNoJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaW5pc2hUaXRsZSgpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3Rhc2tQYW5lbENvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1tYWluLWNvbnRlbnRcIiBmeExheW91dD1cImNvbHVtblwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwiKGlzRm9yY2VPcGVuKCkgJiYgeydtaW4taGVpZ2h0JzogZ2V0Q29udGVudE1pbkhlaWdodCgpfSkgfHwgbnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhc2stcGFuZWwtYm9keVwiIFtuZ0NsYXNzXT1cInsncGFwZXItdmlldyc6IGlzUGFwZXJWaWV3KCl9XCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1hY3Rpb24tcm93ICpuZ0lmPVwiIWhpZGVBY3Rpb25Sb3dcIiBmeExheW91dC5sdC1zbT1cImNvbHVtblwiIFtuZ1N0eWxlXT1cInsnanVzdGlmeS1jb250ZW50JzogYWN0aW9uUm93SnVzdGlmeUNvbnRlbnQgPz8gJ2ZsZXgtZW5kJyB9XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPSdhY3Rpb24tcm93LXNwaW5uZXInICpuZ0lmPVwiaXNMb2FkaW5nICYmIGhpZGVQYW5lbEhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIyMFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dEFsaWduLmx0LXNtPVwiY2VudGVyIHN0cmV0Y2hcIiBuZ0NsYXNzLmx0LXNtPVwid2lkdGgtMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj0nbGV0IGJ1dHRvbiBvZiAoISFhY3Rpb25CdXR0b25UZW1wbGF0ZXMgJiYgYWN0aW9uQnV0dG9uVGVtcGxhdGVzLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b25UZW1wbGF0ZXMgOiBbYXNzaWduQnV0dG9uLCBkZWxlZ2F0ZUJ1dHRvbiwgcmVhc3NpZ25CdXR0b24sIGNhbmNlbEJ1dHRvbiwgZmluaXNoQnV0dG9uLCBjb2xsYXBzZUJ1dHRvbl0pJz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nYnV0dG9uOyBjb250ZXh0OnRoaXNDb250ZXh0Jz48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWFjdGlvbi1yb3c+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25jLWFwcC1wYW5lbD5cblxuPG5nLXRlbXBsYXRlICNhc3NpZ25CdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkFzc2lnbigpICYmIGdldEFzc2lnblRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiYXNzaWduKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2Fzc2lnbicpXCI+XG4gICAgICAgIHt7IGdldEFzc2lnblRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVsZWdhdGVCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkRvKCdkZWxlZ2F0ZScpICYmIGdldERlbGVnYXRlVGl0bGUoKT8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJkZWxlZ2F0ZSgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdkZWxlZ2F0ZScpXCI+XG4gICAgICAgIHt7IGdldERlbGVnYXRlVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZWFzc2lnbkJ1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY2FuUmVhc3NpZ24oKVwiIChjbGljayk9XCJkZWxlZ2F0ZSgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdyZWFzc2lnbicpXCI+XG4gICAgICAgIHt7ICd0YXNrcy52aWV3LnJlYXNzaWduJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYW5jZWxCdXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNhbkNhbmNlbCgpICYmIGdldENhbmNlbFRpdGxlKCk/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNhbkRpc2FibGUoJ2NhbmNlbCcpXCI+XG4gICAgICAgIHt7IGdldENhbmNlbFRpdGxlKCkgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmluaXNoQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5GaW5pc2goKSAmJiBnZXRGaW5pc2hUaXRsZSgpPy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImZpbmlzaCgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJjYW5EaXNhYmxlKCdmaW5pc2gnKVwiPlxuICAgICAgICB7eyBnZXRGaW5pc2hUaXRsZSgpIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbGxhcHNlQnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5Db2xsYXBzZSgpXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbGxhcHNlKClcIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgIHt7ICd0YXNrcy52aWV3LmNvbGxhcHNlJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|