vcomply-workflow-engine 3.6.7 → 3.6.9

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.
@@ -11,13 +11,27 @@ export class CommonService {
11
11
  };
12
12
  }
13
13
  handleDocumentClick(datePickerObject) {
14
- const dateInputElement = document.getElementById(datePickerObject?.class) || null;
15
- const datePickerCalendarContainer = document.getElementsByClassName('dp-day-calendar-container')[0];
16
- const isOutsideFromDateInput = !datePickerObject?.popup?.nativeElement?.contains(datePickerObject?.event?.target);
17
- const isNotFromDateElement = datePickerObject?.event?.target !== dateInputElement;
18
- const isNotInsideCalendar = !datePickerCalendarContainer?.contains(datePickerObject?.event?.target);
19
- if (isOutsideFromDateInput && isNotFromDateElement && isNotInsideCalendar) {
20
- this.closeDatePickerIfOpen(datePickerObject?.event?.target, datePickerObject?.popup, datePickerObject?.overlay, datePickerObject?.component);
14
+ const { event, popup, class: className } = datePickerObject || {};
15
+ const targetElement = event?.target;
16
+ if (!targetElement)
17
+ return false;
18
+ const dateInputElement = document.getElementById(className);
19
+ const datePickerCalendarContainer = document.querySelector(".dp-day-calendar-container");
20
+ const monthYearElement = document.querySelector(".dp-month-calendar-container");
21
+ const isNotMonthYearElement = !monthYearElement?.contains(targetElement);
22
+ const isOutsidePopup = !popup?.nativeElement?.contains(targetElement);
23
+ const isOutsidePopup2 = !popup?.nativeElement?.className.includes("dp-calendar-month");
24
+ const isNotDateInputElement = targetElement !== dateInputElement;
25
+ const isNotInsideCalendar = !datePickerCalendarContainer?.contains(targetElement);
26
+ const isNotCalendarMonth = !targetElement.className.includes("dp-calendar-month");
27
+ if (datePickerCalendarContainer &&
28
+ isNotMonthYearElement &&
29
+ isOutsidePopup &&
30
+ isNotDateInputElement &&
31
+ isNotInsideCalendar &&
32
+ isNotCalendarMonth &&
33
+ isOutsidePopup2) {
34
+ this.closeDatePickerIfOpen(targetElement, popup, datePickerObject?.overlay, datePickerObject?.component);
21
35
  return true;
22
36
  }
23
37
  return false;
@@ -38,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
38
52
  providedIn: 'root',
39
53
  }]
