tango-app-ui-shared 3.0.8 → 3.0.10
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/interceptors/http-auth-interceptor.mjs +1 -1
- package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +7 -6
- package/esm2022/lib/modules/common/filters/filters.component.mjs +8 -4
- package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +30 -26
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +3 -1
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +22 -16
- package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +19 -17
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +23 -17
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +8 -6
- package/esm2022/lib/services/auth.service.mjs +1 -1
- package/fesm2022/tango-app-ui-shared.mjs +111 -84
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
- package/lib/modules/common/filters/filters.component.d.ts +3 -2
- package/lib/modules/layout/toolbar/classic/classic.component.d.ts +1 -0
- package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +1 -0
- package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +1 -0
- package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ export class ClassicComponent {
|
|
|
17
17
|
globalService;
|
|
18
18
|
service;
|
|
19
19
|
cd;
|
|
20
|
+
dayjs = dayjs;
|
|
20
21
|
unsubscribe = [];
|
|
21
22
|
dataObject = [{ Description: "Clients", Issues: [] }];
|
|
22
23
|
isCustomDate;
|
|
@@ -63,32 +64,33 @@ export class ClassicComponent {
|
|
|
63
64
|
// debugger
|
|
64
65
|
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
65
66
|
// debugger
|
|
66
|
-
if
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
67
|
+
// if(headerFilters.date){
|
|
68
|
+
this.selectedFilters.date = headerFilters.date;
|
|
69
|
+
this.selectedDateRange.startDate = headerFilters.date.startDate;
|
|
70
|
+
this.selectedDateRange.endDate = headerFilters.date.endDate;
|
|
71
|
+
// }
|
|
72
|
+
console.log(this.selectedDateRange);
|
|
72
73
|
this.dataObject[0].Issues = this.getClientList;
|
|
73
74
|
this.toggleCheckbox("Select All", 0);
|
|
74
75
|
this.dummyArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
75
76
|
this.responseArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
76
77
|
const currentIssues = this.dummyArray[0].Issues.map((item) => item.clientId);
|
|
77
78
|
this.selectedFilters.clients = currentIssues;
|
|
79
|
+
this.selectedFilters.client = headerFilters.client;
|
|
78
80
|
// }
|
|
79
81
|
this.globalService.dataRangeValue.next(this.selectedFilters);
|
|
80
|
-
|
|
82
|
+
this.cd.detectChanges();
|
|
81
83
|
}
|
|
82
84
|
else {
|
|
83
85
|
this.dataObject[0].Issues = this.getClientList;
|
|
84
86
|
this.toggleCheckbox("Select All", 0);
|
|
85
87
|
this.dummyArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
86
88
|
this.responseArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
this.selectedDateRange.startDate = this.dayjs().format("MM-DD-YYYY");
|
|
90
|
+
this.selectedDateRange.endDate = this.dayjs().format("MM-DD-YYYY");
|
|
89
91
|
const currentIssues = this.dummyArray[0].Issues.map((item) => item.clientId);
|
|
90
92
|
this.selectedFilters.clients = currentIssues;
|
|
91
|
-
|
|
93
|
+
this.selectedFilters.date = this.selectedDateRange;
|
|
92
94
|
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
93
95
|
this.cd.detectChanges();
|
|
94
96
|
}
|
|
@@ -221,7 +223,7 @@ export class ClassicComponent {
|
|
|
221
223
|
}
|
|
222
224
|
}
|
|
223
225
|
this.globalService.dataRangeValue.next(this.selectedFilters);
|
|
224
|
-
|
|
226
|
+
this.cd.detectChanges();
|
|
225
227
|
this.Opendropdown = false;
|
|
226
228
|
this.selectedValuesArray.forEach((item, index) => {
|
|
227
229
|
item = item.map((ele) => ele.clientId);
|
|
@@ -236,39 +238,41 @@ export class ClassicComponent {
|
|
|
236
238
|
this.selectedFilters.clients = this.responseArray[0].Issues;
|
|
237
239
|
this.selectedFilters.date = this.selectedDateRange;
|
|
238
240
|
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
241
|
+
this.cd.detectChanges();
|
|
239
242
|
}
|
|
240
243
|
ranges = {
|
|
241
|
-
Today: [dayjs(), dayjs()],
|
|
242
|
-
Yesterday: [dayjs().subtract(1, "days"), dayjs().subtract(1, "days")],
|
|
243
|
-
"This Week": [dayjs().subtract(6, "days"), dayjs()],
|
|
244
|
+
"Today": [this.dayjs(), this.dayjs()],
|
|
245
|
+
"Yesterday": [this.dayjs().subtract(1, "days"), this.dayjs().subtract(1, "days")],
|
|
246
|
+
"This Week": [this.dayjs().subtract(6, "days"), dayjs()],
|
|
244
247
|
"Last Week": [
|
|
245
|
-
dayjs().subtract(14, "days").startOf("days"),
|
|
246
|
-
dayjs().subtract(8, "days").endOf("days"),
|
|
248
|
+
this.dayjs().subtract(14, "days").startOf("days"),
|
|
249
|
+
this.dayjs().subtract(8, "days").endOf("days"),
|
|
247
250
|
],
|
|
248
|
-
"This Month": [dayjs().startOf("month"), dayjs().endOf("month")],
|
|
251
|
+
"This Month": [this.dayjs().startOf("month"), this.dayjs().endOf("month")],
|
|
249
252
|
"Last Month": [
|
|
250
|
-
dayjs().subtract(1, "month").startOf("month"),
|
|
251
|
-
dayjs().subtract(1, "month").endOf("month"),
|
|
253
|
+
this.dayjs().subtract(1, "month").startOf("month"),
|
|
254
|
+
this.dayjs().subtract(1, "month").endOf("month"),
|
|
252
255
|
],
|
|
253
256
|
};
|
|
254
257
|
onStartDateChange(event) {
|
|
255
|
-
if (dayjs(event.startDate).isValid()) {
|
|
258
|
+
if (this.dayjs(event.startDate).isValid()) {
|
|
256
259
|
this.isCustomDate = (m) => {
|
|
257
|
-
const isValidDate = m > dayjs() || m > dayjs(event.startDate.add(90, "days"));
|
|
260
|
+
const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, "days"));
|
|
258
261
|
return isValidDate ? "invalid-date" : false;
|
|
259
262
|
};
|
|
260
263
|
}
|
|
261
264
|
}
|
|
262
265
|
datechange(event) {
|
|
263
266
|
if (event && event.startDate && event.endDate) {
|
|
264
|
-
if (dayjs(event.startDate).isValid() && dayjs(event.endDate).isValid()) {
|
|
267
|
+
if (this.dayjs(event.startDate).isValid() && this.dayjs(event.endDate).isValid()) {
|
|
265
268
|
// Dates are valid, proceed with formatting
|
|
266
|
-
this.selectedDateRange.startDate = dayjs(event.startDate)
|
|
269
|
+
this.selectedDateRange.startDate = this.dayjs(event.startDate)
|
|
267
270
|
.utc()
|
|
268
271
|
.format("DD-MM-YYYY");
|
|
269
|
-
this.selectedDateRange.endDate = dayjs(event.endDate)
|
|
272
|
+
this.selectedDateRange.endDate = this.dayjs(event.endDate)
|
|
270
273
|
.utc()
|
|
271
274
|
.format("DD-MM-YYYY");
|
|
275
|
+
console.log(this.selectedDateRange);
|
|
272
276
|
}
|
|
273
277
|
else {
|
|
274
278
|
// Dates are not valid, handle the scenario accordingly
|
|
@@ -280,7 +284,7 @@ export class ClassicComponent {
|
|
|
280
284
|
this.selectedFilters.date = headerFilters.date;
|
|
281
285
|
}
|
|
282
286
|
this.selectedFilters.date = this.selectedDateRange;
|
|
283
|
-
|
|
287
|
+
this.cd.detectChanges();
|
|
284
288
|
}
|
|
285
289
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClassicComponent, deps: [{ token: i1.LayoutService }, { token: i2.GlobalStateService }, { token: i3.AuthService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
286
290
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ClassicComponent, selector: "lib-classic", host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"py-3 dropdown1 cursor-pointer\" *ngFor=\"let item of dataObject; let i = index\">\r\n <div class=\"dropdown form-select\" (click)=\"Dropdown('Clients',i,$event)\">\r\n <span class=\"\">{{ selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined ?\r\n selectedValuesArray[i]?.length + ' ' + 'Clients'.split(' ').pop() : 'Clients' }}</span>\r\n </div>\r\n <div *ngIf=\"item.isOpen\" class=\"dropdown-content position-absolute\">\r\n <div class=\"form-check d-flex align-items-center pt-3 px-5\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\"\r\n [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox('Select All', i)\">\r\n <label class=\"form-check-label px-3\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n\r\n <div class=\"border border-gray mt-3\"></div>\r\n <div class=\"mt-3 d-flex align-items-center mx-2\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3 mt-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path\r\n d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\"\r\n stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" (input)=\"searchData($event,i)\"\r\n class=\"form-control searchinput ps-14 py-2 mt-2\" placeholder=\"Search\" autocomplete=\"off\" />\r\n </div>\r\n <div *ngFor=\"let issue of item.Issues\" class=\"form-check d-flex align-items-center py-3 px-5\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" [value]=\"issue.clientName\" id=\"option{{issue.clientId}}\"\r\n [checked]=\"selectedValuesArray[i]?.includes(issue.clientId)\" (change)=\"toggleCheckbox(issue.clientId,i)\">\r\n <label class=\"form-check-label px-3 cursor-pointer\" for=\"option{{issue.clientId}}\">\r\n {{ issue.clientName }}\r\n </label>\r\n </div>\r\n <div class=\"mt-5 d-flex justify-content-center\">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\"> No filters available</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n</div>\r\n\r\n\r\n<!-- <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd \r\n [singleDatePicker]=\"true\"\r\n [drops]=\"'down'\"\r\n [opens]=\"'right'\"\r\n [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"true\"\r\n autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (selected)=\"onDateSelect($event)\"\r\n name=\"daterange\" /> -->\r\n\r\n<div class=\"btn btn-primary\" (click)=\"Apply()\">Apply</div>", styles: [".dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{z-index:1;padding:0;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;height:250px;overflow:auto}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.btn-primary{line-height:18px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
|
|
@@ -292,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
292
296
|
type: HostListener,
|
|
293
297
|
args: ["document:click", ["$event"]]
|
|
294
298
|
}] } });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9jbGFzc2ljL2NsYXNzaWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvY2xhc3NpYy9jbGFzc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBSTdDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU12QixNQUFNLE9BQU8sZ0JBQWdCO0lBWWpCO0lBQ0E7SUFDQTtJQUNBO0lBZEYsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsVUFBVSxHQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNELFlBQVksQ0FBNkM7SUFDekQsVUFBVSxHQUFRLEVBQUUsQ0FBQztJQUNyQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFdBQVcsQ0FBTTtJQUNqQixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFDeEIsWUFDVSxNQUFxQixFQUNyQixhQUFpQyxFQUNqQyxPQUFvQixFQUNwQixFQUFxQjtRQUhyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNqQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQzVCLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxtQ0FBbUM7SUFDbkMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUU5QixVQUFVLEdBQUc7UUFDWDtZQUNFLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVcsRUFBRSwwQ0FBMEM7U0FDeEQ7UUFDRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLDBDQUEwQyxFQUFFO1FBQzNFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7S0FDM0UsQ0FBQztJQUVGLFlBQVksQ0FBTTtJQUNsQixjQUFjLEdBQWEsRUFBRSxDQUFDO0lBQzlCLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDO0lBQ0YsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2dCQUN2QyxJQUFJLGdCQUFnQixJQUFJLFlBQVksRUFBRTtvQkFDcEMsV0FBVztvQkFDWCxNQUFNLGFBQWEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUMvQyxDQUFDO29CQUNGLFdBQVc7b0JBR1gsSUFBRyxhQUFhLENBQUMsSUFBSSxFQUFDO3dCQUN0QixrREFBa0Q7d0JBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQzNEO29CQUNELHVDQUF1QztvQkFFckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztvQkFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDL0QsTUFBTSxhQUFhLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNsRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDN0IsQ0FBQztvQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7b0JBQy9DLElBQUk7b0JBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDN0QsMkJBQTJCO2lCQUM1QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO29CQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUNqRSxtRUFBbUU7b0JBQ25FLGlFQUFpRTtvQkFDakUsTUFBTSxhQUFhLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNsRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDN0IsQ0FBQztvQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7b0JBRTdDLHNEQUFzRDtvQkFDdEQsWUFBWSxDQUFDLE9BQU8sQ0FDbEIsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNyQyxDQUFDO29CQUVGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBR3pCO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDdEMsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVILHNCQUFzQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQjthQUMzQyxZQUFZLEVBQUU7YUFDZCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2Qsc0JBQXNCO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuRSxDQUFDO1NBQ0EsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsQ0FBTSxFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsZUFBZTtJQUNmLHdDQUF3QztJQUV4QyxJQUFJO0lBRUosWUFBWSxDQUFDLENBQWE7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLEtBQWlCO1FBQ25ELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxDQUFNLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyx3QkFBd0I7YUFDOUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFL0QsdUNBQXVDO1FBQ3ZDLDRGQUE0RjtRQUM1RixXQUFXO1FBQ1gsK0ZBQStGO1FBQy9GLElBQUk7SUFDTixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELHlFQUF5RTtJQUN6RSw2Q0FBNkM7SUFDN0MsaUdBQWlHO0lBQ2pHLE1BQU07SUFDTixJQUFJO0lBQ0osVUFBVSxDQUFDLEtBQVUsRUFBRSxDQUFNO1FBQzNCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ3BFLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzFELENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUM7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdFQUFnRTtRQUV4SCxJQUFJLEtBQUssS0FBSyxZQUFZLEVBQUU7WUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNyRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDN0IsQ0FBQztZQUNGLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUNsRCxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN6QjthQUFNO1lBQ0wsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FDckQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQzlCLENBQUMsQ0FBQyxtREFBbUQ7YUFDdkQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDthQUNuRztTQUNGO1FBRUQsK0RBQStEO1FBQy9ELE1BQU0sV0FBVyxHQUFHLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUM5QyxXQUFXLENBQ1EsQ0FBQztRQUN0QixJQUFJLGdCQUFnQixFQUFFO1lBQ3BCLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUM7U0FDM0U7UUFFRCw2Q0FBNkM7UUFDN0MsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsTUFBTSxVQUFVLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUM3QyxVQUFVLENBQ1MsQ0FBQztZQUN0QixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsZUFBZSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFekMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQ25FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3ZCLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FDdEQsQ0FBQztvQkFDRixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyx1Q0FBdUM7Z0JBQ3BFLENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRTtZQUN6RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDSCxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ25ELFlBQVksQ0FBQyxPQUFPLENBQ2xCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEdBQVE7UUFDWixLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QixTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckUsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNuRCxXQUFXLEVBQUU7WUFDWCxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDNUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQzFDO1FBQ0QsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxZQUFZLEVBQUU7WUFDWixLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDN0MsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1NBQzVDO0tBQ0YsQ0FBQztJQUVGLGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzVELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDN0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RFLDJDQUEyQztnQkFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztxQkFDdEQsR0FBRyxFQUFFO3FCQUNMLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDbEQsR0FBRyxFQUFFO3FCQUNMLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCx1REFBdUQ7Z0JBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQ1gseUJBQXlCLEVBQ3pCLEtBQUssQ0FBQyxTQUFTLEVBQ2YsS0FBSyxDQUFDLE9BQU8sQ0FDZCxDQUFDO2FBRUg7U0FDRjthQUFNO1lBQ0wsTUFBTSxhQUFhLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FDL0MsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN0QyxDQUFDO3VHQWxVVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQixpSEN6QjdCLHF1SkFvRTBEOzsyRkQzQzdDLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzZLQTRIdkIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLW1ldHJvbmljc1wiO1xyXG5pbXBvcnQgKiBhcyBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IFwiZGF5anMvbG9jYWxlL2VuXCI7XHJcbmltcG9ydCB1dGMgZnJvbSBcImRheWpzL3BsdWdpbi91dGNcIjtcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gXCJkYXlqcy9wbHVnaW4vdGltZXpvbmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL2dsb2JhbC1zdGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5cclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jbGFzc2ljXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jbGFzc2ljLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2NsYXNzaWMuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGFzc2ljQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGRhdGFPYmplY3Q6IGFueSA9IFt7IERlc2NyaXB0aW9uOiBcIkNsaWVudHNcIiwgSXNzdWVzOiBbXSB9XTtcclxuXHJcbiAgaXNDdXN0b21EYXRlOiAobTogZGF5anMuRGF5anMpID0+IGZhbHNlIHwgXCJpbnZhbGlkLWRhdGVcIjtcclxuICBkdW1teUFycmF5OiBhbnkgPSBbXTtcclxuICBub0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaFZhbHVlOiBhbnk7XHJcbiAgcmVzcG9uc2VBcnJheTogYW55ID0gW107XHJcbiAgZ2V0Q2xpZW50TGlzdDogYW55ID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsU2VydmljZTogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuICAvLyBASW5wdXQoKSBkYXRhT2JqZWN0OiBhbnlbXSA9IFtdO1xyXG4gIE9wZW5kcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwZXJtaXNzaW9uID0gW1xyXG4gICAge1xyXG4gICAgICBncm91cDogXCJTdXBlciBBZG1pblwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIsXHJcbiAgICB9LFxyXG4gICAgeyBncm91cDogXCJBZG1pblwiLCBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIgfSxcclxuICAgIHsgZ3JvdXA6IFwiVXNlclwiLCBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIgfSxcclxuICBdO1xyXG5cclxuICBzaG93ZHJvcGRvd246IGFueTtcclxuICBzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlc0FycmF5OiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdldENsaWVudExpc3QgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgLy8gZGVidWdnZXJcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gZGVidWdnZXJcclxuICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYoaGVhZGVyRmlsdGVycy5kYXRlKXtcclxuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGU7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kYXRhT2JqZWN0WzBdLklzc3VlcyA9IHRoaXMuZ2V0Q2xpZW50TGlzdDtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSAgdGhpcy5kdW1teUFycmF5WzBdLklzc3Vlcy5tYXAoXHJcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZCBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9IGN1cnJlbnRJc3N1ZXM7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2UuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kYXRhT2JqZWN0WzBdLklzc3VlcyA9IHRoaXMuZ2V0Q2xpZW50TGlzdDtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGRheWpzKCkuZm9ybWF0KFwiTU0tREQtWVlZWVwiKTtcclxuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGRheWpzKCkuZm9ybWF0KFwiTU0tREQtWVlZWVwiKTtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSAgdGhpcy5kdW1teUFycmF5WzBdLklzc3Vlcy5tYXAoXHJcbiAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uY2xpZW50SWQgXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9IGN1cnJlbnRJc3N1ZXM7XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgLy8gdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICBcclxuICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdGhpcy51cGRhdGVQcm9wcygpO1xyXG4gICAgY29uc3Qgc3Vic2NyID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZmlnU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy51cGRhdGVQcm9wcygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChzdWJzY3IpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Y2xpZW50cygpe1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdldENsaWVudExpc3QgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICB0aGlzLmR1bW15QXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KFwiLmRyb3Bkb3duMVwiKSkge1xyXG4gICAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdChcIi5kcm9wZG93bi1jb250ZW50XCIpKSB7XHJcbiAgICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gbmdPbkluaXQoKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmRhdGFPYmplY3QsJ29iaicpO1xyXG5cclxuICAvLyB9XHJcblxyXG4gIG9wZW5kcm9wZG93bihlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zb2xlLmxvZyg2ODcpO1xyXG5cclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9ICF0aGlzLk9wZW5kcm9wZG93bjtcclxuICB9XHJcblxyXG4gIERyb3Bkb3duKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaSAhPT0gaW5kZXgpIHtcclxuICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlOyAvLyBDbG9zZSBvdGhlciBkcm9wZG93bnNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbiA9ICF0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbjtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4pIHtcclxuICAgIC8vICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudC5iaW5kKHRoaXMsIGluZGV4KSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50LmJpbmQodGhpcywgaW5kZXgpKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8vIGNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudChpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcclxuICAvLyAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XHJcbiAgLy8gICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuID0gZmFsc2U7XHJcbiAgLy8gICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQuYmluZCh0aGlzLCBpbmRleCkpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuICBzZWFyY2hEYXRhKGV2ZW50OiBhbnksIGk6IGFueSkge1xyXG4gICAgY29uc3QgZmlsdGVyZWRJc3N1ZXMgPSB0aGlzLmR1bW15QXJyYXlbaV0uSXNzdWVzLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICBuZXcgUmVnRXhwKGV2ZW50LnRhcmdldC52YWx1ZSwgXCJpXCIpLnRlc3QoaXRlbS5jbGllbnROYW1lKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpXS5Jc3N1ZXMgPSBmaWx0ZXJlZElzc3VlcztcclxuICAgIGNvbnNvbGUubG9nKGkpO1xyXG4gICAgaWYgKGZpbHRlcmVkSXNzdWVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlQ2hlY2tib3goaXNzdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgY3VycmVudElzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gfHwgW107XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF07IC8vIFJldHJpZXZlIHNlbGVjdGVkIHZhbHVlcyBhcnJheSBmb3IgdGhlIGN1cnJlbnQgZHJvcGRvd24gaW5kZXhcclxuXHJcbiAgICBpZiAoaXNzdWUgPT09IFwiU2VsZWN0IEFsbFwiKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3Vlcy5tYXAoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSBjdXJyZW50SXNzdWVzLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIElmIGFsbCBpdGVtcyBhcmUgYWxyZWFkeSBzZWxlY3RlZCwgZGVzZWxlY3QgYWxsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFtdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIE90aGVyd2lzZSwgc2VsZWN0IGFsbCBpdGVtc1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBbLi4uY3VycmVudElzc3Vlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXMoaXNzdWUpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHNlbGVjdGVkVmFsdWVzLmZpbHRlcihcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0gIT09IGlzc3VlXHJcbiAgICAgICAgKTsgLy8gRGVzZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBhbHJlYWR5IHNlbGVjdGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5wdXNoKGlzc3VlKTsgLy8gU2VsZWN0IHRoZSBpbmRpdmlkdWFsIGl0ZW0gaWYgbm90IGFscmVhZHkgc2VsZWN0ZWRcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBcIlNlbGVjdCBBbGxcIiBjaGVja2JveCBzdGF0dXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjb25zdCBzZWxlY3RBbGxJZCA9IGBzZWxlY3RhbGwke2luZGV4fWA7XHJcbiAgICBjb25zdCBzZWxlY3RBbGxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgIHNlbGVjdEFsbElkXHJcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAoc2VsZWN0QWxsRWxlbWVudCkge1xyXG4gICAgICBzZWxlY3RBbGxFbGVtZW50LmNoZWNrZWQgPSBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IGN1cnJlbnRJc3N1ZXMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBjaGVja2JveGVzIGJhc2VkIG9uIHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgY3VycmVudElzc3Vlcy5mb3JFYWNoKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgaXNDaGVja2VkID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5pbmNsdWRlcyhpdGVtKTtcclxuICAgICAgY29uc3QgY2hlY2tib3hJZCA9IGBvcHRpb24ke2l0ZW19YDtcclxuICAgICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICAgY2hlY2tib3hJZFxyXG4gICAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgIGlmIChjaGVja2JveEVsZW1lbnQpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBSZXNldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEFwcGx5KCkge1xyXG4gICAgdmFyIHNlbGVjdGVkVmFsdWU6IGFueSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaV07XHJcbiAgICAgIGNvbnN0IGlzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpXS5Jc3N1ZXM7XHJcblxyXG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaV0gPSBzZWxlY3RlZFZhbHVlcy5tYXAoKHNlbGVjdGVkSWQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXNzdWUgPSBpc3N1ZXMuZmluZChcclxuICAgICAgICAgICAgKGlzc3VlSXRlbTogYW55KSA9PiBpc3N1ZUl0ZW0uY2xpZW50SWQgPT09IHNlbGVjdGVkSWRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2goaXNzdWUpO1xyXG4gICAgICAgICAgcmV0dXJuIGlzc3VlID8gaXNzdWUgOiBcIlwiOyAvLyBHZXQgdGhlIHRleHQgY29ycmVzcG9uZGluZyB0byB0aGUgaWRcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPSBpdGVtLm1hcCgoZWxlOiBhbnkpID0+IGVsZS5jbGllbnRJZCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBpdGVtO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlc3BvbnNlQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0uSXNzdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XVxyXG4gICAgICAgIDogW107XHJcbiAgICB9KTtcclxuICAgIC8vICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZXM9dGhpcy5yZXNwb25zZUFycmF5XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gdGhpcy5yZXNwb25zZUFycmF5WzBdLklzc3VlcztcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmFuZ2VzOiBhbnkgPSB7XHJcbiAgICBUb2RheTogW2RheWpzKCksIGRheWpzKCldLFxyXG4gICAgWWVzdGVyZGF5OiBbZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIiksIGRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcclxuICAgIFwiVGhpcyBXZWVrXCI6IFtkYXlqcygpLnN1YnRyYWN0KDYsIFwiZGF5c1wiKSwgZGF5anMoKV0sXHJcbiAgICBcIkxhc3QgV2Vla1wiOiBbXHJcbiAgICAgIGRheWpzKCkuc3VidHJhY3QoMTQsIFwiZGF5c1wiKS5zdGFydE9mKFwiZGF5c1wiKSxcclxuICAgICAgZGF5anMoKS5zdWJ0cmFjdCg4LCBcImRheXNcIikuZW5kT2YoXCJkYXlzXCIpLFxyXG4gICAgXSxcclxuICAgIFwiVGhpcyBNb250aFwiOiBbZGF5anMoKS5zdGFydE9mKFwibW9udGhcIiksIGRheWpzKCkuZW5kT2YoXCJtb250aFwiKV0sXHJcbiAgICBcIkxhc3QgTW9udGhcIjogW1xyXG4gICAgICBkYXlqcygpLnN1YnRyYWN0KDEsIFwibW9udGhcIikuc3RhcnRPZihcIm1vbnRoXCIpLFxyXG4gICAgICBkYXlqcygpLnN1YnRyYWN0KDEsIFwibW9udGhcIikuZW5kT2YoXCJtb250aFwiKSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgbSA+IGRheWpzKCkgfHwgbSA+IGRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgaWYgKGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmIGRheWpzKGV2ZW50LmVuZERhdGUpLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIC8vIERhdGVzIGFyZSB2YWxpZCwgcHJvY2VlZCB3aXRoIGZvcm1hdHRpbmdcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSlcclxuICAgICAgICAgIC51dGMoKVxyXG4gICAgICAgICAgLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZGF5anMoZXZlbnQuZW5kRGF0ZSlcclxuICAgICAgICAgIC51dGMoKVxyXG4gICAgICAgICAgLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRGF0ZXMgYXJlIG5vdCB2YWxpZCwgaGFuZGxlIHRoZSBzY2VuYXJpbyBhY2NvcmRpbmdseVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICBcIkludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6XCIsXHJcbiAgICAgICAgICBldmVudC5zdGFydERhdGUsXHJcbiAgICAgICAgICBldmVudC5lbmREYXRlXHJcbiAgICAgICAgKTtcclxuIFxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZERhdGVSYW5nZTtcclxuICAgIGNvbnNvbGUubG9nKCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicHktMyBkcm9wZG93bjEgY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhT2JqZWN0OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gZm9ybS1zZWxlY3RcIiAoY2xpY2spPVwiRHJvcGRvd24oJ0NsaWVudHMnLGksJGV2ZW50KVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCI+e3sgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSBudWxsICYmIHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICsgJyAnICsgJ0NsaWVudHMnLnNwbGl0KCcgJykucG9wKCkgOiAnQ2xpZW50cycgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpdGVtLmlzT3BlblwiIGNsYXNzPVwiZHJvcGRvd24tY29udGVudCBwb3NpdGlvbi1hYnNvbHV0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtMyBweC01XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlNlbGVjdCBBbGxcIiBpZD1cInNlbGVjdGFsbHt7aX19XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCA9PT0gaXRlbS5Jc3N1ZXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJ1NlbGVjdCBBbGwnLCBpKVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTNcIiBmb3I9XCJzZWxlY3RhbGx7e2l9fVwiPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5IG10LTNcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG14LTJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNCAxNC41TDExLjEgMTEuNk0xMi42NjY3IDcuODMzMzNDMTIuNjY2NyAxMC43Nzg5IDEwLjI3ODkgMTMuMTY2NyA3LjMzMzMzIDEzLjE2NjdDNC4zODc4MSAxMy4xNjY3IDIgMTAuNzc4OSAyIDcuODMzMzNDMiA0Ljg4NzgxIDQuMzg3ODEgMi41IDcuMzMzMzMgMi41QzEwLjI3ODkgMi41IDEyLjY2NjcgNC44ODc4MSAxMi42NjY3IDcuODMzMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgKGlucHV0KT1cInNlYXJjaERhdGEoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHNlYXJjaGlucHV0IHBzLTE0IHB5LTIgIG10LTJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgaXRlbS5Jc3N1ZXNcIiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB4LTVcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJpc3N1ZS5jbGllbnROYW1lXCIgaWQ9XCJvcHRpb257e2lzc3VlLmNsaWVudElkfX1cIlxyXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8uaW5jbHVkZXMoaXNzdWUuY2xpZW50SWQpXCIgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveChpc3N1ZS5jbGllbnRJZCxpKVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTMgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJvcHRpb257e2lzc3VlLmNsaWVudElkfX1cIj5cclxuICAgICAgICAgICAgICAgIHt7IGlzc3VlLmNsaWVudE5hbWUgfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiAqbmdJZj1cIm5vRmlsdGVyXCI+IE5vIGZpbHRlcnMgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXHJcbiAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgLz5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgXHJcbiAgICBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgIChzZWxlY3RlZCk9XCJvbkRhdGVTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgLz4gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PiJdfQ==
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9jbGFzc2ljL2NsYXNzaWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvY2xhc3NpYy9jbGFzc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBSTdDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU12QixNQUFNLE9BQU8sZ0JBQWdCO0lBYWpCO0lBQ0E7SUFDQTtJQUNBO0lBZlYsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNMLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBRXpDLFVBQVUsR0FBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUzRCxZQUFZLENBQTZDO0lBQ3pELFVBQVUsR0FBUSxFQUFFLENBQUM7SUFDckIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLENBQU07SUFDakIsYUFBYSxHQUFRLEVBQUUsQ0FBQztJQUN4QixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFlB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aUJBQU07Z0JBQ0wsdURBQXVEO2dCQUN2RCxPQUFPLENBQUMsS0FBSyxDQUNYLHlCQUF5QixFQUN6QixLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxPQUFPLENBQ2QsQ0FBQzthQUVIO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sYUFBYSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQ25DLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQy9DLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO1NBRWhEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt1R0F2VVUsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsaUhDekI3QixxdUpBb0UwRDs7MkZEM0M3QyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTs2S0E4SHZCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1tZXRyb25pY3NcIjtcclxuaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwtc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuXHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItY2xhc3NpY1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vY2xhc3NpYy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9jbGFzc2ljLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xhc3NpY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZTogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgZGF0YU9iamVjdDogYW55ID0gW3sgRGVzY3JpcHRpb246IFwiQ2xpZW50c1wiLCBJc3N1ZXM6IFtdIH1dO1xyXG5cclxuICBpc0N1c3RvbURhdGU6IChtOiBkYXlqcy5EYXlqcykgPT4gZmFsc2UgfCBcImludmFsaWQtZGF0ZVwiO1xyXG4gIGR1bW15QXJyYXk6IGFueSA9IFtdO1xyXG4gIG5vRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoVmFsdWU6IGFueTtcclxuICByZXNwb25zZUFycmF5OiBhbnkgPSBbXTtcclxuICBnZXRDbGllbnRMaXN0OiBhbnkgPSBbXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG4gIC8vIEBJbnB1dCgpIGRhdGFPYmplY3Q6IGFueVtdID0gW107XHJcbiAgT3BlbmRyb3Bkb3duOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHBlcm1pc3Npb24gPSBbXHJcbiAgICB7XHJcbiAgICAgIGdyb3VwOiBcIlN1cGVyIEFkbWluXCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBcIixcclxuICAgIH0sXHJcbiAgICB7IGdyb3VwOiBcIkFkbWluXCIsIGRlc2NyaXB0aW9uOiBcIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBcIiB9LFxyXG4gICAgeyBncm91cDogXCJVc2VyXCIsIGRlc2NyaXB0aW9uOiBcIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBcIiB9LFxyXG4gIF07XHJcblxyXG4gIHNob3dkcm9wZG93bjogYW55O1xyXG4gIHNlbGVjdGVkVmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlbGVjdGVkVmFsdWVzQXJyYXk6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIHNlbGVjdGVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY2xpZW50OiBudWxsLFxyXG4gICAgY2xpZW50czogW10sXHJcbiAgICBzdG9yZTogbnVsbCxcclxuICAgIHN0b3JlczogW10sXHJcbiAgICBkYXRlOiBudWxsLFxyXG4gIH07XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Q2xpZW50cygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xpZW50TGlzdCA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgIGlmIChcImhlYWRlci1maWx0ZXJzXCIgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICAgICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICAgICBcclxuXHJcbiAgICAgICAgICAvLyBpZihoZWFkZXJGaWx0ZXJzLmRhdGUpe1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gaGVhZGVyRmlsdGVycy5kYXRlLnN0YXJ0RGF0ZTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZS5lbmREYXRlO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgY29uc29sZS5sb2coIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpXHJcblxyXG4gICAgICAgICAgICB0aGlzLmRhdGFPYmplY3RbMF0uSXNzdWVzID0gdGhpcy5nZXRDbGllbnRMaXN0O1xyXG4gICAgICAgICAgdGhpcy50b2dnbGVDaGVja2JveChcIlNlbGVjdCBBbGxcIiwgMCk7XHJcbiAgICAgICAgICB0aGlzLmR1bW15QXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9ICB0aGlzLmR1bW15QXJyYXlbMF0uSXNzdWVzLm1hcChcclxuICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNsaWVudElkIFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY3VycmVudElzc3VlcztcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIGhlYWRlckZpbHRlcnMuY2xpZW50O1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGF0YU9iamVjdFswXS5Jc3N1ZXMgPSB0aGlzLmdldENsaWVudExpc3Q7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlQXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KFwiTU0tREQtWVlZWVwiKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJNTS1ERC1ZWVlZXCIpO1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9ICB0aGlzLmR1bW15QXJyYXlbMF0uSXNzdWVzLm1hcChcclxuICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZCBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY3VycmVudElzc3VlcztcclxuICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZERhdGVSYW5nZTtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgIFxyXG4gICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0aGlzLnVwZGF0ZVByb3BzKCk7XHJcbiAgICBjb25zdCBzdWJzY3IgPSB0aGlzLmxheW91dC5sYXlvdXRDb25maWdTdWJqZWN0XHJcbiAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLnVwZGF0ZVByb3BzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG5cclxuICBnZXRjbGllbnRzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Q2xpZW50cygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xpZW50TGlzdCA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoXCIuZHJvcGRvd24xXCIpKSB7XHJcbiAgICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KFwiLmRyb3Bkb3duLWNvbnRlbnRcIikpIHtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBuZ09uSW5pdCgpIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YU9iamVjdCwnb2JqJyk7XHJcblxyXG4gIC8vIH1cclxuXHJcbiAgb3BlbmRyb3Bkb3duKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnNvbGUubG9nKDY4Nyk7XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gIXRoaXMuT3BlbmRyb3Bkb3duO1xyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24odmFsdWU6IGFueSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpICE9PSBpbmRleCkge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7IC8vIENsb3NlIG90aGVyIGRyb3Bkb3duc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuID0gIXRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3Blbikge1xyXG4gICAgLy8gICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50LmJpbmQodGhpcywgaW5kZXgpKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQuYmluZCh0aGlzLCBpbmRleCkpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50KGluZGV4OiBudW1iZXIsIGV2ZW50OiBFdmVudCkge1xyXG4gIC8vICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAvLyAgICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSBmYWxzZTtcclxuICAvLyAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudC5iaW5kKHRoaXMsIGluZGV4KSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIHNlYXJjaERhdGEoZXZlbnQ6IGFueSwgaTogYW55KSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZElzc3VlcyA9IHRoaXMuZHVtbXlBcnJheVtpXS5Jc3N1ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgIG5ldyBSZWdFeHAoZXZlbnQudGFyZ2V0LnZhbHVlLCBcImlcIikudGVzdChpdGVtLmNsaWVudE5hbWUpXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcyA9IGZpbHRlcmVkSXNzdWVzO1xyXG4gICAgY29uc29sZS5sb2coaSk7XHJcbiAgICBpZiAoZmlsdGVyZWRJc3N1ZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubm9GaWx0ZXIgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9GaWx0ZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVDaGVja2JveChpc3N1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXM7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSB8fCBbXTtcclxuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XTsgLy8gUmV0cmlldmUgc2VsZWN0ZWQgdmFsdWVzIGFycmF5IGZvciB0aGUgY3VycmVudCBkcm9wZG93biBpbmRleFxyXG5cclxuICAgIGlmIChpc3N1ZSA9PT0gXCJTZWxlY3QgQWxsXCIpIHtcclxuICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNsaWVudElkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IGN1cnJlbnRJc3N1ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gSWYgYWxsIGl0ZW1zIGFyZSBhbHJlYWR5IHNlbGVjdGVkLCBkZXNlbGVjdCBhbGxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFsuLi5jdXJyZW50SXNzdWVzXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhpc3N1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbSAhPT0gaXNzdWVcclxuICAgICAgICApOyAvLyBEZXNlbGVjdCB0aGUgaW5kaXZpZHVhbCBpdGVtIGlmIGFscmVhZHkgc2VsZWN0ZWRcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLnB1c2goaXNzdWUpOyAvLyBTZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBub3QgYWxyZWFkeSBzZWxlY3RlZFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IHN0YXR1cyBiYXNlZCBvbiBzZWxlY3RlZCB2YWx1ZXNcclxuICAgIGNvbnN0IHNlbGVjdEFsbElkID0gYHNlbGVjdGFsbCR7aW5kZXh9YDtcclxuICAgIGNvbnN0IHNlbGVjdEFsbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgc2VsZWN0QWxsSWRcclxuICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxFbGVtZW50KSB7XHJcbiAgICAgIHNlbGVjdEFsbEVsZW1lbnQuY2hlY2tlZCA9IHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gY3VycmVudElzc3Vlcy5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGNoZWNrYm94ZXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjdXJyZW50SXNzdWVzLmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLmluY2x1ZGVzKGl0ZW0pO1xyXG4gICAgICBjb25zdCBjaGVja2JveElkID0gYG9wdGlvbiR7aXRlbX1gO1xyXG4gICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgICBjaGVja2JveElkXHJcbiAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgaWYgKGNoZWNrYm94RWxlbWVudCkge1xyXG4gICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gaXNDaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIFJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5ID0gW107XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQXBwbHkoKSB7XHJcbiAgICB2YXIgc2VsZWN0ZWRWYWx1ZTogYW55ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXTtcclxuICAgICAgY29uc3QgaXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcztcclxuXHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXSA9IHNlbGVjdGVkVmFsdWVzLm1hcCgoc2VsZWN0ZWRJZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpc3N1ZSA9IGlzc3Vlcy5maW5kKFxyXG4gICAgICAgICAgICAoaXNzdWVJdGVtOiBhbnkpID0+IGlzc3VlSXRlbS5jbGllbnRJZCA9PT0gc2VsZWN0ZWRJZFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaChpc3N1ZSk7XHJcbiAgICAgICAgICByZXR1cm4gaXNzdWUgPyBpc3N1ZSA6IFwiXCI7IC8vIEdldCB0aGUgdGV4dCBjb3JyZXNwb25kaW5nIHRvIHRoZSBpZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5LmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBpdGVtID0gaXRlbS5tYXAoKGVsZTogYW55KSA9PiBlbGUuY2xpZW50SWQpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5LmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBpdGVtLklzc3VlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF1cclxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF1cclxuICAgICAgICA6IFtdO1xyXG4gICAgfSk7XHJcbiAgICAvLyAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVzPXRoaXMucmVzcG9uc2VBcnJheVxyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9IHRoaXMucmVzcG9uc2VBcnJheVswXS5Jc3N1ZXM7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZERhdGVSYW5nZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcmFuZ2VzOiBhbnkgPSB7XHJcbiAgICBcIlRvZGF5XCI6IFt0aGlzLmRheWpzKCksIHRoaXMuZGF5anMoKV0sXHJcbiAgICBcIlllc3RlcmRheVwiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKV0sXHJcbiAgICBcIlRoaXMgV2Vla1wiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDYsIFwiZGF5c1wiKSwgZGF5anMoKV0sXHJcbiAgICBcIkxhc3QgV2Vla1wiOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxNCwgXCJkYXlzXCIpLnN0YXJ0T2YoXCJkYXlzXCIpLFxyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoOCwgXCJkYXlzXCIpLmVuZE9mKFwiZGF5c1wiKSxcclxuICAgIF0sXHJcbiAgICBcIlRoaXMgTW9udGhcIjogW3RoaXMuZGF5anMoKS5zdGFydE9mKFwibW9udGhcIiksIHRoaXMuZGF5anMoKS5lbmRPZihcIm1vbnRoXCIpXSxcclxuICAgIFwiTGFzdCBNb250aFwiOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLnN0YXJ0T2YoXCJtb250aFwiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwibW9udGhcIikuZW5kT2YoXCJtb250aFwiKSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkgJiYgdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAvLyBEYXRlcyBhcmUgdmFsaWQsIHByb2NlZWQgd2l0aCBmb3JtYXR0aW5nXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSlcclxuICAgICAgICAgIC51dGMoKVxyXG4gICAgICAgICAgLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKVxyXG4gICAgICAgICAgLnV0YygpXHJcbiAgICAgICAgICAuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRGF0ZXMgYXJlIG5vdCB2YWxpZCwgaGFuZGxlIHRoZSBzY2VuYXJpbyBhY2NvcmRpbmdseVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICBcIkludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6XCIsXHJcbiAgICAgICAgICBldmVudC5zdGFydERhdGUsXHJcbiAgICAgICAgICBldmVudC5lbmREYXRlXHJcbiAgICAgICAgKTtcclxuIFxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInB5LTMgZHJvcGRvd24xIGN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YU9iamVjdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0XCIgKGNsaWNrKT1cIkRyb3Bkb3duKCdDbGllbnRzJyxpLCRldmVudClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPnt7IHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCAhPT0gbnVsbCAmJiBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCArICcgJyArICdDbGllbnRzJy5zcGxpdCgnICcpLnBvcCgpIDogJ0NsaWVudHMnIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5pc09wZW5cIiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQgcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHB0LTMgcHgtNVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJTZWxlY3QgQWxsXCIgaWQ9XCJzZWxlY3RhbGx7e2l9fVwiXHJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggPT09IGl0ZW0uSXNzdWVzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoZWNrYm94KCdTZWxlY3QgQWxsJywgaSlcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBweC0zXCIgZm9yPVwic2VsZWN0YWxse3tpfX1cIj5cclxuICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBtdC0zXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTYgMTdcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiIChpbnB1dCk9XCJzZWFyY2hEYXRhKCRldmVudCxpKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBzZWFyY2hpbnB1dCBwcy0xNCBweS0yICBtdC0yXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGlzc3VlIG9mIGl0ZW0uSXNzdWVzXCIgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMyBweC01XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXNzdWUuY2xpZW50TmFtZVwiIGlkPVwib3B0aW9ue3tpc3N1ZS5jbGllbnRJZH19XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/LmluY2x1ZGVzKGlzc3VlLmNsaWVudElkKVwiIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goaXNzdWUuY2xpZW50SWQsaSlcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBweC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwib3B0aW9ue3tpc3N1ZS5jbGllbnRJZH19XCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpc3N1ZS5jbGllbnROYW1lIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKm5nSWY9XCJub0ZpbHRlclwiPiBObyBmaWx0ZXJzIGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS0gPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFxyXG4gICAgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICBbZHJvcHNdPVwiJ2Rvd24nXCJcclxuICAgIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIlxyXG4gICAgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAoc2VsZWN0ZWQpPVwib25EYXRlU2VsZWN0KCRldmVudClcIlxyXG4gICAgbmFtZT1cImRhdGVyYW5nZVwiIC8+IC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJBcHBseSgpXCI+QXBwbHk8L2Rpdj4iXX0=
|
|
@@ -41,6 +41,7 @@ export class ClientSettingsComponent {
|
|
|
41
41
|
}
|
|
42
42
|
this.selectedFilters.client = headerFilters.client;
|
|
43
43
|
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
44
|
+
this.cd.detectChanges();
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
@@ -56,6 +57,7 @@ export class ClientSettingsComponent {
|
|
|
56
57
|
this.selectedFilters.client = this.selectedClient.clientId;
|
|
57
58
|
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
58
59
|
localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
|
|
60
|
+
this.cd.detectChanges();
|
|
59
61
|
}
|
|
60
62
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClientSettingsComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
63
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ClientSettingsComponent, selector: "lib-client-settings", ngImport: i0, template: " <div class=\"wrapper\" >\r\n <lib-select [items]=\"clientList\" [multi]=\"false\" [searchField]=\"'clientName'\" [disabled]=\"false\" [idField]=\"'clientId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select>\r\n </div>\r\n", styles: [".wrapper{min-width:200px}\n"], dependencies: [{ kind: "component", type: i3.CustomSelectComponent, selector: "lib-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }] });
|
|
@@ -64,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
64
66
|
type: Component,
|
|
65
67
|
args: [{ selector: 'lib-client-settings', template: " <div class=\"wrapper\" >\r\n <lib-select [items]=\"clientList\" [multi]=\"false\" [searchField]=\"'clientName'\" [disabled]=\"false\" [idField]=\"'clientId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select>\r\n </div>\r\n", styles: [".wrapper{min-width:200px}\n"] }]
|
|
66
68
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL2NsaWVudC1zZXR0aW5ncy9jbGllbnQtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvY2xpZW50LXNldHRpbmdzL2NsaWVudC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVN0QsTUFBTSxPQUFPLHVCQUF1QjtJQVlkO0lBQTBCO0lBQStCO0lBVjdFLFVBQVUsR0FBTyxFQUFFLENBQUE7SUFDbkIsY0FBYyxDQUFJO0lBQ2xCLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxFQUFFO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxJQUFJO0tBRVgsQ0FBQztJQUNGLFlBQW9CLElBQWdCLEVBQVUsRUFBcUIsRUFBVSxFQUFvQjtRQUE3RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUMvRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVixJQUFJLENBQUMsRUFBRTtvQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUNoQyxJQUFJLGdCQUFnQixJQUFJLFlBQVksRUFBRTt3QkFDdEMsTUFBTSxhQUFhLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FDL0MsQ0FBQzt3QkFDRixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUN4QixJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7NEJBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0NBQ2hDLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsTUFBTSxFQUFFO29DQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztpQ0FFM0I7NEJBQ0gsQ0FBQyxDQUFDLENBQUM7eUJBQ0o7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDOzRCQUNqRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO3lCQUN6Qjt3QkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO3dCQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUNsRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO3FCQUN6QjtpQkFDRjtxQkFBSztpQkFDTDtZQUNELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNoRCxNQUFNLGFBQWEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUMvQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQXZEVSx1QkFBdUI7MkZBQXZCLHVCQUF1QiwyRENWcEMsc1NBSUE7OzJGRE1hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2dsb2JhbC1zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNsaWVudC1zZXR0aW5ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NsaWVudC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NsaWVudC1zZXR0aW5ncy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWVudFNldHRpbmdzQ29tcG9uZW50IHtcclxuXHJcbiAgY2xpZW50TGlzdDphbnkgPSBbXVxyXG4gIHNlbGVjdGVkQ2xpZW50OmFueVxyXG4gIHNlbGVjdGVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY2xpZW50OiBudWxsLFxyXG4gICAgY2xpZW50czogW10sXHJcbiAgICBzdG9yZTogbnVsbCxcclxuICAgIHN0b3JlczogW10sXHJcbiAgICBkYXRlOiBudWxsLFxyXG5cclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDpBdXRoU2VydmljZSwgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYpe1xyXG4gICAgdGhpcy5hdXRoLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudExpc3QgPSBlLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgaWYgKFwiaGVhZGVyLWZpbHRlcnNcIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICBpZiAoaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRMaXN0LmZpbmQoKG9iajogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9iai5jbGllbnRJZCA9PT0gaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gdGhpcy5jbGllbnRMaXN0WzBdO1xyXG4gICAgICAgICAgICB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50Lm5leHQodGhpcy5zZWxlY3RlZENsaWVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gaGVhZGVyRmlsdGVycy5jbGllbnQ7XHJcbiAgICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2V7ICAgICAgICBcclxuICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWVudFNlbGVjdChldmVudDphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IGV2ZW50XHJcbiAgICB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50Lm5leHQodGhpcy5zZWxlY3RlZENsaWVudClcclxuICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSBoZWFkZXJGaWx0ZXJzO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gdGhpcy5zZWxlY3RlZENsaWVudC5jbGllbnRJZDtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCIgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIiA+XHJcbiAgICAgICAgPGxpYi1zZWxlY3QgW2l0ZW1zXT1cImNsaWVudExpc3RcIiBbbXVsdGldPVwiZmFsc2VcIiBbc2VhcmNoRmllbGRdPVwiJ2NsaWVudE5hbWUnXCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgW2lkRmllbGRdPVwiJ2NsaWVudElkJ1wiXHJcbiAgICAgICAgICAgIChzZWxlY3RlZCk9XCJvbkNsaWVudFNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZENsaWVudF1cIj48L2xpYi1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuIl19
|
package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs
CHANGED
|
@@ -11,6 +11,7 @@ export class DateSingleSelectComponent {
|
|
|
11
11
|
auth;
|
|
12
12
|
gs;
|
|
13
13
|
cd;
|
|
14
|
+
dayjs = dayjs;
|
|
14
15
|
isCustomDate;
|
|
15
16
|
selectedDateRange = {};
|
|
16
17
|
clientList = [];
|
|
@@ -37,12 +38,15 @@ export class DateSingleSelectComponent {
|
|
|
37
38
|
if (obj.clientId === headerFilters.client) {
|
|
38
39
|
this.selectedClient = obj;
|
|
39
40
|
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
41
|
+
this.cd.detectChanges();
|
|
40
42
|
}
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
else {
|
|
44
46
|
this.selectedClient = this.clientList[0];
|
|
45
|
-
|
|
47
|
+
console.log(this.selectedClient);
|
|
48
|
+
this.selectedFilters.client = this.selectedClient.clientId;
|
|
49
|
+
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
46
50
|
this.cd.detectChanges();
|
|
47
51
|
}
|
|
48
52
|
}
|
|
@@ -68,39 +72,40 @@ export class DateSingleSelectComponent {
|
|
|
68
72
|
this.selectedDateRange.endDate = headerFilters.date.endDate;
|
|
69
73
|
}
|
|
70
74
|
else {
|
|
71
|
-
this.selectedDateRange.startDate = dayjs().format('MM-DD-YYYY');
|
|
72
|
-
this.selectedDateRange.endDate = dayjs().format('MM-DD-YYYY');
|
|
75
|
+
this.selectedDateRange.startDate = this.dayjs().format('MM-DD-YYYY');
|
|
76
|
+
this.selectedDateRange.endDate = this.dayjs().format('MM-DD-YYYY');
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
onClientSelect(event) {
|
|
76
80
|
this.selectedClient = event;
|
|
77
81
|
this.gs.selectedClient.next(this.selectedClient);
|
|
82
|
+
this.cd.detectChanges();
|
|
78
83
|
}
|
|
79
84
|
ranges = {
|
|
80
|
-
'Today': [dayjs(), dayjs()],
|
|
81
|
-
'Yesterday': [dayjs().subtract(1, 'days'), dayjs().subtract(1, 'days')],
|
|
82
|
-
'This Week': [dayjs().subtract(6, 'days'), dayjs()],
|
|
83
|
-
'Last Week': [dayjs().subtract(14, 'days').startOf('days'), dayjs().subtract(8, 'days').endOf('days')],
|
|
84
|
-
'This Month': [dayjs().startOf('month'), dayjs().endOf('month')],
|
|
85
|
+
'Today': [this.dayjs(), this.dayjs()],
|
|
86
|
+
'Yesterday': [this.dayjs().subtract(1, 'days'), this.dayjs().subtract(1, 'days')],
|
|
87
|
+
'This Week': [this.dayjs().subtract(6, 'days'), this.dayjs()],
|
|
88
|
+
'Last Week': [this.dayjs().subtract(14, 'days').startOf('days'), this.dayjs().subtract(8, 'days').endOf('days')],
|
|
89
|
+
'This Month': [this.dayjs().startOf('month'), this.dayjs().endOf('month')],
|
|
85
90
|
'Last Month': [
|
|
86
|
-
dayjs().subtract(1, 'month').startOf('month'),
|
|
87
|
-
dayjs().subtract(1, 'month').endOf('month')
|
|
91
|
+
this.dayjs().subtract(1, 'month').startOf('month'),
|
|
92
|
+
this.dayjs().subtract(1, 'month').endOf('month')
|
|
88
93
|
]
|
|
89
94
|
};
|
|
90
95
|
onStartDateChange(event) {
|
|
91
|
-
if (dayjs(event.startDate).isValid()) {
|
|
96
|
+
if (this.dayjs(event.startDate).isValid()) {
|
|
92
97
|
this.isCustomDate = (m) => {
|
|
93
|
-
const isValidDate = m > dayjs() || m > dayjs(event.startDate.add(90, 'days'));
|
|
98
|
+
const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, 'days'));
|
|
94
99
|
return isValidDate ? 'invalid-date' : false;
|
|
95
100
|
};
|
|
96
101
|
}
|
|
97
102
|
}
|
|
98
103
|
datechange(event) {
|
|
99
104
|
if (event && event.startDate && event.endDate) {
|
|
100
|
-
if (dayjs(event.startDate).isValid() && dayjs(event.endDate).isValid()) {
|
|
105
|
+
if (this.dayjs(event.startDate).isValid() && this.dayjs(event.endDate).isValid()) {
|
|
101
106
|
// Dates are valid, proceed with formatting
|
|
102
|
-
this.selectedDateRange.startDate = dayjs(event.startDate).utc().format('DD-MM-YYYY');
|
|
103
|
-
this.selectedDateRange.endDate = dayjs(event.endDate).utc().format('DD-MM-YYYY');
|
|
107
|
+
this.selectedDateRange.startDate = this.dayjs(event.startDate).utc().format('DD-MM-YYYY');
|
|
108
|
+
this.selectedDateRange.endDate = this.dayjs(event.endDate).utc().format('DD-MM-YYYY');
|
|
104
109
|
}
|
|
105
110
|
else {
|
|
106
111
|
// Dates are not valid, handle the scenario accordingly
|
|
@@ -118,6 +123,7 @@ export class DateSingleSelectComponent {
|
|
|
118
123
|
this.selectedFilters.date = headerFilters.date;
|
|
119
124
|
}
|
|
120
125
|
this.selectedFilters.date = this.selectedDateRange;
|
|
126
|
+
this.cd.detectChanges();
|
|
121
127
|
// this.globalService.sendData(JSON.stringify(this.selectedFilters.date));
|
|
122
128
|
// localStorage.setItem('dateRangeFilters', JSON.stringify(this.selectedDateRange));
|
|
123
129
|
// this.globalService.sendData(this.selectedDateRange);
|
|
@@ -137,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
137
143
|
type: Component,
|
|
138
144
|
args: [{ selector: 'lib-date-single-select', template: "<div class=\"wrapper mx-2\" >\r\n <lib-select [items]=\"clientList\" [multi]=\"false\" [searchField]=\"'clientName'\" [disabled]=\"false\" [idField]=\"'clientId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select>\r\n\r\n \r\n</div>\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n</div>\r\n\r\n<div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div>\r\n", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}\n"] }]
|
|
139
145
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL2RhdGUtc2luZ2xlLXNlbGVjdC9kYXRlLXNpbmdsZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvZGF0ZS1zaW5nbGUtc2VsZWN0L2RhdGUtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7O0FBT3pCLE1BQU0sT0FBTyx5QkFBeUI7SUFhaEI7SUFBMEI7SUFBK0I7SUFaN0UsWUFBWSxDQUE2QztJQUN6RCxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsVUFBVSxHQUFPLEVBQUUsQ0FBQTtJQUNuQixjQUFjLENBQUk7SUFDbEIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLElBQUk7S0FFWCxDQUFDO0lBQ0YsWUFBb0IsSUFBZ0IsRUFBVSxFQUFxQixFQUFVLEVBQW9CO1FBQTdFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQy9GLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxD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QUFDLEtBQUssQ0FDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FDL0MsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRSxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFDakQsMEVBQTBFO1FBQzFFLG9GQUFvRjtRQUNwRix1REFBdUQ7SUFDekQsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLGFBQWEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUMvQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7dUdBcElZLHlCQUF5QjsyRkFBekIseUJBQXlCLDhEQ1h0QyxtdERBc0JBOzsyRkRYYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZW4nO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwtc3RhdGUuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRhdGUtc2luZ2xlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RhdGUtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVTaW5nbGVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzQ3VzdG9tRGF0ZTogKG06IGRheWpzLkRheWpzKSA9PiBmYWxzZSB8IFwiaW52YWxpZC1kYXRlXCI7XHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIGNsaWVudExpc3Q6YW55ID0gW11cclxuICBzZWxlY3RlZENsaWVudDphbnlcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6QXV0aFNlcnZpY2UsIHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmKXtcclxuICAgIHRoaXMuYXV0aC5nZXRDbGllbnRzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRMaXN0ID0gZS5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICBpZiAoaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRMaXN0LmZpbmQoKG9iajogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9iai5jbGllbnRJZCA9PT0gaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gdGhpcy5jbGllbnRMaXN0WzBdO1xyXG4gICAgICAgICAgICB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50Lm5leHQodGhpcy5zZWxlY3RlZENsaWVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgIFxyXG4gICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIGlmKGhlYWRlckZpbHRlcnMuY2xpZW50KXtcclxuICAgICAgdGhpcy5jbGllbnRMaXN0LmZpbmQoKG9iajogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKG9iai5jbGllbnRJZCA9PT0gaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQgPSAgaGVhZGVyRmlsdGVycy5jbGllbnQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgW2hlYWRlckZpbHRlcnMuY2xpZW50c107ICBcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9ICBoZWFkZXJGaWx0ZXJzLmRhdGU7ICBcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGUuc3RhcnREYXRlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoKS5mb3JtYXQoJ01NLURELVlZWVknKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZGF5anMoKS5mb3JtYXQoJ01NLURELVlZWVknKTtcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuICBvbkNsaWVudFNlbGVjdChldmVudDphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IGV2ZW50XHJcbiAgICB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50Lm5leHQodGhpcy5zZWxlY3RlZENsaWVudClcclxuIFxyXG4gIH1cclxuXHJcbiAgcmFuZ2VzOiBhbnkgPSB7XHJcbiAgICAnVG9kYXknOiBbZGF5anMoKSwgZGF5anMoKV0sXHJcbiAgICAnWWVzdGVyZGF5JzogW2RheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcclxuICAgICdUaGlzIFdlZWsnOiBbZGF5anMoKS5zdWJ0cmFjdCg2LCAnZGF5cycpLCBkYXlqcygpXSxcclxuICAgICdMYXN0IFdlZWsnOiBbZGF5anMoKS5zdWJ0cmFjdCgxNCwgJ2RheXMnKS5zdGFydE9mKCdkYXlzJyksIGRheWpzKCkuc3VidHJhY3QoOCwgJ2RheXMnKS5lbmRPZignZGF5cycpXSxcclxuICAgICdUaGlzIE1vbnRoJzogW2RheWpzKCkuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5lbmRPZignbW9udGgnKV0sXHJcbiAgICAnTGFzdCBNb250aCc6IFtcclxuICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLFxyXG4gICAgICBkYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6YW55KXtcclxuICAgIGlmKGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHsgICAgICAgIFxyXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IG0gPiBkYXlqcygpIHx8IG0gPiBkYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCAnZGF5cycpKSA7XHJcbiAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbn1cclxuXHJcbmRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgaWYgKGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmIGRheWpzKGV2ZW50LmVuZERhdGUpLmlzVmFsaWQoKSkge1xyXG4gICAgICAvLyBEYXRlcyBhcmUgdmFsaWQsIHByb2NlZWQgd2l0aCBmb3JtYXR0aW5nXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoZXZlbnQuc3RhcnREYXRlKS51dGMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZGF5anMoZXZlbnQuZW5kRGF0ZSkudXRjKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBEYXRlcyBhcmUgbm90IHZhbGlkLCBoYW5kbGUgdGhlIHNjZW5hcmlvIGFjY29yZGluZ2x5XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6JywgZXZlbnQuc3RhcnREYXRlLCBldmVudC5lbmREYXRlKTtcclxuICAgICAgLy8gSWYgeW91IHdhbnQgdG8gZmFsbGJhY2sgdG8gc3RvcmVkIGZpbHRlcnMgd2hlbiB0aGUgZGF0ZXMgYXJlIGludmFsaWQsIHlvdSBjYW4ga2VlcCB0aGUgZXhpc3RpbmcgbG9naWNcclxuICAgICAgLy8gY29uc3Qgc3RvcmVkRmlsdGVycyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2RhdGVSYW5nZUZpbHRlcnMnKSB8fCAne30nKTtcclxuICAgICAgLy8gaWYgKHN0b3JlZEZpbHRlcnMuc3RhcnREYXRlICYmIHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkge1xyXG4gICAgICAvLyAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoc3RvcmVkRmlsdGVycy5zdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4gICAgICAvLyAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGRheWpzKHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gaGVhZGVyRmlsdGVycy5kYXRlO1xyXG4gIH1cclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID10aGlzLnNlbGVjdGVkRGF0ZVJhbmdlXHJcbiAgLy8gdGhpcy5nbG9iYWxTZXJ2aWNlLnNlbmREYXRhKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUpKTtcclxuICAvLyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZGF0ZVJhbmdlRmlsdGVycycsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpKTtcclxuICAvLyB0aGlzLmdsb2JhbFNlcnZpY2Uuc2VuZERhdGEodGhpcy5zZWxlY3RlZERhdGVSYW5nZSk7XHJcbn1cclxuXHJcbkFwcGx5KCkge1xyXG4gIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSBoZWFkZXJGaWx0ZXJzO1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IHRoaXMuc2VsZWN0ZWRDbGllbnQuY2xpZW50SWQ7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndyYXBwZXIgbXgtMlwiID5cclxuICAgIDxsaWItc2VsZWN0IFtpdGVtc109XCJjbGllbnRMaXN0XCIgW211bHRpXT1cImZhbHNlXCIgW3NlYXJjaEZpZWxkXT1cIidjbGllbnROYW1lJ1wiIFtkaXNhYmxlZF09XCJmYWxzZVwiIFtpZEZpZWxkXT1cIidjbGllbnRJZCdcIlxyXG4gICAgICAgIChzZWxlY3RlZCk9XCJvbkNsaWVudFNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZENsaWVudF1cIj48L2xpYi1zZWxlY3Q+XHJcblxyXG4gICAgICAgIFxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PlxyXG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL2RhdGUtc2luZ2xlLXNlbGVjdC9kYXRlLXNpbmdsZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvZGF0ZS1zaW5nbGUtc2VsZWN0L2RhdGUtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7O0FBT3pCLE1BQU0sT0FBTyx5QkFBeUI7SUFjaEI7SUFBMEI7SUFBK0I7SUFiN0UsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNiLFlBQVksQ0FBNkM7SUFDekQsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBTyxFQUFFLENBQUE7SUFDbkIsY0FBYyxDQUFJO0lBQ2xCLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxFQUFFO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxJQUFJO0tBRVgsQ0FBQztJQUNGLFlBQW9CLElBQWdCLEVBQVUsRUFBcUIsRUFBVSxFQUFvQjtRQUE3RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUMvRixJQUFJLENBQUMsSUFBSSxD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QUFjLENBQUMsUUFBUSxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO3VHQXpJWSx5QkFBeUI7MkZBQXpCLHlCQUF5Qiw4RENYdEMsbXREQXNCQTs7MkZEWGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZ2xvYmFsLXN0YXRlLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1kYXRlLXNpbmdsZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXNpbmdsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXNpbmdsZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlU2luZ2xlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgaXNDdXN0b21EYXRlOiAobTogZGF5anMuRGF5anMpID0+IGZhbHNlIHwgXCJpbnZhbGlkLWRhdGVcIjtcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgY2xpZW50TGlzdDphbnkgPSBbXVxyXG4gIHNlbGVjdGVkQ2xpZW50OmFueVxyXG4gIHNlbGVjdGVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY2xpZW50OiBudWxsLFxyXG4gICAgY2xpZW50czogW10sXHJcbiAgICBzdG9yZTogbnVsbCxcclxuICAgIHN0b3JlczogW10sXHJcbiAgICBkYXRlOiBudWxsLFxyXG5cclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDpBdXRoU2VydmljZSwgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYpe1xyXG4gICAgdGhpcy5hdXRoLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudExpc3QgPSBlLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIGlmIChoZWFkZXJGaWx0ZXJzLmNsaWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudExpc3QuZmluZCgob2JqOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob2JqLmNsaWVudElkID09PSBoZWFkZXJGaWx0ZXJzLmNsaWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IG9iajtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IHRoaXMuY2xpZW50TGlzdFswXTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENsaWVudClcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIHRoaXMuc2VsZWN0ZWRDbGllbnQuY2xpZW50SWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgIFxyXG4gICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIGlmKGhlYWRlckZpbHRlcnMuY2xpZW50KXtcclxuICAgICAgdGhpcy5jbGllbnRMaXN0LmZpbmQoKG9iajogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKG9iai5jbGllbnRJZCA9PT0gaGVhZGVyRmlsdGVycy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQgPSAgaGVhZGVyRmlsdGVycy5jbGllbnQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgW2hlYWRlckZpbHRlcnMuY2xpZW50c107ICBcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9ICBoZWFkZXJGaWx0ZXJzLmRhdGU7ICBcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGUuc3RhcnREYXRlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnTU0tREQtWVlZWScpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCdNTS1ERC1ZWVlZJyk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbiAgb25DbGllbnRTZWxlY3QoZXZlbnQ6YW55KXtcclxuICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBldmVudFxyXG4gICAgdGhpcy5ncy5zZWxlY3RlZENsaWVudC5uZXh0KHRoaXMuc2VsZWN0ZWRDbGllbnQpXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgJ1RvZGF5JzogW3RoaXMuZGF5anMoKSwgdGhpcy5kYXlqcygpXSxcclxuICAgICdZZXN0ZXJkYXknOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcclxuICAgICdUaGlzIFdlZWsnOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDYsICdkYXlzJyksIHRoaXMuZGF5anMoKV0sXHJcbiAgICAnTGFzdCBXZWVrJzogW3RoaXMuZGF5anMoKS5zdWJ0cmFjdCgxNCwgJ2RheXMnKS5zdGFydE9mKCdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCg4LCAnZGF5cycpLmVuZE9mKCdkYXlzJyldLFxyXG4gICAgJ1RoaXMgTW9udGgnOiBbdGhpcy5kYXlqcygpLnN0YXJ0T2YoJ21vbnRoJyksIHRoaXMuZGF5anMoKS5lbmRPZignbW9udGgnKV0sXHJcbiAgICAnTGFzdCBNb250aCc6IFtcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJyksXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKVxyXG4gICAgXVxyXG4gIH07XHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OmFueSl7XHJcbiAgICBpZih0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHsgICAgICAgIFxyXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCg5MCwgJ2RheXMnKSkgO1xyXG4gICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG59XHJcblxyXG5kYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIC8vIERhdGVzIGFyZSB2YWxpZCwgcHJvY2VlZCB3aXRoIGZvcm1hdHRpbmdcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkudXRjKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkudXRjKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBEYXRlcyBhcmUgbm90IHZhbGlkLCBoYW5kbGUgdGhlIHNjZW5hcmlvIGFjY29yZGluZ2x5XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6JywgZXZlbnQuc3RhcnREYXRlLCBldmVudC5lbmREYXRlKTtcclxuICAgICAgLy8gSWYgeW91IHdhbnQgdG8gZmFsbGJhY2sgdG8gc3RvcmVkIGZpbHRlcnMgd2hlbiB0aGUgZGF0ZXMgYXJlIGludmFsaWQsIHlvdSBjYW4ga2VlcCB0aGUgZXhpc3RpbmcgbG9naWNcclxuICAgICAgLy8gY29uc3Qgc3RvcmVkRmlsdGVycyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2RhdGVSYW5nZUZpbHRlcnMnKSB8fCAne30nKTtcclxuICAgICAgLy8gaWYgKHN0b3JlZEZpbHRlcnMuc3RhcnREYXRlICYmIHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkge1xyXG4gICAgICAvLyAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoc3RvcmVkRmlsdGVycy5zdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4gICAgICAvLyAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGRheWpzKHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gaGVhZGVyRmlsdGVycy5kYXRlO1xyXG4gIH1cclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID10aGlzLnNlbGVjdGVkRGF0ZVJhbmdlXHJcbiAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gdGhpcy5nbG9iYWxTZXJ2aWNlLnNlbmREYXRhKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUpKTtcclxuICAvLyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZGF0ZVJhbmdlRmlsdGVycycsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpKTtcclxuICAvLyB0aGlzLmdsb2JhbFNlcnZpY2Uuc2VuZERhdGEodGhpcy5zZWxlY3RlZERhdGVSYW5nZSk7XHJcbn1cclxuXHJcbkFwcGx5KCkge1xyXG4gIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSBoZWFkZXJGaWx0ZXJzO1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IHRoaXMuc2VsZWN0ZWRDbGllbnQuY2xpZW50SWQ7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndyYXBwZXIgbXgtMlwiID5cclxuICAgIDxsaWItc2VsZWN0IFtpdGVtc109XCJjbGllbnRMaXN0XCIgW211bHRpXT1cImZhbHNlXCIgW3NlYXJjaEZpZWxkXT1cIidjbGllbnROYW1lJ1wiIFtkaXNhYmxlZF09XCJmYWxzZVwiIFtpZEZpZWxkXT1cIidjbGllbnRJZCdcIlxyXG4gICAgICAgIChzZWxlY3RlZCk9XCJvbkNsaWVudFNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZENsaWVudF1cIj48L2xpYi1zZWxlY3Q+XHJcblxyXG4gICAgICAgIFxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PlxyXG4iXX0=
|