simpo-component-library 3.6.937 → 3.6.939
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/ecommerce/sections/authentication-required/authentication-required.component.mjs +9 -7
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +141 -52
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +11 -1
- package/esm2022/lib/elements/booking-cart-groups/booking-cart-groups.component.mjs +38 -15
- package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +18 -16
- package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +2 -1
- package/esm2022/lib/services/rest.service.mjs +4 -1
- package/fesm2022/simpo-component-library.mjs +2900 -2767
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -0
- package/lib/ecommerce/sections/book-appointment/book-appointment.component.d.ts +41 -11
- package/lib/elements/booking-cart-groups/booking-cart-groups.component.d.ts +8 -4
- package/lib/elements/schedule-video-call/schedule-video-call.component.d.ts +3 -1
- package/lib/services/rest.service.d.ts +1 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.939.tgz +0 -0
- package/simpo-component-library-3.6.937.tgz +0 -0
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, Optional } from '@angular/core';
|
|
3
3
|
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
-
import { AuthenticationRequiredComponent } from '../../ecommerce/sections/authentication-required/authentication-required.component';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
import * as i1 from "../../services/booking-product-cart.service";
|
|
7
6
|
import * as i2 from "../../services/storage.service";
|
|
8
|
-
import * as i3 from "@angular/
|
|
9
|
-
import * as i4 from "@angular/
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
8
|
+
import * as i4 from "@angular/material/dialog";
|
|
10
9
|
import * as i5 from "@angular/common";
|
|
11
10
|
import * as i6 from "@angular/material/icon";
|
|
11
|
+
// Per-mode copy/color, matching the design prototype (Store Prototype.dc.html, Booking Cart tab
|
|
12
|
+
// and Bookings drawer). The "English" suffix on Video Call is a static label in the prototype
|
|
13
|
+
// itself (not derived from any real language-preference field), so it's ported as literal text.
|
|
14
|
+
const MODE_META = {
|
|
15
|
+
HOME_VISIT: { title: 'Home Visit', suffix: 'free', itemNote: 'Try at home · free', colorClass: 'bcg-mode-home' },
|
|
16
|
+
VIDEO_CALL: { title: 'Video Call', suffix: 'English', itemNote: 'Live video call', colorClass: 'bcg-mode-video' },
|
|
17
|
+
};
|
|
12
18
|
/**
|
|
13
19
|
* Shared "grouped booking cart" view — one section per non-empty mode (Home Visit / Video Call),
|
|
14
20
|
* each with its own Continue Booking action, since a booking can only ever be one mode. Used
|
|
@@ -17,10 +23,9 @@ import * as i6 from "@angular/material/icon";
|
|
|
17
23
|
* Booking Cart tab, so the two surfaces never show different data.
|
|
18
24
|
*/
|
|
19
25
|
export class BookingCartGroupsComponent {
|
|
20
|
-
constructor(bookingProductCartService, storageService,
|
|
26
|
+
constructor(bookingProductCartService, storageService, router, dialogRef) {
|
|
21
27
|
this.bookingProductCartService = bookingProductCartService;
|
|
22
28
|
this.storageService = storageService;
|
|
23
|
-
this.matDialog = matDialog;
|
|
24
29
|
this.router = router;
|
|
25
30
|
this.dialogRef = dialogRef;
|
|
26
31
|
this.groups = [];
|
|
@@ -29,6 +34,17 @@ export class BookingCartGroupsComponent {
|
|
|
29
34
|
ngOnInit() {
|
|
30
35
|
this.load();
|
|
31
36
|
}
|
|
37
|
+
buildGroup(mode, items) {
|
|
38
|
+
const meta = MODE_META[mode];
|
|
39
|
+
return {
|
|
40
|
+
mode,
|
|
41
|
+
title: meta.title,
|
|
42
|
+
meta: `${items.length} item${items.length === 1 ? '' : 's'} · ${meta.suffix}`,
|
|
43
|
+
itemNote: meta.itemNote,
|
|
44
|
+
colorClass: meta.colorClass,
|
|
45
|
+
items,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
32
48
|
async load() {
|
|
33
49
|
this.loading = true;
|
|
34
50
|
const [homeVisit, videoCall] = await Promise.all([
|
|
@@ -37,9 +53,9 @@ export class BookingCartGroupsComponent {
|
|
|
37
53
|
]);
|
|
38
54
|
const groups = [];
|
|
39
55
|
if (homeVisit.length)
|
|
40
|
-
groups.push(
|
|
56
|
+
groups.push(this.buildGroup('HOME_VISIT', homeVisit));
|
|
41
57
|
if (videoCall.length)
|
|
42
|
-
groups.push(
|
|
58
|
+
groups.push(this.buildGroup('VIDEO_CALL', videoCall));
|
|
43
59
|
this.groups = groups;
|
|
44
60
|
this.loading = false;
|
|
45
61
|
}
|
|
@@ -49,6 +65,13 @@ export class BookingCartGroupsComponent {
|
|
|
49
65
|
get dialogRefPresent() {
|
|
50
66
|
return !!this.dialogRef;
|
|
51
67
|
}
|
|
68
|
+
// "6 items · 2 booking types" - matches the drawer's subline in the prototype.
|
|
69
|
+
get drawerSubline() {
|
|
70
|
+
const totalItems = this.groups.reduce((sum, g) => sum + g.items.length, 0);
|
|
71
|
+
if (totalItems === 0)
|
|
72
|
+
return 'Nothing pending';
|
|
73
|
+
return `${totalItems} item${totalItems === 1 ? '' : 's'} · ${this.groups.length} booking type${this.groups.length === 1 ? '' : 's'}`;
|
|
74
|
+
}
|
|
52
75
|
async removeItem(group, item) {
|
|
53
76
|
await this.bookingProductCartService.removeItem(group.mode, item.varientId);
|
|
54
77
|
await this.load();
|
|
@@ -58,23 +81,23 @@ export class BookingCartGroupsComponent {
|
|
|
58
81
|
}
|
|
59
82
|
browse() {
|
|
60
83
|
this.close();
|
|
84
|
+
this.router.navigate(['/']);
|
|
61
85
|
}
|
|
62
86
|
continueBooking(group) {
|
|
87
|
+
this.close();
|
|
63
88
|
if (!this.storageService.getUser()) {
|
|
64
|
-
this.
|
|
65
|
-
this.matDialog.open(AuthenticationRequiredComponent, { panelClass: 'authenticate' });
|
|
89
|
+
this.router.navigate(['/login'], { queryParams: { tryAtHome: true, mode: group.mode } });
|
|
66
90
|
return;
|
|
67
91
|
}
|
|
68
|
-
this.close();
|
|
69
92
|
this.router.navigate(['/home-appointment'], { queryParams: { mode: group.mode } });
|
|
70
93
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookingCartGroupsComponent, deps: [{ token: i1.BookingProductCartService }, { token: i2.StorageServiceService }, { token: i3.
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BookingCartGroupsComponent, isStandalone: true, selector: "simpo-booking-cart-groups", ngImport: i0, template: "<div class=\"booking-cart-groups\" [class.bcg-panel]=\"dialogRefPresent\">\n <div class=\"bcg-header\" *ngIf=\"dialogRefPresent\">\n <div class=\"bcg-title\">Your Bookings</div>\n <button class=\"bcg-close\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <div class=\"bcg-body\" *ngIf=\"!loading\">\n <ng-container *ngFor=\"let group of groups\">\n <div class=\"bcg-group\">\n <div class=\"bcg-group-header\">\n <span class=\"bcg-dot\" [ngClass]=\"group.mode === 'HOME_VISIT' ? 'bcg-dot-home' : 'bcg-dot-video'\"></span>\n <span class=\"bcg-group-title\">{{ group.title }}</span>\n <span class=\"bcg-group-meta\">{{ group.
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookingCartGroupsComponent, deps: [{ token: i1.BookingProductCartService }, { token: i2.StorageServiceService }, { token: i3.Router }, { token: i4.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BookingCartGroupsComponent, isStandalone: true, selector: "simpo-booking-cart-groups", ngImport: i0, template: "<div class=\"booking-cart-groups\" [class.bcg-panel]=\"dialogRefPresent\">\n <div class=\"bcg-header\" *ngIf=\"dialogRefPresent\">\n <div class=\"bcg-header-text\">\n <div class=\"bcg-title\">Your Bookings</div>\n <div class=\"bcg-subline\">{{ drawerSubline }}</div>\n </div>\n <button class=\"bcg-close\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <div class=\"bcg-banner\" *ngIf=\"!dialogRefPresent\">Bookings are placed one at a time and never merge, so each type keeps its own list and its own Continue Booking.</div>\n\n <div class=\"bcg-body\" *ngIf=\"!loading\">\n <ng-container *ngFor=\"let group of groups\">\n <div class=\"bcg-group\">\n <div class=\"bcg-group-header\">\n <span class=\"bcg-dot\" [ngClass]=\"group.mode === 'HOME_VISIT' ? 'bcg-dot-home' : 'bcg-dot-video'\"></span>\n <span class=\"bcg-group-title\">{{ group.title }}</span>\n <span class=\"bcg-group-meta\">{{ group.meta }}</span>\n </div>\n <div class=\"bcg-items\">\n <div class=\"bcg-item\" *ngFor=\"let item of group.items\">\n <button class=\"bcg-item-remove\" (click)=\"removeItem(group, item)\">\n <mat-icon>close</mat-icon>\n </button>\n <img class=\"bcg-item-img\" *ngIf=\"item.imgUrl\" [src]=\"item.imgUrl\" [alt]=\"item.itemName\" />\n <div class=\"bcg-item-img bcg-item-img-empty\" *ngIf=\"!item.imgUrl\"></div>\n <div class=\"bcg-item-name\">{{ item.itemName }}</div>\n <div class=\"bcg-item-note\">{{ group.itemNote }}</div>\n </div>\n </div>\n <div class=\"bcg-group-footer\">\n <button class=\"bcg-continue\" [ngClass]=\"group.colorClass\" (click)=\"continueBooking(group)\">Continue Booking</button>\n <a class=\"bcg-add-more\" *ngIf=\"!dialogRefPresent\" (click)=\"browse()\">Add more</a>\n </div>\n </div>\n </ng-container>\n\n <div class=\"bcg-later\" *ngIf=\"dialogRefPresent && !isEmpty\">\n <mat-icon class=\"bcg-later-icon\">storefront</mat-icon>\n <div class=\"bcg-later-text\">In-Store visits will appear here.</div>\n <div class=\"bcg-later-badge\">Later</div>\n </div>\n\n <div class=\"bcg-empty\" *ngIf=\"isEmpty\">\n <mat-icon class=\"bcg-empty-icon\">event_available</mat-icon>\n <div class=\"bcg-empty-title\">You haven't added anything yet.</div>\n <div class=\"bcg-empty-sub\">Try a piece at home or on a video call \u2014 add it here first, book when you're ready.</div>\n <button class=\"bcg-browse\" (click)=\"browse()\">Browse collections</button>\n </div>\n </div>\n</div>\n", styles: [".booking-cart-groups{display:flex;flex-direction:column;width:100%;background:#fff;font-family:inherit;border:1px solid #e2e8f0;border-radius:8px}.booking-cart-groups.bcg-panel{height:100%;border:none;border-radius:0}.bcg-header{flex:none;padding:20px 22px;border-bottom:1px solid #EFEBE5;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.bcg-header-text{display:flex;flex-direction:column;gap:2px}.bcg-title{font-size:17px;font-weight:600;color:#1b2436}.bcg-subline{font-size:12.5px;color:#8a94a3}.bcg-close{border:none;background:none;cursor:pointer;color:#8a94a3;line-height:0;padding:3px}.bcg-banner{font-size:12.5px;line-height:1.6;color:#8a94a3;background:#fbfaf8;border:1px solid #EDE8E2;border-radius:8px;padding:13px 15px;margin:18px 22px 0}.bcg-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:18px}.bcg-group{border:1px solid #EDE8E2;border-radius:10px;overflow:hidden}.bcg-group-header{padding:12px 14px;background:#fbfaf8;border-bottom:1px solid #EFEBE5;display:flex;align-items:center;gap:9px}.bcg-dot{width:8px;height:8px;border-radius:999px;flex:none}.bcg-dot-home{background:#16233a}.bcg-dot-video{background:#7c3a11}.bcg-group-title{flex:1;font-size:14px;font-weight:600;color:#1b2436}.bcg-group-meta{font-size:11.5px;color:#8a94a3}.bcg-items{padding:12px 14px 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:340px;overflow-y:auto}.bcg-panel .bcg-items{grid-template-columns:repeat(2,1fr);gap:10px;max-height:260px}.bcg-item{position:relative;border:1px solid #F0ECE7;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#fdfcfb}.bcg-panel .bcg-item{border-radius:8px;padding:8px;gap:6px}.bcg-item-img{width:100%;height:78px;border-radius:7px;object-fit:cover;background:#f3efe9}.bcg-panel .bcg-item-img{height:58px;border-radius:6px}.bcg-item-img-empty{background:#f3efe9}.bcg-item-name{font-size:12.5px;line-height:1.35;color:#1b2436;min-height:32px}.bcg-panel .bcg-item-name{font-size:11.5px;line-height:1.3;min-height:28px}.bcg-item-note{font-size:11px;color:#a9b1bd}.bcg-panel .bcg-item-note{font-size:10px}.bcg-item-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:999px;border:none;background:#fff;box-shadow:0 1px 4px #0000001f;cursor:pointer;color:#8a94a3;display:grid;place-items:center;padding:0;line-height:0}.bcg-item-remove mat-icon{font-size:13px;height:13px;width:13px}.bcg-panel .bcg-item-remove{top:5px;right:5px;width:19px;height:19px}.bcg-panel .bcg-item-remove mat-icon{font-size:11px;height:11px;width:11px}.bcg-group-footer{padding:14px 18px;display:flex;align-items:center;gap:14px}.bcg-panel .bcg-group-footer{padding:12px 14px}.bcg-continue{flex:1;height:46px;border:none;border-radius:8px;color:#fff;font-size:13.5px;font-weight:600;cursor:pointer}.bcg-continue.bcg-mode-home{background:#16233a}.bcg-continue.bcg-mode-video{background:#7c3a11}.bcg-add-more{font-size:12.5px;color:#7c3a11;cursor:pointer;text-decoration:underline;white-space:nowrap}.bcg-later{flex:none;border:1px dashed #DDD5CB;border-radius:10px;padding:14px;display:flex;align-items:center;gap:10px}.bcg-later-icon{color:#b6aba0!important;font-size:18px!important;height:18px!important;width:18px!important}.bcg-later-text{flex:1;font-size:12.5px;color:#9aa3b0}.bcg-later-badge{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#b6aba0;font-weight:600}.bcg-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center}.bcg-empty-icon{font-size:40px;height:40px;width:40px;color:#c9b7a2}.bcg-empty-title{font-size:16px;font-weight:600;color:#1b2436}.bcg-empty-sub{font-size:12.5px;line-height:1.6;color:#8a94a3;max-width:240px}.bcg-browse{height:42px;padding:0 20px;border:1.5px solid #7C3A11;border-radius:8px;background:#fff;color:#7c3a11;font-size:13px;font-weight:600;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
73
96
|
}
|
|
74
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookingCartGroupsComponent, decorators: [{
|
|
75
98
|
type: Component,
|
|
76
|
-
args: [{ selector: 'simpo-booking-cart-groups', standalone: true, imports: [CommonModule, MatIconModule], template: "<div class=\"booking-cart-groups\" [class.bcg-panel]=\"dialogRefPresent\">\n <div class=\"bcg-header\" *ngIf=\"dialogRefPresent\">\n <div class=\"bcg-title\">Your Bookings</div>\n <button class=\"bcg-close\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <div class=\"bcg-body\" *ngIf=\"!loading\">\n <ng-container *ngFor=\"let group of groups\">\n <div class=\"bcg-group\">\n <div class=\"bcg-group-header\">\n <span class=\"bcg-dot\" [ngClass]=\"group.mode === 'HOME_VISIT' ? 'bcg-dot-home' : 'bcg-dot-video'\"></span>\n <span class=\"bcg-group-title\">{{ group.title }}</span>\n <span class=\"bcg-group-meta\">{{ group.
|
|
77
|
-
}], ctorParameters: () => [{ type: i1.BookingProductCartService }, { type: i2.StorageServiceService }, { type: i3.
|
|
99
|
+
args: [{ selector: 'simpo-booking-cart-groups', standalone: true, imports: [CommonModule, MatIconModule], template: "<div class=\"booking-cart-groups\" [class.bcg-panel]=\"dialogRefPresent\">\n <div class=\"bcg-header\" *ngIf=\"dialogRefPresent\">\n <div class=\"bcg-header-text\">\n <div class=\"bcg-title\">Your Bookings</div>\n <div class=\"bcg-subline\">{{ drawerSubline }}</div>\n </div>\n <button class=\"bcg-close\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <div class=\"bcg-banner\" *ngIf=\"!dialogRefPresent\">Bookings are placed one at a time and never merge, so each type keeps its own list and its own Continue Booking.</div>\n\n <div class=\"bcg-body\" *ngIf=\"!loading\">\n <ng-container *ngFor=\"let group of groups\">\n <div class=\"bcg-group\">\n <div class=\"bcg-group-header\">\n <span class=\"bcg-dot\" [ngClass]=\"group.mode === 'HOME_VISIT' ? 'bcg-dot-home' : 'bcg-dot-video'\"></span>\n <span class=\"bcg-group-title\">{{ group.title }}</span>\n <span class=\"bcg-group-meta\">{{ group.meta }}</span>\n </div>\n <div class=\"bcg-items\">\n <div class=\"bcg-item\" *ngFor=\"let item of group.items\">\n <button class=\"bcg-item-remove\" (click)=\"removeItem(group, item)\">\n <mat-icon>close</mat-icon>\n </button>\n <img class=\"bcg-item-img\" *ngIf=\"item.imgUrl\" [src]=\"item.imgUrl\" [alt]=\"item.itemName\" />\n <div class=\"bcg-item-img bcg-item-img-empty\" *ngIf=\"!item.imgUrl\"></div>\n <div class=\"bcg-item-name\">{{ item.itemName }}</div>\n <div class=\"bcg-item-note\">{{ group.itemNote }}</div>\n </div>\n </div>\n <div class=\"bcg-group-footer\">\n <button class=\"bcg-continue\" [ngClass]=\"group.colorClass\" (click)=\"continueBooking(group)\">Continue Booking</button>\n <a class=\"bcg-add-more\" *ngIf=\"!dialogRefPresent\" (click)=\"browse()\">Add more</a>\n </div>\n </div>\n </ng-container>\n\n <div class=\"bcg-later\" *ngIf=\"dialogRefPresent && !isEmpty\">\n <mat-icon class=\"bcg-later-icon\">storefront</mat-icon>\n <div class=\"bcg-later-text\">In-Store visits will appear here.</div>\n <div class=\"bcg-later-badge\">Later</div>\n </div>\n\n <div class=\"bcg-empty\" *ngIf=\"isEmpty\">\n <mat-icon class=\"bcg-empty-icon\">event_available</mat-icon>\n <div class=\"bcg-empty-title\">You haven't added anything yet.</div>\n <div class=\"bcg-empty-sub\">Try a piece at home or on a video call \u2014 add it here first, book when you're ready.</div>\n <button class=\"bcg-browse\" (click)=\"browse()\">Browse collections</button>\n </div>\n </div>\n</div>\n", styles: [".booking-cart-groups{display:flex;flex-direction:column;width:100%;background:#fff;font-family:inherit;border:1px solid #e2e8f0;border-radius:8px}.booking-cart-groups.bcg-panel{height:100%;border:none;border-radius:0}.bcg-header{flex:none;padding:20px 22px;border-bottom:1px solid #EFEBE5;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.bcg-header-text{display:flex;flex-direction:column;gap:2px}.bcg-title{font-size:17px;font-weight:600;color:#1b2436}.bcg-subline{font-size:12.5px;color:#8a94a3}.bcg-close{border:none;background:none;cursor:pointer;color:#8a94a3;line-height:0;padding:3px}.bcg-banner{font-size:12.5px;line-height:1.6;color:#8a94a3;background:#fbfaf8;border:1px solid #EDE8E2;border-radius:8px;padding:13px 15px;margin:18px 22px 0}.bcg-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:18px}.bcg-group{border:1px solid #EDE8E2;border-radius:10px;overflow:hidden}.bcg-group-header{padding:12px 14px;background:#fbfaf8;border-bottom:1px solid #EFEBE5;display:flex;align-items:center;gap:9px}.bcg-dot{width:8px;height:8px;border-radius:999px;flex:none}.bcg-dot-home{background:#16233a}.bcg-dot-video{background:#7c3a11}.bcg-group-title{flex:1;font-size:14px;font-weight:600;color:#1b2436}.bcg-group-meta{font-size:11.5px;color:#8a94a3}.bcg-items{padding:12px 14px 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:340px;overflow-y:auto}.bcg-panel .bcg-items{grid-template-columns:repeat(2,1fr);gap:10px;max-height:260px}.bcg-item{position:relative;border:1px solid #F0ECE7;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#fdfcfb}.bcg-panel .bcg-item{border-radius:8px;padding:8px;gap:6px}.bcg-item-img{width:100%;height:78px;border-radius:7px;object-fit:cover;background:#f3efe9}.bcg-panel .bcg-item-img{height:58px;border-radius:6px}.bcg-item-img-empty{background:#f3efe9}.bcg-item-name{font-size:12.5px;line-height:1.35;color:#1b2436;min-height:32px}.bcg-panel .bcg-item-name{font-size:11.5px;line-height:1.3;min-height:28px}.bcg-item-note{font-size:11px;color:#a9b1bd}.bcg-panel .bcg-item-note{font-size:10px}.bcg-item-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:999px;border:none;background:#fff;box-shadow:0 1px 4px #0000001f;cursor:pointer;color:#8a94a3;display:grid;place-items:center;padding:0;line-height:0}.bcg-item-remove mat-icon{font-size:13px;height:13px;width:13px}.bcg-panel .bcg-item-remove{top:5px;right:5px;width:19px;height:19px}.bcg-panel .bcg-item-remove mat-icon{font-size:11px;height:11px;width:11px}.bcg-group-footer{padding:14px 18px;display:flex;align-items:center;gap:14px}.bcg-panel .bcg-group-footer{padding:12px 14px}.bcg-continue{flex:1;height:46px;border:none;border-radius:8px;color:#fff;font-size:13.5px;font-weight:600;cursor:pointer}.bcg-continue.bcg-mode-home{background:#16233a}.bcg-continue.bcg-mode-video{background:#7c3a11}.bcg-add-more{font-size:12.5px;color:#7c3a11;cursor:pointer;text-decoration:underline;white-space:nowrap}.bcg-later{flex:none;border:1px dashed #DDD5CB;border-radius:10px;padding:14px;display:flex;align-items:center;gap:10px}.bcg-later-icon{color:#b6aba0!important;font-size:18px!important;height:18px!important;width:18px!important}.bcg-later-text{flex:1;font-size:12.5px;color:#9aa3b0}.bcg-later-badge{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#b6aba0;font-weight:600}.bcg-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center}.bcg-empty-icon{font-size:40px;height:40px;width:40px;color:#c9b7a2}.bcg-empty-title{font-size:16px;font-weight:600;color:#1b2436}.bcg-empty-sub{font-size:12.5px;line-height:1.6;color:#8a94a3;max-width:240px}.bcg-browse{height:42px;padding:0 20px;border:1.5px solid #7C3A11;border-radius:8px;background:#fff;color:#7c3a11;font-size:13px;font-weight:600;cursor:pointer}\n"] }]
|
|
100
|
+
}], ctorParameters: () => [{ type: i1.BookingProductCartService }, { type: i2.StorageServiceService }, { type: i3.Router }, { type: i4.MatDialogRef, decorators: [{
|
|
78
101
|
type: Optional
|
|
79
102
|
}] }] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTXZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9GQUFvRixDQUFDOzs7Ozs7OztBQVFySTs7Ozs7O0dBTUc7QUFRSCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQ21CLHlCQUFvRCxFQUNwRCxjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixNQUFjLEVBQ0YsU0FBbUQ7UUFKL0QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0YsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFSbEYsV0FBTSxHQUF1QixFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFZLElBQUksQ0FBQztJQVFwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQy9DLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ3JELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1NBQ3RELENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUF1QixFQUFFLENBQUM7UUFDdEMsSUFBSSxTQUFTLENBQUMsTUFBTTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakcsSUFBSSxTQUFTLENBQUMsTUFBTTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUF1QixFQUFFLElBQWtCO1FBQzFELE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXVCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNyRixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7K0dBMURVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHFGQzlCdkMsMjBEQW9DQSw0cEVEVlksWUFBWSw2VkFBRSxhQUFhOzs0RkFJMUIsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDOzswQkFhbkMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCb29raW5nUHJvZHVjdENhcnRTZXJ2aWNlLCBCb29raW5nQ2FydE1vZGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ib29raW5nLXByb2R1Y3QtY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWNvbW1lcmNlL3NlY3Rpb25zL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBCb29raW5nQ2FydEdyb3VwIHtcbiAgbW9kZTogQm9va2luZ0NhcnRNb2RlO1xuICB0aXRsZTogc3RyaW5nO1xuICBpdGVtczogT3JkZXJlZEl0ZW1zW107XG59XG5cbi8qKlxuICogU2hhcmVkIFwiZ3JvdXBlZCBib29raW5nIGNhcnRcIiB2aWV3IOKAlCBvbmUgc2VjdGlvbiBwZXIgbm9uLWVtcHR5IG1vZGUgKEhvbWUgVmlzaXQgLyBWaWRlbyBDYWxsKSxcbiAqIGVhY2ggd2l0aCBpdHMgb3duIENvbnRpbnVlIEJvb2tpbmcgYWN0aW9uLCBzaW5jZSBhIGJvb2tpbmcgY2FuIG9ubHkgZXZlciBiZSBvbmUgbW9kZS4gVXNlZFxuICogYm90aCBhcyB0aGUgaGVhZGVyJ3MgQm9va2luZ3MgZHJhd2VyIChvcGVuZWQgdmlhIE1hdERpYWxvZywgcGFuZWxDbGFzcyAnc2lkZXBhbmVsLWNsYXNzJywgc2FtZVxuICogY29udmVudGlvbiBhcyB0aGUgcmVzdCBvZiB0aGlzIGFwcCdzIHNpZGUgcGFuZWxzKSBhbmQgZW1iZWRkZWQgaW5saW5lIGluIHRoZSBDYXJ0IHBhZ2Unc1xuICogQm9va2luZyBDYXJ0IHRhYiwgc28gdGhlIHR3byBzdXJmYWNlcyBuZXZlciBzaG93IGRpZmZlcmVudCBkYXRhLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1ib29raW5nLWNhcnQtZ3JvdXBzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ib29raW5nLWNhcnQtZ3JvdXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Jvb2tpbmctY2FydC1ncm91cHMuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgQm9va2luZ0NhcnRHcm91cHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBncm91cHM6IEJvb2tpbmdDYXJ0R3JvdXBbXSA9IFtdO1xuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2U6IEJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJvb2tpbmdDYXJ0R3JvdXBzQ29tcG9uZW50PixcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBbaG9tZVZpc2l0LCB2aWRlb0NhbGxdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5ib29raW5nUHJvZHVjdENhcnRTZXJ2aWNlLmdldEl0ZW1zKCdIT01FX1ZJU0lUJyksXG4gICAgICB0aGlzLmJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UuZ2V0SXRlbXMoJ1ZJREVPX0NBTEwnKSxcbiAgICBdKTtcbiAgICBjb25zdCBncm91cHM6IEJvb2tpbmdDYXJ0R3JvdXBbXSA9IFtdO1xuICAgIGlmIChob21lVmlzaXQubGVuZ3RoKSBncm91cHMucHVzaCh7IG1vZGU6ICdIT01FX1ZJU0lUJywgdGl0bGU6ICdIb21lIFZpc2l0JywgaXRlbXM6IGhvbWVWaXNpdCB9KTtcbiAgICBpZiAodmlkZW9DYWxsLmxlbmd0aCkgZ3JvdXBzLnB1c2goeyBtb2RlOiAnVklERU9fQ0FMTCcsIHRpdGxlOiAnVmlkZW8gQ2FsbCcsIGl0ZW1zOiB2aWRlb0NhbGwgfSk7XG4gICAgdGhpcy5ncm91cHMgPSBncm91cHM7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubG9hZGluZyAmJiB0aGlzLmdyb3Vwcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgZGlhbG9nUmVmUHJlc2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpYWxvZ1JlZjtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZUl0ZW0oZ3JvdXA6IEJvb2tpbmdDYXJ0R3JvdXAsIGl0ZW06IE9yZGVyZWRJdGVtcykge1xuICAgIGF3YWl0IHRoaXMuYm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZS5yZW1vdmVJdGVtKGdyb3VwLm1vZGUsIGl0ZW0udmFyaWVudElkKTtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xuICB9XG5cbiAgYnJvd3NlKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIGNvbnRpbnVlQm9va2luZyhncm91cDogQm9va2luZ0NhcnRHcm91cCkge1xuICAgIGlmICghdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQXV0aGVudGljYXRpb25SZXF1aXJlZENvbXBvbmVudCwgeyBwYW5lbENsYXNzOiAnYXV0aGVudGljYXRlJyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2hvbWUtYXBwb2ludG1lbnQnXSwgeyBxdWVyeVBhcmFtczogeyBtb2RlOiBncm91cC5tb2RlIH0gfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib29raW5nLWNhcnQtZ3JvdXBzXCIgW2NsYXNzLmJjZy1wYW5lbF09XCJkaWFsb2dSZWZQcmVzZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJiY2ctaGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dSZWZQcmVzZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImJjZy10aXRsZVwiPllvdXIgQm9va2luZ3M8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYmNnLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJiY2ctYm9keVwiICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiY2ctZ3JvdXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJjZy1ncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJjZy1kb3RcIiBbbmdDbGFzc109XCJncm91cC5tb2RlID09PSAnSE9NRV9WSVNJVCcgPyAnYmNnLWRvdC1ob21lJyA6ICdiY2ctZG90LXZpZGVvJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJjZy1ncm91cC10aXRsZVwiPnt7IGdyb3VwLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmNnLWdyb3VwLW1ldGFcIj57eyBncm91cC5pdGVtcy5sZW5ndGggfX0gaXRlbXt7IGdyb3VwLml0ZW1zLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJjZy1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuaXRlbXNcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwiYmNnLWl0ZW0taW1nXCIgKm5nSWY9XCJpdGVtLmltZ1VybFwiIFtzcmNdPVwiaXRlbS5pbWdVcmxcIiBbYWx0XT1cIml0ZW0uaXRlbU5hbWVcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiY2ctaXRlbS1pbWcgYmNnLWl0ZW0taW1nLWVtcHR5XCIgKm5nSWY9XCIhaXRlbS5pbWdVcmxcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmNnLWl0ZW0tbmFtZVwiPnt7IGl0ZW0uaXRlbU5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYmNnLWl0ZW0tcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oZ3JvdXAsIGl0ZW0pXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJjZy1jb250aW51ZVwiIChjbGljayk9XCJjb250aW51ZUJvb2tpbmcoZ3JvdXApXCI+Q29udGludWUgQm9va2luZzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmNnLWVtcHR5XCIgKm5nSWY9XCJpc0VtcHR5XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJiY2ctZW1wdHktaWNvblwiPmV2ZW50X2F2YWlsYWJsZTwvbWF0LWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmNnLWVtcHR5LXRpdGxlXCI+WW91IGhhdmVuJ3QgYWRkZWQgYW55dGhpbmcgeWV0LjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJjZy1lbXB0eS1zdWJcIj5UcnkgYSBwaWVjZSBhdCBob21lIG9yIG9uIGEgdmlkZW8gY2FsbCDigJQgYWRkIGl0IGhlcmUgZmlyc3QsIGJvb2sgd2hlbiB5b3UncmUgcmVhZHkuPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYmNnLWJyb3dzZVwiIChjbGljayk9XCJicm93c2UoKVwiPkJyb3dzZSBjb2xsZWN0aW9uczwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQWdCdkQsZ0dBQWdHO0FBQ2hHLDhGQUE4RjtBQUM5RixnR0FBZ0c7QUFDaEcsTUFBTSxTQUFTLEdBQWlJO0lBQzlJLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNoSCxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRTtDQUNsSCxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBUUgsTUFBTSxPQUFPLDBCQUEwQjtJQUlyQyxZQUNtQix5QkFBb0QsRUFDcEQsY0FBcUMsRUFDckMsTUFBYyxFQUNGLFNBQW1EO1FBSC9ELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FB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RSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUF1QjtRQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0E1RVUsMEJBQTBCO21HQUExQiwwQkFBMEIscUZDeEN2Qywrb0ZBcURBLGk4SERqQlksWUFBWSw2VkFBRSxhQUFhOzs0RkFJMUIsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDOzswQkFZbkMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZSwgQm9va2luZ0NhcnRNb2RlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYm9va2luZy1wcm9kdWN0LWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vZWNvbW1lcmNlL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xuXG5pbnRlcmZhY2UgQm9va2luZ0NhcnRHcm91cCB7XG4gIG1vZGU6IEJvb2tpbmdDYXJ0TW9kZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgbWV0YTogc3RyaW5nO1xuICBpdGVtTm90ZTogc3RyaW5nO1xuICBjb2xvckNsYXNzOiAnYmNnLW1vZGUtaG9tZScgfCAnYmNnLW1vZGUtdmlkZW8nO1xuICBpdGVtczogT3JkZXJlZEl0ZW1zW107XG59XG5cbi8vIFBlci1tb2RlIGNvcHkvY29sb3IsIG1hdGNoaW5nIHRoZSBkZXNpZ24gcHJvdG90eXBlIChTdG9yZSBQcm90b3R5cGUuZGMuaHRtbCwgQm9va2luZyBDYXJ0IHRhYlxuLy8gYW5kIEJvb2tpbmdzIGRyYXdlcikuIFRoZSBcIkVuZ2xpc2hcIiBzdWZmaXggb24gVmlkZW8gQ2FsbCBpcyBhIHN0YXRpYyBsYWJlbCBpbiB0aGUgcHJvdG90eXBlXG4vLyBpdHNlbGYgKG5vdCBkZXJpdmVkIGZyb20gYW55IHJlYWwgbGFuZ3VhZ2UtcHJlZmVyZW5jZSBmaWVsZCksIHNvIGl0J3MgcG9ydGVkIGFzIGxpdGVyYWwgdGV4dC5cbmNvbnN0IE1PREVfTUVUQTogUmVjb3JkPEJvb2tpbmdDYXJ0TW9kZSwgeyB0aXRsZTogc3RyaW5nOyBzdWZmaXg6IHN0cmluZzsgaXRlbU5vdGU6IHN0cmluZzsgY29sb3JDbGFzczogJ2JjZy1tb2RlLWhvbWUnIHwgJ2JjZy1tb2RlLXZpZGVvJyB9PiA9IHtcbiAgSE9NRV9WSVNJVDogeyB0aXRsZTogJ0hvbWUgVmlzaXQnLCBzdWZmaXg6ICdmcmVlJywgaXRlbU5vdGU6ICdUcnkgYXQgaG9tZSDCtyBmcmVlJywgY29sb3JDbGFzczogJ2JjZy1tb2RlLWhvbWUnIH0sXG4gIFZJREVPX0NBTEw6IHsgdGl0bGU6ICdWaWRlbyBDYWxsJywgc3VmZml4OiAnRW5nbGlzaCcsIGl0ZW1Ob3RlOiAnTGl2ZSB2aWRlbyBjYWxsJywgY29sb3JDbGFzczogJ2JjZy1tb2RlLXZpZGVvJyB9LFxufTtcblxuLyoqXG4gKiBTaGFyZWQgXCJncm91cGVkIGJvb2tpbmcgY2FydFwiIHZpZXcg4oCUIG9uZSBzZWN0aW9uIHBlciBub24tZW1wdHkgbW9kZSAoSG9tZSBWaXNpdCAvIFZpZGVvIENhbGwpLFxuICogZWFjaCB3aXRoIGl0cyBvd24gQ29udGludWUgQm9va2luZyBhY3Rpb24sIHNpbmNlIGEgYm9va2luZyBjYW4gb25seSBldmVyIGJlIG9uZSBtb2RlLiBVc2VkXG4gKiBib3RoIGFzIHRoZSBoZWFkZXIncyBCb29raW5ncyBkcmF3ZXIgKG9wZW5lZCB2aWEgTWF0RGlhbG9nLCBwYW5lbENsYXNzICdzaWRlcGFuZWwtY2xhc3MnLCBzYW1lXG4gKiBjb252ZW50aW9uIGFzIHRoZSByZXN0IG9mIHRoaXMgYXBwJ3Mgc2lkZSBwYW5lbHMpIGFuZCBlbWJlZGRlZCBpbmxpbmUgaW4gdGhlIENhcnQgcGFnZSdzXG4gKiBCb29raW5nIENhcnQgdGFiLCBzbyB0aGUgdHdvIHN1cmZhY2VzIG5ldmVyIHNob3cgZGlmZmVyZW50IGRhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWJvb2tpbmctY2FydC1ncm91cHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb2tpbmctY2FydC1ncm91cHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBCb29raW5nQ2FydEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGdyb3VwczogQm9va2luZ0NhcnRHcm91cFtdID0gW107XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZTogQm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJvb2tpbmdDYXJ0R3JvdXBzQ29tcG9uZW50PixcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRHcm91cChtb2RlOiBCb29raW5nQ2FydE1vZGUsIGl0ZW1zOiBPcmRlcmVkSXRlbXNbXSk6IEJvb2tpbmdDYXJ0R3JvdXAge1xuICAgIGNvbnN0IG1ldGEgPSBNT0RFX01FVEFbbW9kZV07XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGUsXG4gICAgICB0aXRsZTogbWV0YS50aXRsZSxcbiAgICAgIG1ldGE6IGAke2l0ZW1zLmxlbmd0aH0gaXRlbSR7aXRlbXMubGVuZ3RoID09PSAxID8gJycgOiAncyd9IMK3ICR7bWV0YS5zdWZmaXh9YCxcbiAgICAgIGl0ZW1Ob3RlOiBtZXRhLml0ZW1Ob3RlLFxuICAgICAgY29sb3JDbGFzczogbWV0YS5jb2xvckNsYXNzLFxuICAgICAgaXRlbXMsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBbaG9tZVZpc2l0LCB2aWRlb0NhbGxdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5ib29raW5nUHJvZHVjdENhcnRTZXJ2aWNlLmdldEl0ZW1zKCdIT01FX1ZJU0lUJyksXG4gICAgICB0aGlzLmJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UuZ2V0SXRlbXMoJ1ZJREVPX0NBTEwnKSxcbiAgICBdKTtcbiAgICBjb25zdCBncm91cHM6IEJvb2tpbmdDYXJ0R3JvdXBbXSA9IFtdO1xuICAgIGlmIChob21lVmlzaXQubGVuZ3RoKSBncm91cHMucHVzaCh0aGlzLmJ1aWxkR3JvdXAoJ0hPTUVfVklTSVQnLCBob21lVmlzaXQpKTtcbiAgICBpZiAodmlkZW9DYWxsLmxlbmd0aCkgZ3JvdXBzLnB1c2godGhpcy5idWlsZEdyb3VwKCdWSURFT19DQUxMJywgdmlkZW9DYWxsKSk7XG4gICAgdGhpcy5ncm91cHMgPSBncm91cHM7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubG9hZGluZyAmJiB0aGlzLmdyb3Vwcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgZGlhbG9nUmVmUHJlc2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8vIFwiNiBpdGVtcyDCtyAyIGJvb2tpbmcgdHlwZXNcIiAtIG1hdGNoZXMgdGhlIGRyYXdlcidzIHN1YmxpbmUgaW4gdGhlIHByb3RvdHlwZS5cbiAgZ2V0IGRyYXdlclN1YmxpbmUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbEl0ZW1zID0gdGhpcy5ncm91cHMucmVkdWNlKChzdW0sIGcpID0+IHN1bSArIGcuaXRlbXMubGVuZ3RoLCAwKTtcbiAgICBpZiAodG90YWxJdGVtcyA9PT0gMCkgcmV0dXJuICdOb3RoaW5nIHBlbmRpbmcnO1xuICAgIHJldHVybiBgJHt0b3RhbEl0ZW1zfSBpdGVtJHt0b3RhbEl0ZW1zID09PSAxID8gJycgOiAncyd9IMK3ICR7dGhpcy5ncm91cHMubGVuZ3RofSBib29raW5nIHR5cGUke3RoaXMuZ3JvdXBzLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnfWA7XG4gIH1cblxuICBhc3luYyByZW1vdmVJdGVtKGdyb3VwOiBCb29raW5nQ2FydEdyb3VwLCBpdGVtOiBPcmRlcmVkSXRlbXMpIHtcbiAgICBhd2FpdCB0aGlzLmJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UucmVtb3ZlSXRlbShncm91cC5tb2RlLCBpdGVtLnZhcmllbnRJZCk7XG4gICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIGJyb3dzZSgpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICB9XG5cbiAgY29udGludWVCb29raW5nKGdyb3VwOiBCb29raW5nQ2FydEdyb3VwKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIGlmICghdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHJ5QXRIb21lOiB0cnVlLCBtb2RlOiBncm91cC5tb2RlIH0gfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2hvbWUtYXBwb2ludG1lbnQnXSwgeyBxdWVyeVBhcmFtczogeyBtb2RlOiBncm91cC5tb2RlIH0gfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib29raW5nLWNhcnQtZ3JvdXBzXCIgW2NsYXNzLmJjZy1wYW5lbF09XCJkaWFsb2dSZWZQcmVzZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJiY2ctaGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dSZWZQcmVzZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImJjZy1oZWFkZXItdGV4dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJjZy10aXRsZVwiPllvdXIgQm9va2luZ3M8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiY2ctc3VibGluZVwiPnt7IGRyYXdlclN1YmxpbmUgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYmNnLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJiY2ctYmFubmVyXCIgKm5nSWY9XCIhZGlhbG9nUmVmUHJlc2VudFwiPkJvb2tpbmdzIGFyZSBwbGFjZWQgb25lIGF0IGEgdGltZSBhbmQgbmV2ZXIgbWVyZ2UsIHNvIGVhY2ggdHlwZSBrZWVwcyBpdHMgb3duIGxpc3QgYW5kIGl0cyBvd24gQ29udGludWUgQm9va2luZy48L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYmNnLWJvZHlcIiAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmNnLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiY2ctZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiY2ctZG90XCIgW25nQ2xhc3NdPVwiZ3JvdXAubW9kZSA9PT0gJ0hPTUVfVklTSVQnID8gJ2JjZy1kb3QtaG9tZScgOiAnYmNnLWRvdC12aWRlbydcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiY2ctZ3JvdXAtdGl0bGVcIj57eyBncm91cC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJjZy1ncm91cC1tZXRhXCI+e3sgZ3JvdXAubWV0YSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiY2ctaXRlbXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmNnLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJjZy1pdGVtLXJlbW92ZVwiIChjbGljayk9XCJyZW1vdmVJdGVtKGdyb3VwLCBpdGVtKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiYmNnLWl0ZW0taW1nXCIgKm5nSWY9XCJpdGVtLmltZ1VybFwiIFtzcmNdPVwiaXRlbS5pbWdVcmxcIiBbYWx0XT1cIml0ZW0uaXRlbU5hbWVcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJjZy1pdGVtLWltZyBiY2ctaXRlbS1pbWctZW1wdHlcIiAqbmdJZj1cIiFpdGVtLmltZ1VybFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJjZy1pdGVtLW5hbWVcIj57eyBpdGVtLml0ZW1OYW1lIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmNnLWl0ZW0tbm90ZVwiPnt7IGdyb3VwLml0ZW1Ob3RlIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmNnLWdyb3VwLWZvb3RlclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJiY2ctY29udGludWVcIiBbbmdDbGFzc109XCJncm91cC5jb2xvckNsYXNzXCIgKGNsaWNrKT1cImNvbnRpbnVlQm9va2luZyhncm91cClcIj5Db250aW51ZSBCb29raW5nPC9idXR0b24+XG4gICAgICAgICAgPGEgY2xhc3M9XCJiY2ctYWRkLW1vcmVcIiAqbmdJZj1cIiFkaWFsb2dSZWZQcmVzZW50XCIgKGNsaWNrKT1cImJyb3dzZSgpXCI+QWRkIG1vcmU8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmNnLWxhdGVyXCIgKm5nSWY9XCJkaWFsb2dSZWZQcmVzZW50ICYmICFpc0VtcHR5XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJiY2ctbGF0ZXItaWNvblwiPnN0b3JlZnJvbnQ8L21hdC1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cImJjZy1sYXRlci10ZXh0XCI+SW4tU3RvcmUgdmlzaXRzIHdpbGwgYXBwZWFyIGhlcmUuPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmNnLWxhdGVyLWJhZGdlXCI+TGF0ZXI8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJiY2ctZW1wdHlcIiAqbmdJZj1cImlzRW1wdHlcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJjZy1lbXB0eS1pY29uXCI+ZXZlbnRfYXZhaWxhYmxlPC9tYXQtaWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiY2ctZW1wdHktdGl0bGVcIj5Zb3UgaGF2ZW4ndCBhZGRlZCBhbnl0aGluZyB5ZXQuPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmNnLWVtcHR5LXN1YlwiPlRyeSBhIHBpZWNlIGF0IGhvbWUgb3Igb24gYSB2aWRlbyBjYWxsIOKAlCBhZGQgaXQgaGVyZSBmaXJzdCwgYm9vayB3aGVuIHlvdSdyZSByZWFkeS48L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJiY2ctYnJvd3NlXCIgKGNsaWNrKT1cImJyb3dzZSgpXCI+QnJvd3NlIGNvbGxlY3Rpb25zPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -11,17 +11,19 @@ import * as i1 from "@angular/material/dialog";
|
|
|
11
11
|
import * as i2 from "@angular/router";
|
|
12
12
|
import * as i3 from "primeng/api";
|
|
13
13
|
import * as i4 from "../../services/booking-product-cart.service";
|
|
14
|
-
import * as i5 from "
|
|
15
|
-
import * as i6 from "@angular/
|
|
16
|
-
import * as i7 from "@angular/
|
|
17
|
-
import * as i8 from "
|
|
14
|
+
import * as i5 from "../../services/storage.service";
|
|
15
|
+
import * as i6 from "@angular/common";
|
|
16
|
+
import * as i7 from "@angular/material/icon";
|
|
17
|
+
import * as i8 from "@angular/forms";
|
|
18
|
+
import * as i9 from "primeng/toast";
|
|
18
19
|
export class ScheduleVideoCallComponent {
|
|
19
|
-
constructor(dialogRef, matDialog, router, messageService, bookingProductCartService, responseData) {
|
|
20
|
+
constructor(dialogRef, matDialog, router, messageService, bookingProductCartService, storageService, responseData) {
|
|
20
21
|
this.dialogRef = dialogRef;
|
|
21
22
|
this.matDialog = matDialog;
|
|
22
23
|
this.router = router;
|
|
23
24
|
this.messageService = messageService;
|
|
24
25
|
this.bookingProductCartService = bookingProductCartService;
|
|
26
|
+
this.storageService = storageService;
|
|
25
27
|
this.responseData = responseData;
|
|
26
28
|
this.selectedProducts = [];
|
|
27
29
|
this.languages = ["English", "Telugu", "Hindi", "Tamil", "Kannada", "Malayalam", "Others"];
|
|
@@ -178,14 +180,14 @@ export class ScheduleVideoCallComponent {
|
|
|
178
180
|
});
|
|
179
181
|
}
|
|
180
182
|
continueBooking() {
|
|
183
|
+
if (!this.storageService.getUser()) {
|
|
184
|
+
this.messageService.add({ severity: 'info', summary: 'Login', detail: 'Please login with mobile number to order' });
|
|
185
|
+
this.dialogRef.close();
|
|
186
|
+
this.router.navigate(['/login'], { queryParams: { tryAtHome: true, mode: 'VIDEO_CALL' } });
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
181
189
|
this.dialogRef.close();
|
|
182
|
-
this.router.navigate(['/home-appointment'], {
|
|
183
|
-
queryParams: {
|
|
184
|
-
mode: 'VIDEO_CALL',
|
|
185
|
-
prefillName: this.videoCallPayload.username,
|
|
186
|
-
prefillPhone: this.videoCallPayload.mobileNumber
|
|
187
|
-
}
|
|
188
|
-
});
|
|
190
|
+
this.router.navigate(['/home-appointment'], { queryParams: { mode: 'VIDEO_CALL' } });
|
|
189
191
|
}
|
|
190
192
|
selectedItems(item) {
|
|
191
193
|
item.selected = !item.selected;
|
|
@@ -196,14 +198,14 @@ export class ScheduleVideoCallComponent {
|
|
|
196
198
|
this.selectedProducts = this.selectedProducts.filter(selectedItem => selectedItem.itemName !== item.itemName);
|
|
197
199
|
}
|
|
198
200
|
}
|
|
199
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScheduleVideoCallComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.Router }, { token: i3.MessageService }, { token: i4.BookingProductCartService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
200
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScheduleVideoCallComponent, isStandalone: true, selector: "simpo-schedule-video-call", providers: [MessageService], ngImport: i0, template: "<section class=\"main-section\">\r\n <p-toast key=\"Video Call Schedule\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\" class=\"bottom-right\" />\r\n <div class=\"header\">\r\n <div class=\"header-text\">See it Live on Video Call</div>\r\n <mat-icon (click)=\"goBack()\">close</mat-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"selection-header\">\r\n <h2 class=\"selection-title\">Choose Designs for Live Video Call</h2>\r\n <span class=\"selection-counter\">{{selectedProducts.length}}/{{responseData?.orderItems?.length ?\r\n responseData.orderItems.length : 0}}</span>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"product-card col-md-6 col-12\" *ngFor=\"let data of orderedItems; let i = index\">\r\n <img [src]=\"data?.imgUrl\" alt=\"product_img\">\r\n <input type=\"checkbox\" [checked]=\"data.selected\" (click)=\"selectedItems(data)\">\r\n <div class=\"product-price\">\u20B9{{data?.discountedPrice ? data?.discountedPrice : 'N/A'}}</div>\r\n <div class=\"product-name\">{{data?.itemName ? data?.itemName : 'N/A'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer\">\r\n <button (click)=\"openScheduleCall(dialogBox)\">Schedule video call</button>\r\n </div>\r\n <ng-template #dialogBox>\r\n <div class=\"modal-content\">\r\n <div class=\"schedule-header w-100 d-flex align-items-center justify-content-end p-2\">\r\n <mat-icon (click)=\"closeDialog()\"\r\n class=\"cursor-pointer d-flex align-items-center justify-content-center f-18\">close</mat-icon>\r\n </div>\r\n <div class=\"heading-video w-100 py-2 text-center\">Live Video call at your convenience!</div>\r\n <div class=\"modal-body h-100 p-0\">\r\n <div class=\"row h-100 w-100 mt-3 video-call-container\">\r\n <div class=\"col-6\" *ngIf=\"!isMobile\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/897651c1751980487170Vdo Call.gif\" alt=\"\"\r\n class=\"w-100\">\r\n </div>\r\n <div class=\"col-6 position-relative h-100 call-details width-100\">\r\n <!-- Name Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.username\">\r\n <input type=\"text\" placeholder=\"Enter Name*\" [(ngModel)]=\"videoCallPayload.username\"\r\n (input)=\"onInputChange('username')\">\r\n </div>\r\n\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.email\">\r\n <input type=\"email\" placeholder=\"Enter Email*\" [(ngModel)]=\"videoCallPayload.email\"\r\n (input)=\"onInputChange('email')\">\r\n </div> -->\r\n\r\n <!-- Mobile Number Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.mobileNumber\">\r\n <div class=\"sub-text-call\">IN +91</div>\r\n <input type=\"number\" placeholder=\"Enter Mobile*\" [(ngModel)]=\"videoCallPayload.mobileNumber\"\r\n (input)=\"onInputChange('mobileNumber')\" (keydown.arrowUp)=\"$event.preventDefault()\"\r\n (keydown.arrowDown)=\"$event.preventDefault()\" (wheel)=\"$event.preventDefault()\">\r\n </div>\r\n\r\n\r\n <!-- Pincode Input with Validation -->\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.pincode\">\r\n <div class=\"sub-text-call d-flex justify-content-center w-12 border-unset\">\r\n <mat-icon class=\"f-18 d-flex align-items-center justify-content-center\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Enter Pin Code*\" class=\"w-88\" [(ngModel)]=\"videoCallPayload.pincode\"\r\n (input)=\"onInputChange('pincode')\">\r\n </div> -->\r\n <div class=\"language my-3\">\r\n <div class=\"mini-text mb-2\">Language Preference</div>\r\n <div class=\"language-container d-flex gap-2 flex-wrap mt-1\">\r\n <ng-container *ngFor=\"let lang of languages\">\r\n <div class=\"lang px-2 py-1 rounded cursor-pointer\"\r\n [style.background]=\"lang == selectedLang ? responseData.data?.styles?.background?.accentColor : ''\"\r\n (click)=\"selectedLang = lang\" [simpoColor]=\"responseData.data?.styles?.background?.accentColor\">\r\n {{lang}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"selectedLang == 'Others'\">\r\n <div class=\"input-field my-3\">\r\n <input type=\"text\" placeholder=\"Enter Other Language\" [(ngModel)]=\"otherLanguage\">\r\n </div>\r\n </ng-container>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\" *ngIf=\"!scheduled\"\r\n (click)=\"scheduleVideoCall()\" [disabled]=\"isSubmitting\">\r\n <ng-container *ngIf=\"isSubmitting\">\r\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n SCHEDULING...\r\n </ng-container>\r\n <ng-container *ngIf=\"!isSubmitting\">\r\n <mat-icon>video_call</mat-icon> \r\n SCHEDULE A VIDEO CALL\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"scheduled\">\r\n <div class=\"d-flex align-items-center justify-content-center mt-2\" style=\"color:#1E7A4B;\">\r\n <mat-icon>check_circle</mat-icon> \r\n Your video call request is saved\r\n </div>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\"\r\n (click)=\"continueBooking()\">\r\n Continue Booking\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.main-section{width:30vw;position:relative;height:100%}@media screen and (max-width:475px){.main-section{width:100vw!important}}.header{display:flex;justify-content:space-between;padding:0 15px;height:45px;align-items:center;border-bottom:1px solid #a8aaab}.content{height:calc(100vh - 90px);overflow:scroll;padding:15px}.footer{position:absolute;bottom:0;width:100%;height:45px;align-items:center;display:flex;padding:0 25px}.footer button{background:linear-gradient(90deg,#8c6,#26b324);border:none;font-size:1rem!important;color:#fff;padding-top:7px;padding-bottom:7px;border-radius:5px;font-weight:600}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.selection-title{font-size:16px;color:#495057;font-weight:400}.selection-counter{font-size:16px;color:#6c757d;font-weight:500}.product-card{position:relative}.product-card img{width:100%;height:29vh}.product-card input{position:absolute;top:10px;right:20px}.product-price{font-size:16px;font-weight:600;color:#000;margin-bottom:4px;margin-top:10px}.product-original-price{font-size:12px;color:#6c757d;text-decoration:line-through;margin-left:8px}.product-name{font-size:14px;color:#6c757d;line-height:1.3}.row{row-gap:15px}.header-text{font-size:1rem;font-weight:700}.modal-content{height:100%;border:none;border-radius:0!important}.schedule-header{border-radius:18px 18px 0 0}.heading-video{font-size:17px;font-weight:600}.heading-video,.schedule-header{background:#f6f3f9}.video-call-container{margin:0!important}.call-details{padding:3%!important}.input-field{display:flex;border-radius:12px;padding:12px;font-size:13px;background:#f6f3f9}.input-field .sub-text-call{width:20%;text-align:center;align-content:center;border-right:1px solid #bfbfbf;color:#0000008a;font-weight:700}.input-field input{width:80%;border:none;outline:none;appearance:none;margin-left:5px;background:#f6f3f9}.mini-text{font-size:13px}.lang{font-size:12px;align-content:center;background:#f6f3f9}.video-btn:disabled{opacity:.7;cursor:not-allowed}.video-btn:disabled:hover{cursor:not-allowed}.video-btn{border:unset;padding:8px;border-radius:12px;font-weight:600;color:#fff;background:#05a702;position:absolute;bottom:20px;left:10px;width:95%!important}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:20px;height:20px;border:2px solid #ccc;border-radius:4px;outline:none;cursor:pointer;position:relative;background-color:#fff;transition:all .3s ease}input[type=checkbox]:checked{background-color:#007bff;border-color:#007bff}input[type=checkbox]:checked:after{content:\"\\2713\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px;font-weight:700}input[type=checkbox]:hover{border-color:#007bff;box-shadow:0 0 5px #007bff4d}.error-border{border:2px solid red!important}@media screen and (max-width:475px){.width-100{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
|
201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScheduleVideoCallComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.Router }, { token: i3.MessageService }, { token: i4.BookingProductCartService }, { token: i5.StorageServiceService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
202
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScheduleVideoCallComponent, isStandalone: true, selector: "simpo-schedule-video-call", providers: [MessageService], ngImport: i0, template: "<section class=\"main-section\">\r\n <p-toast key=\"Video Call Schedule\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\" class=\"bottom-right\" />\r\n <div class=\"header\">\r\n <div class=\"header-text\">See it Live on Video Call</div>\r\n <mat-icon (click)=\"goBack()\">close</mat-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"selection-header\">\r\n <h2 class=\"selection-title\">Choose Designs for Live Video Call</h2>\r\n <span class=\"selection-counter\">{{selectedProducts.length}}/{{responseData?.orderItems?.length ?\r\n responseData.orderItems.length : 0}}</span>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"product-card col-md-6 col-12\" *ngFor=\"let data of orderedItems; let i = index\">\r\n <img [src]=\"data?.imgUrl\" alt=\"product_img\">\r\n <input type=\"checkbox\" [checked]=\"data.selected\" (click)=\"selectedItems(data)\">\r\n <div class=\"product-price\">\u20B9{{data?.discountedPrice ? data?.discountedPrice : 'N/A'}}</div>\r\n <div class=\"product-name\">{{data?.itemName ? data?.itemName : 'N/A'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer\">\r\n <button (click)=\"openScheduleCall(dialogBox)\">Schedule video call</button>\r\n </div>\r\n <ng-template #dialogBox>\r\n <div class=\"modal-content\">\r\n <div class=\"schedule-header w-100 d-flex align-items-center justify-content-end p-2\">\r\n <mat-icon (click)=\"closeDialog()\"\r\n class=\"cursor-pointer d-flex align-items-center justify-content-center f-18\">close</mat-icon>\r\n </div>\r\n <div class=\"heading-video w-100 py-2 text-center\">Live Video call at your convenience!</div>\r\n <div class=\"modal-body h-100 p-0\">\r\n <div class=\"row h-100 w-100 mt-3 video-call-container\">\r\n <div class=\"col-6\" *ngIf=\"!isMobile\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/897651c1751980487170Vdo Call.gif\" alt=\"\"\r\n class=\"w-100\">\r\n </div>\r\n <div class=\"col-6 position-relative h-100 call-details width-100\">\r\n <!-- Name Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.username\">\r\n <input type=\"text\" placeholder=\"Enter Name*\" [(ngModel)]=\"videoCallPayload.username\"\r\n (input)=\"onInputChange('username')\">\r\n </div>\r\n\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.email\">\r\n <input type=\"email\" placeholder=\"Enter Email*\" [(ngModel)]=\"videoCallPayload.email\"\r\n (input)=\"onInputChange('email')\">\r\n </div> -->\r\n\r\n <!-- Mobile Number Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.mobileNumber\">\r\n <div class=\"sub-text-call\">IN +91</div>\r\n <input type=\"number\" placeholder=\"Enter Mobile*\" [(ngModel)]=\"videoCallPayload.mobileNumber\"\r\n (input)=\"onInputChange('mobileNumber')\" (keydown.arrowUp)=\"$event.preventDefault()\"\r\n (keydown.arrowDown)=\"$event.preventDefault()\" (wheel)=\"$event.preventDefault()\">\r\n </div>\r\n\r\n\r\n <!-- Pincode Input with Validation -->\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.pincode\">\r\n <div class=\"sub-text-call d-flex justify-content-center w-12 border-unset\">\r\n <mat-icon class=\"f-18 d-flex align-items-center justify-content-center\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Enter Pin Code*\" class=\"w-88\" [(ngModel)]=\"videoCallPayload.pincode\"\r\n (input)=\"onInputChange('pincode')\">\r\n </div> -->\r\n <div class=\"language my-3\">\r\n <div class=\"mini-text mb-2\">Language Preference</div>\r\n <div class=\"language-container d-flex gap-2 flex-wrap mt-1\">\r\n <ng-container *ngFor=\"let lang of languages\">\r\n <div class=\"lang px-2 py-1 rounded cursor-pointer\"\r\n [style.background]=\"lang == selectedLang ? responseData.data?.styles?.background?.accentColor : ''\"\r\n (click)=\"selectedLang = lang\" [simpoColor]=\"responseData.data?.styles?.background?.accentColor\">\r\n {{lang}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"selectedLang == 'Others'\">\r\n <div class=\"input-field my-3\">\r\n <input type=\"text\" placeholder=\"Enter Other Language\" [(ngModel)]=\"otherLanguage\">\r\n </div>\r\n </ng-container>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\" *ngIf=\"!scheduled\"\r\n (click)=\"scheduleVideoCall()\" [disabled]=\"isSubmitting\">\r\n <ng-container *ngIf=\"isSubmitting\">\r\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n SCHEDULING...\r\n </ng-container>\r\n <ng-container *ngIf=\"!isSubmitting\">\r\n <mat-icon>video_call</mat-icon> \r\n SCHEDULE A VIDEO CALL\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"scheduled\">\r\n <div class=\"d-flex align-items-center justify-content-center mt-2\" style=\"color:#1E7A4B;\">\r\n <mat-icon>check_circle</mat-icon> \r\n Your video call request is saved\r\n </div>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\"\r\n (click)=\"continueBooking()\">\r\n Continue Booking\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.main-section{width:30vw;position:relative;height:100%}@media screen and (max-width:475px){.main-section{width:100vw!important}}.header{display:flex;justify-content:space-between;padding:0 15px;height:45px;align-items:center;border-bottom:1px solid #a8aaab}.content{height:calc(100vh - 90px);overflow:scroll;padding:15px}.footer{position:absolute;bottom:0;width:100%;height:45px;align-items:center;display:flex;padding:0 25px}.footer button{background:linear-gradient(90deg,#8c6,#26b324);border:none;font-size:1rem!important;color:#fff;padding-top:7px;padding-bottom:7px;border-radius:5px;font-weight:600}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.selection-title{font-size:16px;color:#495057;font-weight:400}.selection-counter{font-size:16px;color:#6c757d;font-weight:500}.product-card{position:relative}.product-card img{width:100%;height:29vh}.product-card input{position:absolute;top:10px;right:20px}.product-price{font-size:16px;font-weight:600;color:#000;margin-bottom:4px;margin-top:10px}.product-original-price{font-size:12px;color:#6c757d;text-decoration:line-through;margin-left:8px}.product-name{font-size:14px;color:#6c757d;line-height:1.3}.row{row-gap:15px}.header-text{font-size:1rem;font-weight:700}.modal-content{height:100%;border:none;border-radius:0!important}.schedule-header{border-radius:18px 18px 0 0}.heading-video{font-size:17px;font-weight:600}.heading-video,.schedule-header{background:#f6f3f9}.video-call-container{margin:0!important}.call-details{padding:3%!important}.input-field{display:flex;border-radius:12px;padding:12px;font-size:13px;background:#f6f3f9}.input-field .sub-text-call{width:20%;text-align:center;align-content:center;border-right:1px solid #bfbfbf;color:#0000008a;font-weight:700}.input-field input{width:80%;border:none;outline:none;appearance:none;margin-left:5px;background:#f6f3f9}.mini-text{font-size:13px}.lang{font-size:12px;align-content:center;background:#f6f3f9}.video-btn:disabled{opacity:.7;cursor:not-allowed}.video-btn:disabled:hover{cursor:not-allowed}.video-btn{border:unset;padding:8px;border-radius:12px;font-weight:600;color:#fff;background:#05a702;position:absolute;bottom:20px;left:10px;width:95%!important}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:20px;height:20px;border:2px solid #ccc;border-radius:4px;outline:none;cursor:pointer;position:relative;background-color:#fff;transition:all .3s ease}input[type=checkbox]:checked{background-color:#007bff;border-color:#007bff}input[type=checkbox]:checked:after{content:\"\\2713\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px;font-weight:700}input[type=checkbox]:hover{border-color:#007bff;box-shadow:0 0 5px #007bff4d}.error-border{border:2px solid red!important}@media screen and (max-width:475px){.width-100{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
|
201
203
|
}
|
|
202
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScheduleVideoCallComponent, decorators: [{
|
|
203
205
|
type: Component,
|
|
204
206
|
args: [{ selector: 'simpo-schedule-video-call', standalone: true, imports: [CommonModule, MatIconModule, FormsModule, ColorDirective, ToastModule], providers: [MessageService], template: "<section class=\"main-section\">\r\n <p-toast key=\"Video Call Schedule\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\" class=\"bottom-right\" />\r\n <div class=\"header\">\r\n <div class=\"header-text\">See it Live on Video Call</div>\r\n <mat-icon (click)=\"goBack()\">close</mat-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"selection-header\">\r\n <h2 class=\"selection-title\">Choose Designs for Live Video Call</h2>\r\n <span class=\"selection-counter\">{{selectedProducts.length}}/{{responseData?.orderItems?.length ?\r\n responseData.orderItems.length : 0}}</span>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"product-card col-md-6 col-12\" *ngFor=\"let data of orderedItems; let i = index\">\r\n <img [src]=\"data?.imgUrl\" alt=\"product_img\">\r\n <input type=\"checkbox\" [checked]=\"data.selected\" (click)=\"selectedItems(data)\">\r\n <div class=\"product-price\">\u20B9{{data?.discountedPrice ? data?.discountedPrice : 'N/A'}}</div>\r\n <div class=\"product-name\">{{data?.itemName ? data?.itemName : 'N/A'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer\">\r\n <button (click)=\"openScheduleCall(dialogBox)\">Schedule video call</button>\r\n </div>\r\n <ng-template #dialogBox>\r\n <div class=\"modal-content\">\r\n <div class=\"schedule-header w-100 d-flex align-items-center justify-content-end p-2\">\r\n <mat-icon (click)=\"closeDialog()\"\r\n class=\"cursor-pointer d-flex align-items-center justify-content-center f-18\">close</mat-icon>\r\n </div>\r\n <div class=\"heading-video w-100 py-2 text-center\">Live Video call at your convenience!</div>\r\n <div class=\"modal-body h-100 p-0\">\r\n <div class=\"row h-100 w-100 mt-3 video-call-container\">\r\n <div class=\"col-6\" *ngIf=\"!isMobile\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/897651c1751980487170Vdo Call.gif\" alt=\"\"\r\n class=\"w-100\">\r\n </div>\r\n <div class=\"col-6 position-relative h-100 call-details width-100\">\r\n <!-- Name Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.username\">\r\n <input type=\"text\" placeholder=\"Enter Name*\" [(ngModel)]=\"videoCallPayload.username\"\r\n (input)=\"onInputChange('username')\">\r\n </div>\r\n\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.email\">\r\n <input type=\"email\" placeholder=\"Enter Email*\" [(ngModel)]=\"videoCallPayload.email\"\r\n (input)=\"onInputChange('email')\">\r\n </div> -->\r\n\r\n <!-- Mobile Number Input with Validation -->\r\n <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.mobileNumber\">\r\n <div class=\"sub-text-call\">IN +91</div>\r\n <input type=\"number\" placeholder=\"Enter Mobile*\" [(ngModel)]=\"videoCallPayload.mobileNumber\"\r\n (input)=\"onInputChange('mobileNumber')\" (keydown.arrowUp)=\"$event.preventDefault()\"\r\n (keydown.arrowDown)=\"$event.preventDefault()\" (wheel)=\"$event.preventDefault()\">\r\n </div>\r\n\r\n\r\n <!-- Pincode Input with Validation -->\r\n <!-- <div class=\"input-field my-3\" [class.error-border]=\"validationErrors.pincode\">\r\n <div class=\"sub-text-call d-flex justify-content-center w-12 border-unset\">\r\n <mat-icon class=\"f-18 d-flex align-items-center justify-content-center\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Enter Pin Code*\" class=\"w-88\" [(ngModel)]=\"videoCallPayload.pincode\"\r\n (input)=\"onInputChange('pincode')\">\r\n </div> -->\r\n <div class=\"language my-3\">\r\n <div class=\"mini-text mb-2\">Language Preference</div>\r\n <div class=\"language-container d-flex gap-2 flex-wrap mt-1\">\r\n <ng-container *ngFor=\"let lang of languages\">\r\n <div class=\"lang px-2 py-1 rounded cursor-pointer\"\r\n [style.background]=\"lang == selectedLang ? responseData.data?.styles?.background?.accentColor : ''\"\r\n (click)=\"selectedLang = lang\" [simpoColor]=\"responseData.data?.styles?.background?.accentColor\">\r\n {{lang}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"selectedLang == 'Others'\">\r\n <div class=\"input-field my-3\">\r\n <input type=\"text\" placeholder=\"Enter Other Language\" [(ngModel)]=\"otherLanguage\">\r\n </div>\r\n </ng-container>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\" *ngIf=\"!scheduled\"\r\n (click)=\"scheduleVideoCall()\" [disabled]=\"isSubmitting\">\r\n <ng-container *ngIf=\"isSubmitting\">\r\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n SCHEDULING...\r\n </ng-container>\r\n <ng-container *ngIf=\"!isSubmitting\">\r\n <mat-icon>video_call</mat-icon> \r\n SCHEDULE A VIDEO CALL\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"scheduled\">\r\n <div class=\"d-flex align-items-center justify-content-center mt-2\" style=\"color:#1E7A4B;\">\r\n <mat-icon>check_circle</mat-icon> \r\n Your video call request is saved\r\n </div>\r\n <button class=\"video-btn mt-2 d-flex align-items-center justify-content-center\"\r\n (click)=\"continueBooking()\">\r\n Continue Booking\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.main-section{width:30vw;position:relative;height:100%}@media screen and (max-width:475px){.main-section{width:100vw!important}}.header{display:flex;justify-content:space-between;padding:0 15px;height:45px;align-items:center;border-bottom:1px solid #a8aaab}.content{height:calc(100vh - 90px);overflow:scroll;padding:15px}.footer{position:absolute;bottom:0;width:100%;height:45px;align-items:center;display:flex;padding:0 25px}.footer button{background:linear-gradient(90deg,#8c6,#26b324);border:none;font-size:1rem!important;color:#fff;padding-top:7px;padding-bottom:7px;border-radius:5px;font-weight:600}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.selection-title{font-size:16px;color:#495057;font-weight:400}.selection-counter{font-size:16px;color:#6c757d;font-weight:500}.product-card{position:relative}.product-card img{width:100%;height:29vh}.product-card input{position:absolute;top:10px;right:20px}.product-price{font-size:16px;font-weight:600;color:#000;margin-bottom:4px;margin-top:10px}.product-original-price{font-size:12px;color:#6c757d;text-decoration:line-through;margin-left:8px}.product-name{font-size:14px;color:#6c757d;line-height:1.3}.row{row-gap:15px}.header-text{font-size:1rem;font-weight:700}.modal-content{height:100%;border:none;border-radius:0!important}.schedule-header{border-radius:18px 18px 0 0}.heading-video{font-size:17px;font-weight:600}.heading-video,.schedule-header{background:#f6f3f9}.video-call-container{margin:0!important}.call-details{padding:3%!important}.input-field{display:flex;border-radius:12px;padding:12px;font-size:13px;background:#f6f3f9}.input-field .sub-text-call{width:20%;text-align:center;align-content:center;border-right:1px solid #bfbfbf;color:#0000008a;font-weight:700}.input-field input{width:80%;border:none;outline:none;appearance:none;margin-left:5px;background:#f6f3f9}.mini-text{font-size:13px}.lang{font-size:12px;align-content:center;background:#f6f3f9}.video-btn:disabled{opacity:.7;cursor:not-allowed}.video-btn:disabled:hover{cursor:not-allowed}.video-btn{border:unset;padding:8px;border-radius:12px;font-weight:600;color:#fff;background:#05a702;position:absolute;bottom:20px;left:10px;width:95%!important}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:20px;height:20px;border:2px solid #ccc;border-radius:4px;outline:none;cursor:pointer;position:relative;background-color:#fff;transition:all .3s ease}input[type=checkbox]:checked{background-color:#007bff;border-color:#007bff}input[type=checkbox]:checked:after{content:\"\\2713\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px;font-weight:700}input[type=checkbox]:hover{border-color:#007bff;box-shadow:0 0 5px #007bff4d}.error-border{border:2px solid red!important}@media screen and (max-width:475px){.width-100{width:100%!important}}\n"] }]
|
|
205
|
-
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: i2.Router }, { type: i3.MessageService }, { type: i4.BookingProductCartService }, { type: undefined, decorators: [{
|
|
207
|
+
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: i2.Router }, { type: i3.MessageService }, { type: i4.BookingProductCartService }, { type: i5.StorageServiceService }, { type: undefined, decorators: [{
|
|
206
208
|
type: Inject,
|
|
207
209
|
args: [MAT_DIALOG_DATA]
|
|
208
210
|
}] }] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NjaGVkdWxlLXZpZGVvLWNhbGwvc2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NjaGVkdWxlLXZpZGVvLWNhbGwvc2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBVzVDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFDbUIsU0FBbUQsRUFDNUQsU0FBb0IsRUFDWCxNQUFjLEVBQ2QsY0FBOEIsRUFDOUIseUJBQW9ELEVBQ3JDLFlBQWlCO1FBTGhDLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzVELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDWCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDckMsaUJBQVksR0FBWixZQUFZLENBQUs7UUFTbkQscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQy9GLGlCQUFZLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQThCOUIscUJBQWdCLEdBQVE7WUFDdEIsUUFBUSxFQUFFLEtBQUs7WUFDZixZQUFZLEVBQUUsS0FBSztZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUNGLHFCQUFnQixHQUFRO1lBQ3RCLFVBQVUsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDcEQsWUFBWSxFQUFFLEVBQUU7WUFDaEIsZUFBZTtZQUNmLFFBQVEsRUFBRSxFQUFFO1lBQ1osYUFBYTtZQUNiLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQTtRQU1ELGNBQVMsR0FBWSxLQUFLLENBQUM7SUE5RHZCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFPRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsUUFBcUM7UUFFcEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLG9DQUFvQztnQkFDNUMsR0FBRyxFQUFFLHFCQUFxQjthQUMzQixDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVE7UUFDMUIsbUJBQW1CO1FBQ25CO1lBQ0UsVUFBVSxFQUFFLG1CQUFtQjtTQUNoQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQWVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsUUFBUSxFQUFFLEtBQUs7WUFDZixZQUFZLEVBQUUsS0FBSztZQUNuQixpQkFBaUI7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3RDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDMUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFDRCx3Q0FBd0M7UUFDeEMsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixzRUFBc0U7UUFDdEUsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixJQUFJO1FBRUosOENBQThDO1FBQzlDLHdDQUF3QztRQUN4QyxzQkFBc0I7UUFDdEIsc0dBQXNHO1FBQ3RHLHdDQUF3QztRQUN4QyxzQkFBc0I7UUFDdEIsSUFBSTtRQUNKLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7b0JBQ3RCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixPQUFPLEVBQUUscUJBQXFCO29CQUM5QixNQUFNLEVBQUUsc0NBQXNDO29CQUM5QyxHQUFHLEVBQUUscUJBQXFCO2lCQUMzQixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN0QixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsTUFBTSxFQUFFLDZDQUE2QztvQkFDckQsR0FBRyxFQUFFLHFCQUFxQjtpQkFDM0IsQ0FBQyxDQUFDO2dCQUNILHNFQUFzRTtnQkFDdEUsOEJBQThCO2dCQUM5Qix3QkFBd0I7Z0JBQ3hCLHNDQUFzQztnQkFDdEMsc0RBQXNEO2dCQUN0RCxpQ0FBaUM7Z0JBQ2pDLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSiw0SUFBNEk7Z0JBQzVJLDhCQUE4QjtnQkFDOUIsd0JBQXdCO2dCQUN4QixzQ0FBc0M7Z0JBQ3RDLG9EQUFvRDtnQkFDcEQsaUNBQWlDO2dCQUNqQyxRQUFRO2dCQUNSLElBQUk7WUFDTixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCwwRkFBMEY7UUFDMUYscUZBQXFGO1FBQ3JGLHNGQUFzRjtRQUN0RixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3JILElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixtRkFBbUY7WUFDbkYsbUVBQW1FO1FBQ3JFLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsOERBQThEO2dCQUN0RSxHQUFHLEVBQUUscUJBQXFCO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUMxQyxXQUFXLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUTtnQkFDM0MsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO2FBQ2pEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FDbEQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQ3hELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0E1TFUsMEJBQTBCLG9LQU8zQixlQUFlO21HQVBkLDBCQUEwQix3RUFKMUIsQ0FBQyxjQUFjLENBQUMsMEJDZjdCLDR3TUFpSFUscStGRG5HRSxZQUFZLCtQQUFFLGFBQWEsbUxBQUUsV0FBVyxpeEJBQUUsY0FBYyxnRkFBRSxXQUFXOzs0RkFLcEUsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLGFBQ3JFLENBQUMsY0FBYyxDQUFDOzswQkFXeEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jvb2tpbmctcHJvZHVjdC1jYXJ0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1zY2hlZHVsZS12aWRlby1jYWxsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDb2xvckRpcmVjdGl2ZSwgVG9hc3RNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NjaGVkdWxlLXZpZGVvLWNhbGwuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlVmlkZW9DYWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVWaWRlb0NhbGxDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZTogQm9va2luZ1Byb2R1Y3RDYXJ0U2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgcmVzcG9uc2VEYXRhOiBhbnksXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9yZGVyZWRJdGVtcyA9IHRoaXMucmVzcG9uc2VEYXRhPy5vcmRlckl0ZW1zIHx8IFtdO1xyXG4gICAgdGhpcy5vcmRlcmVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdGVkUHJvZHVjdHM6IGFueVtdID0gW107XHJcbiAgbGFuZ3VhZ2VzOiBzdHJpbmdbXSA9IFtcIkVuZ2xpc2hcIiwgXCJUZWx1Z3VcIiwgXCJIaW5kaVwiLCBcIlRhbWlsXCIsIFwiS2FubmFkYVwiLCBcIk1hbGF5YWxhbVwiLCBcIk90aGVyc1wiXVxyXG4gIHNlbGVjdGVkTGFuZzogc3RyaW5nID0gdGhpcy5sYW5ndWFnZXNbMF07XHJcbiAgb3RoZXJMYW5ndWFnZTogc3RyaW5nID0gJyc7XHJcbiAgb3JkZXJlZEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIGlzU3VibWl0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdvQmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIG9wZW5TY2hlZHVsZUNhbGwodGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxEaXZFbGVtZW50Pikge1xyXG5cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJvZHVjdHMubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgIHNldmVyaXR5OiAnd2FybicsXHJcbiAgICAgICAgc3VtbWFyeTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnLFxyXG4gICAgICAgIGRldGFpbDogJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHByb2R1Y3QnLFxyXG4gICAgICAgIGtleTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4odGVtcGxhdGUsXHJcbiAgICAgIC8vICB7d2lkdGg6JzUwMHB4J31cclxuICAgICAge1xyXG4gICAgICAgIHBhbmVsQ2xhc3M6ICd2aWRlby1jYWxsLWRpYWxvZydcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLm1hdERpYWxvZy5jbG9zZUFsbCgpO1xyXG4gIH1cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNDc1O1xyXG4gIH1cclxuICB2YWxpZGF0aW9uRXJyb3JzOiBhbnkgPSB7XHJcbiAgICB1c2VybmFtZTogZmFsc2UsXHJcbiAgICBtb2JpbGVOdW1iZXI6IGZhbHNlLFxyXG4gICAgcGluY29kZTogZmFsc2UsXHJcbiAgICBlbWFpbDogZmFsc2VcclxuICB9O1xyXG4gIHZpZGVvQ2FsbFBheWxvYWQ6IGFueSA9IHtcclxuICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJykgPz8gXCJcIixcclxuICAgIG1vYmlsZU51bWJlcjogXCJcIixcclxuICAgIC8vIHBpbmNvZGU6IFwiXCIsXHJcbiAgICB1c2VybmFtZTogXCJcIixcclxuICAgIC8vIGVtYWlsOiBcIlwiLFxyXG4gICAgbWVzc2FnZTogYGAsXHJcbiAgfVxyXG4gIG9uSW5wdXRDaGFuZ2UoZmllbGQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9yc1tmaWVsZF0pIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzW2ZpZWxkXSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBzY2hlZHVsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNldFZhbGlkYXRpb25FcnJvcnMoKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSB7XHJcbiAgICAgIHVzZXJuYW1lOiBmYWxzZSxcclxuICAgICAgbW9iaWxlTnVtYmVyOiBmYWxzZSxcclxuICAgICAgLy8gcGluY29kZTogZmFsc2VcclxuICAgIH07XHJcbiAgfVxyXG4gIHNjaGVkdWxlVmlkZW9DYWxsKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTdWJtaXR0aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRWYWxpZGF0aW9uRXJyb3JzKCk7XHJcbiAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMudmlkZW9DYWxsUGF5bG9hZC51c2VybmFtZT8udHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy51c2VybmFtZSA9IHRydWU7XHJcbiAgICAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMudmlkZW9DYWxsUGF5bG9hZC5tb2JpbGVOdW1iZXIpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLm1vYmlsZU51bWJlciA9IHRydWU7XHJcbiAgICAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DYWxsUGF5bG9hZC5tb2JpbGVOdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggIT09IDEwKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5tb2JpbGVOdW1iZXIgPSB0cnVlO1xyXG4gICAgICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKCF0aGlzLnZpZGVvQ2FsbFBheWxvYWQucGluY29kZSkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucGluY29kZSA9IHRydWU7XHJcbiAgICAvLyAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAvLyB9IGVsc2UgaWYgKHRoaXMudmlkZW9DYWxsUGF5bG9hZC5waW5jb2RlLnRvU3RyaW5nKCkubGVuZ3RoICE9PSA2KSB7XHJcbiAgICAvLyAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5waW5jb2RlID0gdHJ1ZTtcclxuICAgIC8vICAgaGFzRXJyb3JzID0gdHJ1ZTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBpZiAoIXRoaXMudmlkZW9DYWxsUGF5bG9hZC5lbWFpbD8udHJpbSgpKSB7XHJcbiAgICAvLyAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5lbWFpbCA9IHRydWU7XHJcbiAgICAvLyAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAvLyB9IGVsc2UgaWYgKCEvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC8udGVzdCh0aGlzLnZpZGVvQ2FsbFBheWxvYWQuZW1haWwpKSB7XHJcbiAgICAvLyAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5lbWFpbCA9IHRydWU7XHJcbiAgICAvLyAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAvLyB9XHJcbiAgICBpZiAoaGFzRXJyb3JzKSB7XHJcbiAgICAgIGlmICghdGhpcy52aWRlb0NhbGxQYXlsb2FkLnVzZXJuYW1lPy50cmltKCkgfHwgIXRoaXMudmlkZW9DYWxsUGF5bG9hZC5tb2JpbGVOdW1iZXIpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ3dhcm4nLFxyXG4gICAgICAgICAgc3VtbWFyeTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnUGxlYXNlIGZpbGwgYWxsIHRoZSByZXF1aXJlZCBkZXRhaWxzJyxcclxuICAgICAgICAgIGtleTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52aWRlb0NhbGxQYXlsb2FkLm1vYmlsZU51bWJlci50b1N0cmluZygpLmxlbmd0aCAhPT0gMTApIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ3dhcm4nLFxyXG4gICAgICAgICAgc3VtbWFyeTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgMTAtZGlnaXQgbW9iaWxlIG51bWJlcicsXHJcbiAgICAgICAgICBrZXk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIH0gZWxzZSBpZiAodGhpcy52aWRlb0NhbGxQYXlsb2FkLnBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT09IDYpIHtcclxuICAgICAgICAvLyAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAvLyAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcclxuICAgICAgICAvLyAgICAgc3VtbWFyeTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnLFxyXG4gICAgICAgIC8vICAgICBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCA2LWRpZ2l0IHBpbmNvZGUnLFxyXG4gICAgICAgIC8vICAgICBrZXk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJ1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgaWYgKCF0aGlzLnZpZGVvQ2FsbFBheWxvYWQuZW1haWw/LnRyaW0oKSB8fCAhL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvLnRlc3QodGhpcy52aWRlb0NhbGxQYXlsb2FkLmVtYWlsKSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgIC8vICAgICBzZXZlcml0eTogJ3dhcm4nLFxyXG4gICAgICAgIC8vICAgICBzdW1tYXJ5OiAnVmlkZW8gQ2FsbCBTY2hlZHVsZScsXHJcbiAgICAgICAgLy8gICAgIGRldGFpbDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIC8vICAgICBrZXk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJ1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXNpZ24gZG9jOiBWaWRlbyBDYWxsIG5ldmVyIGZhbGxzIGJhY2sgdG8gYSBzcGxpdCBib29raW5nLCBhbmQgdmlkZW8tY2FsbC1mb3ItcHJvZHVjdHNcclxuICAgIC8vIGlzIGZyZWUgaW4gdjEgLSBib3RoIGVuZm9yY2VkIHNlcnZlci1zaWRlLiBUaGlzIGRpYWxvZydzIGpvYiBpcyBqdXN0IHBpY2tpbmcgd2hpY2hcclxuICAgIC8vIHByb2R1Y3RzIHRvIHNob3cgYW5kIGhhbmRpbmcgb2ZmIHRvIHRoZSByZWFsIHdpemFyZCBmb3Igc3RhZmYvZGF0ZS90aW1lIGFuZCBjb250YWN0XHJcbiAgICAvLyBkZXRhaWxzLCByYXRoZXIgdGhhbiBjcmVhdGluZyB0aGUgYm9va2luZyBpdHNlbGYgKHRoZXJlJ3Mgbm8gc3RhZmYtcGlja2VyIGhlcmUpLlxyXG4gICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSB0cnVlO1xyXG4gICAgUHJvbWlzZS5hbGwodGhpcy5zZWxlY3RlZFByb2R1Y3RzLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLmJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UuYWRkT3JkZXJlZEl0ZW0oJ1ZJREVPX0NBTEwnLCBpdGVtKSkpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyBTdGF5IG9wZW4gb24gdGhlIFwiU0NIRURVTEVEIFNVQ0NFU1NGVUxMWVwiIHN0YXRlIGluc3RlYWQgb2YgYXV0by1jbG9zaW5nIGludG8gdGhlXHJcbiAgICAgICAgLy8gd2l6YXJkIC0gdGhlIHNob3BwZXIgY29udGludWVzIGV4cGxpY2l0bHkgdmlhIGNvbnRpbnVlQm9va2luZygpLlxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnRXJyb3InLFxyXG4gICAgICAgICAgZGV0YWlsOiAnQ291bGQgbm90IGFkZCBwcm9kdWN0cyB0byB5b3VyIHZpZGVvIGNhbGwg4oCUIHBsZWFzZSB0cnkgYWdhaW4nLFxyXG4gICAgICAgICAga2V5OiAnVmlkZW8gQ2FsbCBTY2hlZHVsZSdcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb250aW51ZUJvb2tpbmcoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvaG9tZS1hcHBvaW50bWVudCddLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgbW9kZTogJ1ZJREVPX0NBTEwnLFxyXG4gICAgICAgIHByZWZpbGxOYW1lOiB0aGlzLnZpZGVvQ2FsbFBheWxvYWQudXNlcm5hbWUsXHJcbiAgICAgICAgcHJlZmlsbFBob25lOiB0aGlzLnZpZGVvQ2FsbFBheWxvYWQubW9iaWxlTnVtYmVyXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3RlZEl0ZW1zKGl0ZW06IGFueSkge1xyXG4gICAgaXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkO1xyXG4gICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFByb2R1Y3RzLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFByb2R1Y3RzID0gdGhpcy5zZWxlY3RlZFByb2R1Y3RzLmZpbHRlcihcclxuICAgICAgICBzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtLml0ZW1OYW1lICE9PSBpdGVtLml0ZW1OYW1lXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uXCI+XHJcbiAgPHAtdG9hc3Qga2V5PVwiVmlkZW8gQ2FsbCBTY2hlZHVsZVwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIiBjbGFzcz1cImJvdHRvbS1yaWdodFwiIC8+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10ZXh0XCI+U2VlIGl0IExpdmUgb24gVmlkZW8gQ2FsbDwvZGl2PlxyXG4gICAgPG1hdC1pY29uIChjbGljayk9XCJnb0JhY2soKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbi1oZWFkZXJcIj5cclxuICAgICAgPGgyIGNsYXNzPVwic2VsZWN0aW9uLXRpdGxlXCI+Q2hvb3NlIERlc2lnbnMgZm9yIExpdmUgVmlkZW8gQ2FsbDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0aW9uLWNvdW50ZXJcIj57e3NlbGVjdGVkUHJvZHVjdHMubGVuZ3RofX0ve3tyZXNwb25zZURhdGE/Lm9yZGVySXRlbXM/Lmxlbmd0aCA/XHJcbiAgICAgICAgcmVzcG9uc2VEYXRhLm9yZGVySXRlbXMubGVuZ3RoIDogMH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jYXJkIGNvbC1tZC02IGNvbC0xMlwiICpuZ0Zvcj1cImxldCBkYXRhIG9mIG9yZGVyZWRJdGVtczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJkYXRhPy5pbWdVcmxcIiBhbHQ9XCJwcm9kdWN0X2ltZ1wiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJkYXRhLnNlbGVjdGVkXCIgKGNsaWNrKT1cInNlbGVjdGVkSXRlbXMoZGF0YSlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1wcmljZVwiPuKCuXt7ZGF0YT8uZGlzY291bnRlZFByaWNlID8gZGF0YT8uZGlzY291bnRlZFByaWNlIDogJ04vQSd9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LW5hbWVcIj57e2RhdGE/Lml0ZW1OYW1lID8gZGF0YT8uaXRlbU5hbWUgOiAnTi9BJ319PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib3BlblNjaGVkdWxlQ2FsbChkaWFsb2dCb3gpXCI+U2NoZWR1bGUgdmlkZW8gY2FsbDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxuZy10ZW1wbGF0ZSAjZGlhbG9nQm94PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWhlYWRlciB3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgcC0yXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcclxuICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMThcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy12aWRlbyB3LTEwMCBweS0yIHRleHQtY2VudGVyXCI+TGl2ZSBWaWRlbyBjYWxsIGF0IHlvdXIgY29udmVuaWVuY2UhPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGgtMTAwIHAtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgaC0xMDAgdy0xMDAgbXQtMyB2aWRlby1jYWxsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzg5NzY1MWMxNzUxOTgwNDg3MTcwVmRvIENhbGwuZ2lmXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBwb3NpdGlvbi1yZWxhdGl2ZSBoLTEwMCBjYWxsLWRldGFpbHMgd2lkdGgtMTAwXCI+XHJcbiAgICAgICAgICAgIDwhLS0gTmFtZSBJbnB1dCB3aXRoIFZhbGlkYXRpb24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1maWVsZCBteS0zXCIgW2NsYXNzLmVycm9yLWJvcmRlcl09XCJ2YWxpZGF0aW9uRXJyb3JzLnVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lKlwiIFsobmdNb2RlbCldPVwidmlkZW9DYWxsUGF5bG9hZC51c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgndXNlcm5hbWUnKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkIG15LTNcIiBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInZhbGlkYXRpb25FcnJvcnMuZW1haWxcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBFbWFpbCpcIiBbKG5nTW9kZWwpXT1cInZpZGVvQ2FsbFBheWxvYWQuZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJ2VtYWlsJylcIj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBNb2JpbGUgTnVtYmVyIElucHV0IHdpdGggVmFsaWRhdGlvbiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkIG15LTNcIiBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInZhbGlkYXRpb25FcnJvcnMubW9iaWxlTnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0LWNhbGxcIj5JTiArOTE8L2Rpdj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgTW9iaWxlKlwiIFsobmdNb2RlbCldPVwidmlkZW9DYWxsUGF5bG9hZC5tb2JpbGVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJ21vYmlsZU51bWJlcicpXCIgKGtleWRvd24uYXJyb3dVcCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAod2hlZWwpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPCEtLSBQaW5jb2RlIElucHV0IHdpdGggVmFsaWRhdGlvbiAtLT5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQgbXktM1wiIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwidmFsaWRhdGlvbkVycm9ycy5waW5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0LWNhbGwgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMiBib3JkZXItdW5zZXRcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImYtMTggZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+Z3BzX2ZpeGVkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgUGluIENvZGUqXCIgY2xhc3M9XCJ3LTg4XCIgWyhuZ01vZGVsKV09XCJ2aWRlb0NhbGxQYXlsb2FkLnBpbmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJ3BpbmNvZGUnKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktdGV4dCBtYi0yXCI+TGFuZ3VhZ2UgUHJlZmVyZW5jZTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZS1jb250YWluZXIgZC1mbGV4IGdhcC0yIGZsZXgtd3JhcCBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYW5nIG9mIGxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZyBweC0yIHB5LTEgcm91bmRlZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwibGFuZyA9PSBzZWxlY3RlZExhbmcgPyByZXNwb25zZURhdGEuZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRMYW5nID0gbGFuZ1wiIFtzaW1wb0NvbG9yXT1cInJlc3BvbnNlRGF0YS5kYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tsYW5nfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExhbmcgPT0gJ090aGVycydcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBPdGhlciBMYW5ndWFnZVwiIFsobmdNb2RlbCldPVwib3RoZXJMYW5ndWFnZVwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInZpZGVvLWJ0biBtdC0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiIXNjaGVkdWxlZFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNjaGVkdWxlVmlkZW9DYWxsKClcIiBbZGlzYWJsZWRdPVwiaXNTdWJtaXR0aW5nXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3VibWl0dGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTJcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+TG9hZGluZy4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgU0NIRURVTElORy4uLlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTdWJtaXR0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+dmlkZW9fY2FsbDwvbWF0LWljb24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICBTQ0hFRFVMRSBBIFZJREVPIENBTExcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY2hlZHVsZWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTJcIiBzdHlsZT1cImNvbG9yOiMxRTdBNEI7XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgIFlvdXIgdmlkZW8gY2FsbCByZXF1ZXN0IGlzIHNhdmVkXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInZpZGVvLWJ0biBtdC0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGludWVCb29raW5nKClcIj5cclxuICAgICAgICAgICAgICAgIENvbnRpbnVlIEJvb2tpbmdcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3NlY3Rpb24+Il19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NjaGVkdWxlLXZpZGVvLWNhbGwvc2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NjaGVkdWxlLXZpZGVvLWNhbGwvc2NoZWR1bGUtdmlkZW8tY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVk1QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ21CLFNBQW1ELEVBQzVELFNBQW9CLEVBQ1gsTUFBYyxFQUNkLGNBQThCLEVBQzlCLHlCQUFvRCxFQUNwRCxjQUFxQyxFQUN0QixZQUFpQjtRQU5oQyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUM1RCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ1gsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBSztRQVNuRCxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0IsY0FBUyxHQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDL0YsaUJBQVksR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBOEI5QixxQkFBZ0IsR0FBUTtZQUN0QixRQUFRLEVBQUUsS0FBSztZQUNmLFlBQVksRUFBRSxLQUFLO1lBQ25CLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO1FBQ0YscUJBQWdCLEdBQVE7WUFDdEIsVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtZQUNwRCxZQUFZLEVBQUUsRUFBRTtZQUNoQixlQUFlO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixhQUFhO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFBO1FBTUQsY0FBUyxHQUFZLEtBQUssQ0FBQztJQTlEdkIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU9ELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFxQztRQUVwRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxHQUFHLEVBQUUscUJBQXFCO2FBQzNCLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBR0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUMxQixtQkFBbUI7UUFDbkI7WUFDRSxVQUFVLEVBQUUsbUJBQW1CO1NBQ2hDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUNsQyxDQUFDO0lBZUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRztZQUN0QixRQUFRLEVBQUUsS0FBSztZQUNmLFlBQVksRUFBRSxLQUFLO1lBQ25CLGlCQUFpQjtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdEMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztRQUNELHdDQUF3QztRQUN4QywwQ0FBMEM7UUFDMUMsc0JBQXNCO1FBQ3RCLHNFQUFzRTtRQUN0RSwwQ0FBMEM7UUFDMUMsc0JBQXNCO1FBQ3RCLElBQUk7UUFFSiw4Q0FBOEM7UUFDOUMsd0NBQXdDO1FBQ3hDLHNCQUFzQjtRQUN0QixzR0FBc0c7UUFDdEcsd0NBQXdDO1FBQ3hDLHNCQUFzQjtRQUN0QixJQUFJO1FBQ0osSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNuRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztvQkFDdEIsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLE9BQU8sRUFBRSxxQkFBcUI7b0JBQzlCLE1BQU0sRUFBRSxzQ0FBc0M7b0JBQzlDLEdBQUcsRUFBRSxxQkFBcUI7aUJBQzNCLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7b0JBQ3RCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixPQUFPLEVBQUUscUJBQXFCO29CQUM5QixNQUFNLEVBQUUsNkNBQTZDO29CQUNyRCxHQUFHLEVBQUUscUJBQXFCO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsc0VBQXNFO2dCQUN0RSw4QkFBOEI7Z0JBQzlCLHdCQUF3QjtnQkFDeEIsc0NBQXNDO2dCQUN0QyxzREFBc0Q7Z0JBQ3RELGlDQUFpQztnQkFDakMsUUFBUTtnQkFDUixJQUFJO2dCQUNKLDRJQUE0STtnQkFDNUksOEJBQThCO2dCQUM5Qix3QkFBd0I7Z0JBQ3hCLHNDQUFzQztnQkFDdEMsb0RBQW9EO2dCQUNwRCxpQ0FBaUM7Z0JBQ2pDLFFBQVE7Z0JBQ1IsSUFBSTtZQUNOLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELDBGQUEwRjtRQUMxRixxRkFBcUY7UUFDckYsc0ZBQXNGO1FBQ3RGLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDckgsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLG1GQUFtRjtZQUNuRixtRUFBbUU7UUFDckUsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSw4REFBOEQ7Z0JBQ3RFLEdBQUcsRUFBRSxxQkFBcUI7YUFDM0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLDBDQUEwQyxFQUFFLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUNELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FDbEQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQ3hELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0E3TFUsMEJBQTBCLHlNQVEzQixlQUFlO21HQVJkLDBCQUEwQix3RUFKMUIsQ0FBQyxjQUFjLENBQUMsMEJDaEI3Qiw0d01BaUhVLHErRkRsR0UsWUFBWSwrUEFBRSxhQUFhLG1MQUFFLFdBQVcsaXhCQUFFLGNBQWMsZ0ZBQUUsV0FBVzs7NEZBS3BFLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxhQUNyRSxDQUFDLGNBQWMsQ0FBQzs7MEJBWXhCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IEJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ib29raW5nLXByb2R1Y3QtY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tc2NoZWR1bGUtdmlkZW8tY2FsbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQ29sb3JEaXJlY3RpdmUsIFRvYXN0TW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLXZpZGVvLWNhbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zY2hlZHVsZS12aWRlby1jYWxsLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVZpZGVvQ2FsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlVmlkZW9DYWxsQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2U6IEJvb2tpbmdQcm9kdWN0Q2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIHJlc3BvbnNlRGF0YTogYW55LFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmRlcmVkSXRlbXMgPSB0aGlzLnJlc3BvbnNlRGF0YT8ub3JkZXJJdGVtcyB8fCBbXTtcclxuICAgIHRoaXMub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3RlZFByb2R1Y3RzOiBhbnlbXSA9IFtdO1xyXG4gIGxhbmd1YWdlczogc3RyaW5nW10gPSBbXCJFbmdsaXNoXCIsIFwiVGVsdWd1XCIsIFwiSGluZGlcIiwgXCJUYW1pbFwiLCBcIkthbm5hZGFcIiwgXCJNYWxheWFsYW1cIiwgXCJPdGhlcnNcIl1cclxuICBzZWxlY3RlZExhbmc6IHN0cmluZyA9IHRoaXMubGFuZ3VhZ2VzWzBdO1xyXG4gIG90aGVyTGFuZ3VhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIG9yZGVyZWRJdGVtczogYW55W10gPSBbXTtcclxuICBpc1N1Ym1pdHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnb0JhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBvcGVuU2NoZWR1bGVDYWxsKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRGl2RWxlbWVudD4pIHtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFByb2R1Y3RzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICBzZXZlcml0eTogJ3dhcm4nLFxyXG4gICAgICAgIHN1bW1hcnk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJyxcclxuICAgICAgICBkZXRhaWw6ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwcm9kdWN0JyxcclxuICAgICAgICBrZXk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJ1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLm1hdERpYWxvZy5vcGVuKHRlbXBsYXRlLFxyXG4gICAgICAvLyAge3dpZHRoOic1MDBweCd9XHJcbiAgICAgIHtcclxuICAgICAgICBwYW5lbENsYXNzOiAndmlkZW8tY2FsbC1kaWFsb2cnXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGNsb3NlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbiAgdmFsaWRhdGlvbkVycm9yczogYW55ID0ge1xyXG4gICAgdXNlcm5hbWU6IGZhbHNlLFxyXG4gICAgbW9iaWxlTnVtYmVyOiBmYWxzZSxcclxuICAgIHBpbmNvZGU6IGZhbHNlLFxyXG4gICAgZW1haWw6IGZhbHNlXHJcbiAgfTtcclxuICB2aWRlb0NhbGxQYXlsb2FkOiBhbnkgPSB7XHJcbiAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpID8/IFwiXCIsXHJcbiAgICBtb2JpbGVOdW1iZXI6IFwiXCIsXHJcbiAgICAvLyBwaW5jb2RlOiBcIlwiLFxyXG4gICAgdXNlcm5hbWU6IFwiXCIsXHJcbiAgICAvLyBlbWFpbDogXCJcIixcclxuICAgIG1lc3NhZ2U6IGBgLFxyXG4gIH1cclxuICBvbklucHV0Q2hhbmdlKGZpZWxkOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcnNbZmllbGRdKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yc1tmaWVsZF0gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgc2NoZWR1bGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVzZXRWYWxpZGF0aW9uRXJyb3JzKCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0ge1xyXG4gICAgICB1c2VybmFtZTogZmFsc2UsXHJcbiAgICAgIG1vYmlsZU51bWJlcjogZmFsc2UsXHJcbiAgICAgIC8vIHBpbmNvZGU6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH1cclxuICBzY2hlZHVsZVZpZGVvQ2FsbCgpIHtcclxuICAgIGlmICh0aGlzLmlzU3VibWl0dGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2V0VmFsaWRhdGlvbkVycm9ycygpO1xyXG4gICAgbGV0IGhhc0Vycm9ycyA9IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbFBheWxvYWQudXNlcm5hbWU/LnRyaW0oKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMudXNlcm5hbWUgPSB0cnVlO1xyXG4gICAgICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbFBheWxvYWQubW9iaWxlTnVtYmVyKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5tb2JpbGVOdW1iZXIgPSB0cnVlO1xyXG4gICAgICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZGVvQ2FsbFBheWxvYWQubW9iaWxlTnVtYmVyLnRvU3RyaW5nKCkubGVuZ3RoICE9PSAxMCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMubW9iaWxlTnVtYmVyID0gdHJ1ZTtcclxuICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIGlmICghdGhpcy52aWRlb0NhbGxQYXlsb2FkLnBpbmNvZGUpIHtcclxuICAgIC8vICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnBpbmNvZGUgPSB0cnVlO1xyXG4gICAgLy8gICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgLy8gfSBlbHNlIGlmICh0aGlzLnZpZGVvQ2FsbFBheWxvYWQucGluY29kZS50b1N0cmluZygpLmxlbmd0aCAhPT0gNikge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucGluY29kZSA9IHRydWU7XHJcbiAgICAvLyAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gaWYgKCF0aGlzLnZpZGVvQ2FsbFBheWxvYWQuZW1haWw/LnRyaW0oKSkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25FcnJvcnMuZW1haWwgPSB0cnVlO1xyXG4gICAgLy8gICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgLy8gfSBlbHNlIGlmICghL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvLnRlc3QodGhpcy52aWRlb0NhbGxQYXlsb2FkLmVtYWlsKSkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25FcnJvcnMuZW1haWwgPSB0cnVlO1xyXG4gICAgLy8gICBoYXNFcnJvcnMgPSB0cnVlO1xyXG4gICAgLy8gfVxyXG4gICAgaWYgKGhhc0Vycm9ycykge1xyXG4gICAgICBpZiAoIXRoaXMudmlkZW9DYWxsUGF5bG9hZC51c2VybmFtZT8udHJpbSgpIHx8ICF0aGlzLnZpZGVvQ2FsbFBheWxvYWQubW9iaWxlTnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcclxuICAgICAgICAgIHN1bW1hcnk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJyxcclxuICAgICAgICAgIGRldGFpbDogJ1BsZWFzZSBmaWxsIGFsbCB0aGUgcmVxdWlyZWQgZGV0YWlscycsXHJcbiAgICAgICAgICBrZXk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DYWxsUGF5bG9hZC5tb2JpbGVOdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggIT09IDEwKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcclxuICAgICAgICAgIHN1bW1hcnk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJyxcclxuICAgICAgICAgIGRldGFpbDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIDEwLWRpZ2l0IG1vYmlsZSBudW1iZXInLFxyXG4gICAgICAgICAga2V5OiAnVmlkZW8gQ2FsbCBTY2hlZHVsZSdcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB9IGVsc2UgaWYgKHRoaXMudmlkZW9DYWxsUGF5bG9hZC5waW5jb2RlLnRvU3RyaW5nKCkubGVuZ3RoICE9PSA2KSB7XHJcbiAgICAgICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgLy8gICAgIHNldmVyaXR5OiAnd2FybicsXHJcbiAgICAgICAgLy8gICAgIHN1bW1hcnk6ICdWaWRlbyBDYWxsIFNjaGVkdWxlJyxcclxuICAgICAgICAvLyAgICAgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgNi1kaWdpdCBwaW5jb2RlJyxcclxuICAgICAgICAvLyAgICAga2V5OiAnVmlkZW8gQ2FsbCBTY2hlZHVsZSdcclxuICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIGlmICghdGhpcy52aWRlb0NhbGxQYXlsb2FkLmVtYWlsPy50cmltKCkgfHwgIS9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kLy50ZXN0KHRoaXMudmlkZW9DYWxsUGF5bG9hZC5lbWFpbCkpIHtcclxuICAgICAgICAvLyAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAvLyAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcclxuICAgICAgICAvLyAgICAgc3VtbWFyeTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnLFxyXG4gICAgICAgIC8vICAgICBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyxcclxuICAgICAgICAvLyAgICAga2V5OiAnVmlkZW8gQ2FsbCBTY2hlZHVsZSdcclxuICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGVzaWduIGRvYzogVmlkZW8gQ2FsbCBuZXZlciBmYWxscyBiYWNrIHRvIGEgc3BsaXQgYm9va2luZywgYW5kIHZpZGVvLWNhbGwtZm9yLXByb2R1Y3RzXHJcbiAgICAvLyBpcyBmcmVlIGluIHYxIC0gYm90aCBlbmZvcmNlZCBzZXJ2ZXItc2lkZS4gVGhpcyBkaWFsb2cncyBqb2IgaXMganVzdCBwaWNraW5nIHdoaWNoXHJcbiAgICAvLyBwcm9kdWN0cyB0byBzaG93IGFuZCBoYW5kaW5nIG9mZiB0byB0aGUgcmVhbCB3aXphcmQgZm9yIHN0YWZmL2RhdGUvdGltZSBhbmQgY29udGFjdFxyXG4gICAgLy8gZGV0YWlscywgcmF0aGVyIHRoYW4gY3JlYXRpbmcgdGhlIGJvb2tpbmcgaXRzZWxmICh0aGVyZSdzIG5vIHN0YWZmLXBpY2tlciBoZXJlKS5cclxuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcclxuICAgIFByb21pc2UuYWxsKHRoaXMuc2VsZWN0ZWRQcm9kdWN0cy5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5ib29raW5nUHJvZHVjdENhcnRTZXJ2aWNlLmFkZE9yZGVyZWRJdGVtKCdWSURFT19DQUxMJywgaXRlbSkpKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gU3RheSBvcGVuIG9uIHRoZSBcIlNDSEVEVUxFRCBTVUNDRVNTRlVMTFlcIiBzdGF0ZSBpbnN0ZWFkIG9mIGF1dG8tY2xvc2luZyBpbnRvIHRoZVxyXG4gICAgICAgIC8vIHdpemFyZCAtIHRoZSBzaG9wcGVyIGNvbnRpbnVlcyBleHBsaWNpdGx5IHZpYSBjb250aW51ZUJvb2tpbmcoKS5cclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxyXG4gICAgICAgICAgc3VtbWFyeTogJ0Vycm9yJyxcclxuICAgICAgICAgIGRldGFpbDogJ0NvdWxkIG5vdCBhZGQgcHJvZHVjdHMgdG8geW91ciB2aWRlbyBjYWxsIOKAlCBwbGVhc2UgdHJ5IGFnYWluJyxcclxuICAgICAgICAgIGtleTogJ1ZpZGVvIENhbGwgU2NoZWR1bGUnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29udGludWVCb29raW5nKCkge1xyXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdMb2dpbicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB3aXRoIG1vYmlsZSBudW1iZXIgdG8gb3JkZXInIH0pO1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddLCB7IHF1ZXJ5UGFyYW1zOiB7IHRyeUF0SG9tZTogdHJ1ZSwgbW9kZTogJ1ZJREVPX0NBTEwnIH0gfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9ob21lLWFwcG9pbnRtZW50J10sIHsgcXVlcnlQYXJhbXM6IHsgbW9kZTogJ1ZJREVPX0NBTEwnIH0gfSk7XHJcbiAgfVxyXG4gIHNlbGVjdGVkSXRlbXMoaXRlbTogYW55KSB7XHJcbiAgICBpdGVtLnNlbGVjdGVkID0gIWl0ZW0uc2VsZWN0ZWQ7XHJcbiAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZHVjdHMucHVzaChpdGVtKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZHVjdHMgPSB0aGlzLnNlbGVjdGVkUHJvZHVjdHMuZmlsdGVyKFxyXG4gICAgICAgIHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW0uaXRlbU5hbWUgIT09IGl0ZW0uaXRlbU5hbWVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cclxuICA8cC10b2FzdCBrZXk9XCJWaWRlbyBDYWxsIFNjaGVkdWxlXCIgW2Jhc2VaSW5kZXhdPVwiMTAwMDAwMDAwMDBcIiBbYXV0b1pJbmRleF09XCJ0cnVlXCJcclxuICAgIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiIGNsYXNzPVwiYm90dG9tLXJpZ2h0XCIgLz5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRleHRcIj5TZWUgaXQgTGl2ZSBvbiBWaWRlbyBDYWxsPC9kaXY+XHJcbiAgICA8bWF0LWljb24gKGNsaWNrKT1cImdvQmFjaygpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLWhlYWRlclwiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJzZWxlY3Rpb24tdGl0bGVcIj5DaG9vc2UgRGVzaWducyBmb3IgTGl2ZSBWaWRlbyBDYWxsPC9oMj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3Rpb24tY291bnRlclwiPnt7c2VsZWN0ZWRQcm9kdWN0cy5sZW5ndGh9fS97e3Jlc3BvbnNlRGF0YT8ub3JkZXJJdGVtcz8ubGVuZ3RoID9cclxuICAgICAgICByZXNwb25zZURhdGEub3JkZXJJdGVtcy5sZW5ndGggOiAwfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWNhcmQgY29sLW1kLTYgY29sLTEyXCIgKm5nRm9yPVwibGV0IGRhdGEgb2Ygb3JkZXJlZEl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImRhdGE/LmltZ1VybFwiIGFsdD1cInByb2R1Y3RfaW1nXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImRhdGEuc2VsZWN0ZWRcIiAoY2xpY2spPVwic2VsZWN0ZWRJdGVtcyhkYXRhKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlXCI+4oK5e3tkYXRhPy5kaXNjb3VudGVkUHJpY2UgPyBkYXRhPy5kaXNjb3VudGVkUHJpY2UgOiAnTi9BJ319PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtbmFtZVwiPnt7ZGF0YT8uaXRlbU5hbWUgPyBkYXRhPy5pdGVtTmFtZSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuU2NoZWR1bGVDYWxsKGRpYWxvZ0JveClcIj5TY2hlZHVsZSB2aWRlbyBjYWxsPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNkaWFsb2dCb3g+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtaGVhZGVyIHctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBwLTJcIj5cclxuICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZi0xOFwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXZpZGVvIHctMTAwIHB5LTIgdGV4dC1jZW50ZXJcIj5MaXZlIFZpZGVvIGNhbGwgYXQgeW91ciBjb252ZW5pZW5jZSE8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgaC0xMDAgcC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBoLTEwMCB3LTEwMCBtdC0zIHZpZGVvLWNhbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIiAqbmdJZj1cIiFpc01vYmlsZVwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvODk3NjUxYzE3NTE5ODA0ODcxNzBWZG8gQ2FsbC5naWZcIiBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwIGNhbGwtZGV0YWlscyB3aWR0aC0xMDBcIj5cclxuICAgICAgICAgICAgPCEtLSBOYW1lIElucHV0IHdpdGggVmFsaWRhdGlvbiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkIG15LTNcIiBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInZhbGlkYXRpb25FcnJvcnMudXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWUqXCIgWyhuZ01vZGVsKV09XCJ2aWRlb0NhbGxQYXlsb2FkLnVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCd1c2VybmFtZScpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQgbXktM1wiIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwidmFsaWRhdGlvbkVycm9ycy5lbWFpbFwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkVudGVyIEVtYWlsKlwiIFsobmdNb2RlbCldPVwidmlkZW9DYWxsUGF5bG9hZC5lbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgnZW1haWwnKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE1vYmlsZSBOdW1iZXIgSW5wdXQgd2l0aCBWYWxpZGF0aW9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQgbXktM1wiIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwidmFsaWRhdGlvbkVycm9ycy5tb2JpbGVOdW1iZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQtY2FsbFwiPklOICs5MTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBNb2JpbGUqXCIgWyhuZ01vZGVsKV09XCJ2aWRlb0NhbGxQYXlsb2FkLm1vYmlsZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgnbW9iaWxlTnVtYmVyJylcIiAoa2V5ZG93bi5hcnJvd1VwKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiICh3aGVlbCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8IS0tIFBpbmNvZGUgSW5wdXQgd2l0aCBWYWxpZGF0aW9uIC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJpbnB1dC1maWVsZCBteS0zXCIgW2NsYXNzLmVycm9yLWJvcmRlcl09XCJ2YWxpZGF0aW9uRXJyb3JzLnBpbmNvZGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQtY2FsbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEyIGJvcmRlci11bnNldFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZi0xOCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5ncHNfZml4ZWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBQaW4gQ29kZSpcIiBjbGFzcz1cInctODhcIiBbKG5nTW9kZWwpXT1cInZpZGVvQ2FsbFBheWxvYWQucGluY29kZVwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgncGluY29kZScpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlIG15LTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS10ZXh0IG1iLTJcIj5MYW5ndWFnZSBQcmVmZXJlbmNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlLWNvbnRhaW5lciBkLWZsZXggZ2FwLTIgZmxleC13cmFwIG10LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5nIHB4LTIgcHktMSByb3VuZGVkIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJsYW5nID09IHNlbGVjdGVkTGFuZyA/IHJlc3BvbnNlRGF0YS5kYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZExhbmcgPSBsYW5nXCIgW3NpbXBvQ29sb3JdPVwicmVzcG9uc2VEYXRhLmRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2xhbmd9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkTGFuZyA9PSAnT3RoZXJzJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1maWVsZCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE90aGVyIExhbmd1YWdlXCIgWyhuZ01vZGVsKV09XCJvdGhlckxhbmd1YWdlXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidmlkZW8tYnRuIG10LTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCIhc2NoZWR1bGVkXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2NoZWR1bGVWaWRlb0NhbGwoKVwiIFtkaXNhYmxlZF09XCJpc1N1Ym1pdHRpbmdcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTdWJtaXR0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5Mb2FkaW5nLi4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBTQ0hFRFVMSU5HLi4uXHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1N1Ym1pdHRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj52aWRlb19jYWxsPC9tYXQtaWNvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgIFNDSEVEVUxFIEEgVklERU8gQ0FMTFxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNjaGVkdWxlZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtMlwiIHN0eWxlPVwiY29sb3I6IzFFN0E0QjtcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgWW91ciB2aWRlbyBjYWxsIHJlcXVlc3QgaXMgc2F2ZWRcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidmlkZW8tYnRuIG10LTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb250aW51ZUJvb2tpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgQ29udGludWUgQm9va2luZ1xyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvc2VjdGlvbj4iXX0=
|