40
54
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlJLHFCQUFnQixHQUFHO1lBQ2YsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFBO0tBMkNKO0lBMUNDLG1CQUFtQixDQUNqQixnQkFBcUI7UUFFckIsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNsRixNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FDakUsMkJBQTJCLENBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLHNCQUFzQixHQUFHLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQzlFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFpQixDQUMzQyxDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLGdCQUFnQixDQUFDO1FBQ2xGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQzlELGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFpQixDQUM3QyxDQUFDO1FBRUYsSUFBSSxzQkFBc0IsSUFBSSxvQkFBb0IsSUFBSSxtQkFBbUIsRUFBRTtZQUN6RSxJQUFJLENBQUMscUJBQXFCLENBQ3hCLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQy9CLGdCQUFnQixFQUFFLEtBQUssRUFDdkIsZ0JBQWdCLEVBQUUsT0FBTyxFQUN6QixnQkFBZ0IsRUFBRSxTQUFTLENBQzVCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8scUJBQXFCLENBQzNCLE1BQVcsRUFDWCxhQUF5QixFQUN6QixpQkFBMEIsRUFDMUIsVUFBZTtRQUVmLElBQ0UsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0MsVUFBVSxFQUFFLGlCQUFpQixFQUM3QjtZQUNBLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDekIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzsrR0FqRFUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xyXG4gICAgZGF0ZVBpY2tlck9iamVjdCA9IHtcclxuICAgICAgICBldmVudDogbnVsbCxcclxuICAgICAgICBjbGFzczogJycsXHJcbiAgICAgICAgcG9wdXA6IG51bGwsXHJcbiAgICAgICAgY29tcG9uZW50OiBudWxsLFxyXG4gICAgICAgIG92ZXJsYXk6IGZhbHNlLFxyXG4gICAgfVxyXG4gIGhhbmRsZURvY3VtZW50Q2xpY2soXHJcbiAgICBkYXRlUGlja2VyT2JqZWN0OiBhbnlcclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRhdGVJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkYXRlUGlja2VyT2JqZWN0Py5jbGFzcykgfHwgbnVsbDtcclxuICAgIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXHJcbiAgICAgICdkcC1kYXktY2FsZW5kYXItY29udGFpbmVyJ1xyXG4gICAgKVswXTtcclxuICAgIGNvbnN0IGlzT3V0c2lkZUZyb21EYXRlSW5wdXQgPSAhZGF0ZVBpY2tlck9iamVjdD8ucG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKFxyXG4gICAgICBkYXRlUGlja2VyT2JqZWN0Py5ldmVudD8udGFyZ2V0IGFzIEVsZW1lbnRcclxuICAgICk7XHJcbiAgICBjb25zdCBpc05vdEZyb21EYXRlRWxlbWVudCA9IGRhdGVQaWNrZXJPYmplY3Q/LmV2ZW50Py50YXJnZXQgIT09IGRhdGVJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID0gIWRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lcj8uY29udGFpbnMoXHJcbiAgICAgICAgZGF0ZVBpY2tlck9iamVjdD8uZXZlbnQ/LnRhcmdldCBhcyBFbGVtZW50XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc091dHNpZGVGcm9tRGF0ZUlucHV0ICYmIGlzTm90RnJvbURhdGVFbGVtZW50ICYmIGlzTm90SW5zaWRlQ2FsZW5kYXIpIHtcclxuICAgICAgdGhpcy5jbG9zZURhdGVQaWNrZXJJZk9wZW4oXHJcbiAgICAgICAgZGF0ZVBpY2tlck9iamVjdD8uZXZlbnQ/LnRhcmdldCxcclxuICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5wb3B1cCxcclxuICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5vdmVybGF5LFxyXG4gICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/LmNvbXBvbmVudFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgIHRhcmdldDogYW55LFxyXG4gICAgb3BlbmVkRWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIGRhdGVQaWNrZXJPdmVybGF5OiBib29sZWFuLFxyXG4gICAgRGF0ZVBpY2tlcjogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFvcGVuZWRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpICYmXHJcbiAgICAgIERhdGVQaWNrZXI/LmFyZUNhbGVuZGFyc1Nob3duXHJcbiAgICApIHtcclxuICAgICAgRGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xyXG4gICAgICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlJLHFCQUFnQixHQUFHO1lBQ2YsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFBO0tBNERKO0lBM0RHLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzdDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdkYsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLEtBQUssZ0JBQWdCLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FDdkIsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsTUFBTSxrQkFBa0IsR0FDdEIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXpELElBQ0UsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZUFBZSxFQUNmO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixDQUN4QixhQUFhLEVBQ2IsS0FBSyxFQUNMLGdCQUFnQixFQUFFLE9BQU8sRUFDekIsZ0JBQWdCLEVBQUUsU0FBUyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVLLHFCQUFxQixDQUMzQixNQUFXLEVBQ1gsYUFBeUIsRUFDekIsaUJBQTBCLEVBQzFCLFVBQWU7UUFFZixJQUNFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9DLFVBQVUsRUFBRSxpQkFBaUIsRUFDN0I7WUFDQSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7K0dBbEVVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25TZXJ2aWNlIHtcclxuICAgIGRhdGVQaWNrZXJPYmplY3QgPSB7XHJcbiAgICAgICAgZXZlbnQ6IG51bGwsXHJcbiAgICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICAgIHBvcHVwOiBudWxsLFxyXG4gICAgICAgIGNvbXBvbmVudDogbnVsbCxcclxuICAgICAgICBvdmVybGF5OiBmYWxzZSxcclxuICAgIH1cclxuICAgIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgIGNvbnN0IHsgZXZlbnQsIHBvcHVwLCBjbGFzczogY2xhc3NOYW1lIH0gPSBkYXRlUGlja2VyT2JqZWN0IHx8IHt9O1xyXG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQ/LnRhcmdldCBhcyBFbGVtZW50O1xyXG4gIFxyXG4gICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJldHVybiBmYWxzZTtcclxuICBcclxuICAgICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNsYXNzTmFtZSk7XHJcbiAgICAgIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgXCIuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IG1vbnRoWWVhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgIFwiLmRwLW1vbnRoLWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IGlzTm90TW9udGhZZWFyRWxlbWVudCA9ICFtb250aFllYXJFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNPdXRzaWRlUG9wdXAgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgICBjb25zdCBpc091dHNpZGVQb3B1cDIgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcyhcImRwLWNhbGVuZGFyLW1vbnRoXCIpO1xyXG4gIFxyXG4gICAgICBjb25zdCBpc05vdERhdGVJbnB1dEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50ICE9PSBkYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID1cclxuICAgICAgICAhZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyPy5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNOb3RDYWxlbmRhck1vbnRoID1cclxuICAgICAgICAhdGFyZ2V0RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoXCJkcC1jYWxlbmRhci1tb250aFwiKTtcclxuICBcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciAmJlxyXG4gICAgICAgIGlzTm90TW9udGhZZWFyRWxlbWVudCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwICYmXHJcbiAgICAgICAgaXNOb3REYXRlSW5wdXRFbGVtZW50ICYmXHJcbiAgICAgICAgaXNOb3RJbnNpZGVDYWxlbmRhciAmJlxyXG4gICAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwMlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgICBwb3B1cCxcclxuICAgICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXHJcbiAgICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5jb21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZURhdGVQaWNrZXJJZk9wZW4oXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIG9wZW5lZEVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheTogYm9vbGVhbixcclxuICAgIERhdGVQaWNrZXI6IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICAhb3BlbmVkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSAmJlxyXG4gICAgICBEYXRlUGlja2VyPy5hcmVDYWxlbmRhcnNTaG93blxyXG4gICAgKSB7XHJcbiAgICAgIERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  import { Component, ViewChild, Input, Output, EventEmitter, HostListener, ElementRef, } from '@angular/core';
2
2
  import moment from 'moment/moment';
3
3
  import { lifecycleText } from './lifecycl.constant';
4
+ import dayjs from 'dayjs';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../frequency.service";
6
7
  import * as i2 from "@angular/forms";
@@ -48,6 +49,7 @@ export class FrequencyLifecycleComponent {
48
49
  }
49
50
  changeEndDateObj(date) {
50
51
  this.endDateObject = new Date(moment(date).unix() * 1000);
52
+ this.selectedEndDate = moment(this.endDate).unix();
51
53
  }
