@indice/ng-components 0.2.133-beta → 0.2.134
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/README.md +4 -4
- package/_styles.css +25 -72
- package/bundles/indice-ng-components.umd.js +212 -119
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +1 -1
- package/esm2015/lib/controls/list-view/list-column.component.js +1 -1
- package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +2 -2
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +40 -0
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +68 -0
- package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +1 -1
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +70 -68
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +11 -6
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +5 -6
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +1 -3
- package/esm2015/lib/ng-components.module.js +7 -6
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +2 -2
- package/esm2015/lib/services/toaster.service.js +1 -1
- package/esm2015/lib/tokens.js +2 -1
- package/esm2015/lib/types.js +10 -7
- package/esm2015/public-api.js +2 -2
- package/fesm2015/indice-ng-components.js +189 -106
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +15 -0
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +23 -0
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +21 -24
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +3 -2
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +2 -3
- package/lib/ng-components.module.d.ts +6 -5
- package/lib/tokens.d.ts +1 -0
- package/lib/types.d.ts +27 -10
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2015/lib/pipes/obs-with-status.pipe.js +0 -26
- package/lib/pipes/obs-with-status.pipe.d.ts +0 -13
|
@@ -1,110 +1,100 @@
|
|
|
1
|
-
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { NavigationStart, Router } from '@angular/router';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
import { APP_LINKS } from '../../../tokens';
|
|
5
|
-
import { Observable, of } from 'rxjs';
|
|
6
1
|
import { AuthService } from '@indice/ng-auth';
|
|
2
|
+
import { Component, Inject, Input } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute, NavigationStart, Router } from '@angular/router';
|
|
4
|
+
import { filter, share } from 'rxjs/operators';
|
|
5
|
+
import { APP_LINKS, SHELL_CONFIG } from '../../../tokens';
|
|
6
|
+
import { of } from 'rxjs';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "@
|
|
8
|
+
import * as i1 from "../../../controls/nav-links-list/nav-links-list.component";
|
|
9
|
+
import * as i2 from "../../../controls/notifications-indicator/notifications-indicator.component";
|
|
10
|
+
import * as i3 from "@angular/router";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "../../../directives/click-outside.directive";
|
|
13
|
+
import * as i6 from "@indice/ng-auth";
|
|
12
14
|
export class ShellHeaderComponent {
|
|
13
|
-
constructor(authService, router, links) {
|
|
15
|
+
constructor(authService, router, route, config, links) {
|
|
14
16
|
this.authService = authService;
|
|
15
17
|
this.router = router;
|
|
18
|
+
this.route = route;
|
|
19
|
+
this.config = config;
|
|
16
20
|
this.links = links;
|
|
17
21
|
// tslint:disable-next-line:no-input-rename
|
|
18
22
|
this.sectionLinksPath = 'main';
|
|
19
|
-
|
|
20
|
-
this.allNotificationsLinkPath = 'allNotifications';
|
|
21
|
-
this.border = true;
|
|
22
|
-
this.showNotifications = false;
|
|
23
|
-
this.showUserNameOnHeader = false;
|
|
24
|
-
this.notificationsMenuVisible = true;
|
|
23
|
+
// tslint:disable-next-line:no-input-rename
|
|
25
24
|
this.profileMenuVisible = true;
|
|
25
|
+
// tslint:disable-next-line:no-input-rename
|
|
26
|
+
this.showUserNameOnHeader = false;
|
|
27
|
+
// tslint:disable-next-line:no-input-rename
|
|
28
|
+
this.showAlerts = false;
|
|
29
|
+
this.border = true;
|
|
26
30
|
this.sectionLinks = of([]);
|
|
27
|
-
this.notificationLinks = of([]);
|
|
28
|
-
this.allNotificationsLink = of();
|
|
29
31
|
this.mobileMenuExpanded = false;
|
|
30
32
|
this.userMenuExpanded = false;
|
|
31
|
-
this.notificationsMenuExpanded = false;
|
|
32
|
-
this.routeSubject = new Observable();
|
|
33
33
|
this.routerSub$ = null;
|
|
34
34
|
this.userSub$ = null;
|
|
35
35
|
this.statusSub$ = null;
|
|
36
36
|
this.user = null;
|
|
37
37
|
this.avatarName = null;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (this.routerSub$) {
|
|
41
|
-
this.routerSub$.unsubscribe();
|
|
42
|
-
}
|
|
43
|
-
// TODO: check authenticated user here before we start polling server status
|
|
44
|
-
if (this.statusSub$) {
|
|
45
|
-
this.statusSub$.unsubscribe();
|
|
46
|
-
}
|
|
47
|
-
if (this.userSub$) {
|
|
48
|
-
this.userSub$.unsubscribe();
|
|
49
|
-
}
|
|
38
|
+
this.activeFragment = null;
|
|
39
|
+
this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));
|
|
50
40
|
}
|
|
51
41
|
ngOnInit() {
|
|
52
|
-
|
|
53
|
-
this.showNotifications = (_a = this.config) === null || _a === void 0 ? void 0 : _a.showNotifications;
|
|
54
|
-
this.showUserNameOnHeader = (_b = this.config) === null || _b === void 0 ? void 0 : _b.showUserNameOnHeader;
|
|
42
|
+
this.activeFragment = this.route.fragment.pipe(share());
|
|
55
43
|
this.sectionLinks = this.links[this.sectionLinksPath];
|
|
56
|
-
this.
|
|
57
|
-
this.allNotificationsLink = this.links[this.allNotificationsLinkPath];
|
|
58
|
-
this.routerSub$ = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => {
|
|
44
|
+
this.routerSub$ = this.routeSubject.subscribe((event) => {
|
|
59
45
|
this.mobileMenuExpanded = false;
|
|
60
46
|
this.userMenuExpanded = false;
|
|
61
|
-
this.notificationsMenuExpanded = false;
|
|
62
47
|
});
|
|
63
48
|
this.authService.loadUser().subscribe((user) => {
|
|
64
|
-
console.log(user);
|
|
65
49
|
this.setCurrentUser(user);
|
|
66
50
|
}, error => {
|
|
67
|
-
console.
|
|
51
|
+
console.error(error);
|
|
68
52
|
});
|
|
69
53
|
// Detect user changes and display / or not user info accordingly...
|
|
70
54
|
this.userSub$ = this.authService.user$.subscribe((user) => {
|
|
71
55
|
// console.log('ShellHeaderComponent user subscription');
|
|
72
56
|
this.setCurrentUser(user);
|
|
73
57
|
});
|
|
58
|
+
// set current lang if no current value from langs if any
|
|
59
|
+
if (!this.currentLang && this.langs && this.langs.length > 0) {
|
|
60
|
+
this.setCurrentLang(this.langs[0]);
|
|
61
|
+
}
|
|
74
62
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
63
|
+
ngOnDestroy() {
|
|
64
|
+
if (this.routerSub$) {
|
|
65
|
+
this.routerSub$.unsubscribe();
|
|
66
|
+
}
|
|
67
|
+
// TODO: check authenticated user here before we start polling server status
|
|
68
|
+
if (this.statusSub$) {
|
|
69
|
+
this.statusSub$.unsubscribe();
|
|
70
|
+
}
|
|
71
|
+
if (this.userSub$) {
|
|
72
|
+
this.userSub$.unsubscribe();
|
|
81
73
|
}
|
|
82
74
|
}
|
|
83
75
|
// tslint:disable-next-line:typedef
|
|
84
|
-
|
|
76
|
+
onClickOutside($event) {
|
|
85
77
|
this.userMenuExpanded = false;
|
|
86
78
|
}
|
|
87
|
-
// tslint:disable-next-line:typedef
|
|
88
|
-
onClickOutsideNotifications($event) {
|
|
89
|
-
this.notificationsMenuExpanded = false;
|
|
90
|
-
}
|
|
91
79
|
signin(event) {
|
|
92
80
|
if (event) {
|
|
93
81
|
event.preventDefault();
|
|
94
82
|
}
|
|
95
83
|
this.authService.signinRedirect();
|
|
96
84
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.
|
|
85
|
+
setCurrentUser(user) {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
this.user = user;
|
|
88
|
+
if (this.user && this.user.profile) {
|
|
89
|
+
this.avatarName = `${(_a = this.user.profile.given_name) === null || _a === void 0 ? void 0 : _a.charAt(0)}${(_b = this.user.profile.family_name) === null || _b === void 0 ? void 0 : _b.charAt(0)}`.toUpperCase();
|
|
90
|
+
}
|
|
100
91
|
}
|
|
101
|
-
|
|
102
|
-
this.
|
|
103
|
-
this.userMenuExpanded = false;
|
|
92
|
+
setCurrentLang(lang) {
|
|
93
|
+
this.currentLang = lang;
|
|
104
94
|
}
|
|
105
95
|
}
|
|
106
|
-
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
ShellHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], notificationLinksPath: ["notification-links", "notificationLinksPath"], allNotificationsLinkPath: ["all-notifications", "allNotificationsLinkPath"], config: "config", border: "border" }, ngImport: i0, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n <div>\r\n <a href=\"#\"\r\n [routerLink]=\"['/']\"><img class=\"app-logo\"\r\n [src]=\"config.appLogo\"\r\n [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [routerLinkActive]=\"['nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n\r\n <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\"\r\n [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Profile dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n *ngIf=\"profileMenuVisible\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\"\r\n class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"user\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <!-- <a href=\"#\" class=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100\" role=\"menuitem\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <!-- <a *ngIf=\"link.external\" [attr.href]=\"link.path\" [attr.target]=\"'_blank'\" class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a> -->\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-profile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideNotifications($event)\"\r\n *ngIf=\"notificationsMenuVisible\">\r\n <!-- Notifications Button -->\r\n <button class=\"mobile-menu-rounded-button bg-transparent\"\r\n *ngIf=\"showNotifications\"\r\n (click)=\"expandNotificationsMenu()\"\r\n id=\"notifications-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n\r\n <div *ngIf=\"notificationsMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-notifications-dropdown-with-username' : 'shell-header-notifications-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"notifications-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!notificationLinks; else notificationsDropDown\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-template #notificationsDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"notificationLinks | async as obs; else loading\">\r\n <ng-container *ngFor=\"let link of obs\">\r\n <li class=\"mb-2\"\r\n [ngClass]=\"{'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !link.isRead }\">\r\n <a [routerLink]=\"link.path\"\r\n class=\"nav-link-notifications grid grid-row\"\r\n [ngClass]=\"!link.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\">\r\n <span class=\"font-bold\">\r\n {{ link.text }}\r\n </span>\r\n <span class=\"font-thin tracking-tighter\">\r\n {{ link.creationDate | date: 'EEE, d MMMM' }}\r\n </span>\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n \r\n\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button type=\"button\"\r\n class=\"shell-header-notifications-dropdown-view-all-button\">\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03CC\u03BB\u03C9\u03BD</button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg class=\"block h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg class=\"hidden h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\"\r\n *ngIf=\"mobileMenuExpanded\"\r\n id=\"mobile-menu\">\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a *ngIf=\"!link.external\"\r\n [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user\">\r\n <a href=\"#\"\r\n (click)=\"signin($event)\"\r\n class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"mobile-menu-user-info-container\"\r\n *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <!-- <a href=\"#\" class=\"block px-3 py-2 rounded-sm text-base font-medium text-gray-400 hover:text-white hover:bg-gray-700\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe, "date": i2.DatePipe } });
|
|
96
|
+
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
ShellHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], profileMenuVisible: ["profile-menu", "profileMenuVisible"], showUserNameOnHeader: ["show-userName", "showUserNameOnHeader"], showAlerts: ["show-alerts", "showAlerts"], langs: "langs", currentLang: ["current-lang", "currentLang"], border: "border" }, ngImport: i0, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"langs && langs.length > 1 && currentLang\" class=\"shell-header-links-far-container\">\r\n <button class=\"text-blue-300 hover:text-blue-500\">\r\n <span>{{currentLang}}</span>\r\n <i class=\"text-xs ml-1 ms-Icon ms-Icon--ChevronDown\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n <!-- <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutside($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\" [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container> -->\r\n\r\n <div *ngIf=\"showAlerts && user\" class=\"mr-2\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-2 relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\" *ngIf=\"user\" (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\r\n", components: [{ type: i1.NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class"] }, { type: i2.NotificationsIndicatorComponent, selector: "lib-notifications-indicator" }], directives: [{ type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
108
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, decorators: [{
|
|
109
99
|
type: Component,
|
|
110
100
|
args: [{
|
|
@@ -112,27 +102,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
112
102
|
selector: 'lib-shell-header',
|
|
113
103
|
templateUrl: './shell-header.component.html',
|
|
114
104
|
}]
|
|
115
|
-
}], ctorParameters: function () { return [{ type:
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i6.AuthService, decorators: [{
|
|
116
106
|
type: Inject,
|
|
117
107
|
args: [AuthService]
|
|
118
|
-
}] }, { type:
|
|
108
|
+
}] }, { type: i3.Router, decorators: [{
|
|
119
109
|
type: Inject,
|
|
120
110
|
args: [Router]
|
|
111
|
+
}] }, { type: i3.ActivatedRoute, decorators: [{
|
|
112
|
+
type: Inject,
|
|
113
|
+
args: [ActivatedRoute]
|
|
114
|
+
}] }, { type: undefined, decorators: [{
|
|
115
|
+
type: Inject,
|
|
116
|
+
args: [SHELL_CONFIG]
|
|
121
117
|
}] }, { type: undefined, decorators: [{
|
|
122
118
|
type: Inject,
|
|
123
119
|
args: [APP_LINKS]
|
|
124
120
|
}] }]; }, propDecorators: { sectionLinksPath: [{
|
|
125
121
|
type: Input,
|
|
126
122
|
args: ['section-links']
|
|
127
|
-
}],
|
|
123
|
+
}], profileMenuVisible: [{
|
|
124
|
+
type: Input,
|
|
125
|
+
args: ['profile-menu']
|
|
126
|
+
}], showUserNameOnHeader: [{
|
|
128
127
|
type: Input,
|
|
129
|
-
args: ['
|
|
130
|
-
}],
|
|
128
|
+
args: ['show-userName']
|
|
129
|
+
}], showAlerts: [{
|
|
131
130
|
type: Input,
|
|
132
|
-
args: ['
|
|
133
|
-
}],
|
|
131
|
+
args: ['show-alerts']
|
|
132
|
+
}], langs: [{
|
|
134
133
|
type: Input
|
|
134
|
+
}], currentLang: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: ['current-lang']
|
|
135
137
|
}], border: [{
|
|
136
138
|
type: Input
|
|
137
139
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWhlYWRlci9zaGVsbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFPOUMsTUFBTSxPQUFPLG9CQUFvQjtJQXlCL0IsWUFBeUMsV0FBd0IsRUFDdkMsTUFBYyxFQUNaLEtBQVU7UUFGRyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBSztRQTFCdEMsMkNBQTJDO1FBQ25CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUNyQiwwQkFBcUIsR0FBRyxlQUFlLENBQUM7UUFDekMsNkJBQXdCLEdBQUcsa0JBQWtCLENBQUM7UUFHakUsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNoQixzQkFBaUIsR0FBd0Is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Z0IsR0FBRyxLQUFLLENBQUE7SUFDL0IsQ0FBQzs7aUhBcEdVLG9CQUFvQixrQkF5QlgsV0FBVyxhQUNyQixNQUFNLGFBQ04sU0FBUztxR0EzQlIsb0JBQW9CLHNUQ2RqQyx3aGNBaVNNOzJGRG5STyxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3Qzs7MEJBMEJjLE1BQU07MkJBQUMsV0FBVzs7MEJBQzVCLE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxTQUFTOzRDQXpCSyxnQkFBZ0I7c0JBQXZDLEtBQUs7dUJBQUMsZUFBZTtnQkFDTyxxQkFBcUI7c0JBQWpELEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNDLHdCQUF3QjtzQkFBbkQsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBRWpCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdvaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBOYXZMaW5rLCBOb3RpZmljYXRpb25OYXZMaW5rIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBUFBfTElOS1MgfSBmcm9tICcuLi8uLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VjdGlvbi1saW5rcycpIHNlY3Rpb25MaW5rc1BhdGggPSAnbWFpbic7XHJcbiAgQElucHV0KCdub3RpZmljYXRpb24tbGlua3MnKSBub3RpZmljYXRpb25MaW5rc1BhdGggPSAnbm90aWZpY2F0aW9ucyc7XHJcbiAgQElucHV0KCdhbGwtbm90aWZpY2F0aW9ucycpIGFsbE5vdGlmaWNhdGlvbnNMaW5rUGF0aCA9ICdhbGxOb3RpZmljYXRpb25zJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCkgY29uZmlnITogSVNoZWxsQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGJvcmRlciA9IHRydWU7XHJcbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25zOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dVc2VyTmFtZU9uSGVhZGVyOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNNZW51VmlzaWJsZSA9IHRydWU7XHJcbiAgcHVibGljIHByb2ZpbGVNZW51VmlzaWJsZSA9IHRydWU7XHJcbiAgcHVibGljIHNlY3Rpb25MaW5rczogT2JzZXJ2YWJsZTxOYXZMaW5rW10+ID0gb2YoW10pO1xyXG4gIHB1YmxpYyBub3RpZmljYXRpb25MaW5rczogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25OYXZMaW5rW10+ID0gb2YoW10pO1xyXG4gIHB1YmxpYyBhbGxOb3RpZmljYXRpb25zTGluazogT2JzZXJ2YWJsZTxOYXZMaW5rPiA9IG9mKCk7XHJcbiAgcHVibGljIG1vYmlsZU1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyB1c2VyTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgcm91dGVTdWJqZWN0OiBPYnNlcnZhYmxlPEV2ZW50PiA9IG5ldyBPYnNlcnZhYmxlPEV2ZW50PigpO1xyXG4gIHByb3RlY3RlZCByb3V0ZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgdXNlclN1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHByb3RlY3RlZCBzdGF0dXNTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgdXNlcjogVXNlciB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBhdmF0YXJOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBdXRoU2VydmljZSkgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFJvdXRlcikgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIEBJbmplY3QoQVBQX0xJTktTKSBwdWJsaWMgbGlua3M6IGFueSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMucm91dGVyU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgLy8gVE9ETzogY2hlY2sgYXV0aGVudGljYXRlZCB1c2VyIGhlcmUgYmVmb3JlIHdlIHN0YXJ0IHBvbGxpbmcgc2VydmVyIHN0YXR1c1xyXG4gICAgaWYgKHRoaXMuc3RhdHVzU3ViJCkge1xyXG4gICAgICB0aGlzLnN0YXR1c1N1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnVzZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMudXNlclN1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9ucyA9IHRoaXMuY29uZmlnPy5zaG93Tm90aWZpY2F0aW9ucztcclxuICAgIHRoaXMuc2hvd1VzZXJOYW1lT25IZWFkZXIgPSB0aGlzLmNvbmZpZz8uc2hvd1VzZXJOYW1lT25IZWFkZXI7XHJcbiAgICB0aGlzLnNlY3Rpb25MaW5rcyA9IHRoaXMubGlua3NbdGhpcy5zZWN0aW9uTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkxpbmtzID0gdGhpcy5saW5rc1t0aGlzLm5vdGlmaWNhdGlvbkxpbmtzUGF0aF0gYXMgT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25OYXZMaW5rW10+O1xyXG4gICAgdGhpcy5hbGxOb3RpZmljYXRpb25zTGluayA9IHRoaXMubGlua3NbdGhpcy5hbGxOb3RpZmljYXRpb25zTGlua1BhdGhdIGFzIE9ic2VydmFibGU8TmF2TGluaz47XHJcbiAgICB0aGlzLnJvdXRlclN1YiQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICB0aGlzLm1vYmlsZU1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZFVzZXIoKS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgY29uc29sZS5sb2codXNlcik7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XHJcbiAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgIH0pO1xyXG4gICAgLy8gRGV0ZWN0IHVzZXIgY2hhbmdlcyBhbmQgZGlzcGxheSAvIG9yIG5vdCB1c2VyIGluZm8gYWNjb3JkaW5nbHkuLi5cclxuICAgIHRoaXMudXNlclN1YiQgPSB0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbEhlYWRlckNvbXBvbmVudCB1c2VyIHN1YnNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLnNldEN1cnJlbnRVc2VyKHVzZXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRVc2VyKHVzZXI6IGFueSkge1xyXG4gICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgIGlmICh0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5hdmF0YXJOYW1lID0gYCR7dGhpcy51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZT8uY2hhckF0KDApfSR7dGhpcy51c2VyLnByb2ZpbGUuZmFtaWx5X25hbWU/LmNoYXJBdCgwKX1gO1xyXG4gICAgICBjb25zb2xlLmxvZygnbG9hZCB1c2VyJywgdGhpcy5hdmF0YXJOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXHJcbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlUHJvZmlsZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51c2VyTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHlwZWRlZlxyXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZU5vdGlmaWNhdGlvbnMoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNpZ25pbihldmVudDogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25pblJlZGlyZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kVXNlck1lbnUoKSB7XHJcbiAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSAhdGhpcy51c2VyTWVudUV4cGFuZGVkO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2VcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmROb3RpZmljYXRpb25zTWVudSgpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZCA9ICF0aGlzLm5vdGlmaWNhdGlvbnNNZW51RXhwYW5kZWQ7XHJcbiAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZVxyXG4gIH1cclxufVxyXG4iLCI8bmF2PlxyXG4gIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItcGFkZGluZ3NcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImJvcmRlciA/ICdzaGVsbC1oZWFkZXItYm9yZGVyJyA6ICcnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbWVudS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLWxpbmtzLW5vLWdyb3ctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLyddXCI+PGltZyBjbGFzcz1cImFwcC1sb2dvXCJcclxuICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY29uZmlnLmFwcExvZ29cIlxyXG4gICAgICAgICAgICAgICAgICAgW2FsdF09XCJjb25maWcuYXBwTG9nb0FsdFwiIC8+PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbGluay1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2Ygc2VjdGlvbkxpbmtzIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbbGluay5wYXRoXVwiXHJcbiAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJsaW5rLmV4dGVybmFsID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcclxuICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyduYXYtbGluay1hY3RpdmUnXVwiXHJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCI+XHJcbiAgICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLW1kLXZpc2libGVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbGlua3Mtbm8tZ3Jvdy1jb250YWluZXJcIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZUFjdGlvbnMgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwic2hlbGwtaGVhZGVyLW1lbnUtcm91bmRlZC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGVQcm9maWxlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwibGluay5leHRlcm5hbCA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgbGluay50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJsaW5rLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImxpbmsuaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQcm9maWxlIGRyb3Bkb3duIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMiByZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZVByb2ZpbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9maWxlTWVudVZpc2libGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnc2hlbGwtaGVhZGVyLXByb2ZpbGUnOiBzaG93VXNlck5hbWVPbkhlYWRlcn1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyICYmIHNob3dVc2VyTmFtZU9uSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS11c2VyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB1c2VyLnByb2ZpbGUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXNlck1lbnVFeHBhbmRlZCA9ICF1c2VyTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVzZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk9wZW4gdXNlciBtZW51PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+e3t0aGlzLmF2YXRhck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaWduaW4obnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlci1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+c2lnbiBpbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItdGV4dFwiPjxpIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1TaWduaW5cIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlck1lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNob3dVc2VyTmFtZU9uSGVhZGVyID8gJ3NoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duLXdpdGgtdXNlcm5hbWUnIDogJ3NoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwidXNlci1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJsb2NrIHB4LTQgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS03MDAgaG92ZXI6YmctZ3JheS0xMDBcIiByb2xlPVwibWVudWl0ZW1cIj7Okc+Azr/Pg8+Nzr3OtM61z4POtzwvYT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZSB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YSAqbmdJZj1cImxpbmsuZXh0ZXJuYWxcIiBbYXR0ci5ocmVmXT1cImxpbmsucGF0aFwiIFthdHRyLnRhcmdldF09XCInX2JsYW5rJ1wiIGNsYXNzPVwibmF2LWxpbmstcHJvZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstcHJvZmlsZS1hY3RpdmUnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IGxpbmsuZXhhY3QgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1wcm9maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTm90aWZpY2F0aW9ucyBkcm9wZG93biAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTIgcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGVOb3RpZmljYXRpb25zKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uc01lbnVWaXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSBOb3RpZmljYXRpb25zIEJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24gYmctdHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Tm90aWZpY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kTm90aWZpY2F0aW9uc01lbnUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5vdGlmaWNhdGlvbnMtbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlZpZXcgbm90aWZpY2F0aW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS9iZWxsIC0tPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1vYmlsZS1tZW51LXJvdW5kZWQtYnV0dG9uLWljb24tc3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDE3aDVsLTEuNDA1LTEuNDA1QTIuMDMyIDIuMDMyIDAgMDExOCAxNC4xNThWMTFhNi4wMDIgNi4wMDIgMCAwMC00LTUuNjU5VjVhMiAyIDAgMTAtNCAwdi4zNDFDNy42NyA2LjE2NSA2IDguMzg4IDYgMTF2My4xNTljMCAuNTM4LS4yMTQgMS4wNTUtLjU5NSAxLjQzNkw0IDE3aDVtNiAwdjFhMyAzIDAgMTEtNiAwdi0xbTYgMEg5XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzaG93VXNlck5hbWVPbkhlYWRlciA/ICdzaGVsbC1oZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bi13aXRoLXVzZXJuYW1lJyA6ICdzaGVsbC1oZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm5vdGlmaWNhdGlvbnMtbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1heC1oLTY0IG92ZXJmbG93LXktYXV0byBub3RpZmljYXRpb24tbWVzc2FnZXMgbWluLWhcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub3RpZmljYXRpb25MaW5rczsgZWxzZSBub3RpZmljYXRpb25zRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtbGluay1ub3RpZmljYXRpb25zIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICDOlM61zr0gzq3Ph861z4TOtSDOvc6tzrXPgiDOtc65zrTOv8+Azr/Ouc6uz4POtc65z4JcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90aWZpY2F0aW9uc0Ryb3BEb3duPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInByLTEuNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbkxpbmtzIHwgYXN5bmMgYXMgb2JzOyBlbHNlIGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBvYnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydib3JkZXItbC0yIGJvcmRlci1ibHVlLTUwMCBiZy1ibHVlLTUwIGhvdmVyOmJnLWJsdWUtNTAnOiAhbGluay5pc1JlYWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbm90aWZpY2F0aW9ucyBncmlkIGdyaWQtcm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIiFsaW5rLmlzUmVhZCA/ICcgaG92ZXI6YmctYmx1ZS01MCcgOiAnYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC10aGluIHRyYWNraW5nLXRpZ2h0ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmNyZWF0aW9uRGF0ZSB8IGRhdGU6ICdFRUUsIGQgTU1NTScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIHRleHQtcyB0ZXh0LWdyYXktNjAwXCI+TG9hZGluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMSByb3VuZGVkLXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIihhbGxOb3RpZmljYXRpb25zTGluayB8IGFzeW5jKT8ucGF0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoZWxsLWhlYWRlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duLXZpZXctYWxsLWJ1dHRvblwiPs6gz4HOv86yzr/Ou86uIM+MzrvPic69PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPCEtLSBNb2JpbGUgbWVudSBidXR0b24gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9iaWxlTWVudUV4cGFuZGVkID0gIW1vYmlsZU1lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9iaWxlLW1lbnUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm1vYmlsZS1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJtb2JpbGVNZW51RXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+T3BlbiBtYWluIG1lbnU8L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS1IZXJvaWNvbiBuYW1lOiBvdXRsaW5lL21lbnUgIE1lbnUgb3BlbjogXCJoaWRkZW5cIiwgTWVudSBjbG9zZWQ6IFwiYmxvY2tcIi0tPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmxvY2sgaC02IHctNlwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGgxNlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8IS0tSGVyb2ljb24gbmFtZTogb3V0bGluZS94IE1lbnUgb3BlbjogXCJibG9ja1wiLCBNZW51IGNsb3NlZDogXCJoaWRkZW5cIi0tPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaGlkZGVuIGgtNiB3LTZcIlxyXG4gICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIE1vYmlsZSBtZW51LCBzaG93L2hpZGUgYmFzZWQgb24gbWVudSBzdGF0ZS4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LWNvbnRhaW5lclwiXHJcbiAgICAgICAqbmdJZj1cIm1vYmlsZU1lbnVFeHBhbmRlZFwiXHJcbiAgICAgICBpZD1cIm1vYmlsZS1tZW51XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtbGluay1jb250YWluZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBzZWN0aW9uTGlua3MgfCBhc3luY1wiPlxyXG4gICAgICAgIDxhICpuZ0lmPVwibGluay5leHRlcm5hbFwiXHJcbiAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgIFthdHRyLnRhcmdldF09XCInX2JsYW5rJ1wiXHJcbiAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1tb2JpbGVcIj5cclxuICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSAqbmdJZj1cIiFsaW5rLmV4dGVybmFsXCJcclxuICAgICAgICAgICBbcm91dGVyTGlua109XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstbW9iaWxlLWFjdGl2ZSddXCJcclxuICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogbGluay5leGFjdCB9XCJcclxuICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF1c2VyXCI+XHJcbiAgICAgICAgPGEgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJzaWduaW4oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1tb2JpbGVcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1TaWduaW4gbXItMlwiPjwvaT7Oo8+Nzr3OtM61z4POt1xyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS11c2VyLWluZm8tY29udGFpbmVyXCJcclxuICAgICAgICAgKm5nSWY9XCJ1c2VyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS11c2VyLWluZm8tY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTBcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9iaWxlLW1lbnUtYXZhdGFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vYmlsZS1tZW51LWF2YXRhci1uYW1lXCI+e3sgdGhpcy5hdmF0YXJOYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtdXNlci1uYW1lXCI+e3sgdXNlci5wcm9maWxlLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS11c2VyLWVtYWlsXCI+e3sgdXNlci5wcm9maWxlLmVtYWlsIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZS1tZW51LXJvdW5kZWQtYnV0dG9uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IG91dGxpbmUvYmVsbCAtLT5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJtb2JpbGUtbWVudS1yb3VuZGVkLWJ1dHRvbi1pY29uLXN0eWxlXCJcclxuICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgZD1cIk0xNSAxN2g1bC0xLjQwNS0xLjQwNUEyLjAzMiAyLjAzMiAwIDAxMTggMTQuMTU4VjExYTYuMDAyIDYuMDAyIDAgMDAtNC01LjY1OVY1YTIgMiAwIDEwLTQgMHYuMzQxQzcuNjcgNi4xNjUgNiA4LjM4OCA2IDExdjMuMTU5YzAgLjUzOC0uMjE0IDEuMDU1LS41OTUgMS40MzZMNCAxN2g1bTYgMHYxYTMgMyAwIDExLTYgMHYtMW02IDBIOVwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZSB8IGFzeW5jXCI+XHJcbiAgICAgICAgICA8YSAqbmdJZj1cImxpbmsuZXh0ZXJuYWxcIlxyXG4gICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbW9iaWxlXCI+XHJcbiAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstbW9iaWxlLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1tb2JpbGVcIj5cclxuICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYmxvY2sgcHgtMyBweS0yIHJvdW5kZWQtc20gdGV4dC1iYXNlIGZvbnQtbWVkaXVtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBob3ZlcjpiZy1ncmF5LTcwMFwiPs6Rz4DOv8+Dz43Ovc60zrXPg863PC9hPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+Il19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWhlYWRlci9zaGVsbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFTLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUF5RCxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUWpGLE1BQU0sT0FBTyxvQkFBb0I7SUF3Qi9CLFlBQ2lDLFdBQXdCLEVBQzdCLE1BQWMsRUFDTixLQUFxQixFQUMxQixNQUFXLEVBQ2QsS0FBVTtRQUpMLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBSztRQTVCdEMsMkNBQTJDO1FBQ25CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUNsRCwy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dUJBQUMsY0FBYztnQkFFRyxvQkFBb0I7c0JBQTNDLEtBQUs7dUJBQUMsZUFBZTtnQkFFQSxVQUFVO3NCQUEvQixLQUFLO3VCQUFDLGFBQWE7Z0JBQ1gsS0FBSztzQkFBYixLQUFLO2dCQUVpQixXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ1osTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaW5kaWNlL25nLWF1dGgnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdvaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBFdmVudCwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOYXZMaW5rIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBUFBfTElOS1MsIFNIRUxMX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaXNPYnNlcnZhYmxlLCBvYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VjdGlvbi1saW5rcycpIHNlY3Rpb25MaW5rc1BhdGggPSAnbWFpbic7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgncHJvZmlsZS1tZW51JykgcHJvZmlsZU1lbnVWaXNpYmxlID0gdHJ1ZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LXVzZXJOYW1lJykgc2hvd1VzZXJOYW1lT25IZWFkZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LWFsZXJ0cycpIHNob3dBbGVydHM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBsYW5nczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnY3VycmVudC1sYW5nJykgY3VycmVudExhbmc6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBib3JkZXIgPSB0cnVlO1xyXG4gIHB1YmxpYyBzZWN0aW9uTGlua3M6IE9ic2VydmFibGU8TmF2TGlua1tdPiA9IG9mKFtdKTtcclxuICBwdWJsaWMgbW9iaWxlTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgcm91dGVTdWJqZWN0OiBPYnNlcnZhYmxlPEV2ZW50PjtcclxuICBwcm90ZWN0ZWQgcm91dGVyU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHVzZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgc3RhdHVzU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgYXZhdGFyTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGFjdGl2ZUZyYWdtZW50OiBhbnkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEF1dGhTZXJ2aWNlKSBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQEluamVjdChSb3V0ZXIpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBASW5qZWN0KFNIRUxMX0NPTkZJRykgcHVibGljIGNvbmZpZzogYW55LFxyXG4gICAgQEluamVjdChBUFBfTElOS1MpIHB1YmxpYyBsaW5rczogYW55KSB7XHJcbiAgICB0aGlzLnJvdXRlU3ViamVjdCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlRnJhZ21lbnQgPSB0aGlzLnJvdXRlLmZyYWdtZW50LnBpcGUoc2hhcmUoKSk7XHJcbiAgICB0aGlzLnNlY3Rpb25MaW5rcyA9IHRoaXMubGlua3NbdGhpcy5zZWN0aW9uTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgICB0aGlzLnJvdXRlclN1YiQgPSB0aGlzLnJvdXRlU3ViamVjdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubW9iaWxlTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvYWRVc2VyKCkuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XHJcbiAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBEZXRlY3QgdXNlciBjaGFuZ2VzIGFuZCBkaXNwbGF5IC8gb3Igbm90IHVzZXIgaW5mbyBhY2NvcmRpbmdseS4uLlxyXG4gICAgdGhpcy51c2VyU3ViJCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsSGVhZGVyQ29tcG9uZW50IHVzZXIgc3Vic2NyaXB0aW9uJyk7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XHJcbiAgICB9KTtcclxuICAgIC8vIHNldCBjdXJyZW50IGxhbmcgaWYgbm8gY3VycmVudCB2YWx1ZSBmcm9tIGxhbmdzIGlmIGFueVxyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRMYW5nICYmIHRoaXMubGFuZ3MgJiYgdGhpcy5sYW5ncy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudExhbmcodGhpcy5sYW5nc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMucm91dGVyU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgLy8gVE9ETzogY2hlY2sgYXV0aGVudGljYXRlZCB1c2VyIGhlcmUgYmVmb3JlIHdlIHN0YXJ0IHBvbGxpbmcgc2VydmVyIHN0YXR1c1xyXG4gICAgaWYgKHRoaXMuc3RhdHVzU3ViJCkge1xyXG4gICAgICB0aGlzLnN0YXR1c1N1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnVzZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMudXNlclN1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnR5cGVkZWZcclxuICBwdWJsaWMgb25DbGlja091dHNpZGUoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNpZ25pbihldmVudDogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25pblJlZGlyZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRVc2VyKHVzZXI6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgIGlmICh0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5hdmF0YXJOYW1lID0gYCR7dGhpcy51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZT8uY2hhckF0KDApfSR7dGhpcy51c2VyLnByb2ZpbGUuZmFtaWx5X25hbWU/LmNoYXJBdCgwKX1gLnRvVXBwZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q3VycmVudExhbmcobGFuZzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcclxuICB9XHJcbn1cclxuXHJcbiIsIjxuYXY+XHJcbiAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1wYWRkaW5nc1wiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiYm9yZGVyID8gJ3NoZWxsLWhlYWRlci1ib3JkZXInIDogJydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1tZW51LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbG9nby1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgW3JvdXRlckxpbmtdPVwiWycvJ11cIj48aW1nIGNsYXNzPVwiYXBwLWxvZ29cIiBbc3JjXT1cImNvbmZpZy5hcHBMb2dvXCIgW2FsdF09XCJjb25maWcuYXBwTG9nb0FsdFwiIC8+PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbGluay1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbGluay1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgPGxpYi1uYXYtbGlua3MtbGlzdFxyXG4gICAgICAgICAgICAgIFtsaW5rc109XCJzZWN0aW9uTGlua3NcIlxyXG4gICAgICAgICAgICAgIFthY3RpdmUtZnJhZ21lbnRdPVwiYWN0aXZlRnJhZ21lbnRcIlxyXG4gICAgICAgICAgICAgIFtsaW5rLWNsYXNzXT1cIiduYXYtbGluaydcIlxyXG4gICAgICAgICAgICAgIFtsaW5rLWFjdGl2ZS1jbGFzc109XCInbmF2LWxpbmstYWN0aXZlJ1wiPlxyXG4gICAgICAgICAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGFuZ3MgJiYgbGFuZ3MubGVuZ3RoID4gMSAmJiBjdXJyZW50TGFuZ1wiIGNsYXNzPVwic2hlbGwtaGVhZGVyLWxpbmtzLWZhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRleHQtYmx1ZS0zMDAgaG92ZXI6dGV4dC1ibHVlLTUwMFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tjdXJyZW50TGFuZ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LXhzIG1sLTEgbXMtSWNvbiBtcy1JY29uLS1DaGV2cm9uRG93blwiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbWQtdmlzaWJsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1saW5rcy1mYXItY29udGFpbmVyXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XHJcblxyXG4gICAgICAgICAgICA8bGliLW5hdi1saW5rcy1saXN0XHJcbiAgICAgICAgICAgICAgW2xpbmtzXT1cImxpbmtzLnByb2ZpbGVBY3Rpb25zXCJcclxuICAgICAgICAgICAgICBbYWN0aXZlLWZyYWdtZW50XT1cImFjdGl2ZUZyYWdtZW50XCJcclxuICAgICAgICAgICAgICBbbGluay1jbGFzc109XCInc2hlbGwtaGVhZGVyLW1lbnUtcm91bmRlZC1idXR0b24nXCJcclxuICAgICAgICAgICAgICBbbGluay1hY3RpdmUtY2xhc3NdPVwiJ3NoZWxsLWhlYWRlci1tZW51LXJvdW5kZWQtYnV0dG9uLWFjdGl2ZSdcIj5cclxuICAgICAgICAgICAgPC9saWItbmF2LWxpbmtzLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZUFjdGlvbnMgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwic2hlbGwtaGVhZGVyLW1lbnUtcm91bmRlZC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJsaW5rLmV4dGVybmFsID8gJ19ibGFuaycgOiAnX3NlbGYnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyBsaW5rLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImxpbmsuaWNvblwiIFtjbGFzc109XCJsaW5rLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0FsZXJ0cyAmJiB1c2VyXCIgIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgIDxsaWItbm90aWZpY2F0aW9ucy1pbmRpY2F0b3I+PC9saWItbm90aWZpY2F0aW9ucy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFByb2ZpbGUgZHJvcGRvd24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9maWxlTWVudVZpc2libGVcIiBjbGFzcz1cIm1sLTIgcmVsYXRpdmVcIiAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnc2hlbGwtaGVhZGVyLXByb2ZpbGUnOiBzaG93VXNlck5hbWVPbkhlYWRlcn1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyICYmIHNob3dVc2VyTmFtZU9uSGVhZGVyXCIgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS11c2VyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB1c2VyLnByb2ZpbGUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInVzZXJcIiAoY2xpY2spPVwidXNlck1lbnVFeHBhbmRlZCA9ICF1c2VyTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVzZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk9wZW4gdXNlciBtZW51PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+e3t0aGlzLmF2YXRhck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaWduaW4obnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlci1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+c2lnbiBpbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItdGV4dFwiPjxpIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1TaWduaW5cIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlck1lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNob3dVc2VyTmFtZU9uSGVhZGVyID8gJ3NoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duLXdpdGgtdXNlcm5hbWUnIDogJ3NoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwidXNlci1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxsaWItbmF2LWxpbmtzLWxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtzXT1cImxpbmtzLnByb2ZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlLWZyYWdtZW50XT1cImFjdGl2ZUZyYWdtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmstY2xhc3NdPVwiJ25hdi1saW5rLXByb2ZpbGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmstYWN0aXZlLWNsYXNzXT1cIiduYXYtbGluay1wcm9maWxlLWFjdGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LWJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgIDwhLS0gTW9iaWxlIG1lbnUgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vYmlsZU1lbnVFeHBhbmRlZCA9ICFtb2JpbGVNZW51RXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vYmlsZS1tZW51LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtb2JpbGUtbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwibW9iaWxlTWVudUV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk9wZW4gbWFpbiBtZW51PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tSGVyb2ljb24gbmFtZTogb3V0bGluZS9tZW51ICBNZW51IG9wZW46IFwiaGlkZGVuXCIsIE1lbnUgY2xvc2VkOiBcImJsb2NrXCItLT5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgIFtjbGFzc109XCJtb2JpbGVNZW51RXhwYW5kZWQgPyAnaGlkZGVuJzonYmxvY2sgaC02IHctNidcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwhLS1IZXJvaWNvbiBuYW1lOiBvdXRsaW5lL3ggTWVudSBvcGVuOiBcImJsb2NrXCIsIE1lbnUgY2xvc2VkOiBcImhpZGRlblwiLS0+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICBbY2xhc3NdPVwibW9iaWxlTWVudUV4cGFuZGVkID8gJ2Jsb2NrIGgtNiB3LTYnOidoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gTW9iaWxlIG1lbnUsIHNob3cvaGlkZSBiYXNlZCBvbiBtZW51IHN0YXRlLiAtLT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtY29udGFpbmVyXCIgKm5nSWY9XCJtb2JpbGVNZW51RXhwYW5kZWRcIiBpZD1cIm1vYmlsZS1tZW51XCI+XHJcbiAgICA8bGliLW5hdi1saW5rcy1saXN0XHJcbiAgICAgIFtsaW5rc109XCJzZWN0aW9uTGlua3NcIlxyXG4gICAgICBbYWN0aXZlLWZyYWdtZW50XT1cImFjdGl2ZUZyYWdtZW50XCJcclxuICAgICAgW2xpbmstY2xhc3NdPVwiJ25hdi1saW5rLW1vYmlsZSdcIlxyXG4gICAgICBbbGluay1hY3RpdmUtY2xhc3NdPVwiJ25hdi1saW5rLW1vYmlsZS1hY3RpdmUnXCJcclxuICAgICAgW2NvbnRhaW5lci1jbGFzc109XCInbW9iaWxlLW1lbnUtbGluay1jb250YWluZXInXCI+XHJcbiAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXVzZXJcIj5cclxuICAgICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwic2lnbmluKCRldmVudClcIiBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1TaWduaW4gbXItMlwiPjwvaT7Oo8+Nzr3OtM61z4POt1xyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtdXNlci1pbmZvLWNvbnRhaW5lclwiICpuZ0lmPVwidXNlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtdXNlci1pbmZvLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vYmlsZS1tZW51LWF2YXRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2JpbGUtbWVudS1hdmF0YXItbmFtZVwiPnt7IHRoaXMuYXZhdGFyTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItbmFtZVwiPnt7IHVzZXIucHJvZmlsZS5uYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtdXNlci1lbWFpbFwiPnt7IHVzZXIucHJvZmlsZS5lbWFpbCB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtb2JpbGUtbWVudS1yb3VuZGVkLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VmlldyBub3RpZmljYXRpb25zPC9zcGFuPlxyXG4gICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBvdXRsaW5lL2JlbGwgLS0+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24taWNvbi1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTdoNWwtMS40MDUtMS40MDVBMi4wMzIgMi4wMzIgMCAwMTE4IDE0LjE1OFYxMWE2LjAwMiA2LjAwMiAwIDAwLTQtNS42NTlWNWEyIDIgMCAxMC00IDB2LjM0MUM3LjY3IDYuMTY1IDYgOC4zODggNiAxMXYzLjE1OWMwIC41MzgtLjIxNCAxLjA1NS0uNTk1IDEuNDM2TDQgMTdoNW02IDB2MWEzIDMgMCAxMS02IDB2LTFtNiAwSDlcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGxpYi1uYXYtbGlua3MtbGlzdFxyXG4gICAgICAgICAgW2xpbmtzXT1cImxpbmtzLnByb2ZpbGVcIlxyXG4gICAgICAgICAgW2FjdGl2ZS1mcmFnbWVudF09XCJhY3RpdmVGcmFnbWVudFwiXHJcbiAgICAgICAgICBbbGluay1jbGFzc109XCInbmF2LWxpbmstbW9iaWxlJ1wiXHJcbiAgICAgICAgICBbbGluay1hY3RpdmUtY2xhc3NdPVwiJ25hdi1saW5rLW1vYmlsZS1hY3RpdmUnXCJcclxuICAgICAgICAgIFtjb250YWluZXItY2xhc3NdPVwiJ21vYmlsZS1tZW51LWxpbmstY29udGFpbmVyJ1wiPlxyXG4gICAgICA8L2xpYi1uYXYtbGlua3MtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SHELL_CONFIG } from './../../../tokens';
|
|
2
2
|
import { DefaultShellConfig } from './../../../types';
|
|
3
3
|
import { Component, Inject, ViewChildren } from '@angular/core';
|
|
4
|
+
import { DOCUMENT } from '@angular/common';
|
|
4
5
|
import { ActivationStart } from '@angular/router';
|
|
5
6
|
import { filter } from 'rxjs/operators';
|
|
6
7
|
import { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';
|
|
@@ -14,14 +15,15 @@ import * as i6 from "../../../controls/side-pane/side-pane.component";
|
|
|
14
15
|
import * as i7 from "../../../controls/toaster/toaster-container.component";
|
|
15
16
|
import * as i8 from "../../../directives/dynamic-component-host.directive";
|
|
16
17
|
export class ShellLayoutComponent {
|
|
17
|
-
constructor(router, location, config, componentLoaderFactory) {
|
|
18
|
+
constructor(document, router, location, config, componentLoaderFactory) {
|
|
19
|
+
this.document = document;
|
|
18
20
|
this.router = router;
|
|
19
21
|
this.location = location;
|
|
20
22
|
this.config = config;
|
|
21
23
|
this.componentLoaderFactory = componentLoaderFactory;
|
|
22
24
|
this.dynamicComponentHosts = null;
|
|
23
|
-
this.routerSub$ = null;
|
|
24
25
|
this.showRightPaneSM = false;
|
|
26
|
+
this.routerSub$ = null;
|
|
25
27
|
this.activeConfig = new DefaultShellConfig();
|
|
26
28
|
this.loaded = false;
|
|
27
29
|
if (!config) {
|
|
@@ -82,8 +84,8 @@ export class ShellLayoutComponent {
|
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
|
-
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\"
|
|
87
|
+
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: DOCUMENT }, { token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
+
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\" [style.display]=\"!loaded ? 'none':'block'\" class=\"shell-container active-side-pane\">\r\n\r\n <div class=\"shell-header-container\" *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost =\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\"\r\n [langs]=\"activeConfig.langs\"\r\n [show-userName]=\"activeConfig.showUserNameOnHeader\"\r\n [show-alerts]=\"activeConfig.showAlertsOnHeader\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\" *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: i4.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "profile-menu", "show-userName", "show-alerts", "langs", "current-lang", "border"] }, { type: i5.ShellFooterComponent, selector: "lib-shell-footer" }, { type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
87
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, decorators: [{
|
|
88
90
|
type: Component,
|
|
89
91
|
args: [{
|
|
@@ -91,11 +93,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
91
93
|
selector: 'lib-shell-layout',
|
|
92
94
|
templateUrl: './shell-layout.component.html',
|
|
93
95
|
}]
|
|
94
|
-
}], ctorParameters: function () { return [{ type:
|
|
96
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
97
|
+
type: Inject,
|
|
98
|
+
args: [DOCUMENT]
|
|
99
|
+
}] }, { type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
|
|
95
100
|
type: Inject,
|
|
96
101
|
args: [SHELL_CONFIG]
|
|
97
102
|
}] }, { type: i3.ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
|
|
98
103
|
type: ViewChildren,
|
|
99
104
|
args: [DynamicComponentHostDirective]
|
|
100
105
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUUvSCxPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7O0FBUXJHLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBb0IsTUFBYyxFQUFVLFFBQWtCLEVBQWdDLE1BQTJCLEVBQVUsc0JBQThDO1FBQTdKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQWdDLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUxqTCwwQkFBcUIsR0FBb0QsSUFBSSxDQUFDO1FBQ3RFLGVBQVUsR0FBd0IsSUFBSSxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQWlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN0RCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOztZQUM3RywwREFBMEQ7WUFDMUQsSUFBSSxNQUFDLENBQXFCLDBDQUFFLFFBQVEsRUFBRTtnQkFDcEMsa0dBQWtHO2dCQUNsRyxJQUFJLE1BQUEsTUFBQyxDQUFxQiwwQ0FBRSxRQUFRLDBDQUFFLElBQUksRUFBRTtvQkFDMUMsNEdBQTRHO29CQUM1RyxJQUFJLE1BQUEsTUFBQyxDQUFxQiwwQ0FBRSxRQUFRLDBDQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ2hELGlGQUFpRjt3QkFDakYsZ0RBQWdEO3dCQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQUMsQ0FBcUIsMENBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFxQixDQUFDO3dCQUNoRixvRkFBb0Y7d0JBQ3BGLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTs0QkFDM0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7eUJBQzdCO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO3dCQUN6RSxpRkFBaUY7cUJBQ2xGO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFGLCtCQUErQjtZQUMvQiwyRkFBMkY7U0FDNUY7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQStDO1FBQ3pFLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFO2dCQUMvRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMvRztTQUNGO0lBQ0gsQ0FBQzs7aUhBcEVVLG9CQUFvQixnRUFPeUMsWUFBWTtxR0FQekUsb0JBQW9CLGtHQUNqQiw2QkFBNkIsZ0RDaEI3Qyx5eERBMENBOzJGRDNCYSxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3Qzs7MEJBUWtFLE1BQU07MkJBQUMsWUFBWTtpRkFMcEYscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNIRUxMX0NPTkZJRyB9IGZyb20gJy4vLi4vLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBEZWZhdWx0U2hlbGxDb25maWcgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LWhvc3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSlcclxuICBkeW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHJvdXRlclN1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBzaG93UmlnaHRQYW5lU00gPSBmYWxzZTtcclxuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgcHVibGljIGxvYWRlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBASW5qZWN0KFNIRUxMX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IElTaGVsbENvbmZpZyB8IG51bGwsIHByaXZhdGUgY29tcG9uZW50TG9hZGVyRmFjdG9yeTogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSkge1xyXG4gICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgY29uZmlnID0gbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVDb25maWcgPSBjb25maWc7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5sb2FkZWQgPSB0cnVlOyB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlclN1YiQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEFjdGl2YXRpb25TdGFydCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0JywgZSk7XHJcbiAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQgc25hcHNob3QnLCAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdCk7XHJcbiAgICAgICAgaWYgKChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90Py5kYXRhKSB7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90IGRhdGEnLCAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhKTtcclxuICAgICAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdD8uZGF0YS5zaGVsbCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90IGRhdGEgc2hlbGwgcGFyYW1zJyxcclxuICAgICAgICAgICAgLy8gKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YS5zaGVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlQ29uZmlnID0gKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YS5zaGVsbCBhcyBJU2hlbGxDb25maWc7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBhY3RpdmVDb25maWcgZnJvbSByb3V0ZTogJywgdGhpcy5hY3RpdmVDb25maWcpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbml0Q3VzdG9tQ29tcG9uZW50cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IHRoaXMuY29uZmlnID8gdGhpcy5jb25maWcgOiBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBkZWZhdWx0IGFjdGl2ZUNvbmZpZzogJywgdGhpcy5hY3RpdmVDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRDdXN0b21Db21wb25lbnRzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzICYmIHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5sb2FkQ3VzdG9tQ29tcG9uZW50KHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoKF8pID0+IF8uaG9zdE5hbWUgPT09ICdIZWFkZXInKSk7XHJcbiAgICAgIC8vIHNpbmNlIHlvdSdyZSBub3QgdXNpbmcgaXQuLi5cclxuICAgICAgLy8gdGhpcy5sb2FkQ3VzdG9tQ29tcG9uZW50KHRoaXMuZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoXyA9PiBfLmhvc3ROYW1lID09PSAnRm9vdGVyJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWIkKSB7XHJcbiAgICAgIHRoaXMucm91dGVyU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQ3VzdG9tQ29tcG9uZW50KGhvc3Q6IER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoaG9zdCkge1xyXG4gICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gaG9zdC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgICBpZiAodmlld0NvbnRhaW5lclJlZiAmJiB0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpIHtcclxuICAgICAgICBjb25zdCBjbGYgPSB0aGlzLmNvbXBvbmVudExvYWRlckZhY3RvcnkuY3JlYXRlTG9hZGVyKHZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICAgIGNvbnN0IGhlYWRlckNvbXBSZWYgPSBjbGYuYXR0YWNoKHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkudG8odmlld0NvbnRhaW5lclJlZi5lbGVtZW50KS5zaG93KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImxvYWRlZFwiXHJcbiAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWxvYWRlZCA/ICdub25lJzonYmxvY2snXCJcclxuICAgICBjbGFzcz1cInNoZWxsLWNvbnRhaW5lciBhY3RpdmUtc2lkZS1wYW5lXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1jb250YWluZXJcIlxyXG4gICAgICAgKm5nSWY9XCJhY3RpdmVDb25maWcuc2hvd0hlYWRlclwiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWhlYWRlci1jb250YWluZXItaW5uZXInXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3Q9XCJIZWFkZXJcIj48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bGliLXNoZWxsLWhlYWRlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhY3RpdmVDb25maWdcIj48L2xpYi1zaGVsbC1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1haW4gW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5zaG93SGVhZGVyID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1uby1oZWFkZXInXCI+XHJcbiAgICA8ZGl2IFtjbGFzc109XCJhY3RpdmVDb25maWcuZmx1aWQgPyAnc2hlbGwtY29udGVudC1jb250YWluZXItaW5uZXItZmx1aWQnIDogJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L21haW4+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzaGVsbC1mb290ZXItY29udGFpbmVyXCJcclxuICAgICAgICpuZ0lmPVwiYWN0aXZlQ29uZmlnLnNob3dGb290ZXJcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5mbHVpZCA/ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUZvb3RlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3RcclxuICAgICAgICAgICAgIGhvc3ROYW1lPVwiRm9vdGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bGliLXNoZWxsLWZvb3RlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tRm9vdGVyQ29tcG9uZW50XCI+PC9saWItc2hlbGwtZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxsaWItc2lkZS1wYW5lICNyaWdodFBhbmU+XHJcbiAgICA8cm91dGVyLW91dGxldCBuYW1lPVwicmlnaHRwYW5lXCJcclxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2xpYi1zaWRlLXBhbmU+XHJcblxyXG4gIDxsaWItdG9hc3Rlci1jb250YWluZXI+PC9saWItdG9hc3Rlci1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7OztBQVFyRyxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLFlBQzRCLFFBQWEsRUFDL0IsTUFBYyxFQUNkLFFBQWtCLEVBQ0ksTUFBMkIsRUFDakQsc0JBQThDO1FBSjVCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDSSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUNqRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBVnhELDBCQUFxQixHQUFvRCxJQUFJLENBQUM7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RUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9HO1NBQ0Y7SUFDSCxDQUFDOztpSEExRVUsb0JBQW9CLGtCQVFyQixRQUFRLDJEQUdSLFlBQVk7cUdBWFgsb0JBQW9CLGtHQUNqQiw2QkFBNkIsZ0RDaEI3Qyx5eURBb0NBOzJGRHJCYSxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3Qzs7MEJBU0ksTUFBTTsyQkFBQyxRQUFROzswQkFHZixNQUFNOzJCQUFDLFlBQVk7aUZBVHRCLHFCQUFxQjtzQkFEcEIsWUFBWTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTSEVMTF9DT05GSUcgfSBmcm9tICcuLy4uLy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IElTaGVsbENvbmZpZywgRGVmYXVsdFNoZWxsQ29uZmlnIH0gZnJvbSAnLi8uLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEluamVjdCwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aXZhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LWhvc3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSlcclxuICBkeW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByb3V0ZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgcHVibGljIGxvYWRlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgQEluamVjdChTSEVMTF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBJU2hlbGxDb25maWcgfCBudWxsLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRMb2FkZXJGYWN0b3J5OiBDb21wb25lbnRMb2FkZXJGYWN0b3J5XHJcbiAgKSB7XHJcbiAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICBjb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmxvYWRlZCA9IHRydWU7IH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyU3ViJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvblN0YXJ0KSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQnLCBlKTtcclxuICAgICAgaWYgKChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90KSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IEFjdGl2YXRpb25TdGFydCBzbmFwc2hvdCcsIChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90KTtcclxuICAgICAgICBpZiAoKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3Q/LmRhdGEpIHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQgc25hcHNob3QgZGF0YScsIChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90LmRhdGEpO1xyXG4gICAgICAgICAgaWYgKChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90Py5kYXRhLnNoZWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbExheW91dENvbXBvbmVudCBBY3RpdmF0aW9uU3RhcnQgc25hcHNob3QgZGF0YSBzaGVsbCBwYXJhbXMnLFxyXG4gICAgICAgICAgICAvLyAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhLnNoZWxsKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcgPSAoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhLnNoZWxsIGFzIElTaGVsbENvbmZpZztcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IGFjdGl2ZUNvbmZpZyBmcm9tIHJvdXRlOiAnLCB0aGlzLmFjdGl2ZUNvbmZpZyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmluaXRDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlQ29uZmlnID0gdGhpcy5jb25maWcgPyB0aGlzLmNvbmZpZyA6IG5ldyBEZWZhdWx0U2hlbGxDb25maWcoKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IGRlZmF1bHQgYWN0aXZlQ29uZmlnOiAnLCB0aGlzLmFjdGl2ZUNvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdEN1c3RvbUNvbXBvbmVudHMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEN1c3RvbUNvbXBvbmVudHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMgJiYgdGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxvYWRDdXN0b21Db21wb25lbnQodGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMuZmluZCgoXykgPT4gXy5ob3N0TmFtZSA9PT0gJ0hlYWRlcicpKTtcclxuICAgICAgLy8gc2luY2UgeW91J3JlIG5vdCB1c2luZyBpdC4uLlxyXG4gICAgICAvLyB0aGlzLmxvYWRDdXN0b21Db21wb25lbnQodGhpcy5keW5hbWljQ29tcG9uZW50SG9zdHMuZmluZChfID0+IF8uaG9zdE5hbWUgPT09ICdGb290ZXInKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJvdXRlclN1YiQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXJTdWIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRDdXN0b21Db21wb25lbnQoaG9zdDogRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmIChob3N0KSB7XHJcbiAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBob3N0LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICAgIGlmICh2aWV3Q29udGFpbmVyUmVmICYmIHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkge1xyXG4gICAgICAgIGNvbnN0IGNsZiA9IHRoaXMuY29tcG9uZW50TG9hZGVyRmFjdG9yeS5jcmVhdGVMb2FkZXIodmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgICAgY29uc3QgaGVhZGVyQ29tcFJlZiA9IGNsZi5hdHRhY2godGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KS50byh2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQpLnNob3coKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwibG9hZGVkXCIgW3N0eWxlLmRpc3BsYXldPVwiIWxvYWRlZCA/ICdub25lJzonYmxvY2snXCIgY2xhc3M9XCJzaGVsbC1jb250YWluZXIgYWN0aXZlLXNpZGUtcGFuZVwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwiYWN0aXZlQ29uZmlnLnNob3dIZWFkZXJcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5mbHVpZCA/ICdzaGVsbC1oZWFkZXItY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1oZWFkZXItY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3QgPVwiSGVhZGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bGliLXNoZWxsLWhlYWRlciAqbmdJZj1cIiFhY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50XCJcclxuICAgICAgICBbbGFuZ3NdPVwiYWN0aXZlQ29uZmlnLmxhbmdzXCJcclxuICAgICAgICBbc2hvdy11c2VyTmFtZV09XCJhY3RpdmVDb25maWcuc2hvd1VzZXJOYW1lT25IZWFkZXJcIlxyXG4gICAgICAgIFtzaG93LWFsZXJ0c109XCJhY3RpdmVDb25maWcuc2hvd0FsZXJ0c09uSGVhZGVyXCI+PC9saWItc2hlbGwtaGVhZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYWluIFtjbGFzc109XCJhY3RpdmVDb25maWcuc2hvd0hlYWRlciA/ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lcicgOiAnc2hlbGwtY29udGVudC1jb250YWluZXItbm8taGVhZGVyJ1wiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiYWN0aXZlQ29uZmlnLmZsdWlkID8gJ3NoZWxsLWNvbnRlbnQtY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1jb250ZW50LWNvbnRhaW5lci1pbm5lcidcIj5cclxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYWluPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2hlbGwtZm9vdGVyLWNvbnRhaW5lclwiICpuZ0lmPVwiYWN0aXZlQ29uZmlnLnNob3dGb290ZXJcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImFjdGl2ZUNvbmZpZy5mbHVpZCA/ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyLWZsdWlkJyA6ICdzaGVsbC1mb290ZXItY29udGFpbmVyLWlubmVyJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ29uZmlnLmN1c3RvbUZvb3RlckNvbXBvbmVudFwiPlxyXG4gICAgICAgIDxkaXYgYXBwRHluYW1pY0NvbXBvbmVudEhvc3QgaG9zdE5hbWU9XCJGb290ZXJcIj48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxsaWItc2hlbGwtZm9vdGVyICpuZ0lmPVwiIWFjdGl2ZUNvbmZpZy5jdXN0b21Gb290ZXJDb21wb25lbnRcIj48L2xpYi1zaGVsbC1mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGxpYi1zaWRlLXBhbmUgI3JpZ2h0UGFuZT5cclxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJyaWdodHBhbmVcIiAoYWN0aXZhdGUpPVwicmlnaHRQYW5lLm9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50KVwiIChkZWFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2xpYi1zaWRlLXBhbmU+XHJcblxyXG4gIDxsaWItdG9hc3Rlci1jb250YWluZXI+PC9saWItdG9hc3Rlci1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -6,8 +6,8 @@ import * as i1 from "@angular/router";
|
|
|
6
6
|
import * as i2 from "../../../controls/side-pane/side-pane.component";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
8
|
export class FormLayoutComponent {
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
9
|
+
constructor(router$) {
|
|
10
|
+
this.router$ = router$;
|
|
11
11
|
this.title = null;
|
|
12
12
|
// tslint:disable-next-line:no-input-rename
|
|
13
13
|
this.searchPlaceholder = 'αναζήτηση';
|
|
@@ -19,7 +19,6 @@ export class FormLayoutComponent {
|
|
|
19
19
|
// tslint:disable-next-line:no-output-on-prefix
|
|
20
20
|
this.onSearch = new EventEmitter();
|
|
21
21
|
this.onComplete = new EventEmitter();
|
|
22
|
-
this.showRightPaneSM = false;
|
|
23
22
|
}
|
|
24
23
|
ngOnInit() {
|
|
25
24
|
var _a;
|
|
@@ -48,10 +47,10 @@ export class FormLayoutComponent {
|
|
|
48
47
|
}
|
|
49
48
|
routerLinkActionClick(action, relative = false) {
|
|
50
49
|
if (action.outlet) {
|
|
51
|
-
this.
|
|
50
|
+
this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
|
|
52
51
|
}
|
|
53
52
|
else {
|
|
54
|
-
this.
|
|
53
|
+
this.router$.navigate([action.link]);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
}
|
|
@@ -83,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
83
82
|
}], onComplete: [{
|
|
84
83
|
type: Output
|
|
85
84
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVoxQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUNyQywyQ0FBMkM7UUFDZCxzQkFBaUIsR0FBa0IsV0FBVyxDQUFBO1FBQ2xFLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBQzdDLDJDQUEyQztRQUN2QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUNuRCwrQ0FBK0M7UUFDckMsYUFBUSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLCtDQUErQztRQUNyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ25FLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ1EsQ0FBQztJQUV4QyxRQUFROztRQUNOLElBQUksTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLEVBQUM7WUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUI7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdkUsb0VBQW9FO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSwyQ0FBMkM7WUFDL0Qsb0JBQW9CLEVBQUUsQ0FBQywrQ0FBK0M7YUFDdkUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0IsRUFBRSxJQUFZO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZOztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBOEIsRUFBRSxXQUFvQixLQUFLO1FBQ3BGLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOztnSEFyRFUsbUJBQW1CO29HQUFuQixtQkFBbUIsdVlDVmhDLGtoR0FtRUE7MkZEekRhLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO2lCQUM1Qzs2RkFHOEIsWUFBWTtzQkFBeEMsU0FBUzt1QkFBQyxRQUFRO2dCQUNWLEtBQUs7c0JBQWIsS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLO2dCQUVjLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFFUixRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBmaWx0ZXIsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VhcmNoLXBsYWNlaG9sZGVyJykgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnzrHOvc6xzrbOrs+EzrfPg863J1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IFZpZXdBY3Rpb25bXSB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXRBY3Rpb25DbGljayhhY3Rpb246IFZpZXdBY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb246IFJvdXRlclZpZXdBY3Rpb24gfCBhbnksIHJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyBmb3JtUmlnaHRQYW5lOiBhY3Rpb24ubGluayB9IH1dKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbYWN0aW9uLmxpbmtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWxheW91dC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXJcIiAqbmdJZj1cInRpdGxlIHx8IHN1YlRpdGxlIHx8IGFjdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlci1pbm5lclwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJmb3JtLXRpdGxlXCI+XHJcbiAgICAgICAge3sgdGl0bGUgfX1cclxuICAgICAgPC9oMz5cclxuICAgICAgPHAgY2xhc3M9XCJmb3JtLXN1YnRpdGxlXCI+XHJcbiAgICAgICAge3sgc3ViVGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItYWN0aW9uc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiIFtuZ1N3aXRjaF09XCJhY3Rpb24udHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoXCIgY2xhc3M9XCJzci1vbmx5XCI+U2VhcmNoPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgcGwtMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS08c3ZnIGNsYXNzPVwiaC01IHctNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04ek0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgI3NlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJzZWFyY2hBY3Rpb25UeXBlKHNlYXJjaC52YWx1ZSlcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1mb3JtLXZpZXctaGVhZGVyLXNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2hBY3Rpb25DbGljayhhY3Rpb24sIHNlYXJjaC52YWx1ZSlcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTEgYnRuLWZvcm0tdmlldy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicm91dGVyTGlua0FjdGlvbkNsaWNrKGFjdGlvbilcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGJ0bi1mb3JtLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnZm9ybS1jb250ZW50LWNvbnRhaW5lci1pbm5lcic6IGFjdGlvbnN9XCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxsaWItc2lkZS1wYW5lICNmb3JtUGFuZSAob25Db21wbGV0ZSk9XCJvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPHJvdXRlci1vdXRsZXQgbmFtZT1cImZvcm1SaWdodFBhbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgKGFjdGl2YXRlKT1cImZvcm1QYW5lLm9uU2lkZVBhbmVBY3RpdmF0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2xpYi1zaWRlLXBhbmU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3MvZm9ybS1sYXlvdXQvZm9ybS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVoxQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUNyQywyQ0FBMkM7UUFDZCxzQkFBaUIsR0FBa0IsV0FBVyxDQUFBO1FBQ2xFLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBQzdDLDJDQUEyQztRQUN2QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUNuRCwrQ0FBK0M7UUFDckMsYUFBUSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLCtDQUErQztRQUNyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRW5DLENBQUM7SUFFeEMsUUFBUTs7UUFDTixJQUFJLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsYUFBYSxFQUFDO1lBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CO1lBQ2hELENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLG9FQUFvRTtZQUNwRSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsMkNBQTJDO1lBQy9ELG9CQUFvQixFQUFFLENBQUMsK0NBQStDO2FBQ3ZFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFXO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBa0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWtCLEVBQUUsSUFBWTtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWTs7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQThCLEVBQUUsV0FBb0IsS0FBSztRQUNwRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFFO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7Z0hBckRVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVZQ1ZoQyxraEdBbUVBOzJGRHpEYSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtpQkFDNUM7NkZBRzhCLFlBQVk7c0JBQXhDLFNBQVM7dUJBQUMsUUFBUTtnQkFDVixLQUFLO3NCQUFiLEtBQUs7Z0JBRXVCLGlCQUFpQjtzQkFBN0MsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBQ2xCLE9BQU87c0JBQWYsS0FBSztnQkFFYyxRQUFRO3NCQUEzQixLQUFLO3VCQUFDLFdBQVc7Z0JBRVIsUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgZmlsdGVyLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJWaWV3QWN0aW9uLCBWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBAVmlld0NoaWxkKCdzZWFyY2gnKSBwcml2YXRlIHNlYXJjaElucHV0JD86IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtydcclxuICBASW5wdXQoKSBhY3Rpb25zOiBWaWV3QWN0aW9uW10gfCBudWxsID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzdWItdGl0bGUnKSBzdWJUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BY3Rpb246IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld0FjdGlvbj4oKTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgb25Db21wbGV0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlciQ6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoSW5wdXQkLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXHJcbiAgICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZXZlbnQudGFyZ2V0LnZhbHVlOyAvLyBHZXQgaW5wdXQgdmFsdWUuXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsdGVyKGlucHV0VmFsdWUgPT4gaW5wdXRWYWx1ZS5sZW5ndGggPj0gMyB8fCBpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMCksXHJcbiAgICAgICAgLy8gSWYgY2hhcmFjdGVyIGxlbmd0aCBncmVhdGVyIHRoYW4gbWluaW11bVNlYXJjaENoYXJhY3RlcnMgc2V0dGluZy5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50cy5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIElmIHByZXZpb3VzIHF1ZXJ5IGlzIGRpZmZlcmVudCBmcm9tIGN1cnJlbnQuXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvbkNsaWNrKGFjdGlvbjogVmlld0FjdGlvbiwgdGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGV4dCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hBY3Rpb25UeXBlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHRoaXMuc2VhcmNoSW5wdXQkPy5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55LCByZWxhdGl2ZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBpZiAoYWN0aW9uLm91dGxldCkge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoWycnLCB7IG91dGxldHM6IHsgZm9ybVJpZ2h0UGFuZTogYWN0aW9uLmxpbmsgfSB9XSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlciQubmF2aWdhdGUoW2FjdGlvbi5saW5rXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1sYXlvdXQtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCIgKm5nSWY9XCJ0aXRsZSB8fCBzdWJUaXRsZSB8fCBhY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXItaW5uZXJcIj5cclxuICAgICAgPGgzIGNsYXNzPVwiZm9ybS10aXRsZVwiPlxyXG4gICAgICAgIHt7IHRpdGxlIH19XHJcbiAgICAgIDwvaDM+XHJcbiAgICAgIDxwIGNsYXNzPVwiZm9ybS1zdWJ0aXRsZVwiPlxyXG4gICAgICAgIHt7IHN1YlRpdGxlIH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyLWFjdGlvbnNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIiBbbmdTd2l0Y2hdPVwiYWN0aW9uLnR5cGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaFwiIGNsYXNzPVwic3Itb25seVwiPlNlYXJjaDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC15LTAgbGVmdC0wIHBsLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8IS0tPHN2ZyBjbGFzcz1cImgtNSB3LTVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICNzZWFyY2hcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoQWN0aW9uVHlwZShzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZm9ybS12aWV3LWhlYWRlci1zZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyb3V0ZXItbGluaydcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xIGJ0bi1mb3JtLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMSBidG4tZm9ybS12aWV3LWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWl0QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2Zvcm0tY29udGVudC1jb250YWluZXItaW5uZXInOiBhY3Rpb25zfVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bGliLXNpZGUtcGFuZSAjZm9ybVBhbmUgKG9uQ29tcGxldGUpPVwib25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudClcIj5cclxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJmb3JtUmlnaHRQYW5lXCJcclxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJmb3JtUGFuZS5vblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGRlYWN0aXZhdGUpPVwiZm9ybVBhbmUub25TaWRlUGFuZURlYWN0aXZhdGVkKCRldmVudClcIj48L3JvdXRlci1vdXRsZXQ+XHJcbiAgPC9saWItc2lkZS1wYW5lPlxyXG48L2Rpdj5cclxuIl19
|