tango-app-ui-shared 3.0.63-dev → 3.0.66-dev
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/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +132 -24
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +30 -15
- package/esm2022/lib/services/notification.service.mjs +8 -3
- package/fesm2022/{tango-app-ui-shared-notification.module-C_ObuoyP.mjs → tango-app-ui-shared-notification.module-DVADPOZg.mjs} +31 -15
- package/fesm2022/tango-app-ui-shared-notification.module-DVADPOZg.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared.mjs +139 -26
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
- package/lib/modules/layout/header/navbar/navbar.component.d.ts +3 -1
- package/lib/modules/notification/notification/notification.component.d.ts +1 -1
- package/lib/services/notification.service.d.ts +4 -1
- package/package.json +1 -1
- package/fesm2022/tango-app-ui-shared-notification.module-C_ObuoyP.mjs.map +0 -1
|
@@ -2,12 +2,37 @@ import { Component, HostListener, Input } from '@angular/core';
|
|
|
2
2
|
import { filter } from 'rxjs';
|
|
3
3
|
import { NavigationEnd } from '@angular/router';
|
|
4
4
|
import { Subject, takeUntil } from "rxjs";
|
|
5
|
+
import { trigger, style, transition, animate } from '@angular/animations';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../../../services/notification.service";
|
|
7
8
|
import * as i2 from "@angular/router";
|
|
8
9
|
import * as i3 from "../../../../services/toast.service";
|
|
9
10
|
import * as i4 from "@angular/common";
|
|
10
11
|
import * as i5 from "../../../../pipes/customDate.pipe";
|
|
12
|
+
const enterTransition = transition(':enter', [
|
|
13
|
+
style({
|
|
14
|
+
opacity: 0,
|
|
15
|
+
// transform: 'translateX(50px)'
|
|
16
|
+
}),
|
|
17
|
+
animate('1s ease-in', style({
|
|
18
|
+
opacity: 1
|
|
19
|
+
}))
|
|
20
|
+
]);
|
|
21
|
+
const leaveTrans = transition(':leave', [
|
|
22
|
+
style({
|
|
23
|
+
opacity: 1,
|
|
24
|
+
// transform: 'translateX(-50px)'
|
|
25
|
+
}),
|
|
26
|
+
animate('1s ease-out', style({
|
|
27
|
+
opacity: 0,
|
|
28
|
+
}))
|
|
29
|
+
]);
|
|
30
|
+
const fadeIn = trigger('fadeIn', [
|
|
31
|
+
enterTransition
|
|
32
|
+
]);
|
|
33
|
+
const fadeOut = trigger('fadeOut', [
|
|
34
|
+
leaveTrans
|
|
35
|
+
]);
|
|
11
36
|
export class NavbarComponent {
|
|
12
37
|
service;
|
|
13
38
|
router;
|
|
@@ -30,7 +55,6 @@ export class NavbarComponent {
|
|
|
30
55
|
url;
|
|
31
56
|
showNotification = true;
|
|
32
57
|
showDropdown = false;
|
|
33
|
-
// notificationReceived = false;
|
|
34
58
|
subscription;
|
|
35
59
|
notificationDropDownClass = true;
|
|
36
60
|
constructor(service, router, toast, cd) {
|
|
@@ -44,16 +68,19 @@ export class NavbarComponent {
|
|
|
44
68
|
this.destroy$.complete();
|
|
45
69
|
}
|
|
46
70
|
ngOnInit() {
|
|
47
|
-
this.router.events.pipe(filter(event => event instanceof NavigationEnd)
|
|
48
|
-
|
|
49
|
-
if (url.includes('notifications')) {
|
|
50
|
-
this.showNotification = false;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.showNotification = true;
|
|
54
|
-
}
|
|
55
|
-
this.notificationList();
|
|
71
|
+
this.router.events.pipe(filter(event => event instanceof NavigationEnd), takeUntil(this.destroy$)).subscribe(() => {
|
|
72
|
+
this.showNotificationIcon();
|
|
56
73
|
});
|
|
74
|
+
this.showNotificationIcon();
|
|
75
|
+
}
|
|
76
|
+
showNotificationIcon() {
|
|
77
|
+
let url = this.router.url.split('/');
|
|
78
|
+
if (url.includes('notifications')) {
|
|
79
|
+
this.showNotification = false;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.showNotification = true;
|
|
83
|
+
}
|
|
57
84
|
this.notificationList();
|
|
58
85
|
}
|
|
59
86
|
toggleUserDropDown() {
|
|
@@ -78,6 +105,15 @@ export class NavbarComponent {
|
|
|
78
105
|
this.noData = false;
|
|
79
106
|
this.notification = res.data.result.slice(0, 5);
|
|
80
107
|
this.pushNotificationList = res.data.result.filter((item) => item._source.showPushNotification);
|
|
108
|
+
this.pushNotificationList.forEach((item) => {
|
|
109
|
+
item._score = true;
|
|
110
|
+
setTimeout(() => {
|
|
111
|
+
item._score = false;
|
|
112
|
+
this.service.notificationPushUpdate(item).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
113
|
+
});
|
|
114
|
+
// this.notificationPushUpdate(item,'');
|
|
115
|
+
}, 6000);
|
|
116
|
+
});
|
|
81
117
|
}
|
|
82
118
|
else {
|
|
83
119
|
this.notification = [];
|
|
@@ -92,27 +128,93 @@ export class NavbarComponent {
|
|
|
92
128
|
}
|
|
93
129
|
});
|
|
94
130
|
}
|
|
95
|
-
|
|
96
|
-
this.service.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
131
|
+
notificationPushUpdate(data, btnDetails) {
|
|
132
|
+
this.service.notificationPushUpdate(data).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
133
|
+
if (res && res.code == 200) {
|
|
134
|
+
if (btnDetails && btnDetails?.redirectionUrl != '' && !['remind', 'subscribed'].includes(btnDetails?.redirectionUrl)) {
|
|
135
|
+
this.router.navigateByUrl(btnDetails.redirectionUrl);
|
|
136
|
+
}
|
|
137
|
+
if (btnDetails && btnDetails?.redirectionUrl == 'remind') {
|
|
138
|
+
this.service.updateRemind(data._id).pipe(takeUntil(this.destroy$)).subscribe(() => { });
|
|
139
|
+
if (!this.showNotification) {
|
|
140
|
+
this.service.triggerReload();
|
|
141
|
+
}
|
|
142
|
+
this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe();
|
|
143
|
+
}
|
|
144
|
+
if (btnDetails && btnDetails?.redirectionUrl == 'subscribed') {
|
|
145
|
+
let params = {
|
|
146
|
+
clientId: btnDetails?.clientId,
|
|
147
|
+
products: [
|
|
148
|
+
{
|
|
149
|
+
name: btnDetails.product,
|
|
150
|
+
productName: btnDetails.name,
|
|
151
|
+
type: "subscription",
|
|
152
|
+
content: "new"
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
};
|
|
156
|
+
this.service.updateSubscription(params).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
157
|
+
if (res && res.code == 200) {
|
|
158
|
+
this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe();
|
|
159
|
+
if (!this.showNotification) {
|
|
160
|
+
this.service.triggerReload();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
this.cd.detectChanges();
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
this.notificationList();
|
|
168
|
+
}, 1000);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
101
171
|
}
|
|
102
|
-
updateNotification(data,
|
|
172
|
+
updateNotification(data, btnDetails) {
|
|
173
|
+
this.loading = true;
|
|
103
174
|
this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
104
175
|
if (res && res.code == 200) {
|
|
105
|
-
|
|
176
|
+
if (!btnDetails || btnDetails?.redirectionUrl != 'subscribed')
|
|
177
|
+
this.toast.getSuccessToast(res.message);
|
|
106
178
|
setTimeout(() => {
|
|
107
179
|
this.notificationList();
|
|
108
180
|
}, 1000);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
181
|
+
if (btnDetails && btnDetails?.redirectionUrl != '' && !['remind', 'subscribed'].includes(btnDetails?.redirectionUrl)) {
|
|
182
|
+
this.router.navigateByUrl(btnDetails.redirectionUrl);
|
|
183
|
+
}
|
|
184
|
+
if (btnDetails && btnDetails?.redirectionUrl == 'remind') {
|
|
185
|
+
this.service.updateRemind(data._id).pipe(takeUntil(this.destroy$)).subscribe(() => { });
|
|
186
|
+
}
|
|
187
|
+
if (btnDetails && btnDetails?.redirectionUrl == 'subscribed') {
|
|
188
|
+
let params = {
|
|
189
|
+
clientId: btnDetails?.clientId,
|
|
190
|
+
products: [
|
|
191
|
+
{
|
|
192
|
+
name: btnDetails.product,
|
|
193
|
+
productName: btnDetails.name,
|
|
194
|
+
type: "subscription",
|
|
195
|
+
content: "new"
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
};
|
|
199
|
+
this.service.updateSubscription(params).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
200
|
+
if (res && res.code == 200) {
|
|
201
|
+
this.toast.getSuccessToast('Product Subscribed Successfully');
|
|
202
|
+
}
|
|
203
|
+
});
|
|
112
204
|
}
|
|
205
|
+
this.cd.detectChanges();
|
|
113
206
|
}
|
|
207
|
+
}, (error) => {
|
|
208
|
+
this.loading = false;
|
|
209
|
+
this.noData = true;
|
|
114
210
|
});
|
|
115
211
|
}
|
|
212
|
+
handleNotification() {
|
|
213
|
+
this.service.updateNotificationReceived(true);
|
|
214
|
+
}
|
|
215
|
+
viewAll(type) {
|
|
216
|
+
this.router.navigateByUrl('/notifications/alerts');
|
|
217
|
+
}
|
|
116
218
|
onClick(event) {
|
|
117
219
|
const target = event.target;
|
|
118
220
|
if (!target.closest('.app-navbar')) {
|
|
@@ -120,11 +222,17 @@ export class NavbarComponent {
|
|
|
120
222
|
}
|
|
121
223
|
}
|
|
122
224
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.NotificationService }, { token: i2.Router }, { token: i3.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: NavbarComponent, selector: "lib-navbar", inputs: { appHeaderDefaulMenuDisplay: "appHeaderDefaulMenuDisplay", isRtl: "isRtl" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<!--begin::Notifications-->\r\n<div class=\"app-navbar-item\" [ngClass]=\"itemClass\" *ngIf=\"showNotification\">\r\n <!--begin::Menu- wrapper-->\r\n <div [ngClass]=\"btnClass\" (click)=\"showDropdown = !showDropdown\">\r\n <span *ngIf=\"!notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M10.6779 2.4V3.00688L11.2715 3.1335C14.1674 3.75125 16.3919 6.45842 16.3919 9.75V10.6313C16.3919 13.0131 17.2249 15.3087 18.7338 17.0963L18.7352 17.0979L19.0636 17.4846C19.0639 17.485 19.0642 17.4853 19.0645 17.4857C19.2557 17.7136 19.3048 18.0393 19.185 18.3174C19.0641 18.5983 18.8153 18.75 18.5704 18.75H1.42848C1.1825 18.75 0.933931 18.5974 0.815017 18.3193C0.695108 18.0388 0.744592 17.7123 0.933996 17.4853C0.934445 17.4848 0.934894 17.4843 0.935344 17.4837L1.26312 17.0985L1.26473 17.0966C2.77599 15.3086 3.60697 13.0127 3.60697 10.6313V9.75C3.60697 6.45434 5.79488 3.75145 8.72559 3.13388L9.32094 3.00843V2.4V1.5C9.32094 1.05052 9.65806 0.75 9.99944 0.75C10.3408 0.75 10.6779 1.05052 10.6779 1.5V2.4ZM9.99944 23.25C9.44983 23.25 8.91726 23.023 8.52034 22.6062C8.29649 22.3712 8.12457 22.0708 8.01769 21.75H11.9812C11.8743 22.0708 11.7024 22.3712 11.4785 22.6062C11.0856 23.0188 10.5146 23.25 9.99944 23.25Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M11.4279 2.4V1.5C11.4279 0.671719 10.7896 0 9.99944 0C9.2093 0 8.57094 0.671719 8.57094 1.5V2.4C5.27202 3.09516 2.85697 6.12188 2.85697 9.75V10.6313C2.85697 12.8391 2.08648 14.9625 0.691915 16.6125L0.360862 17.0016C-0.0128805 17.4469 -0.10505 18.075 0.125384 18.6141C0.355818 19.1531 0.866013 19.5 1.42848 19.5H18.5704C19.1329 19.5 19.6418 19.1531 19.8739 18.6141C20.106 18.075 20.0123 17.4469 19.6373 17.0016L19.307 16.6125C17.9142 14.9625 17.1419 12.8391 17.1419 10.6313V9.75C17.1419 9.39947 17.119 9.05455 17.0746 8.71681C16.5845 8.8999 16.054 9 15.5 9C13.0147 9 11 6.98528 11 4.5C11 3.74877 11.1841 3.04054 11.5096 2.41795C11.4824 2.4118 11.4552 2.40582 11.4279 2.4Z\"\r\n fill=\"#00A3FF\" />\r\n <path\r\n d=\"M7.97723 23.1234C8.51291 23.6859 9.24055 24 9.99944 24C10.7181 24 11.486 23.6859 12.0216 23.1234C12.5573 22.5609 12.8564 21.7547 12.8564 21H7.14245C7.14245 21.7547 7.44154 22.5609 7.97723 23.1234Z\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"16\" cy=\"4\" r=\"4\" fill=\"#F04438\" />\r\n </svg>\r\n </span>\r\n <div class=\"menu menu-sub menu-sub-dropdown menu-column w-450px w-lg-425px notificationMenu\" *ngIf=\"showDropdown\">\r\n <div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"title-notify mt-10 mb-6\">\r\n Notifications\r\n </h3>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n <div class=\"alertscroll\" *ngIf=\"notification.length\">\r\n <div *ngFor=\"let item of notification\" class=\"mh-200px ng-star-inserted\" style=\"overflow: auto;\">\r\n <div class=\"d-flex flex-stack py-3 mx-4 ng-star-inserted\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px me-4\"><span class=\"symbol-label bg-light-primary\"><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"></span><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\"\r\n version=\"1.1\" class=\"ng-star-inserted\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon points=\"0 0 24 0 24 24 0 24\"></polygon>\r\n <path\r\n d=\"M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\" opacity=\"0.3\"></path>\r\n <path\r\n d=\"M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </svg></span></span></div>\r\n <div class=\"mb-0 me-2\" style=\"text-align: left;\">\r\n <div class=\"alert-title\">{{ item._source.title }}</div>\r\n <div class=\"alt-desc\">{{ item._source.description }}</div>\r\n </div>\r\n </div><span class=\"badge badge-light fs-9\">{{ item._source.date|customDateFormat }}</span>\r\n \r\n \r\n </div>\r\n \r\n </div>\r\n <div class=\"text-center border-top\">\r\n <a (click)=\"viewAll('alerts')\" class=\"btn btn-color-gray-600 btn-active-color-primary my-2\">\r\n View All\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"w-450px position-absolute end-0 top-0 pushlist d-none\">\r\n <div class=\"alertbg\">\r\n <div class=\"card pushnotification rounded-2 mt-4\" *ngFor=\"let item of pushNotificationList\">\r\n <div class=\"row\">\r\n <div class=\"col-1 align-items-start mt-1\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12254_112653)\">\r\n <path\r\n d=\"M9.99935 13.3334V10M9.99935 6.66669H10.0077M18.3327 10C18.3327 14.6024 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6024 1.66602 10C1.66602 5.39765 5.39698 1.66669 9.99935 1.66669C14.6017 1.66669 18.3327 5.39765 18.3327 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12254_112653\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-10 align-items-start\">\r\n <span class=\"alert-title\">\r\n Notification\r\n </span>\r\n <div>\r\n {{item._source.description}}\r\n </div>\r\n </div>\r\n <div class=\"col-1 align-items-start\">\r\n <!-- <span class=\"btn btn-sm btn-icon btn-active-color-primary\"> -->\r\n <span><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <!-- </span> -->\r\n </span>\r\n </div>\r\n <div class=\"d-flex\" *ngFor=\"let button of item._source?.alertCta\">\r\n <button *ngIf=\"button.redirectionUrl !== 'cancel'\" (click)=\"updateNotification(item,button.redirectionUrl)\"\r\n class=\"btn btn-md btn-primary\">{{ button.buttonName }}</button>\r\n <button *ngIf=\"button.redirectionUrl === 'cancel'\" (click)=\"updateNotification(item,'')\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{ button.buttonName }}</button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</div>\r\n\r\n \r\n\r\n<!--end::Notifications-->\r\n<!-- <div class=\"app-navbar-item\" [ngClass]=\"itemClass\"> -->\r\n <!--begin::Drawer toggle-->\r\n <!-- <div [ngClass]=\"btnClass\" id=\"kt_activities_toggle\"> -->\r\n <!-- <img src=\"./assets/tango/layout/bell.svg\" alt=\"\"> -->\r\n <!-- </div> -->\r\n <!--end::Drawer toggle-->\r\n<!-- </div> -->\r\n<!--end::Activities-->\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".nav-line-tabs .nav-item .nav-link.active{border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;padding:10px 14px!important;border-bottom:none!important;width:100%!important}.nav-line-tabs.nav-line-tabs-2x{background:var(--Gray-50, #F9FAFB)!important;padding:6px!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important}.title-name{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:500!important;line-height:20px}.title-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.title-notify{color:var(--Gray-900, #101828)!important;font-size:20px!important;font-weight:500!important;line-height:30px}.alert-title{color:var(--Gray-900, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:28px;text-align:left}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px;width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alertscroll{max-height:300px;overflow-y:scroll}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.border-value{padding:16px!important;border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.alerticon{margin-bottom:35%!important}.alertbg{gap:0px;opacity:0px;border-left:7px solid var(--Primary-500, #33B5FF);border-top-left-radius:15px;border-bottom-left-radius:15px;height:100px}.pushnotification{padding:16px}.pushlist{overflow-y:scroll;height:570px}.notificationMenu{display:block!important;z-index:105;position:fixed;inset:0 0 auto auto;margin:0;transform:translate3d(-30.2222px,72.8889px,0)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
225
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: NavbarComponent, selector: "lib-navbar", inputs: { appHeaderDefaulMenuDisplay: "appHeaderDefaulMenuDisplay", isRtl: "isRtl" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<!--begin::Notifications-->\r\n<div class=\"app-navbar-item\" [ngClass]=\"itemClass\" *ngIf=\"showNotification\">\r\n <!--begin::Menu- wrapper-->\r\n <div [ngClass]=\"btnClass\" (click)=\"showDropdown = !showDropdown\">\r\n <span *ngIf=\"!notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M10.6779 2.4V3.00688L11.2715 3.1335C14.1674 3.75125 16.3919 6.45842 16.3919 9.75V10.6313C16.3919 13.0131 17.2249 15.3087 18.7338 17.0963L18.7352 17.0979L19.0636 17.4846C19.0639 17.485 19.0642 17.4853 19.0645 17.4857C19.2557 17.7136 19.3048 18.0393 19.185 18.3174C19.0641 18.5983 18.8153 18.75 18.5704 18.75H1.42848C1.1825 18.75 0.933931 18.5974 0.815017 18.3193C0.695108 18.0388 0.744592 17.7123 0.933996 17.4853C0.934445 17.4848 0.934894 17.4843 0.935344 17.4837L1.26312 17.0985L1.26473 17.0966C2.77599 15.3086 3.60697 13.0127 3.60697 10.6313V9.75C3.60697 6.45434 5.79488 3.75145 8.72559 3.13388L9.32094 3.00843V2.4V1.5C9.32094 1.05052 9.65806 0.75 9.99944 0.75C10.3408 0.75 10.6779 1.05052 10.6779 1.5V2.4ZM9.99944 23.25C9.44983 23.25 8.91726 23.023 8.52034 22.6062C8.29649 22.3712 8.12457 22.0708 8.01769 21.75H11.9812C11.8743 22.0708 11.7024 22.3712 11.4785 22.6062C11.0856 23.0188 10.5146 23.25 9.99944 23.25Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M11.4279 2.4V1.5C11.4279 0.671719 10.7896 0 9.99944 0C9.2093 0 8.57094 0.671719 8.57094 1.5V2.4C5.27202 3.09516 2.85697 6.12188 2.85697 9.75V10.6313C2.85697 12.8391 2.08648 14.9625 0.691915 16.6125L0.360862 17.0016C-0.0128805 17.4469 -0.10505 18.075 0.125384 18.6141C0.355818 19.1531 0.866013 19.5 1.42848 19.5H18.5704C19.1329 19.5 19.6418 19.1531 19.8739 18.6141C20.106 18.075 20.0123 17.4469 19.6373 17.0016L19.307 16.6125C17.9142 14.9625 17.1419 12.8391 17.1419 10.6313V9.75C17.1419 9.39947 17.119 9.05455 17.0746 8.71681C16.5845 8.8999 16.054 9 15.5 9C13.0147 9 11 6.98528 11 4.5C11 3.74877 11.1841 3.04054 11.5096 2.41795C11.4824 2.4118 11.4552 2.40582 11.4279 2.4Z\"\r\n fill=\"#00A3FF\" />\r\n <path\r\n d=\"M7.97723 23.1234C8.51291 23.6859 9.24055 24 9.99944 24C10.7181 24 11.486 23.6859 12.0216 23.1234C12.5573 22.5609 12.8564 21.7547 12.8564 21H7.14245C7.14245 21.7547 7.44154 22.5609 7.97723 23.1234Z\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"16\" cy=\"4\" r=\"4\" fill=\"#F04438\" />\r\n </svg>\r\n </span>\r\n <div class=\"menu menu-sub menu-sub-dropdown menu-column w-450px w-lg-425px notificationMenu\" *ngIf=\"showDropdown\">\r\n <div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"title-notify mt-10 mb-6\">\r\n Notifications\r\n </h3>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"alertscroll\" *ngIf=\"notification.length\">\r\n <div *ngFor=\"let item of notification\" class=\"mh-200px ng-star-inserted\" style=\"overflow: auto;\">\r\n <div class=\"d-flex flex-stack py-3 mx-4 ng-star-inserted\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px me-4\"><span class=\"symbol-label bg-light-primary\"><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"></span><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\"\r\n version=\"1.1\" class=\"ng-star-inserted\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon points=\"0 0 24 0 24 24 0 24\"></polygon>\r\n <path\r\n d=\"M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\" opacity=\"0.3\"></path>\r\n <path\r\n d=\"M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </svg></span></span></div>\r\n <div class=\"mb-0 me-2\" style=\"text-align: left;\">\r\n <div class=\"alert-title\">{{ item._source.title }}</div>\r\n <div class=\"alt-desc\">{{ item._source.description }}</div>\r\n </div>\r\n </div><span class=\"badge badge-light fs-9\">{{ item._source.date|customDateFormat }}</span>\r\n </div>\r\n </div>\r\n <div class=\"text-center border-top\">\r\n <a (click)=\"viewAll('alerts')\" class=\"btn btn-color-gray-600 btn-active-color-primary my-2\">\r\n View All\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"w-450px position-fixed end-0 bottom-0 transition\">\r\n <div class=\"mb-4\" *ngFor=\"let item of pushNotificationList;let i = index\">\r\n <div class=\"alertbg card\" *ngIf=\"item._score\" @fadeIn @fadeOut>\r\n <div class=\"row m-2\">\r\n <div class=\"col-1 align-items-start mt-1\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12254_112653)\">\r\n <path\r\n d=\"M9.99935 13.3334V10M9.99935 6.66669H10.0077M18.3327 10C18.3327 14.6024 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6024 1.66602 10C1.66602 5.39765 5.39698 1.66669 9.99935 1.66669C14.6017 1.66669 18.3327 5.39765 18.3327 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12254_112653\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-10 align-items-start\">\r\n <span class=\"alert-title\">\r\n Notification\r\n </span>\r\n <div>\r\n {{item._source.description}}\r\n </div>\r\n </div>\r\n <div class=\"col-1 align-items-start cursor-pointer\" (click)=\"notificationPushUpdate(item,'')\">\r\n <span><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"justify-content: space-around;\">\r\n <div [ngClass]=\"button.redirectionUrl !== 'remind' ? '' : 'mt-2'\" *ngFor=\"let button of item._source?.alertCta\">\r\n <button *ngIf=\"button.redirectionUrl !== 'remind'\" (click)=\"notificationPushUpdate(item,button)\"\r\n type=\"button\" tabindex=\"0\" class=\"btn btn-sm btn-primary mx-4 ng-star-inserted w-100\"\r\n style=\"white-space: nowrap;\"><span class=\"submit\">{{ button.buttonName }} </span></button>\r\n <span *ngIf=\"button.redirectionUrl === 'remind'\" (click)=\"notificationPushUpdate(item,button)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{ button.buttonName }} </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".nav-line-tabs .nav-item .nav-link.active{border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;padding:10px 14px!important;border-bottom:none!important;width:100%!important}.nav-line-tabs.nav-line-tabs-2x{background:var(--Gray-50, #F9FAFB)!important;padding:6px!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important}.title-name{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:500!important;line-height:20px}.title-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.title-notify{color:var(--Gray-900, #101828)!important;font-size:20px!important;font-weight:500!important;line-height:30px}.alert-title{color:var(--Gray-900, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:28px;text-align:left}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px;width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alertscroll{max-height:300px;overflow-y:scroll}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.border-value{padding:16px!important;border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.submit{font-size:16px;font-weight:600;line-height:24px;text-align:left;color:#fff}.alerticon{margin-bottom:35%!important}.alertbg{gap:0px;opacity:0px;border-left:7px solid var(--Primary-500, #33B5FF);border-top-left-radius:15px;border-bottom-left-radius:15px}.notificationMenu{display:block!important;z-index:105;position:fixed;inset:0 0 auto auto;margin:0;transform:translate3d(-30.2222px,72.8889px,0)}.transition{transition:5s ease-in!important;right:-450px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.CustomDateFormatPipe, name: "customDateFormat" }], animations: [
|
|
226
|
+
fadeIn,
|
|
227
|
+
fadeOut
|
|
228
|
+
] });
|
|
124
229
|
}
|
|
125
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NavbarComponent, decorators: [{
|
|
126
231
|
type: Component,
|
|
127
|
-
args: [{ selector: 'lib-navbar', template: "<!--begin::Notifications-->\r\n<div class=\"app-navbar-item\" [ngClass]=\"itemClass\" *ngIf=\"showNotification\">\r\n <!--begin::Menu- wrapper-->\r\n <div [ngClass]=\"btnClass\" (click)=\"showDropdown = !showDropdown\">\r\n <span *ngIf=\"!notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M10.6779 2.4V3.00688L11.2715 3.1335C14.1674 3.75125 16.3919 6.45842 16.3919 9.75V10.6313C16.3919 13.0131 17.2249 15.3087 18.7338 17.0963L18.7352 17.0979L19.0636 17.4846C19.0639 17.485 19.0642 17.4853 19.0645 17.4857C19.2557 17.7136 19.3048 18.0393 19.185 18.3174C19.0641 18.5983 18.8153 18.75 18.5704 18.75H1.42848C1.1825 18.75 0.933931 18.5974 0.815017 18.3193C0.695108 18.0388 0.744592 17.7123 0.933996 17.4853C0.934445 17.4848 0.934894 17.4843 0.935344 17.4837L1.26312 17.0985L1.26473 17.0966C2.77599 15.3086 3.60697 13.0127 3.60697 10.6313V9.75C3.60697 6.45434 5.79488 3.75145 8.72559 3.13388L9.32094 3.00843V2.4V1.5C9.32094 1.05052 9.65806 0.75 9.99944 0.75C10.3408 0.75 10.6779 1.05052 10.6779 1.5V2.4ZM9.99944 23.25C9.44983 23.25 8.91726 23.023 8.52034 22.6062C8.29649 22.3712 8.12457 22.0708 8.01769 21.75H11.9812C11.8743 22.0708 11.7024 22.3712 11.4785 22.6062C11.0856 23.0188 10.5146 23.25 9.99944 23.25Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M11.4279 2.4V1.5C11.4279 0.671719 10.7896 0 9.99944 0C9.2093 0 8.57094 0.671719 8.57094 1.5V2.4C5.27202 3.09516 2.85697 6.12188 2.85697 9.75V10.6313C2.85697 12.8391 2.08648 14.9625 0.691915 16.6125L0.360862 17.0016C-0.0128805 17.4469 -0.10505 18.075 0.125384 18.6141C0.355818 19.1531 0.866013 19.5 1.42848 19.5H18.5704C19.1329 19.5 19.6418 19.1531 19.8739 18.6141C20.106 18.075 20.0123 17.4469 19.6373 17.0016L19.307 16.6125C17.9142 14.9625 17.1419 12.8391 17.1419 10.6313V9.75C17.1419 9.39947 17.119 9.05455 17.0746 8.71681C16.5845 8.8999 16.054 9 15.5 9C13.0147 9 11 6.98528 11 4.5C11 3.74877 11.1841 3.04054 11.5096 2.41795C11.4824 2.4118 11.4552 2.40582 11.4279 2.4Z\"\r\n fill=\"#00A3FF\" />\r\n <path\r\n d=\"M7.97723 23.1234C8.51291 23.6859 9.24055 24 9.99944 24C10.7181 24 11.486 23.6859 12.0216 23.1234C12.5573 22.5609 12.8564 21.7547 12.8564 21H7.14245C7.14245 21.7547 7.44154 22.5609 7.97723 23.1234Z\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"16\" cy=\"4\" r=\"4\" fill=\"#F04438\" />\r\n </svg>\r\n </span>\r\n <div class=\"menu menu-sub menu-sub-dropdown menu-column w-450px w-lg-425px notificationMenu\" *ngIf=\"showDropdown\">\r\n <div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"title-notify mt-10 mb-6\">\r\n Notifications\r\n </h3>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n <div class=\"alertscroll\" *ngIf=\"notification.length\">\r\n <div *ngFor=\"let item of notification\" class=\"mh-200px ng-star-inserted\" style=\"overflow: auto;\">\r\n <div class=\"d-flex flex-stack py-3 mx-4 ng-star-inserted\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px me-4\"><span class=\"symbol-label bg-light-primary\"><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"></span><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\"\r\n version=\"1.1\" class=\"ng-star-inserted\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon points=\"0 0 24 0 24 24 0 24\"></polygon>\r\n <path\r\n d=\"M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\" opacity=\"0.3\"></path>\r\n <path\r\n d=\"M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </svg></span></span></div>\r\n <div class=\"mb-0 me-2\" style=\"text-align: left;\">\r\n <div class=\"alert-title\">{{ item._source.title }}</div>\r\n <div class=\"alt-desc\">{{ item._source.description }}</div>\r\n </div>\r\n </div><span class=\"badge badge-light fs-9\">{{ item._source.date|customDateFormat }}</span>\r\n \r\n \r\n </div>\r\n \r\n </div>\r\n <div class=\"text-center border-top\">\r\n <a (click)=\"viewAll('alerts')\" class=\"btn btn-color-gray-600 btn-active-color-primary my-2\">\r\n View All\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"w-450px position-absolute end-0 top-0 pushlist d-none\">\r\n <div class=\"alertbg\">\r\n <div class=\"card pushnotification rounded-2 mt-4\" *ngFor=\"let item of pushNotificationList\">\r\n <div class=\"row\">\r\n <div class=\"col-1 align-items-start mt-1\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12254_112653)\">\r\n <path\r\n d=\"M9.99935 13.3334V10M9.99935 6.66669H10.0077M18.3327 10C18.3327 14.6024 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6024 1.66602 10C1.66602 5.39765 5.39698 1.66669 9.99935 1.66669C14.6017 1.66669 18.3327 5.39765 18.3327 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12254_112653\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-10 align-items-start\">\r\n <span class=\"alert-title\">\r\n Notification\r\n </span>\r\n <div>\r\n {{item._source.description}}\r\n </div>\r\n </div>\r\n <div class=\"col-1 align-items-start\">\r\n <!-- <span class=\"btn btn-sm btn-icon btn-active-color-primary\"> -->\r\n <span><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <!-- </span> -->\r\n </span>\r\n </div>\r\n <div class=\"d-flex\" *ngFor=\"let button of item._source?.alertCta\">\r\n <button *ngIf=\"button.redirectionUrl !== 'cancel'\" (click)=\"updateNotification(item,button.redirectionUrl)\"\r\n class=\"btn btn-md btn-primary\">{{ button.buttonName }}</button>\r\n <button *ngIf=\"button.redirectionUrl === 'cancel'\" (click)=\"updateNotification(item,'')\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{ button.buttonName }}</button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</div>\r\n\r\n \r\n\r\n<!--end::Notifications-->\r\n<!-- <div class=\"app-navbar-item\" [ngClass]=\"itemClass\"> -->\r\n <!--begin::Drawer toggle-->\r\n <!-- <div [ngClass]=\"btnClass\" id=\"kt_activities_toggle\"> -->\r\n <!-- <img src=\"./assets/tango/layout/bell.svg\" alt=\"\"> -->\r\n <!-- </div> -->\r\n <!--end::Drawer toggle-->\r\n<!-- </div> -->\r\n<!--end::Activities-->\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".nav-line-tabs .nav-item .nav-link.active{border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;padding:10px 14px!important;border-bottom:none!important;width:100%!important}.nav-line-tabs.nav-line-tabs-2x{background:var(--Gray-50, #F9FAFB)!important;padding:6px!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important}.title-name{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:500!important;line-height:20px}.title-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.title-notify{color:var(--Gray-900, #101828)!important;font-size:20px!important;font-weight:500!important;line-height:30px}.alert-title{color:var(--Gray-900, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:28px;text-align:left}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px;width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alertscroll{max-height:300px;overflow-y:scroll}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.border-value{padding:16px!important;border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.alerticon{margin-bottom:35%!important}.alertbg{gap:0px;opacity:0px;border-left:7px solid var(--Primary-500, #33B5FF);border-top-left-radius:15px;border-bottom-left-radius:15px;height:100px}.pushnotification{padding:16px}.pushlist{overflow-y:scroll;height:570px}.notificationMenu{display:block!important;z-index:105;position:fixed;inset:0 0 auto auto;margin:0;transform:translate3d(-30.2222px,72.8889px,0)}\n"] }]
|
|
232
|
+
args: [{ selector: 'lib-navbar', animations: [
|
|
233
|
+
fadeIn,
|
|
234
|
+
fadeOut
|
|
235
|
+
], template: "<!--begin::Notifications-->\r\n<div class=\"app-navbar-item\" [ngClass]=\"itemClass\" *ngIf=\"showNotification\">\r\n <!--begin::Menu- wrapper-->\r\n <div [ngClass]=\"btnClass\" (click)=\"showDropdown = !showDropdown\">\r\n <span *ngIf=\"!notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M10.6779 2.4V3.00688L11.2715 3.1335C14.1674 3.75125 16.3919 6.45842 16.3919 9.75V10.6313C16.3919 13.0131 17.2249 15.3087 18.7338 17.0963L18.7352 17.0979L19.0636 17.4846C19.0639 17.485 19.0642 17.4853 19.0645 17.4857C19.2557 17.7136 19.3048 18.0393 19.185 18.3174C19.0641 18.5983 18.8153 18.75 18.5704 18.75H1.42848C1.1825 18.75 0.933931 18.5974 0.815017 18.3193C0.695108 18.0388 0.744592 17.7123 0.933996 17.4853C0.934445 17.4848 0.934894 17.4843 0.935344 17.4837L1.26312 17.0985L1.26473 17.0966C2.77599 15.3086 3.60697 13.0127 3.60697 10.6313V9.75C3.60697 6.45434 5.79488 3.75145 8.72559 3.13388L9.32094 3.00843V2.4V1.5C9.32094 1.05052 9.65806 0.75 9.99944 0.75C10.3408 0.75 10.6779 1.05052 10.6779 1.5V2.4ZM9.99944 23.25C9.44983 23.25 8.91726 23.023 8.52034 22.6062C8.29649 22.3712 8.12457 22.0708 8.01769 21.75H11.9812C11.8743 22.0708 11.7024 22.3712 11.4785 22.6062C11.0856 23.0188 10.5146 23.25 9.99944 23.25Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"notification.length\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\">\r\n <path\r\n d=\"M11.4279 2.4V1.5C11.4279 0.671719 10.7896 0 9.99944 0C9.2093 0 8.57094 0.671719 8.57094 1.5V2.4C5.27202 3.09516 2.85697 6.12188 2.85697 9.75V10.6313C2.85697 12.8391 2.08648 14.9625 0.691915 16.6125L0.360862 17.0016C-0.0128805 17.4469 -0.10505 18.075 0.125384 18.6141C0.355818 19.1531 0.866013 19.5 1.42848 19.5H18.5704C19.1329 19.5 19.6418 19.1531 19.8739 18.6141C20.106 18.075 20.0123 17.4469 19.6373 17.0016L19.307 16.6125C17.9142 14.9625 17.1419 12.8391 17.1419 10.6313V9.75C17.1419 9.39947 17.119 9.05455 17.0746 8.71681C16.5845 8.8999 16.054 9 15.5 9C13.0147 9 11 6.98528 11 4.5C11 3.74877 11.1841 3.04054 11.5096 2.41795C11.4824 2.4118 11.4552 2.40582 11.4279 2.4Z\"\r\n fill=\"#00A3FF\" />\r\n <path\r\n d=\"M7.97723 23.1234C8.51291 23.6859 9.24055 24 9.99944 24C10.7181 24 11.486 23.6859 12.0216 23.1234C12.5573 22.5609 12.8564 21.7547 12.8564 21H7.14245C7.14245 21.7547 7.44154 22.5609 7.97723 23.1234Z\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"16\" cy=\"4\" r=\"4\" fill=\"#F04438\" />\r\n </svg>\r\n </span>\r\n <div class=\"menu menu-sub menu-sub-dropdown menu-column w-450px w-lg-425px notificationMenu\" *ngIf=\"showDropdown\">\r\n <div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"title-notify mt-10 mb-6\">\r\n Notifications\r\n </h3>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"alertscroll\" *ngIf=\"notification.length\">\r\n <div *ngFor=\"let item of notification\" class=\"mh-200px ng-star-inserted\" style=\"overflow: auto;\">\r\n <div class=\"d-flex flex-stack py-3 mx-4 ng-star-inserted\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px me-4\"><span class=\"symbol-label bg-light-primary\"><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"></span><span\r\n class=\"svg-icon svg-icon-2 svg-icon-primary\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\"\r\n version=\"1.1\" class=\"ng-star-inserted\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon points=\"0 0 24 0 24 24 0 24\"></polygon>\r\n <path\r\n d=\"M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\" opacity=\"0.3\"></path>\r\n <path\r\n d=\"M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z\"\r\n fill=\"#009EF7\" fill-rule=\"nonzero\"></path>\r\n </g>\r\n </svg></span></span></div>\r\n <div class=\"mb-0 me-2\" style=\"text-align: left;\">\r\n <div class=\"alert-title\">{{ item._source.title }}</div>\r\n <div class=\"alt-desc\">{{ item._source.description }}</div>\r\n </div>\r\n </div><span class=\"badge badge-light fs-9\">{{ item._source.date|customDateFormat }}</span>\r\n </div>\r\n </div>\r\n <div class=\"text-center border-top\">\r\n <a (click)=\"viewAll('alerts')\" class=\"btn btn-color-gray-600 btn-active-color-primary my-2\">\r\n View All\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"w-450px position-fixed end-0 bottom-0 transition\">\r\n <div class=\"mb-4\" *ngFor=\"let item of pushNotificationList;let i = index\">\r\n <div class=\"alertbg card\" *ngIf=\"item._score\" @fadeIn @fadeOut>\r\n <div class=\"row m-2\">\r\n <div class=\"col-1 align-items-start mt-1\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12254_112653)\">\r\n <path\r\n d=\"M9.99935 13.3334V10M9.99935 6.66669H10.0077M18.3327 10C18.3327 14.6024 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6024 1.66602 10C1.66602 5.39765 5.39698 1.66669 9.99935 1.66669C14.6017 1.66669 18.3327 5.39765 18.3327 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12254_112653\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-10 align-items-start\">\r\n <span class=\"alert-title\">\r\n Notification\r\n </span>\r\n <div>\r\n {{item._source.description}}\r\n </div>\r\n </div>\r\n <div class=\"col-1 align-items-start cursor-pointer\" (click)=\"notificationPushUpdate(item,'')\">\r\n <span><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"justify-content: space-around;\">\r\n <div [ngClass]=\"button.redirectionUrl !== 'remind' ? '' : 'mt-2'\" *ngFor=\"let button of item._source?.alertCta\">\r\n <button *ngIf=\"button.redirectionUrl !== 'remind'\" (click)=\"notificationPushUpdate(item,button)\"\r\n type=\"button\" tabindex=\"0\" class=\"btn btn-sm btn-primary mx-4 ng-star-inserted w-100\"\r\n style=\"white-space: nowrap;\"><span class=\"submit\">{{ button.buttonName }} </span></button>\r\n <span *ngIf=\"button.redirectionUrl === 'remind'\" (click)=\"notificationPushUpdate(item,button)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{ button.buttonName }} </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".nav-line-tabs .nav-item .nav-link.active{border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;padding:10px 14px!important;border-bottom:none!important;width:100%!important}.nav-line-tabs.nav-line-tabs-2x{background:var(--Gray-50, #F9FAFB)!important;padding:6px!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important}.title-name{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:500!important;line-height:20px}.title-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.title-notify{color:var(--Gray-900, #101828)!important;font-size:20px!important;font-weight:500!important;line-height:30px}.alert-title{color:var(--Gray-900, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:28px;text-align:left}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px;width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alertscroll{max-height:300px;overflow-y:scroll}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.border-value{padding:16px!important;border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.submit{font-size:16px;font-weight:600;line-height:24px;text-align:left;color:#fff}.alerticon{margin-bottom:35%!important}.alertbg{gap:0px;opacity:0px;border-left:7px solid var(--Primary-500, #33B5FF);border-top-left-radius:15px;border-bottom-left-radius:15px}.notificationMenu{display:block!important;z-index:105;position:fixed;inset:0 0 auto auto;margin:0;transform:translate3d(-30.2222px,72.8889px,0)}.transition{transition:5s ease-in!important;right:-450px}\n"] }]
|
|
128
236
|
}], ctorParameters: () => [{ type: i1.NotificationService }, { type: i2.Router }, { type: i3.ToastService }, { type: i0.ChangeDetectorRef }], propDecorators: { appHeaderDefaulMenuDisplay: [{
|
|
129
237
|
type: Input
|
|
130
238
|
}], isRtl: [{
|
|
@@ -133,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
133
241
|
type: HostListener,
|
|
134
242
|
args: ['document:click', ['$event']]
|
|
135
243
|
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9oZWFkZXIvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUFlLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQXdCLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxlQUFlO0lBd0JOO0lBQW9DO0lBQXNCO0lBQTJCO0lBdkJoRywwQkFBMEIsQ0FBVTtJQUNwQyxLQUFLLENBQVU7SUFDUCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxTQUFTLEdBQVcsY0FBYyxDQUFDO0lBQ25DLFFBQVEsR0FBVyxvSEFBb0gsQ0FBQztJQUN4SSxTQUFTLENBQVM7SUFDbEIsZUFBZSxHQUFXLDRCQUE0QixDQUFDO0lBQ3ZELFlBQVksR0FBVyxjQUFjLENBQUM7SUFDdEMsb0JBQW9CLEdBQVksS0FBSyxDQUFDO0lBQ3RDLFlBQVksR0FBTyxFQUFFLENBQUM7SUFDdEIsb0JBQW9CLEdBQU8sRUFBRSxDQUFDO0lBQzlCLFdBQVcsR0FBVSxRQUFRLENBQUM7SUFDOUIsT0FBTyxHQUFXLElBQUksQ0FBQztJQUN2QixNQUFN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RyxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFHRCxPQUFPLENBQUUsS0FBaUI7UUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO3dHQWxIVSxlQUFlOzRGQUFmLGVBQWUsc01DWDVCLHUxVEFxS0E7OzRGRDFKYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7d0tBS2IsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkEyR04sT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsQWN0aXZhdGVkUm91dGUsTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1uYXZiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25hdmJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgYXBwSGVhZGVyRGVmYXVsTWVudURpc3BsYXk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNSdGw6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGl0ZW1DbGFzczogc3RyaW5nID0gJ21zLTEgbXMtbGctMyc7XHJcbiAgYnRuQ2xhc3M6IHN0cmluZyA9ICdidG4gYnRuLWljb24gYnRuLWN1c3RvbSBidG4taWNvbi1tdXRlZCBidG4tYWN0aXZlLWxpZ2h0IGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSB3LTM1cHggaC0zNXB4IHctbWQtNDBweCBoLW1kLTQwcHgnO1xyXG4gIGJ0bkNsYXNzMTogc3RyaW5nO1xyXG4gIHVzZXJBdmF0YXJDbGFzczogc3RyaW5nID0gJ3N5bWJvbC0zNXB4IHN5bWJvbC1tZC00MHB4JztcclxuICBidG5JY29uQ2xhc3M6IHN0cmluZyA9ICdmcy0yIGZzLW1kLTEnO1xyXG4gIG5vdGlmaWNhdGlvblJlY2VpdmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbm90aWZpY2F0aW9uOmFueSA9IFtdO1xyXG4gIHB1c2hOb3RpZmljYXRpb25MaXN0OmFueSA9IFtdO1xyXG4gIGFjdGl2ZVRhYklkOnN0cmluZyA9ICdhbGVydHMnO1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOmJvb2xlYW4gPSBmYWxzZTtcclxuICB1cmw6YW55O1xyXG4gIHNob3dOb3RpZmljYXRpb246Ym9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd0Ryb3Bkb3duOmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gbm90aWZpY2F0aW9uUmVjZWl2ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIG5vdGlmaWNhdGlvbkRyb3BEb3duQ2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6Tm90aWZpY2F0aW9uU2VydmljZSxwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBsZXQgdXJsID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcvJyk7XHJcbiAgICAgIGlmKHVybC5pbmNsdWRlcygnbm90aWZpY2F0aW9ucycpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3QoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7XHJcbiAgfVxyXG4gIHRvZ2dsZVVzZXJEcm9wRG93bigpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uRHJvcERvd25DbGFzcyA9ICF0aGlzLm5vdGlmaWNhdGlvbkRyb3BEb3duQ2xhc3M7XHJcbiAgfVxyXG4gIHNldEFjdGl2ZVRhYklkKHRhYklkOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlVGFiSWQgPSB0YWJJZDtcclxuICB9XHJcblxyXG4gIG5vdGlmaWNhdGlvbkxpc3QoKSB7XHJcbiAgICB0aGlzLnB1c2hOb3RpZmljYXRpb25MaXN0ID0gW107IFxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBsaW1pdDogMTAsXHJcbiAgICAgIG9mZnNldDogMVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5ub3RpZmljYXRpb25MaXN0KGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSByZXMuZGF0YS5yZXN1bHQuc2xpY2UoMCw1KTtcclxuICAgICAgICAgICAgdGhpcy5wdXNoTm90aWZpY2F0aW9uTGlzdCA9IHJlcy5kYXRhLnJlc3VsdC5maWx0ZXIoKGl0ZW06YW55KSA9PiBpdGVtLl9zb3VyY2Uuc2hvd1B1c2hOb3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107IFxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107IFxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU5vdGlmaWNhdGlvbigpIHtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVOb3RpZmljYXRpb25SZWNlaXZlZCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHZpZXdBbGwodHlwZTphbnkpe1xyXG4gICAgLy8gdGhpcy5kYXRhS3RNZW51ID0gJ2ZhbHNlJztcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ub3RpZmljYXRpb25zL2FsZXJ0cycpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb3RpZmljYXRpb24oZGF0YTogYW55LCB1cmw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm5vdGlmaWNhdGlvblVwZGF0ZShkYXRhLl9pZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldFByaW1hcnlUb2FzdChyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3QoKTtcclxuICAgICAgICB9LDEwMDApO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGlmKHVybCAhPSAnJykge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrIChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYoIXRhcmdldC5jbG9zZXN0KCcuYXBwLW5hdmJhcicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS1iZWdpbjo6Tm90aWZpY2F0aW9ucy0tPlxyXG48ZGl2IGNsYXNzPVwiYXBwLW5hdmJhci1pdGVtXCIgIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc1wiICpuZ0lmPVwic2hvd05vdGlmaWNhdGlvblwiPlxyXG4gIDwhLS1iZWdpbjo6TWVudS0gd3JhcHBlci0tPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJidG5DbGFzc1wiIChjbGljayk9XCJzaG93RHJvcGRvd24gPSAhc2hvd0Ryb3Bkb3duXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIW5vdGlmaWNhdGlvbi5sZW5ndGhcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDIwIDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMTAuNjc3OSAyLjRWMy4wMDY4OEwxMS4yNzE1IDMuMTMzNUMxNC4xNjc0IDMuNzUxMjUgMTYuMzkxOSA2LjQ1ODQyIDE2LjM5MTkgOS43NVYxMC42MzEzQzE2LjM5MTkgMTMuMDEzMSAxNy4yMjQ5IDE1LjMwODcgMTguNzMzOCAxNy4wOTYzTDE4LjczNTIgMTcuMDk3OUwxOS4wNjM2IDE3LjQ4NDZDMTkuMDYzOSAxNy40ODUgMTkuMDY0MiAxNy40ODUzIDE5LjA2NDUgMTcuNDg1N0MxOS4yNTU3IDE3LjcxMzYgMTkuMzA0OCAxOC4wMzkzIDE5LjE4NSAxOC4zMTc0QzE5LjA2NDEgMTguNTk4MyAxOC44MTUzIDE4Ljc1IDE4LjU3MDQgMTguNzVIMS40Mjg0OEMxLjE4MjUgMTguNzUgMC45MzM5MzEgMTguNTk3NCAwLjgxNTAxNyAxOC4zMTkzQzAuNjk1MTA4IDE4LjAzODggMC43NDQ1OTIgMTcuNzEyMyAwLjkzMzk5NiAxNy40ODUzQzAuOTM0NDQ1IDE3LjQ4NDggMC45MzQ4OTQgMTcuNDg0MyAwLjkzNTM0NCAxNy40ODM3TDEuMjYzMTIgMTcuMDk4NUwxLjI2NDczIDE3LjA5NjZDMi43NzU5OSAxNS4zMDg2IDMuNjA2OTcgMTMuMDEyNyAzLjYwNjk3IDEwLjYzMTNWOS43NUMzLjYwNjk3IDYuNDU0MzQgNS43OTQ4OCAzLjc1MTQ1IDguNzI1NTkgMy4xMzM4OEw5LjMyMDk0IDMuMDA4NDNWMi40VjEuNUM5LjMyMDk0IDEuMDUwNTIgOS42NTgwNiAwLjc1IDkuOTk5NDQgMC43NUMxMC4zNDA4IDAuNzUgMTAuNjc3OSAxLjA1MDUyIDEwLjY3NzkgMS41VjIuNFpNOS45OTk0NCAyMy4yNUM5LjQ0OTgzIDIzLjI1IDguOTE3MjYgMjMuMDIzIDguNTIwMzQgMjIuNjA2MkM4LjI5NjQ5IDIyLjM3MTIgOC4xMjQ1NyAyMi4wNzA4IDguMDE3NjkgMjEuNzVIMTEuOTgxMkMxMS44NzQzIDIyLjA3MDggMTEuNzAyNCAyMi4zNzEyIDExLjQ3ODUgMjIuNjA2MkMxMS4wODU2IDIzLjAxODggMTAuNTE0NiAyMy4yNSA5Ljk5OTQ0IDIzLjI1WlwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibm90aWZpY2F0aW9uLmxlbmd0aFwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjAgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0xMS40Mjc5IDIuNFYxLjVDMTEuNDI3OSAwLjY3MTcxOSAxMC43ODk2IDAgOS45OTk0NCAwQzkuMjA5MyAwIDguNTcwOTQgMC42NzE3MTkgOC41NzA5NCAxLjVWMi40QzUuMjcyMDIgMy4wOTUxNiAyLjg1Njk3IDYuMTIxODggMi44NTY5NyA5Ljc1VjEwLjYzMTNDMi44NTY5NyAxMi44MzkxIDIuMDg2NDggMTQuOTYyNSAwLjY5MTkxNSAxNi42MTI1TDAuMzYwODYyIDE3LjAwMTZDLTAuMDEyODgwNSAxNy40NDY5IC0wLjEwNTA1IDE4LjA3NSAwLjEyNTM4NCAxOC42MTQxQzAuMzU1ODE4IDE5LjE1MzEgMC44NjYwMTMgMTkuNSAxLjQyODQ4IDE5LjVIMTguNTcwNEMxOS4xMzI5IDE5LjUgMTkuNjQxOCAxOS4xNTMxIDE5Ljg3MzkgMTguNjE0MUMyMC4xMDYgMTguMDc1IDIwLjAxMjMgMTcuNDQ2OSAxOS42MzczIDE3LjAwMTZMMTkuMzA3IDE2LjYxMjVDMTcuOTE0MiAxNC45NjI1IDE3LjE0MTkgMTIuODM5MSAxNy4xNDE5IDEwLjYzMTNWOS43NUMxNy4xNDE5IDkuMzk5NDcgMTcuMTE5IDkuMDU0NTUgMTcuMDc0NiA4LjcxNjgxQzE2LjU4NDUgOC44OTk5IDE2LjA1NCA5IDE1LjUgOUMxMy4wMTQ3IDkgMTEgNi45ODUyOCAxMSA0LjVDMTEgMy43NDg3NyAxMS4xODQxIDMuMDQwNTQgMTEuNTA5NiAyLjQxNzk1QzExLjQ4MjQgMi40MTE4IDExLjQ1NTIgMi40MDU4MiAxMS40Mjc5IDIuNFpcIlxyXG4gICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTcuOTc3MjMgMjMuMTIzNEM4LjUxMjkxIDIzLjY4NTkgOS4yNDA1NSAyNCA5Ljk5OTQ0IDI0QzEwLjcxODEgMjQgMTEuNDg2IDIzLjY4NTkgMTIuMDIxNiAyMy4xMjM0QzEyLjU1NzMgMjIuNTYwOSAxMi44NTY0IDIxLjc1NDcgMTIuODU2NCAyMUg3LjE0MjQ1QzcuMTQyNDUgMjEuNzU0NyA3LjQ0MTU0IDIyLjU2MDkgNy45NzcyMyAyMy4xMjM0WlwiXHJcbiAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiNFwiIHI9XCI0XCIgZmlsbD1cIiNGMDQ0MzhcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51IG1lbnUtc3ViIG1lbnUtc3ViLWRyb3Bkb3duIG1lbnUtY29sdW1uIHctNDUwcHggdy1sZy00MjVweCBub3RpZmljYXRpb25NZW51XCIgKm5nSWY9XCJzaG93RHJvcGRvd25cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCB0b3BiYXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJ0aXRsZS1ub3RpZnkgbXQtMTAgbWItNlwiPlxyXG4gICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnNcclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9ub05vdGlmaWNhdGlvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZmljYXRpb25BbGlnbiBtdC0xMFwiPk5vIE5ldyBOb3RpZmljYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9Ob3RpZmljYXRpb24gbXQtMlwiPkFueSBuZXcgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2hvd24gaGVyZS48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydHNjcm9sbFwiICpuZ0lmPVwibm90aWZpY2F0aW9uLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdGlmaWNhdGlvblwiIGNsYXNzPVwibWgtMjAwcHggbmctc3Rhci1pbnNlcnRlZFwiIHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIHB5LTMgbXgtNCBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC0zNXB4IG1lLTRcIj48c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiZy1saWdodC1wcmltYXJ5XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yIHN2Zy1pY29uLXByaW1hcnlcIj48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yIHN2Zy1pY29uLXByaW1hcnlcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHdpZHRoPVwiMjRweFwiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCIgY2xhc3M9XCJuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz1cIjAgMCAyNCAwIDI0IDI0IDAgMjRcIj48L3BvbHlnb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLDExIEM5Ljc5MDg2MSwxMSA4LDkuMjA5MTM5IDgsNyBDOCw0Ljc5MDg2MSA5Ljc5MDg2MSwzIDEyLDMgQzE0LjIwOTEzOSwzIDE2LDQuNzkwODYxIDE2LDcgQzE2LDkuMjA5MTM5IDE0LjIwOTEzOSwxMSAxMiwxMSBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMDlFRjdcIiBmaWxsLXJ1bGU9XCJub256ZXJvXCIgb3BhY2l0eT1cIjAuM1wiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy4wMDA2NTE2OCwyMC4xOTkyMDU1IEMzLjM4ODI1ODUyLDE1LjQyNjUxNTkgNy4yNjE5MTIzNSwxMyAxMS45ODMzNDEzLDEzIEMxNi43NzEyMTY0LDEzIDIwLjcwNDg4MzcsMTUuMjkzMTkyOSAyMC45OTc5MTQzLDIwLjIgQzIxLjAwOTU4NzksMjAuMzk1NDc0MSAyMC45OTc5MTQzLDIxIDIwLjI0NjY5OTksMjEgQzE2LjU0MTEyNCwyMSAxMS4wMzQ3MjQ3LDIxIDMuNzI3NTAyMjMsMjEgQzMuNDc2NzEyMTUsMjEgMi45Nzk1MzgyNSwyMC40NTkxOCAzLjAwMDY1MTY4LDIwLjE5OTIwNTUgWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDA5RUY3XCIgZmlsbC1ydWxlPVwibm9uemVyb1wiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wIG1lLTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0LXRpdGxlXCI+e3sgaXRlbS5fc291cmNlLnRpdGxlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdC1kZXNjXCI+e3sgaXRlbS5fc291cmNlLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBmcy05XCI+e3sgaXRlbS5fc291cmNlLmRhdGV8Y3VzdG9tRGF0ZUZvcm1hdCB9fTwvc3Bhbj5cclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBib3JkZXItdG9wXCI+XHJcbiAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInZpZXdBbGwoJ2FsZXJ0cycpXCIgY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICBWaWV3IEFsbFxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInctNDUwcHggcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgdG9wLTAgcHVzaGxpc3QgZC1ub25lXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFsZXJ0YmdcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBwdXNobm90aWZpY2F0aW9uIHJvdW5kZWQtMiBtdC00XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHVzaE5vdGlmaWNhdGlvbkxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xICBhbGlnbi1pdGVtcy1zdGFydCBtdC0xXCI+XHJcbiAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTIyNTRfMTEyNjUzKVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTkuOTk5MzUgMTMuMzMzNFYxME05Ljk5OTM1IDYuNjY2NjlIMTAuMDA3N00xOC4zMzI3IDEwQzE4LjMzMjcgMTQuNjAyNCAxNC42MDE3IDE4LjMzMzQgOS45OTkzNSAxOC4zMzM0QzUuMzk2OTggMTguMzMzNCAxLjY2NjAyIDE0LjYwMjQgMS42NjYwMiAxMEMxLjY2NjAyIDUuMzk3NjUgNS4zOTY5OCAxLjY2NjY5IDkuOTk5MzUgMS42NjY2OUMxNC42MDE3IDEuNjY2NjkgMTguMzMyNyA1LjM5NzY1IDE4LjMzMjcgMTBaXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMjI1NF8xMTI2NTNcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMCBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGl0bGVcIj5cclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICB7e2l0ZW0uX3NvdXJjZS5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEgYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj4gLS0+XHJcbiAgICAgICAgICA8c3Bhbj48c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwhLS0gPC9zcGFuPiAtLT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgaXRlbS5fc291cmNlPy5hbGVydEN0YVwiPlxyXG4gICAgICAgIDxidXR0b24gICpuZ0lmPVwiYnV0dG9uLnJlZGlyZWN0aW9uVXJsICE9PSAnY2FuY2VsJ1wiIChjbGljayk9XCJ1cGRhdGVOb3RpZmljYXRpb24oaXRlbSxidXR0b24ucmVkaXJlY3Rpb25VcmwpXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tcHJpbWFyeVwiPnt7IGJ1dHRvbi5idXR0b25OYW1lIH19PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ1dHRvbi5yZWRpcmVjdGlvblVybCA9PT0gJ2NhbmNlbCdcIiAoY2xpY2spPVwidXBkYXRlTm90aWZpY2F0aW9uKGl0ZW0sJycpXCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IG14LTYgcmVtaW5kbGF0ZXJ0ZXh0IGN1cnNvci1wb2ludGVyXCI+e3sgYnV0dG9uLmJ1dHRvbk5hbWUgfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiAgICBcclxuXHJcbjwhLS1lbmQ6Ok5vdGlmaWNhdGlvbnMtLT5cclxuPCEtLSA8ZGl2IGNsYXNzPVwiYXBwLW5hdmJhci1pdGVtXCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzXCI+IC0tPlxyXG4gIDwhLS1iZWdpbjo6RHJhd2VyIHRvZ2dsZS0tPlxyXG4gIDwhLS0gPGRpdiBbbmdDbGFzc109XCJidG5DbGFzc1wiIGlkPVwia3RfYWN0aXZpdGllc190b2dnbGVcIj4gLS0+XHJcbiAgICA8IS0tIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vbGF5b3V0L2JlbGwuc3ZnXCIgYWx0PVwiXCI+IC0tPlxyXG4gIDwhLS0gPC9kaXY+IC0tPlxyXG4gIDwhLS1lbmQ6OkRyYXdlciB0b2dnbGUtLT5cclxuPCEtLSA8L2Rpdj4gLS0+XHJcbjwhLS1lbmQ6OkFjdGl2aXRpZXMtLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9oZWFkZXIvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUFlLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQXdCLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQVMsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQUNqRixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFO0lBQzNDLEtBQUssQ0FBQztRQUNKLE9BQU8sRUFBRSxDQUFDO1FBQ1YsZ0NBQWdDO0tBQ2pDLENBQUM7SUFDRixPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQztLQUNYLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsS0FBSyxDQUFDO1FBQ0osT0FBTyxFQUFFLENBQUM7UUFDVixpQ0FBaUM7S0FDbEMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxhQUFhLEVBQUUs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QkFBa0I7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVE7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFHRCxPQUFPLENBQUUsS0FBaUI7UUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO3dHQXJNVSxlQUFlOzRGQUFmLGVBQWUsc01DNUM1Qix5aFRBZ0pBLGtwSEQxR2M7WUFDVixNQUFNO1lBQ04sT0FBTztTQUVSOzs0RkFFVSxlQUFlO2tCQVYzQixTQUFTOytCQUNFLFlBQVksY0FHVjt3QkFDVixNQUFNO3dCQUNOLE9BQU87cUJBRVI7d0tBR1EsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkE4TE4sT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsQWN0aXZhdGVkUm91dGUsTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuY29uc3QgZW50ZXJUcmFuc2l0aW9uID0gdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gIHN0eWxlKHtcclxuICAgIG9wYWNpdHk6IDAsXHJcbiAgICAvLyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJ1xyXG4gIH0pLFxyXG4gIGFuaW1hdGUoJzFzIGVhc2UtaW4nLCBzdHlsZSh7XHJcbiAgICBvcGFjaXR5OiAxXHJcbiAgfSkpXHJcbl0pO1xyXG4gXHJcbmNvbnN0IGxlYXZlVHJhbnMgPSB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgc3R5bGUoe1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIC8vIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwcHgpJ1xyXG4gIH0pLFxyXG4gIGFuaW1hdGUoJzFzIGVhc2Utb3V0Jywgc3R5bGUoe1xyXG4gICAgb3BhY2l0eTogMCxcclxuICB9KSlcclxuXSlcclxuIFxyXG5jb25zdCBmYWRlSW4gPSB0cmlnZ2VyKCdmYWRlSW4nLCBbXHJcbiAgZW50ZXJUcmFuc2l0aW9uXHJcbl0pO1xyXG4gXHJcbmNvbnN0IGZhZGVPdXQgPSB0cmlnZ2VyKCdmYWRlT3V0JywgW1xyXG4gIGxlYXZlVHJhbnNcclxuXSlcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbmF2YmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBmYWRlSW4sXHJcbiAgICBmYWRlT3V0XHJcblxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdmJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGFwcEhlYWRlckRlZmF1bE1lbnVEaXNwbGF5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzUnRsOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBpdGVtQ2xhc3M6IHN0cmluZyA9ICdtcy0xIG1zLWxnLTMnO1xyXG4gIGJ0bkNsYXNzOiBzdHJpbmcgPSAnYnRuIGJ0bi1pY29uIGJ0bi1jdXN0b20gYnRuLWljb24tbXV0ZWQgYnRuLWFjdGl2ZS1saWdodCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgdy0zNXB4IGgtMzVweCB3LW1kLTQwcHggaC1tZC00MHB4JztcclxuICBidG5DbGFzczE6IHN0cmluZztcclxuICB1c2VyQXZhdGFyQ2xhc3M6IHN0cmluZyA9ICdzeW1ib2wtMzVweCBzeW1ib2wtbWQtNDBweCc7XHJcbiAgYnRuSWNvbkNsYXNzOiBzdHJpbmcgPSAnZnMtMiBmcy1tZC0xJztcclxuICBub3RpZmljYXRpb25SZWNlaXZlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vdGlmaWNhdGlvbjphbnkgPSBbXTtcclxuICBwdXNoTm90aWZpY2F0aW9uTGlzdDphbnkgPSBbXTtcclxuICBhY3RpdmVUYWJJZDpzdHJpbmcgPSAnYWxlcnRzJztcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgdXJsOmFueTtcclxuICBzaG93Tm90aWZpY2F0aW9uOmJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dEcm9wZG93bjpib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgbm90aWZpY2F0aW9uRHJvcERvd25DbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTpOb3RpZmljYXRpb25TZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcixwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBcclxuICB9XHJcbiAgXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uSWNvbigpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb25JY29uKCk7XHJcbiAgIFxyXG4gIH1cclxuIFxyXG4gIHNob3dOb3RpZmljYXRpb25JY29uICgpIHtcclxuICAgIGxldCB1cmwgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKTtcclxuICAgIGlmKHVybC5pbmNsdWRlcygnbm90aWZpY2F0aW9ucycpKSB7XHJcbiAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZVVzZXJEcm9wRG93bigpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uRHJvcERvd25DbGFzcyA9ICF0aGlzLm5vdGlmaWNhdGlvbkRyb3BEb3duQ2xhc3M7XHJcbiAgfVxyXG4gIHNldEFjdGl2ZVRhYklkKHRhYklkOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlVGFiSWQgPSB0YWJJZDtcclxuICB9XHJcblxyXG4gIG5vdGlmaWNhdGlvbkxpc3QoKSB7XHJcbiAgICB0aGlzLnB1c2hOb3RpZmljYXRpb25MaXN0ID0gW107IFxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBsaW1pdDogMTAsXHJcbiAgICAgIG9mZnNldDogMVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5ub3RpZmljYXRpb25MaXN0KGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSByZXMuZGF0YS5yZXN1bHQuc2xpY2UoMCw1KTtcclxuICAgICAgICAgICAgdGhpcy5wdXNoTm90aWZpY2F0aW9uTGlzdCA9IHJlcy5kYXRhLnJlc3VsdC5maWx0ZXIoKGl0ZW06YW55KSA9PiBpdGVtLl9zb3VyY2Uuc2hvd1B1c2hOb3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICB0aGlzLnB1c2hOb3RpZmljYXRpb25MaXN0LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGl0ZW0uX3Njb3JlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uX3Njb3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uubm90aWZpY2F0aW9uUHVzaFVwZGF0ZShpdGVtKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblB1c2hVcGRhdGUoaXRlbSwnJyk7XHJcbiAgICAgICAgICAgICAgfSwgNjAwMCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107IFxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107IFxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gICBub3RpZmljYXRpb25QdXNoVXBkYXRlKGRhdGE6IGFueSxidG5EZXRhaWxzOmFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm5vdGlmaWNhdGlvblB1c2hVcGRhdGUoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgaWYoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCAhPSAnJyAmJiAhWydyZW1pbmQnLCdzdWJzY3JpYmVkJ10uaW5jbHVkZXMoYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwpKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGJ0bkRldGFpbHMucmVkaXJlY3Rpb25VcmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsID09ICdyZW1pbmQnKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlUmVtaW5kKGRhdGEuX2lkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHt9KVxyXG4gICAgICAgICAgaWYoIXRoaXMuc2hvd05vdGlmaWNhdGlvbil7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS50cmlnZ2VyUmVsb2FkKCk7XHJcbiAgICAgICAgICB9IFxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm5vdGlmaWNhdGlvblVwZGF0ZShkYXRhLl9pZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGJ0bkRldGFpbHMgJiYgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgPT0gJ3N1YnNjcmliZWQnKSB7XHJcbiAgICAgICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBjbGllbnRJZDogYnRuRGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICAgIHByb2R1Y3RzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYnRuRGV0YWlscy5wcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lOiBidG5EZXRhaWxzLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWJzY3JpcHRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm5ld1wiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVTdWJzY3JpcHRpb24ocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uubm90aWZpY2F0aW9uVXBkYXRlKGRhdGEuX2lkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKClcclxuICAgICAgICAgICAgICBpZighdGhpcy5zaG93Tm90aWZpY2F0aW9uKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS50cmlnZ2VyUmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgICAgIH0sMTAwMCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb3RpZmljYXRpb24oZGF0YTogYW55LCBidG5EZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2Uubm90aWZpY2F0aW9uVXBkYXRlKGRhdGEuX2lkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGlmKCFidG5EZXRhaWxzIHx8IGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsICE9ICdzdWJzY3JpYmVkJylcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgICAgIH0sMTAwMCk7XHJcbiAgICAgICAgaWYoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCAhPSAnJyAmJiAhWydyZW1pbmQnLCdzdWJzY3JpYmVkJ10uaW5jbHVkZXMoYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwpKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGJ0bkRldGFpbHMucmVkaXJlY3Rpb25VcmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsID09ICdyZW1pbmQnKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlUmVtaW5kKGRhdGEuX2lkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHt9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsID09ICdzdWJzY3JpYmVkJykge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgY2xpZW50SWQ6IGJ0bkRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgICBwcm9kdWN0czogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGJ0bkRldGFpbHMucHJvZHVjdCxcclxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0TmFtZTogYnRuRGV0YWlscy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3Vic2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJuZXdcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3Vic2NyaXB0aW9uKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1Byb2R1Y3QgU3Vic2NyaWJlZCBTdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sKGVycm9yOmFueSkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGhhbmRsZU5vdGlmaWNhdGlvbigpIHtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVOb3RpZmljYXRpb25SZWNlaXZlZCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHZpZXdBbGwodHlwZTphbnkpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL25vdGlmaWNhdGlvbnMvYWxlcnRzJylcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrIChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYoIXRhcmdldC5jbG9zZXN0KCcuYXBwLW5hdmJhcicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS1iZWdpbjo6Tm90aWZpY2F0aW9ucy0tPlxyXG48ZGl2IGNsYXNzPVwiYXBwLW5hdmJhci1pdGVtXCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzXCIgKm5nSWY9XCJzaG93Tm90aWZpY2F0aW9uXCI+XHJcbiAgPCEtLWJlZ2luOjpNZW51LSB3cmFwcGVyLS0+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJidG5DbGFzc1wiIChjbGljayk9XCJzaG93RHJvcGRvd24gPSAhc2hvd0Ryb3Bkb3duXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cIiFub3RpZmljYXRpb24ubGVuZ3RoXCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjAgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBkPVwiTTEwLjY3NzkgMi40VjMuMDA2ODhMMTEuMjcxNSAzLjEzMzVDMTQuMTY3NCAzLjc1MTI1IDE2LjM5MTkgNi40NTg0MiAxNi4zOTE5IDkuNzVWMTAuNjMxM0MxNi4zOTE5IDEzLjAxMzEgMTcuMjI0OSAxNS4zMDg3IDE4LjczMzggMTcuMDk2M0wxOC43MzUyIDE3LjA5NzlMMTkuMDYzNiAxNy40ODQ2QzE5LjA2MzkgMTcuNDg1IDE5LjA2NDIgMTcuNDg1MyAxOS4wNjQ1IDE3LjQ4NTdDMTkuMjU1NyAxNy43MTM2IDE5LjMwNDggMTguMDM5MyAxOS4xODUgMTguMzE3NEMxOS4wNjQxIDE4LjU5ODMgMTguODE1MyAxOC43NSAxOC41NzA0IDE4Ljc1SDEuNDI4NDhDMS4xODI1IDE4Ljc1IDAuOTMzOTMxIDE4LjU5NzQgMC44MTUwMTcgMTguMzE5M0MwLjY5NTEwOCAxOC4wMzg4IDAuNzQ0NTkyIDE3LjcxMjMgMC45MzM5OTYgMTcuNDg1M0MwLjkzNDQ0NSAxNy40ODQ4IDAuOTM0ODk0IDE3LjQ4NDMgMC45MzUzNDQgMTcuNDgzN0wxLjI2MzEyIDE3LjA5ODVMMS4yNjQ3MyAxNy4wOTY2QzIuNzc1OTkgMTUuMzA4NiAzLjYwNjk3IDEzLjAxMjcgMy42MDY5NyAxMC42MzEzVjkuNzVDMy42MDY5NyA2LjQ1NDM0IDUuNzk0ODggMy43NTE0NSA4LjcyNTU5IDMuMTMzODhMOS4zMjA5NCAzLjAwODQzVjIuNFYxLjVDOS4zMjA5NCAxLjA1MDUyIDkuNjU4MDYgMC43NSA5Ljk5OTQ0IDAuNzVDMTAuMzQwOCAwLjc1IDEwLjY3NzkgMS4wNTA1MiAxMC42Nzc5IDEuNVYyLjRaTTkuOTk5NDQgMjMuMjVDOS40NDk4MyAyMy4yNSA4LjkxNzI2IDIzLjAyMyA4LjUyMDM0IDIyLjYwNjJDOC4yOTY0OSAyMi4zNzEyIDguMTI0NTcgMjIuMDcwOCA4LjAxNzY5IDIxLjc1SDExLjk4MTJDMTEuODc0MyAyMi4wNzA4IDExLjcwMjQgMjIuMzcxMiAxMS40Nzg1IDIyLjYwNjJDMTEuMDg1NiAyMy4wMTg4IDEwLjUxNDYgMjMuMjUgOS45OTk0NCAyMy4yNVpcIlxyXG4gICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJub3RpZmljYXRpb24ubGVuZ3RoXCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjAgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBkPVwiTTExLjQyNzkgMi40VjEuNUMxMS40Mjc5IDAuNjcxNzE5IDEwLjc4OTYgMCA5Ljk5OTQ0IDBDOS4yMDkzIDAgOC41NzA5NCAwLjY3MTcxOSA4LjU3MDk0IDEuNVYyLjRDNS4yNzIwMiAzLjA5NTE2IDIuODU2OTcgNi4xMjE4OCAyLjg1Njk3IDkuNzVWMTAuNjMxM0MyLjg1Njk3IDEyLjgzOTEgMi4wODY0OCAxNC45NjI1IDAuNjkxOTE1IDE2LjYxMjVMMC4zNjA4NjIgMTcuMDAxNkMtMC4wMTI4ODA1IDE3LjQ0NjkgLTAuMTA1MDUgMTguMDc1IDAuMTI1Mzg0IDE4LjYxNDFDMC4zNTU4MTggMTkuMTUzMSAwLjg2NjAxMyAxOS41IDEuNDI4NDggMTkuNUgxOC41NzA0QzE5LjEzMjkgMTkuNSAxOS42NDE4IDE5LjE1MzEgMTkuODczOSAxOC42MTQxQzIwLjEwNiAxOC4wNzUgMjAuMDEyMyAxNy40NDY5IDE5LjYzNzMgMTcuMDAxNkwxOS4zMDcgMTYuNjEyNUMxNy45MTQyIDE0Ljk2MjUgMTcuMTQxOSAxMi44MzkxIDE3LjE0MTkgMTAuNjMxM1Y5Ljc1QzE3LjE0MTkgOS4zOTk0NyAxNy4xMTkgOS4wNTQ1NSAxNy4wNzQ2IDguNzE2ODFDMTYuNTg0NSA4Ljg5OTkgMTYuMDU0IDkgMTUuNSA5QzEzLjAxNDcgOSAxMSA2Ljk4NTI4IDExIDQuNUMxMSAzLjc0ODc3IDExLjE4NDEgMy4wNDA1NCAxMS41MDk2IDIuNDE3OTVDMTEuNDgyNCAyLjQxMTggMTEuNDU1MiAyLjQwNTgyIDExLjQyNzkgMi40WlwiXHJcbiAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNNy45NzcyMyAyMy4xMjM0QzguNTEyOTEgMjMuNjg1OSA5LjI0MDU1IDI0IDkuOTk5NDQgMjRDMTAuNzE4MSAyNCAxMS40ODYgMjMuNjg1OSAxMi4wMjE2IDIzLjEyMzRDMTIuNTU3MyAyMi41NjA5IDEyLjg1NjQgMjEuNzU0NyAxMi44NTY0IDIxSDcuMTQyNDVDNy4xNDI0NSAyMS43NTQ3IDcuNDQxNTQgMjIuNTYwOSA3Ljk3NzIzIDIzLjEyMzRaXCJcclxuICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIGZpbGw9XCIjRjA0NDM4XCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LXN1YiBtZW51LXN1Yi1kcm9wZG93biBtZW51LWNvbHVtbiB3LTQ1MHB4IHctbGctNDI1cHggbm90aWZpY2F0aW9uTWVudVwiICpuZ0lmPVwic2hvd0Ryb3Bkb3duXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHRvcGJhclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGUtbm90aWZ5IG10LTEwIG1iLTZcIj5cclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uc1xyXG4gICAgICAgICAgPC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbm9Ob3RpZmljYXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbkFsaWduIG10LTEwXCI+Tm8gTmV3IE5vdGlmaWNhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9Ob3RpZmljYXRpb24gbXQtMlwiPkFueSBuZXcgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2hvd24gaGVyZS48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydHNjcm9sbFwiICpuZ0lmPVwibm90aWZpY2F0aW9uLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBub3RpZmljYXRpb25cIiBjbGFzcz1cIm1oLTIwMHB4IG5nLXN0YXItaW5zZXJ0ZWRcIiBzdHlsZT1cIm92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgcHktMyBteC00IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBtZS00XCI+PHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWwgYmctbGlnaHQtcHJpbWFyeVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTIgc3ZnLWljb24tcHJpbWFyeVwiPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yIHN2Zy1pY29uLXByaW1hcnlcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIiBjbGFzcz1cIm5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIwIDAgMjQgMCAyNCAyNCAwIDI0XCI+PC9wb2x5Z29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLDExIEM5Ljc5MDg2MSwxMSA4LDkuMjA5MTM5IDgsNyBDOCw0Ljc5MDg2MSA5Ljc5MDg2MSwzIDEyLDMgQzE0LjIwOTEzOSwzIDE2LDQuNzkwODYxIDE2LDcgQzE2LDkuMjA5MTM5IDE0LjIwOTEzOSwxMSAxMiwxMSBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDA5RUY3XCIgZmlsbC1ydWxlPVwibm9uemVyb1wiIG9wYWNpdHk9XCIwLjNcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy4wMDA2NTE2OCwyMC4xOTkyMDU1IEMzLjM4ODI1ODUyLDE1LjQyNjUxNTkgNy4yNjE5MTIzNSwxMyAxMS45ODMzNDEzLDEzIEMxNi43NzEyMTY0LDEzIDIwLjcwNDg4MzcsMTUuMjkzMTkyOSAyMC45OTc5MTQzLDIwLjIgQzIxLjAwOTU4NzksMjAuMzk1NDc0MSAyMC45OTc5MTQzLDIxIDIwLjI0NjY5OTksMjEgQzE2LjU0MTEyNCwyMSAxMS4wMzQ3MjQ3LDIxIDMuNzI3NTAyMjMsMjEgQzMuNDc2NzEyMTUsMjEgMi45Nzk1MzgyNSwyMC40NTkxOCAzLjAwMDY1MTY4LDIwLjE5OTIwNTUgWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwOUVGN1wiIGZpbGwtcnVsZT1cIm5vbnplcm9cIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMCBtZS0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGl0bGVcIj57eyBpdGVtLl9zb3VyY2UudGl0bGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdC1kZXNjXCI+e3sgaXRlbS5fc291cmNlLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IGZzLTlcIj57eyBpdGVtLl9zb3VyY2UuZGF0ZXxjdXN0b21EYXRlRm9ybWF0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGJvcmRlci10b3BcIj5cclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cInZpZXdBbGwoJ2FsZXJ0cycpXCIgY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgVmlldyBBbGxcclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInctNDUwcHggcG9zaXRpb24tZml4ZWQgZW5kLTAgYm90dG9tLTAgdHJhbnNpdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwdXNoTm90aWZpY2F0aW9uTGlzdDtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhbGVydGJnIGNhcmRcIiAqbmdJZj1cIml0ZW0uX3Njb3JlXCIgQGZhZGVJbiBAZmFkZU91dD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEgYWxpZ24taXRlbXMtc3RhcnQgbXQtMVwiPlxyXG4gICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMjI1NF8xMTI2NTMpXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTkuOTk5MzUgMTMuMzMzNFYxME05Ljk5OTM1IDYuNjY2NjlIMTAuMDA3N00xOC4zMzI3IDEwQzE4LjMzMjcgMTQuNjAyNCAxNC42MDE3IDE4LjMzMzQgOS45OTkzNSAxOC4zMzM0QzUuMzk2OTggMTguMzMzNCAxLjY2NjAyIDE0LjYwMjQgMS42NjYwMiAxMEMxLjY2NjAyIDUuMzk3NjUgNS4zOTY5OCAxLjY2NjY5IDkuOTk5MzUgMS42NjY2OUMxNC42MDE3IDEuNjY2NjkgMTguMzMyNyA1LjM5NzY1IDE4LjMzMjcgMTBaXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEyMjU0XzExMjY1M1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTAgYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGl0bGVcIj5cclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uXHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICB7e2l0ZW0uX3NvdXJjZS5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEgYWxpZ24taXRlbXMtc3RhcnQgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwibm90aWZpY2F0aW9uUHVzaFVwZGF0ZShpdGVtLCcnKVwiPlxyXG4gICAgICAgICAgPHNwYW4+PHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA1TDUgMTVNNSA1TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS0yXCIgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcIj5cclxuICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYnV0dG9uLnJlZGlyZWN0aW9uVXJsICE9PSAncmVtaW5kJyA/ICcnIDogJ210LTInXCIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBpdGVtLl9zb3VyY2U/LmFsZXJ0Q3RhXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidXR0b24ucmVkaXJlY3Rpb25VcmwgIT09ICdyZW1pbmQnXCIgKGNsaWNrKT1cIm5vdGlmaWNhdGlvblB1c2hVcGRhdGUoaXRlbSxidXR0b24pXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG14LTQgbmctc3Rhci1pbnNlcnRlZCB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPjxzcGFuIGNsYXNzPVwic3VibWl0XCI+e3sgYnV0dG9uLmJ1dHRvbk5hbWUgfX0gPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJ1dHRvbi5yZWRpcmVjdGlvblVybCA9PT0gJ3JlbWluZCdcIiAoY2xpY2spPVwibm90aWZpY2F0aW9uUHVzaFVwZGF0ZShpdGVtLGJ1dHRvbilcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IG14LTYgcmVtaW5kbGF0ZXJ0ZXh0IGN1cnNvci1wb2ludGVyXCI+e3sgYnV0dG9uLmJ1dHRvbk5hbWUgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|