52
54
  ngOnChanges(change) {
53
55
  this.endBy = moment(this.endDate)
@@ -55,16 +57,16 @@ export class FrequencyLifecycleComponent {
55
57
  .split('T')[0];
56
58
  }
57
59
  openDatePicker() {
58
- const newDate = moment(this.startDate);
59
- this.startDatePicker?.api?.moveCalendarTo(newDate);
60
+ const newDate = dayjs(this.startDate);
60
61
  this.startDatePicker?.api?.open();
62
+ this.startDatePicker?.api?.moveCalendarTo(newDate);
61
63
  this.datePickerOverlay = true;
62
64
  this.openedDatePicker = 'START_DATE';
63
65
  }
64
66
  openDatePicker1() {
65
67
  const newDate = moment(this.endDate);
66
- this.endDatePicker?.api?.moveCalendarTo(newDate);
67
68
  this.endDatePicker?.api?.open();
69
+ this.endDatePicker?.api?.moveCalendarTo(this.endDate);
68
70
  this.openedDatePicker = 'END_DATE';
69
71
  this.datePickerOverlay = true;
70
72
  }
@@ -136,18 +138,27 @@ export class FrequencyLifecycleComponent {
136
138
  });
137
139
  }
138
140
  documentClick(event) {
141
+ const targetElement = event?.target;
139
142
  const fromDateInputElement = document.getElementById(this.openedDatePicker.toLowerCase()) || null;
140
143
  const datePickerCalendarContainer = document.getElementsByClassName('dp-day-calendar-container')[0];
144
+ const monthYearElement = document.querySelector('.dp-month-calendar-container');
145
+ const isNotMonthYearElement = !monthYearElement?.contains(targetElement);
141
146
  const openedElement = this.openedDatePicker === 'START_DATE'
142
147
  ? this.startDatePickerPopup
143
148
  : this.endDatePickerPopup;
144
- const isOutsideFromDateInput = !openedElement?.nativeElement?.contains(event?.target);
149
+ const isOutsideFromDateInput = !openedElement?.nativeElement?.contains(targetElement);
145
150
  const isNotFromDateElement = event?.target !== fromDateInputElement;
146
- const isNotInsideCalendar = !datePickerCalendarContainer?.contains(event?.target);
151
+ const isNotInsideCalendar = !datePickerCalendarContainer?.contains(targetElement);
147
152
  const selectedDatePicker = this.openedDatePicker === 'START_DATE'
148
153
  ? this.startDatePicker
149
154
  : this.endDatePicker;
150
- if (isOutsideFromDateInput && isNotFromDateElement && isNotInsideCalendar) {
155
+ const isNotCalendarMonth = !targetElement.className.includes('dp-calendar-month');
156
+ if (isOutsideFromDateInput &&
157
+ isNotFromDateElement &&
158
+ isNotInsideCalendar &&
159
+ isNotCalendarMonth &&
160
+ isNotMonthYearElement &&
161
+ datePickerCalendarContainer) {
151
162
  this.documentClickListener(event?.target, openedElement, selectedDatePicker);
152
163
  }
153
164
  }
@@ -196,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
196
207
  type: HostListener,
197
208
  args: ['document:click', ['$event']]
198
209
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktbGlmZWN5Y2xlL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWxpZmVjeWNsZS9mcmVxdWVuY3ktbGlmZWN5Y2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVFwRCxNQUFNLE9BQU8sMkJBQTJCO0lBZ0N0QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTVCdEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBTzNCLHFCQUFxQjtRQUNaLGNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRWhFLGVBQVUsR0FBRyxF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RSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7K0dBaE5VLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRvQkF5QkEsVUFBVSw4R0FFWixVQUFVLGtEQ2xEaEQscW9KQXlJQTs7NEZEbEhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7dUdBS0wsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0EsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQVlqQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR1Asb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdqRSxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQXdJL0QsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBFbGVtZW50UmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBTaW5nbGVDYWxlbmRhclZhbHVlIH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGlmZWN5Y2xlVGV4dCB9IGZyb20gJy4vbGlmZWN5Y2wuY29uc3RhbnQnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWxpZmVjeWNsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeUxpZmVjeWNsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdzdGFydERhdGVQaWNrZXInKSBzdGFydERhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VuZERhdGVQaWNrZXInKSBlbmREYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgc3RhcnREYXRlVW5peCA9IERhdGUubm93KCk7XHJcbiAgZW5kRGF0ZU9iamVjdDogYW55O1xyXG4gIHN0YXJ0RGF0ZUNvbmZpZzogYW55O1xyXG4gIGVuZERhdGVDb25maWc6IGFueTtcclxuICB0ZXh0RGV0YWlsczogYW55O1xyXG4gIHNlbGVjdGVkRW5kRGF0ZTogYW55O1xyXG5cclxuICAvLyBBbGwgaW5wdXQgdmFyaWFibGVcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIEBJbnB1dCgpIGVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICBASW5wdXQoKSBlbmRCeTogYW55O1xyXG4gIEBJbnB1dCgpIG9jY3VycmFuY2UgPSAxMDtcclxuICBASW5wdXQoKSBzZWxlY3RlZExpZmVjeWNsZVR5cGUgPSAyOyAvLyAwID0gRW5kIGJ5ICwgIEVuZCBBZnRlciwgMiA9IHBlcnBldHVhbFxyXG4gIEBJbnB1dCgpIGlkID0gMDtcclxuICBASW5wdXQoKSBtb2RlOiBhbnk7XHJcblxyXG4gIC8vICBsaWZlY3ljbGUgb3V0cHV0XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkT2NjdXJhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3N0YXJ0RGF0ZVBpY2tlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHN0YXJ0RGF0ZVBpY2tlclBvcHVwITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdlbmREYXRlUGlja2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZW5kRGF0ZVBpY2tlclBvcHVwITogRWxlbWVudFJlZjtcclxuXHJcbiAgb3BlbmVkRGF0ZVBpY2tlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHREZXRhaWxzID0gbGlmZWN5Y2xlVGV4dFt0aGlzLm1vZGVdO1xyXG4gICAgdGhpcy5zdGFydERhdGVDb25maWcgPSBPYmplY3QuYXNzaWduKHtcclxuICAgICAgLi4udGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRhdGVDb25maWcsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZyB9KTtcclxuICAgIHRoaXMuc3RhcnREYXRlQ29uZmlnWydtaW4nXSA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5mb3JtYXREYXRlKCk7XHJcbiAgICAvL3RoaXMuc3RhcnREYXRlVW5peCA9IHRoaXMuc3RhcnREYXRlLmdldERhdGUoKS50b1N0cmluZygpXHJcbiAgICB0aGlzLmVuZERhdGVDb25maWdbJ21pbiddID0gbW9tZW50KFxyXG4gICAgICBuZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpICsgODY0MDAwMDApXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRFbmREYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW5kRGF0ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB0aW1lID0gbW9tZW50KHRoaXMuZW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZIEhIOm1tOnNzJyk7XHJcbiAgICBjb25zdCBnZXRVbml4VGltZSA9IG1vbWVudChcclxuICAgICAgdGltZS5zcGxpdCgnICcpWzBdICsgJyAwMDowMDowMCcsXHJcbiAgICAgICdERC1NTS1ZWVlZIEhIOm1tOnNzJ1xyXG4gICAgKS51bml4KCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZVVuaXggPSBtb21lbnQoZXZlbnQpLnVuaXgoKTtcclxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZVVuaXggPj0gZ2V0VW5peFRpbWUpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRUaW1lKCkgKyA4NjQwMDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQodGhpcy5lbmREYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUVuZERhdGVPYmooZGF0ZTogYW55KSB7XHJcbiAgICB0aGlzLmVuZERhdGVPYmplY3QgPSBuZXcgRGF0ZShtb21lbnQoZGF0ZSkudW5peCgpICogMTAwMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2U6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuZW5kQnkgPSBtb21lbnQodGhpcy5lbmREYXRlKVxyXG4gICAgICAuZm9ybWF0KCdERC1NTU1NLVlZWVlUSEg6bW06c3NaJylcclxuICAgICAgLnNwbGl0KCdUJylbMF07XHJcbiAgfVxyXG5cclxuICBvcGVuRGF0ZVBpY2tlcigpIHtcclxuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQodGhpcy5zdGFydERhdGUpO1xyXG4gICAgdGhpcy5zdGFydERhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSBhcyBTaW5nbGVDYWxlbmRhclZhbHVlKTtcclxuICAgIHRoaXMuc3RhcnREYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5vcGVuZWREYXRlUGlja2VyID0gJ1NUQVJUX0RBVEUnO1xyXG4gIH1cclxuICBvcGVuRGF0ZVBpY2tlcjEoKSB7XHJcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHRoaXMuZW5kRGF0ZSk7XHJcbiAgICB0aGlzLmVuZERhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSBhcyBTaW5nbGVDYWxlbmRhclZhbHVlKTtcclxuICAgIHRoaXMuZW5kRGF0ZVBpY2tlcj8uYXBpPy5vcGVuKCk7XHJcbiAgICB0aGlzLm9wZW5lZERhdGVQaWNrZXIgPSAnRU5EX0RBVEUnO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuc3RhcnREYXRlUGlja2VyPy5hcGk/LmNsb3NlKCk7XHJcbiAgICB0aGlzLmVuZERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIGxpZmVjeWNsZSB0eXBlXHJcbiAgdHlwZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2NjdXJhbmNlLmVtaXQoe1xyXG4gICAgICB0eXBlOiBldmVudCxcclxuICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICBlbmRhZnRlcjogdGhpcy5vY2N1cnJhbmNlLFxyXG4gICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlO1xyXG4gIH1cclxuXHJcbiAgLy8gZW5kcyBhZnRlciBzZWxlY3Rpb25cclxuICBlbmRzQWZ0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcih0aGlzLm9jY3VycmFuY2UpKSAmJlxyXG4gICAgICB0aGlzLm9jY3VycmFuY2UgIT09IDAgJiZcclxuICAgICAgTnVtYmVyKHRoaXMub2NjdXJyYW5jZSkgPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZSxcclxuICAgICAgICBlbmRzQnk6IHRoaXMuZW5kQnksXHJcbiAgICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9jY3VycmFuY2UgPSAxMDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm9jY3VycmFuY2U7XHJcbiAgfVxyXG5cclxuICAvLyBFbmQgYnkgY2hhbmdlXHJcbiAgZW5kQnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmREYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5lbmREYXRlID0gZXZlbnQ/LmRhdGU/LiRkO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSBtb21lbnQodGhpcy5lbmREYXRlKS51bml4KCk7XHJcbiAgICB0aGlzLmNoYW5nZUVuZERhdGVPYmoodGhpcy5lbmREYXRlKTtcclxuICAgIHRoaXMuZW5kQnkgPSBtb21lbnQoZXZlbnQ/LmRhdGU/LiRkKS5mb3JtYXQoJ0RELU1NTU0tWVlZWScpO1xyXG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KGRhdGVPYmplY3QpO1xyXG4gIH1cclxuXHJcbiAgLy8gc3RhcnQgZnJvbSBjaGFuZ2UgZXZlbnRcclxuICBzdGFydEZyb21DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdGFydERhdGVVbml4ID0gbW9tZW50KGV2ZW50Py5kYXRlPy4kZCkudW5peCgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlVW5peCA+PSB0aGlzLnNlbGVjdGVkRW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQodGhpcy5zdGFydERhdGVVbml4ICogMTAwMCArIDg2NDAwMDAwKTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gICAgICB0aGlzLmVuZEJ5ID0gbW9tZW50KHRoaXMuZW5kRGF0ZSlcclxuICAgICAgICAuZm9ybWF0KCdERC1NTU1NLVlZWVlUSEg6bW06c3NaJylcclxuICAgICAgICAuc3BsaXQoJ1QnKVswXTtcclxuICAgIH1cclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZ1snbWluJ10gPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICBtb21lbnQobmV3IERhdGUobmV3IERhdGUoZXZlbnQ/LmRhdGU/LiRkKS5nZXRUaW1lKCkgKyA4NjQwMDAwMCkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIGRvY3VtZW50Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZnJvbURhdGVJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wZW5lZERhdGVQaWNrZXIudG9Mb3dlckNhc2UoKSkgfHwgbnVsbDtcclxuXHJcbiAgICBjb25zdCBkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFxyXG4gICAgICAnZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lcidcclxuICAgIClbMF07XHJcblxyXG4gICAgY29uc3Qgb3BlbmVkRWxlbWVudCA9XHJcbiAgICAgIHRoaXMub3BlbmVkRGF0ZVBpY2tlciA9PT0gJ1NUQVJUX0RBVEUnXHJcbiAgICAgICAgPyB0aGlzLnN0YXJ0RGF0ZVBpY2tlclBvcHVwXHJcbiAgICAgICAgOiB0aGlzLmVuZERhdGVQaWNrZXJQb3B1cDtcclxuICAgICAgICBjb25zdCBpc091dHNpZGVGcm9tRGF0ZUlucHV0ID0gIW9wZW5lZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKFxyXG4gICAgICAgICAgZXZlbnQ/LnRhcmdldCBhcyBFbGVtZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBpc05vdEZyb21EYXRlRWxlbWVudCA9IGV2ZW50Py50YXJnZXQgIT09IGZyb21EYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGlzTm90SW5zaWRlQ2FsZW5kYXIgPSAhZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyPy5jb250YWlucyhcclxuICAgICAgICAgIGV2ZW50Py50YXJnZXQgYXMgRWxlbWVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlUGlja2VyID1cclxuICAgICAgICAgIHRoaXMub3BlbmVkRGF0ZVBpY2tlciA9PT0gJ1NUQVJUX0RBVEUnXHJcbiAgICAgICAgICAgID8gdGhpcy5zdGFydERhdGVQaWNrZXJcclxuICAgICAgICAgICAgOiB0aGlzLmVuZERhdGVQaWNrZXI7XHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKGlzT3V0c2lkZUZyb21EYXRlSW5wdXQgJiYgaXNOb3RGcm9tRGF0ZUVsZW1lbnQgJiYgaXNOb3RJbnNpZGVDYWxlbmRhcikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKFxyXG4gICAgICAgICAgICAgICAgZXZlbnQ/LnRhcmdldCxcclxuICAgICAgICAgICAgICAgIG9wZW5lZEVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGVQaWNrZXJcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudENsaWNrTGlzdGVuZXIoXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIG9wZW5lZEVsZW1lbnRzOiBFbGVtZW50UmVmLFxyXG4gICAgc2VsZWN0ZWREYXRlUGlja2VyOiBhbnlcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgIW9wZW5lZEVsZW1lbnRzPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpICYmXHJcbiAgICAgIHNlbGVjdGVkRGF0ZVBpY2tlcj8uYXJlQ2FsZW5kYXJzU2hvd25cclxuICAgICkge1xyXG4gICAgICBzZWxlY3RlZERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eSB2eC1tdC01XCI+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgIHt7IHRleHREZXRhaWxzPy5oZWFkZXIgfX1cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaW5uZXIgdngtcC0zIHZ4LXB0LTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgICBbY2xhc3Mud2l0aC1wb2xpY3ldPVwibW9kZSA9PT0gJ3BvbGljeScgfHwgbW9kZSA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5J1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgICAgIGNsYXNzPVwiaGVhZGluZyB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtbWItMVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3RhcnRzIEZyb21cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlmZWN5Y2xlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXAtMlwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTNcIj4mI3hlOTk2OzwvaT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cInN0YXJ0LWRhdGUtaW5wdXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpOyBkYXRlUGlja2VyT3ZlcmxheSA9IHRydWVcIlxyXG4gICAgICAgICAgICBpZD1cInN0YXJ0X2RhdGVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5FbmRzIEJ5PC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDBcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLWZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0XCJcclxuICAgICAgICAgICAgICA+JiN4ZTkyZDs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIxKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJlbmRfZGF0ZVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5FbmRzIEFmdGVyPC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDFcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwib2NjdXJyYW5jZVwiXHJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJlbmRzQWZ0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj5PY2N1cnJlbmNlczwvc3Bhbj5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5PbmdvaW5nPC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDJcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMilcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCJcclxuICAgICAgICAgICAgPlRoZSByZXNwb25zaWJpbGl0eSB3aWxsIHBlcnBldHVhbGx5IGV4aXN0Ljwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gc3RhcnQgZGF0ZSBkYXRlIHBpY2tlciAtLT5cclxuPGRwLWRhdGUtcGlja2VyXHJcbiAgI3N0YXJ0RGF0ZVBpY2tlclxyXG4gIFtpZF09XCInc3RhcnQtZGF0ZS0nICsgaWRcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgWyhuZ01vZGVsKV09XCJzdGFydERhdGVcIlxyXG4gIFtjb25maWddPVwic3RhcnREYXRlQ29uZmlnXCJcclxuICAob25TZWxlY3QpPVwiXHJcbiAgICBvcGVuRGF0ZVBpY2tlcigpO1xyXG4gICAgc3RhcnRGcm9tQ2hhbmdlKCRldmVudCk7XHJcbiAgICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlXHJcbiAgXCJcclxuPjwvZHAtZGF0ZS1waWNrZXI+XHJcbjxkaXZcclxuICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiXHJcbiAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbj48L2Rpdj5cclxuXHJcbjwhLS0gZW5kIGRhdGUgZGF0ZSBwaWNrZXIgLS0+XHJcbjxkcC1kYXRlLXBpY2tlclxyXG4gICNlbmREYXRlUGlja2VyXHJcbiAgWyhuZ01vZGVsKV09XCJlbmREYXRlXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZU9iamVjdCB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICBbaWRdPVwiJ2VuZC1ieS1pbnB1dC0nICsgaWRcIlxyXG4gIFtjb25maWddPVwiZW5kRGF0ZUNvbmZpZ1wiXHJcbiAgW21pbkRhdGVdPVwiZW5kRGF0ZUNvbmZpZ1snbWluJ11cIlxyXG4gIChvblNlbGVjdCk9XCJcclxuICAgIGVuZEJ5Q2hhbmdlKCRldmVudCk7IHNob3dEYXRlRXJyb3IgPSBmYWxzZTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVxyXG4gIFwiXHJcbj48L2RwLWRhdGUtcGlja2VyPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcclxuICAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKClcIlxyXG4gICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxyXG4+PC9kaXY+XHJcbiJdfQ==
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktbGlmZWN5Y2xlL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWxpZmVjeWNsZS9mcmVxdWVuY3ktbGlmZWN5Y2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7Ozs7QUFPMUIsTUFBTSxPQUFPLDJCQUEyQjtJQWdDdEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE1QnRELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQU8zQixxQkFBcUI7UUFDWixjQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxR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RSxLQUFLLEVBQUU7Z0JBR2pFLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBeUkvRCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIFNpbmdsZUNhbGVuZGFyVmFsdWUgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBsaWZlY3ljbGVUZXh0IH0gZnJvbSAnLi9saWZlY3ljbC5jb25zdGFudCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5TGlmZWN5Y2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3N0YXJ0RGF0ZVBpY2tlcicpIHN0YXJ0RGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZW5kRGF0ZVBpY2tlcicpIGVuZERhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG5cclxuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gIHNob3dEYXRlRXJyb3IgPSBmYWxzZTtcclxuICBzdGFydERhdGVVbml4ID0gRGF0ZS5ub3coKTtcclxuICBlbmREYXRlT2JqZWN0OiBhbnk7XHJcbiAgc3RhcnREYXRlQ29uZmlnOiBhbnk7XHJcbiAgZW5kRGF0ZUNvbmZpZzogYW55O1xyXG4gIHRleHREZXRhaWxzOiBhbnk7XHJcbiAgc2VsZWN0ZWRFbmREYXRlOiBhbnk7XHJcblxyXG4gIC8vIEFsbCBpbnB1dCB2YXJpYWJsZVxyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgQElucHV0KCkgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpICsgODY0MDAwMDApO1xyXG4gIEBJbnB1dCgpIGVuZEJ5OiBhbnk7XHJcbiAgQElucHV0KCkgb2NjdXJyYW5jZSA9IDEwO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlmZWN5Y2xlVHlwZSA9IDI7IC8vIDAgPSBFbmQgYnkgLCAgRW5kIEFmdGVyLCAyID0gcGVycGV0dWFsXHJcbiAgQElucHV0KCkgaWQgPSAwO1xyXG4gIEBJbnB1dCgpIG1vZGU6IGFueTtcclxuXHJcbiAgLy8gIGxpZmVjeWNsZSBvdXRwdXRcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPY2N1cmFuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc3RhcnREYXRlUGlja2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgc3RhcnREYXRlUGlja2VyUG9wdXAhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2VuZERhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcclxuICBlbmREYXRlUGlja2VyUG9wdXAhOiBFbGVtZW50UmVmO1xyXG5cclxuICBvcGVuZWREYXRlUGlja2VyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dERldGFpbHMgPSBsaWZlY3ljbGVUZXh0W3RoaXMubW9kZV07XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAuLi50aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5lbmREYXRlQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7IC4uLnRoaXMuZnJlcXVlbmN5U2VydmljZS5kYXRlQ29uZmlnIH0pO1xyXG4gICAgdGhpcy5zdGFydERhdGVDb25maWdbJ21pbiddID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZvcm1hdERhdGUoKTtcclxuICAgIC8vdGhpcy5zdGFydERhdGVVbml4ID0gdGhpcy5zdGFydERhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKClcclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZ1snbWluJ10gPSBtb21lbnQoXHJcbiAgICAgIG5ldyBEYXRlKG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRUaW1lKCkgKyA4NjQwMDAwMClcclxuICAgICk7XHJcbiAgICB0aGlzLmdldEVuZERhdGUodGhpcy5zdGFydERhdGUpO1xyXG4gICAgdGhpcy5jaGFuZ2VFbmREYXRlT2JqKHRoaXMuZW5kRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbmREYXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHRpbWUgPSBtb21lbnQodGhpcy5lbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVkgSEg6bW06c3MnKTtcclxuICAgIGNvbnN0IGdldFVuaXhUaW1lID0gbW9tZW50KFxyXG4gICAgICB0aW1lLnNwbGl0KCcgJylbMF0gKyAnIDAwOjAwOjAwJyxcclxuICAgICAgJ0RELU1NLVlZWVkgSEg6bW06c3MnXHJcbiAgICApLnVuaXgoKTtcclxuICAgIHRoaXMuc3RhcnREYXRlVW5peCA9IG1vbWVudChldmVudCkudW5peCgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlVW5peCA+PSBnZXRVbml4VGltZSkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRW5kRGF0ZU9iaihkYXRlOiBhbnkpIHtcclxuICAgIHRoaXMuZW5kRGF0ZU9iamVjdCA9IG5ldyBEYXRlKG1vbWVudChkYXRlKS51bml4KCkgKiAxMDAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gbW9tZW50KHRoaXMuZW5kRGF0ZSkudW5peCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmVuZEJ5ID0gbW9tZW50KHRoaXMuZW5kRGF0ZSlcclxuICAgICAgLmZvcm1hdCgnREQtTU1NTS1ZWVlZVEhIOm1tOnNzWicpXHJcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICBjb25zdCBuZXdEYXRlID0gZGF5anModGhpcy5zdGFydERhdGUpO1xyXG4gICAgdGhpcy5zdGFydERhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xyXG4gICAgdGhpcy5zdGFydERhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMub3BlbmVkRGF0ZVBpY2tlciA9ICdTVEFSVF9EQVRFJztcclxuICB9XHJcbiAgb3BlbkRhdGVQaWNrZXIxKCkge1xyXG4gICAgY29uc3QgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpO1xyXG4gICAgdGhpcy5lbmREYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcclxuICAgIHRoaXMuZW5kRGF0ZVBpY2tlcj8uYXBpPy5tb3ZlQ2FsZW5kYXJUbyh0aGlzLmVuZERhdGUgYXMgU2luZ2xlQ2FsZW5kYXJWYWx1ZSk7XHJcbiAgICB0aGlzLm9wZW5lZERhdGVQaWNrZXIgPSAnRU5EX0RBVEUnO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuc3RhcnREYXRlUGlja2VyPy5hcGk/LmNsb3NlKCk7XHJcbiAgICB0aGlzLmVuZERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIGxpZmVjeWNsZSB0eXBlXHJcbiAgdHlwZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2NjdXJhbmNlLmVtaXQoe1xyXG4gICAgICB0eXBlOiBldmVudCxcclxuICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICBlbmRhZnRlcjogdGhpcy5vY2N1cnJhbmNlLFxyXG4gICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlO1xyXG4gIH1cclxuXHJcbiAgLy8gZW5kcyBhZnRlciBzZWxlY3Rpb25cclxuICBlbmRzQWZ0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcih0aGlzLm9jY3VycmFuY2UpKSAmJlxyXG4gICAgICB0aGlzLm9jY3VycmFuY2UgIT09IDAgJiZcclxuICAgICAgTnVtYmVyKHRoaXMub2NjdXJyYW5jZSkgPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZSxcclxuICAgICAgICBlbmRzQnk6IHRoaXMuZW5kQnksXHJcbiAgICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9jY3VycmFuY2UgPSAxMDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm9jY3VycmFuY2U7XHJcbiAgfVxyXG5cclxuICAvLyBFbmQgYnkgY2hhbmdlXHJcbiAgZW5kQnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmREYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5lbmREYXRlID0gZXZlbnQ/LmRhdGU/LiRkO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSBtb21lbnQodGhpcy5lbmREYXRlKS51bml4KCk7XHJcbiAgICB0aGlzLmNoYW5nZUVuZERhdGVPYmoodGhpcy5lbmREYXRlKTtcclxuICAgIHRoaXMuZW5kQnkgPSBtb21lbnQoZXZlbnQ/LmRhdGU/LiRkKS5mb3JtYXQoJ0RELU1NTU0tWVlZWScpO1xyXG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KGRhdGVPYmplY3QpO1xyXG4gIH1cclxuXHJcbiAgLy8gc3RhcnQgZnJvbSBjaGFuZ2UgZXZlbnRcclxuICBzdGFydEZyb21DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdGFydERhdGVVbml4ID0gbW9tZW50KGV2ZW50Py5kYXRlPy4kZCkudW5peCgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlVW5peCA+PSB0aGlzLnNlbGVjdGVkRW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQodGhpcy5zdGFydERhdGVVbml4ICogMTAwMCArIDg2NDAwMDAwKTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gICAgICB0aGlzLmVuZEJ5ID0gbW9tZW50KHRoaXMuZW5kRGF0ZSlcclxuICAgICAgICAuZm9ybWF0KCdERC1NTU1NLVlZWVlUSEg6bW06c3NaJylcclxuICAgICAgICAuc3BsaXQoJ1QnKVswXTtcclxuICAgIH1cclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZ1snbWluJ10gPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICBtb21lbnQobmV3IERhdGUobmV3IERhdGUoZXZlbnQ/LmRhdGU/LiRkKS5nZXRUaW1lKCkgKyA4NjQwMDAwMCkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIGRvY3VtZW50Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50Py50YXJnZXQgYXMgRWxlbWVudDtcclxuICAgIGNvbnN0IGZyb21EYXRlSW5wdXRFbGVtZW50ID1cclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcGVuZWREYXRlUGlja2VyLnRvTG93ZXJDYXNlKCkpIHx8IG51bGw7XHJcblxyXG4gICAgY29uc3QgZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcclxuICAgICAgJ2RwLWRheS1jYWxlbmRhci1jb250YWluZXInXHJcbiAgICApWzBdO1xyXG4gICAgY29uc3QgbW9udGhZZWFyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICcuZHAtbW9udGgtY2FsZW5kYXItY29udGFpbmVyJ1xyXG4gICAgKTtcclxuICAgIGNvbnN0IGlzTm90TW9udGhZZWFyRWxlbWVudCA9ICFtb250aFllYXJFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuXHJcbiAgICBjb25zdCBvcGVuZWRFbGVtZW50ID1cclxuICAgICAgdGhpcy5vcGVuZWREYXRlUGlja2VyID09PSAnU1RBUlRfREFURSdcclxuICAgICAgICA/IHRoaXMuc3RhcnREYXRlUGlja2VyUG9wdXBcclxuICAgICAgICA6IHRoaXMuZW5kRGF0ZVBpY2tlclBvcHVwO1xyXG4gICAgY29uc3QgaXNPdXRzaWRlRnJvbURhdGVJbnB1dCA9XHJcbiAgICAgICFvcGVuZWRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgIGNvbnN0IGlzTm90RnJvbURhdGVFbGVtZW50ID0gZXZlbnQ/LnRhcmdldCAhPT0gZnJvbURhdGVJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID1cclxuICAgICAgIWRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lcj8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGVQaWNrZXIgPVxyXG4gICAgICB0aGlzLm9wZW5lZERhdGVQaWNrZXIgPT09ICdTVEFSVF9EQVRFJ1xyXG4gICAgICAgID8gdGhpcy5zdGFydERhdGVQaWNrZXJcclxuICAgICAgICA6IHRoaXMuZW5kRGF0ZVBpY2tlcjtcclxuXHJcbiAgICBjb25zdCBpc05vdENhbGVuZGFyTW9udGggPVxyXG4gICAgICAhdGFyZ2V0RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoJ2RwLWNhbGVuZGFyLW1vbnRoJyk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBpc091dHNpZGVGcm9tRGF0ZUlucHV0ICYmXHJcbiAgICAgIGlzTm90RnJvbURhdGVFbGVtZW50ICYmXHJcbiAgICAgIGlzTm90SW5zaWRlQ2FsZW5kYXIgJiZcclxuICAgICAgaXNOb3RDYWxlbmRhck1vbnRoICYmXHJcbiAgICAgIGlzTm90TW9udGhZZWFyRWxlbWVudCAmJlxyXG4gICAgICBkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcihcclxuICAgICAgICBldmVudD8udGFyZ2V0LFxyXG4gICAgICAgIG9wZW5lZEVsZW1lbnQsXHJcbiAgICAgICAgc2VsZWN0ZWREYXRlUGlja2VyXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudENsaWNrTGlzdGVuZXIoXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIG9wZW5lZEVsZW1lbnRzOiBFbGVtZW50UmVmLFxyXG4gICAgc2VsZWN0ZWREYXRlUGlja2VyOiBhbnlcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgIW9wZW5lZEVsZW1lbnRzPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpICYmXHJcbiAgICAgIHNlbGVjdGVkRGF0ZVBpY2tlcj8uYXJlQ2FsZW5kYXJzU2hvd25cclxuICAgICkge1xyXG4gICAgICBzZWxlY3RlZERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eSB2eC1tdC01XCI+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgIHt7IHRleHREZXRhaWxzPy5oZWFkZXIgfX1cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaW5uZXIgdngtcC0zIHZ4LXB0LTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgICBbY2xhc3Mud2l0aC1wb2xpY3ldPVwibW9kZSA9PT0gJ3BvbGljeScgfHwgbW9kZSA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5J1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgICAgIGNsYXNzPVwiaGVhZGluZyB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtbWItMVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3RhcnRzIEZyb21cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlmZWN5Y2xlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXAtMlwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTNcIj4mI3hlOTk2OzwvaT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cInN0YXJ0LWRhdGUtaW5wdXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpOyBkYXRlUGlja2VyT3ZlcmxheSA9IHRydWVcIlxyXG4gICAgICAgICAgICBpZD1cInN0YXJ0X2RhdGVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5FbmRzIEJ5PC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDBcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLWZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0XCJcclxuICAgICAgICAgICAgICA+JiN4ZTkyZDs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIxKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJlbmRfZGF0ZVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5FbmRzIEFmdGVyPC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDFcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwib2NjdXJyYW5jZVwiXHJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJlbmRzQWZ0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj5PY2N1cnJlbmNlczwvc3Bhbj5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSAncmVzcG9uc2liaWxpdHknXCJcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1pbm5lciB2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIj5PbmdvaW5nPC9kaXY+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRMaWZlY3ljbGVUeXBlID09IDJcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0eXBlU2VsZWN0ZWQoMilcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCJcclxuICAgICAgICAgICAgPlRoZSByZXNwb25zaWJpbGl0eSB3aWxsIHBlcnBldHVhbGx5IGV4aXN0Ljwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gc3RhcnQgZGF0ZSBkYXRlIHBpY2tlciAtLT5cclxuPGRwLWRhdGUtcGlja2VyXHJcbiAgI3N0YXJ0RGF0ZVBpY2tlclxyXG4gIFtpZF09XCInc3RhcnQtZGF0ZS0nICsgaWRcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgWyhuZ01vZGVsKV09XCJzdGFydERhdGVcIlxyXG4gIFtjb25maWddPVwic3RhcnREYXRlQ29uZmlnXCJcclxuICAob25TZWxlY3QpPVwiXHJcbiAgICBvcGVuRGF0ZVBpY2tlcigpO1xyXG4gICAgc3RhcnRGcm9tQ2hhbmdlKCRldmVudCk7XHJcbiAgICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlXHJcbiAgXCJcclxuPjwvZHAtZGF0ZS1waWNrZXI+XHJcbjxkaXZcclxuICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiXHJcbiAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbj48L2Rpdj5cclxuXHJcbjwhLS0gZW5kIGRhdGUgZGF0ZSBwaWNrZXIgLS0+XHJcbjxkcC1kYXRlLXBpY2tlclxyXG4gICNlbmREYXRlUGlja2VyXHJcbiAgWyhuZ01vZGVsKV09XCJlbmREYXRlXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZU9iamVjdCB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICBbaWRdPVwiJ2VuZC1ieS1pbnB1dC0nICsgaWRcIlxyXG4gIFtjb25maWddPVwiZW5kRGF0ZUNvbmZpZ1wiXHJcbiAgW21pbkRhdGVdPVwiZW5kRGF0ZUNvbmZpZ1snbWluJ11cIlxyXG4gIChvblNlbGVjdCk9XCJcclxuICAgIGVuZEJ5Q2hhbmdlKCRldmVudCk7IHNob3dEYXRlRXJyb3IgPSBmYWxzZTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVxyXG4gIFwiXHJcbj48L2RwLWRhdGUtcGlja2VyPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcclxuICAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKClcIlxyXG4gICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxyXG4+PC9kaXY+XHJcbiJdfQ==