@libs-ui/components-datetime-dropdown 0.2.356-38 → 0.2.356-40
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/directive/date-dropdown.directive.d.ts +2 -2
- package/dropdown.component.d.ts +9 -9
- package/esm2022/defines/date-dropdown.define.mjs +3 -3
- package/esm2022/directive/date-dropdown.directive.mjs +1 -1
- package/esm2022/dropdown.component.mjs +5 -5
- package/esm2022/item/child/child.component.mjs +2 -2
- package/esm2022/item/item.component.mjs +2 -2
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs +8 -8
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs.map +1 -1
- package/item/child/child.component.d.ts +1 -1
- package/package.json +8 -8
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class LibsUiComponentsDatetimeDropdownDirective implements OnInit, OnDestroy {
|
|
4
|
-
private resizeObserver;
|
|
5
|
-
private elementRef;
|
|
4
|
+
private readonly resizeObserver;
|
|
5
|
+
private readonly elementRef;
|
|
6
6
|
readonly outChangeWidth: import("@angular/core").OutputEmitterRef<number>;
|
|
7
7
|
ngOnInit(): void;
|
|
8
8
|
ngOnDestroy(): void;
|
package/dropdown.component.d.ts
CHANGED
|
@@ -17,10 +17,10 @@ export declare class LibsUiComponentsDatetimeDropdownComponent implements OnInit
|
|
|
17
17
|
protected isResponsive: import("@angular/core").WritableSignal<boolean | undefined>;
|
|
18
18
|
protected arrayFormat: import("@angular/core").Signal<TYPE_DATE_FORMAT[]>;
|
|
19
19
|
protected changeType: import("@angular/core").WritableSignal<boolean | undefined>;
|
|
20
|
-
private cacheWidthLabel;
|
|
21
|
-
private timeOut;
|
|
22
|
-
private onDestroy;
|
|
23
|
-
private functionsControl;
|
|
20
|
+
private readonly cacheWidthLabel;
|
|
21
|
+
private readonly timeOut;
|
|
22
|
+
private readonly onDestroy;
|
|
23
|
+
private readonly functionsControl;
|
|
24
24
|
readonly labelConfig: import("@angular/core").InputSignal<ILabel | undefined>;
|
|
25
25
|
readonly widthDropdown: import("@angular/core").InputSignalWithTransform<number, number>;
|
|
26
26
|
readonly zIndex: import("@angular/core").InputSignalWithTransform<number, number>;
|
|
@@ -62,10 +62,10 @@ export declare class LibsUiComponentsDatetimeDropdownComponent implements OnInit
|
|
|
62
62
|
readonly outChooseMultiDate: import("@angular/core").OutputEmitterRef<IEmitMultiDateDropdown>;
|
|
63
63
|
readonly outChooseSingleDate: import("@angular/core").OutputEmitterRef<IEmitSingleDateDropdown>;
|
|
64
64
|
readonly outChangStageFlagMouse: import("@angular/core").OutputEmitterRef<IFlagMouse>;
|
|
65
|
-
private containerRef;
|
|
66
|
-
private labelFromRef;
|
|
67
|
-
private labelToRef;
|
|
68
|
-
private translate;
|
|
65
|
+
private readonly containerRef;
|
|
66
|
+
private readonly labelFromRef;
|
|
67
|
+
private readonly labelToRef;
|
|
68
|
+
private readonly translate;
|
|
69
69
|
constructor();
|
|
70
70
|
ngOnInit(): void;
|
|
71
71
|
ngAfterViewInit(): void;
|
|
@@ -81,7 +81,7 @@ export declare class LibsUiComponentsDatetimeDropdownComponent implements OnInit
|
|
|
81
81
|
private compareDate;
|
|
82
82
|
private validate;
|
|
83
83
|
private checkCondition;
|
|
84
|
-
protected applyDate(): void
|
|
84
|
+
protected applyDate(): Promise<void>;
|
|
85
85
|
protected handlerChangeWidthLabel(width: number): void;
|
|
86
86
|
protected handlerChangStageFlagMouse(flagMouse: IFlagMouse): void;
|
|
87
87
|
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsDatetimeDropdownComponent, never>;
|
|
@@ -213,8 +213,8 @@ export const defaultMonths = () => {
|
|
|
213
213
|
};
|
|
214
214
|
const convertYear = (minYear, maxYear, reverseYear) => {
|
|
215
215
|
const listYear = [];
|
|
216
|
-
const minYears = minYear
|
|
217
|
-
const maxYears = maxYear
|
|
216
|
+
const minYears = minYear ?? DEFAULT_MIN_YEAR;
|
|
217
|
+
const maxYears = maxYear ?? DEFAULT_MAX_YEAR;
|
|
218
218
|
for (let i = minYears; i <= maxYears; i++) {
|
|
219
219
|
listYear.push({
|
|
220
220
|
id: i,
|
|
@@ -243,4 +243,4 @@ const convertDay = (key) => {
|
|
|
243
243
|
}
|
|
244
244
|
return listDay;
|
|
245
245
|
};
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kcm9wZG93bi5kZWZpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQXNCLEVBQUUsSUFBdUIsRUFBRSxTQUEyQixFQUFFLEVBQUU7SUFDOUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssS0FBSztZQUNSLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsRSxLQUFLLE9BQU87WUFDVixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1RCxLQUFLLE1BQU07WUFDVCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEUsS0FBSyxTQUFTO1lBQ1osT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYs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QUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRW5CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNYLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRZUEVfREFURV9GT1JNQVQsIFRZUEVfRFJPUERPV05fTU9OVEhfSUQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGUtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElIdHRwUmVxdWVzdENvbmZpZywgcmV0dXJuRGV0YWlsT2JqZWN0LCByZXR1cm5MaXN0T2JqZWN0IH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3QgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX01BWF9ZRUFSLCBERUZBVUxUX01JTl9ZRUFSIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kYXRldGltZS1waWNrZXInO1xuXG5leHBvcnQgY29uc3QgY29udmVydEdldFZhbHVlID0gKHR5cGU6IFRZUEVfREFURV9GT1JNQVQsIGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZGF5JzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaTE4bl9kYXlfcGFyYW0nLCB7IGRheTogaXRlbS5sYWJlbCB9KTtcblxuICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudChpdGVtLmxhYmVsIHx8ICcgJywgeyB5ZWFyOiAnJyB9KTtcblxuICAgIGNhc2UgJ3llYXInOlxuICAgICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpMThuX3llYXJfcGFyYW0nLCB7IHllYXI6IGl0ZW0ubGFiZWwgfSk7XG5cbiAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaTE4bl9xdWFydGVyJywgeyBxdWFydGVyOiBpdGVtLmxhYmVsIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSA9ICh0eXBlOiBUWVBFX0RBVEVfRk9STUFULCBpdGVtOiB7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmc7IGxhYmVsRGlzcGxheTogc3RyaW5nIH0sIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZ2V0SXRlbVllYXJEaXNwbGF5PzogKGxhYmVsOiBzdHJpbmcpID0+IHZvaWQsIGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQ/OiBib29sZWFuKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2RheSc6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5fZGF5X3BhcmFtJywgeyBkYXk6IGl0ZW0ubGFiZWwgfSk7XG5cbiAgICBjYXNlICdtb250aCc6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoaXRlbS5sYWJlbCB8fCAnICcsIHsgeWVhcjogJycgfSk7XG5cbiAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgbGV0IGxhYmVsRGlzcGxheSA9IGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQgPyBpdGVtLmxhYmVsIDogdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5feWVhcl9wYXJhbScsIHsgeWVhcjogaXRlbS5sYWJlbCB9KTtcblxuICAgICAgaWYgKGdldEl0ZW1ZZWFyRGlzcGxheSkge1xuICAgICAgICBsYWJlbERpc3BsYXkgPSBnZXRJdGVtWWVhckRpc3BsYXkoaXRlbS5sYWJlbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsYWJlbERpc3BsYXk7XG4gICAgfVxuXG4gICAgY2FzZSAncXVhcnRlcic6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5fcXVhcnRlcicsIHsgcXVhcnRlcjogaXRlbS5sYWJlbCB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExJU1RfTU9OVEhTX0RFRkFVTFQgPSAoKTogQXJyYXk8eyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0+ID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9qYW51YXJ5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAyLFxuICAgICAgbGFiZWw6ICdpMThuX2ZlYnJ1YXJ5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAzLFxuICAgICAgbGFiZWw6ICdpMThuX21hcmNoJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA0LFxuICAgICAgbGFiZWw6ICdpMThuX2FwcmlsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA1LFxuICAgICAgbGFiZWw6ICdpMThuX21heScsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogNixcbiAgICAgIGxhYmVsOiAnaTE4bl9qdW5lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA3LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bHknLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDgsXG4gICAgICBsYWJlbDogJ2kxOG5fYXVndXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA5LFxuICAgICAgbGFiZWw6ICdpMThuX3NlcHRlbWJlcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTAsXG4gICAgICBsYWJlbDogJ2kxOG5fb2N0b2JlcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTEsXG4gICAgICBsYWJlbDogJ2kxOG5fbm92ZW1iZXInLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDEyLFxuICAgICAgbGFiZWw6ICdpMThuX2RlY2VtYmVyJyxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IENvbXBhcmVEYXRlID0gKGRhdGVDb21wYXJlOiBBcnJheTx7IGZyb206IG51bWJlciB8IHVuZGVmaW5lZDsgdG86IG51bWJlciB8IHVuZGVmaW5lZCB9PiwgaWdub3JlQWxsb3dUaW1lU2FtZTogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBkYXRlTnVtYmVyT25lID0gZGF0ZUNvbXBhcmVbMF07XG5cbiAgaWYgKGRhdGVDb21wYXJlLmxlbmd0aCA9PT0gMikge1xuICAgIGNvbnN0IGRhdGVOdW1iZXJUb3cgPSBkYXRlQ29tcGFyZVsxXTtcblxuICAgIGlmICghZGF0ZU51bWJlck9uZS5mcm9tIHx8ICFkYXRlTnVtYmVyT25lLnRvIHx8ICFkYXRlTnVtYmVyVG93LmZyb20gfHwgIWRhdGVOdW1iZXJUb3cudG8pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlnbm9yZUFsbG93VGltZVNhbWUgPyBkYXRlTnVtYmVyT25lLmZyb20gPiBkYXRlTnVtYmVyT25lLnRvIDogZGF0ZU51bWJlck9uZS5mcm9tID49IGRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZGF0ZU51bWJlck9uZS5mcm9tID09PSBkYXRlTnVtYmVyT25lLnRvICYmIChpZ25vcmVBbGxvd1RpbWVTYW1lID8gZGF0ZU51bWJlclRvdy5mcm9tID4gZGF0ZU51bWJlclRvdy50byA6IGRhdGVOdW1iZXJUb3cuZnJvbSA+PSBkYXRlTnVtYmVyVG93LnRvKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFkYXRlTnVtYmVyT25lLmZyb20gfHwgIWRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGlnbm9yZUFsbG93VGltZVNhbWUgPyBkYXRlTnVtYmVyT25lLmZyb20gPiBkYXRlTnVtYmVyT25lLnRvIDogZGF0ZU51bWJlck9uZS5mcm9tID49IGRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUgPSAoZGF0YTogQXJyYXk8eyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0+KTogSUh0dHBSZXF1ZXN0Q29uZmlnID0+IHtcbiAgcmV0dXJuIHtcbiAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuRGV0YWlsT2JqZWN0KG5ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KHsgZnJvbU9iamVjdDogeyBmaWVsZEtleTogJ2lkJyB9IH0pLCBkYXRhKSxcbiAgICBmdW5jdGlvbk5hbWU6ICdkZXRhaWxCeURhdGEnLFxuICAgIGFyZ3VtZW50c1ZhbHVlOiBbXSxcbiAgICBndWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZToge1xuICAgICAgcGFnaW5nOiB7fSxcbiAgICAgIGRldGFpbEJ5SWQ6IHtcbiAgICAgICAgc3ViRmllbGRVcGRhdGU6ICdpZCcsXG4gICAgICAgIGZpZWxkVXBkYXRlOiAnWzBdJyxcbiAgICAgICAgZmllbGRHZXRWYWx1ZTogJycsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSA9IChkYXRhOiBBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4pOiBJSHR0cFJlcXVlc3RDb25maWcgPT4ge1xuICByZXR1cm4ge1xuICAgIG9iamVjdEluc3RhbmNlOiByZXR1cm5MaXN0T2JqZWN0KGRhdGEpLFxuICAgIGZ1bmN0aW9uTmFtZTogJ2xpc3QnLFxuICAgIGFyZ3VtZW50c1ZhbHVlOiBbXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZExpc3REYXRhQnlUeXBlRGF0ZSA9ICh0eXBlOiBUWVBFX0RBVEVfRk9STUFULCBkYXRhWWVhcjogeyBtaW5ZZWFyPzogbnVtYmVyOyBtYXhZZWFyPzogbnVtYmVyOyByZXZlcnNlWWVhcj86IGJvb2xlYW4gfSwga2V5TW9udGg6IGFueSk6IEFycmF5PHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9PiA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2RheSc6XG4gICAgICByZXR1cm4gY29udmVydERheShrZXlNb250aCk7XG5cbiAgICBjYXNlICdtb250aCc6XG4gICAgICByZXR1cm4gTElTVF9NT05USFNfREVGQVVMVCgpO1xuXG4gICAgY2FzZSAneWVhcic6XG4gICAgICByZXR1cm4gY29udmVydFllYXIoZGF0YVllYXIubWluWWVhciwgZGF0YVllYXIubWF4WWVhciwgZGF0YVllYXIucmV2ZXJzZVllYXIpO1xuXG4gICAgY2FzZSAncXVhcnRlcic6IHtcbiAgICAgIGNvbnN0IGxpc3RRdWFydGVyID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDQ7IGkrKykge1xuICAgICAgICBsaXN0UXVhcnRlci5wdXNoKHtcbiAgICAgICAgICBpZDogaSxcbiAgICAgICAgICBsYWJlbDogYCR7aX1gLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3RRdWFydGVyO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNb250aHMgPSAoKTogQXJyYXk8eyBpZDogVFlQRV9EUk9QRE9XTl9NT05USF9JRDsgbGFiZWw6IHN0cmluZzsgbWF4RGF5czogbnVtYmVyIH0+ID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9qYW51YXJ5JyxcbiAgICAgIG1heERheXM6IDMxLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDIsXG4gICAgICBsYWJlbDogJ2kxOG5fZmVicnVhcnknLFxuICAgICAgbWF4RGF5czogMjksXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMyxcbiAgICAgIGxhYmVsOiAnaTE4bl9tYXJjaCcsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA0LFxuICAgICAgbGFiZWw6ICdpMThuX2FwcmlsJyxcbiAgICAgIG1heERheXM6IDMwLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDUsXG4gICAgICBsYWJlbDogJ2kxOG5fbWF5JyxcbiAgICAgIG1heERheXM6IDMxLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDYsXG4gICAgICBsYWJlbDogJ2kxOG5fanVuZScsXG4gICAgICBtYXhEYXlzOiAzMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA3LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bHknLFxuICAgICAgbWF4RGF5czogMzEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogOCxcbiAgICAgIGxhYmVsOiAnaTE4bl9hdWd1c3QnLFxuICAgICAgbWF4RGF5czogMzEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogOSxcbiAgICAgIGxhYmVsOiAnaTE4bl9zZXB0ZW1iZXInLFxuICAgICAgbWF4RGF5czogMzAsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTAsXG4gICAgICBsYWJlbDogJ2kxOG5fb2N0b2JlcicsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAxMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9ub3ZlbWJlcicsXG4gICAgICBtYXhEYXlzOiAzMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAxMixcbiAgICAgIGxhYmVsOiAnaTE4bl9kZWNlbWJlcicsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICBdO1xufTtcblxuY29uc3QgY29udmVydFllYXIgPSAobWluWWVhcj86IG51bWJlciwgbWF4WWVhcj86IG51bWJlciwgcmV2ZXJzZVllYXI/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGxpc3RZZWFyID0gW107XG4gIGNvbnN0IG1pblllYXJzID0gbWluWWVhciA/IG1pblllYXIgOiBERUZBVUxUX01JTl9ZRUFSO1xuICBjb25zdCBtYXhZZWFycyA9IG1heFllYXIgPyBtYXhZZWFyIDogREVGQVVMVF9NQVhfWUVBUjtcblxuICBmb3IgKGxldCBpID0gbWluWWVhcnM7IGkgPD0gbWF4WWVhcnM7IGkrKykge1xuICAgIGxpc3RZZWFyLnB1c2goe1xuICAgICAgaWQ6IGksXG4gICAgICBsYWJlbDogYCR7aX1gLFxuICAgIH0pO1xuICB9XG4gIGlmIChyZXZlcnNlWWVhcikge1xuICAgIGxpc3RZZWFyLnJldmVyc2UoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0WWVhcjtcbn07XG5cbmNvbnN0IGNvbnZlcnREYXkgPSAoa2V5OiBhbnkpID0+IHtcbiAgaWYgKCFrZXkgfHwgaXNOYU4oTnVtYmVyKGtleSkpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGRheURlZmF1bHQgPSBkZWZhdWx0TW9udGhzKCkuZmluZCgoaXRlbSkgPT4gTnVtYmVyKGl0ZW0uaWQpID09PSBOdW1iZXIoa2V5KSk7XG5cbiAgaWYgKCFkYXlEZWZhdWx0KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGxpc3REYXkgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXlEZWZhdWx0Lm1heERheXM7IGkrKykge1xuICAgIGxpc3REYXkucHVzaCh7XG4gICAgICBpZDogaSxcbiAgICAgIGxhYmVsOiBgJHtpfWAsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGlzdERheTtcbn07XG4iXX0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kcm9wZG93bi5kZWZpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQXNCLEVBQUUsSUFBdUIsRUFBRSxTQUEyQixFQUFFLEVBQUU7SUFDOUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssS0FBSztZQUNSLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsRSxLQUFLLE9BQU87WUFDVixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1RCxLQUFLLE1BQU07WUFDVCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEUsS0FBSyxTQUFTO1lBQ1osT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYs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QUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNYLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRZUEVfREFURV9GT1JNQVQsIFRZUEVfRFJPUERPV05fTU9OVEhfSUQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGUtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElIdHRwUmVxdWVzdENvbmZpZywgcmV0dXJuRGV0YWlsT2JqZWN0LCByZXR1cm5MaXN0T2JqZWN0IH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3QgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX01BWF9ZRUFSLCBERUZBVUxUX01JTl9ZRUFSIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kYXRldGltZS1waWNrZXInO1xuXG5leHBvcnQgY29uc3QgY29udmVydEdldFZhbHVlID0gKHR5cGU6IFRZUEVfREFURV9GT1JNQVQsIGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZGF5JzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaTE4bl9kYXlfcGFyYW0nLCB7IGRheTogaXRlbS5sYWJlbCB9KTtcblxuICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudChpdGVtLmxhYmVsIHx8ICcgJywgeyB5ZWFyOiAnJyB9KTtcblxuICAgIGNhc2UgJ3llYXInOlxuICAgICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpMThuX3llYXJfcGFyYW0nLCB7IHllYXI6IGl0ZW0ubGFiZWwgfSk7XG5cbiAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaTE4bl9xdWFydGVyJywgeyBxdWFydGVyOiBpdGVtLmxhYmVsIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSA9ICh0eXBlOiBUWVBFX0RBVEVfRk9STUFULCBpdGVtOiB7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmc7IGxhYmVsRGlzcGxheTogc3RyaW5nIH0sIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZ2V0SXRlbVllYXJEaXNwbGF5PzogKGxhYmVsOiBzdHJpbmcpID0+IHZvaWQsIGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQ/OiBib29sZWFuKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2RheSc6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5fZGF5X3BhcmFtJywgeyBkYXk6IGl0ZW0ubGFiZWwgfSk7XG5cbiAgICBjYXNlICdtb250aCc6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoaXRlbS5sYWJlbCB8fCAnICcsIHsgeWVhcjogJycgfSk7XG5cbiAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgbGV0IGxhYmVsRGlzcGxheSA9IGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQgPyBpdGVtLmxhYmVsIDogdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5feWVhcl9wYXJhbScsIHsgeWVhcjogaXRlbS5sYWJlbCB9KTtcblxuICAgICAgaWYgKGdldEl0ZW1ZZWFyRGlzcGxheSkge1xuICAgICAgICBsYWJlbERpc3BsYXkgPSBnZXRJdGVtWWVhckRpc3BsYXkoaXRlbS5sYWJlbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsYWJlbERpc3BsYXk7XG4gICAgfVxuXG4gICAgY2FzZSAncXVhcnRlcic6XG4gICAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2kxOG5fcXVhcnRlcicsIHsgcXVhcnRlcjogaXRlbS5sYWJlbCB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExJU1RfTU9OVEhTX0RFRkFVTFQgPSAoKTogQXJyYXk8eyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0+ID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9qYW51YXJ5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAyLFxuICAgICAgbGFiZWw6ICdpMThuX2ZlYnJ1YXJ5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAzLFxuICAgICAgbGFiZWw6ICdpMThuX21hcmNoJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA0LFxuICAgICAgbGFiZWw6ICdpMThuX2FwcmlsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA1LFxuICAgICAgbGFiZWw6ICdpMThuX21heScsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogNixcbiAgICAgIGxhYmVsOiAnaTE4bl9qdW5lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA3LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bHknLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDgsXG4gICAgICBsYWJlbDogJ2kxOG5fYXVndXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA5LFxuICAgICAgbGFiZWw6ICdpMThuX3NlcHRlbWJlcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTAsXG4gICAgICBsYWJlbDogJ2kxOG5fb2N0b2JlcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTEsXG4gICAgICBsYWJlbDogJ2kxOG5fbm92ZW1iZXInLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDEyLFxuICAgICAgbGFiZWw6ICdpMThuX2RlY2VtYmVyJyxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IENvbXBhcmVEYXRlID0gKGRhdGVDb21wYXJlOiBBcnJheTx7IGZyb206IG51bWJlciB8IHVuZGVmaW5lZDsgdG86IG51bWJlciB8IHVuZGVmaW5lZCB9PiwgaWdub3JlQWxsb3dUaW1lU2FtZTogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBkYXRlTnVtYmVyT25lID0gZGF0ZUNvbXBhcmVbMF07XG5cbiAgaWYgKGRhdGVDb21wYXJlLmxlbmd0aCA9PT0gMikge1xuICAgIGNvbnN0IGRhdGVOdW1iZXJUb3cgPSBkYXRlQ29tcGFyZVsxXTtcblxuICAgIGlmICghZGF0ZU51bWJlck9uZS5mcm9tIHx8ICFkYXRlTnVtYmVyT25lLnRvIHx8ICFkYXRlTnVtYmVyVG93LmZyb20gfHwgIWRhdGVOdW1iZXJUb3cudG8pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlnbm9yZUFsbG93VGltZVNhbWUgPyBkYXRlTnVtYmVyT25lLmZyb20gPiBkYXRlTnVtYmVyT25lLnRvIDogZGF0ZU51bWJlck9uZS5mcm9tID49IGRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZGF0ZU51bWJlck9uZS5mcm9tID09PSBkYXRlTnVtYmVyT25lLnRvICYmIChpZ25vcmVBbGxvd1RpbWVTYW1lID8gZGF0ZU51bWJlclRvdy5mcm9tID4gZGF0ZU51bWJlclRvdy50byA6IGRhdGVOdW1iZXJUb3cuZnJvbSA+PSBkYXRlTnVtYmVyVG93LnRvKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFkYXRlTnVtYmVyT25lLmZyb20gfHwgIWRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGlnbm9yZUFsbG93VGltZVNhbWUgPyBkYXRlTnVtYmVyT25lLmZyb20gPiBkYXRlTnVtYmVyT25lLnRvIDogZGF0ZU51bWJlck9uZS5mcm9tID49IGRhdGVOdW1iZXJPbmUudG8pIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUgPSAoZGF0YTogQXJyYXk8eyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0+KTogSUh0dHBSZXF1ZXN0Q29uZmlnID0+IHtcbiAgcmV0dXJuIHtcbiAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuRGV0YWlsT2JqZWN0KG5ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KHsgZnJvbU9iamVjdDogeyBmaWVsZEtleTogJ2lkJyB9IH0pLCBkYXRhKSxcbiAgICBmdW5jdGlvbk5hbWU6ICdkZXRhaWxCeURhdGEnLFxuICAgIGFyZ3VtZW50c1ZhbHVlOiBbXSxcbiAgICBndWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZToge1xuICAgICAgcGFnaW5nOiB7fSxcbiAgICAgIGRldGFpbEJ5SWQ6IHtcbiAgICAgICAgc3ViRmllbGRVcGRhdGU6ICdpZCcsXG4gICAgICAgIGZpZWxkVXBkYXRlOiAnWzBdJyxcbiAgICAgICAgZmllbGRHZXRWYWx1ZTogJycsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSA9IChkYXRhOiBBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4pOiBJSHR0cFJlcXVlc3RDb25maWcgPT4ge1xuICByZXR1cm4ge1xuICAgIG9iamVjdEluc3RhbmNlOiByZXR1cm5MaXN0T2JqZWN0KGRhdGEpLFxuICAgIGZ1bmN0aW9uTmFtZTogJ2xpc3QnLFxuICAgIGFyZ3VtZW50c1ZhbHVlOiBbXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZExpc3REYXRhQnlUeXBlRGF0ZSA9ICh0eXBlOiBUWVBFX0RBVEVfRk9STUFULCBkYXRhWWVhcjogeyBtaW5ZZWFyPzogbnVtYmVyOyBtYXhZZWFyPzogbnVtYmVyOyByZXZlcnNlWWVhcj86IGJvb2xlYW4gfSwga2V5TW9udGg6IGFueSk6IEFycmF5PHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9PiA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2RheSc6XG4gICAgICByZXR1cm4gY29udmVydERheShrZXlNb250aCk7XG5cbiAgICBjYXNlICdtb250aCc6XG4gICAgICByZXR1cm4gTElTVF9NT05USFNfREVGQVVMVCgpO1xuXG4gICAgY2FzZSAneWVhcic6XG4gICAgICByZXR1cm4gY29udmVydFllYXIoZGF0YVllYXIubWluWWVhciwgZGF0YVllYXIubWF4WWVhciwgZGF0YVllYXIucmV2ZXJzZVllYXIpO1xuXG4gICAgY2FzZSAncXVhcnRlcic6IHtcbiAgICAgIGNvbnN0IGxpc3RRdWFydGVyID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDQ7IGkrKykge1xuICAgICAgICBsaXN0UXVhcnRlci5wdXNoKHtcbiAgICAgICAgICBpZDogaSxcbiAgICAgICAgICBsYWJlbDogYCR7aX1gLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3RRdWFydGVyO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNb250aHMgPSAoKTogQXJyYXk8eyBpZDogVFlQRV9EUk9QRE9XTl9NT05USF9JRDsgbGFiZWw6IHN0cmluZzsgbWF4RGF5czogbnVtYmVyIH0+ID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9qYW51YXJ5JyxcbiAgICAgIG1heERheXM6IDMxLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDIsXG4gICAgICBsYWJlbDogJ2kxOG5fZmVicnVhcnknLFxuICAgICAgbWF4RGF5czogMjksXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMyxcbiAgICAgIGxhYmVsOiAnaTE4bl9tYXJjaCcsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA0LFxuICAgICAgbGFiZWw6ICdpMThuX2FwcmlsJyxcbiAgICAgIG1heERheXM6IDMwLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDUsXG4gICAgICBsYWJlbDogJ2kxOG5fbWF5JyxcbiAgICAgIG1heERheXM6IDMxLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDYsXG4gICAgICBsYWJlbDogJ2kxOG5fanVuZScsXG4gICAgICBtYXhEYXlzOiAzMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA3LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bHknLFxuICAgICAgbWF4RGF5czogMzEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogOCxcbiAgICAgIGxhYmVsOiAnaTE4bl9hdWd1c3QnLFxuICAgICAgbWF4RGF5czogMzEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogOSxcbiAgICAgIGxhYmVsOiAnaTE4bl9zZXB0ZW1iZXInLFxuICAgICAgbWF4RGF5czogMzAsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTAsXG4gICAgICBsYWJlbDogJ2kxOG5fb2N0b2JlcicsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAxMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9ub3ZlbWJlcicsXG4gICAgICBtYXhEYXlzOiAzMCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAxMixcbiAgICAgIGxhYmVsOiAnaTE4bl9kZWNlbWJlcicsXG4gICAgICBtYXhEYXlzOiAzMSxcbiAgICB9LFxuICBdO1xufTtcblxuY29uc3QgY29udmVydFllYXIgPSAobWluWWVhcj86IG51bWJlciwgbWF4WWVhcj86IG51bWJlciwgcmV2ZXJzZVllYXI/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGxpc3RZZWFyID0gW107XG4gIGNvbnN0IG1pblllYXJzID0gbWluWWVhciA/PyBERUZBVUxUX01JTl9ZRUFSO1xuICBjb25zdCBtYXhZZWFycyA9IG1heFllYXIgPz8gREVGQVVMVF9NQVhfWUVBUjtcblxuICBmb3IgKGxldCBpID0gbWluWWVhcnM7IGkgPD0gbWF4WWVhcnM7IGkrKykge1xuICAgIGxpc3RZZWFyLnB1c2goe1xuICAgICAgaWQ6IGksXG4gICAgICBsYWJlbDogYCR7aX1gLFxuICAgIH0pO1xuICB9XG4gIGlmIChyZXZlcnNlWWVhcikge1xuICAgIGxpc3RZZWFyLnJldmVyc2UoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0WWVhcjtcbn07XG5cbmNvbnN0IGNvbnZlcnREYXkgPSAoa2V5OiBhbnkpID0+IHtcbiAgaWYgKCFrZXkgfHwgaXNOYU4oTnVtYmVyKGtleSkpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGRheURlZmF1bHQgPSBkZWZhdWx0TW9udGhzKCkuZmluZCgoaXRlbSkgPT4gTnVtYmVyKGl0ZW0uaWQpID09PSBOdW1iZXIoa2V5KSk7XG5cbiAgaWYgKCFkYXlEZWZhdWx0KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGxpc3REYXkgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXlEZWZhdWx0Lm1heERheXM7IGkrKykge1xuICAgIGxpc3REYXkucHVzaCh7XG4gICAgICBpZDogaSxcbiAgICAgIGxhYmVsOiBgJHtpfWAsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGlzdERheTtcbn07XG4iXX0=
|
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
30
30
|
standalone: true,
|
|
31
31
|
}]
|
|
32
32
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kcm9wZG93bi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2RpcmVjdGl2ZS9kYXRlLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWpHLE1BQU0sT0FBTyx5Q0FBeUM7SUFDbkMsY0FBYyxHQUFHLE1BQU0sQ0FBNkIsU0FBUyxDQUFDLENBQUM7SUFDL0QsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4QyxjQUFjLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFFM0MsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQzt3R0F2QlUseUNBQXlDOzRGQUF6Qyx5Q0FBeUM7OzRGQUF6Qyx5Q0FBeUM7a0JBTHJELFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsNkNBQTZDO29CQUN2RCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBzaWduYWw8UmVzaXplT2JzZXJ2ZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICByZWFkb25seSBvdXRDaGFuZ2VXaWR0aCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5zZXQoXG4gICAgICBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKGVudHJ5LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMub3V0Q2hhbmdlV2lkdGguZW1pdChlbnRyeS5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcigpPy5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKCkpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIoKT8uZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -142,7 +142,7 @@ export class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
142
142
|
this.functionsControl.forEach((control) => control.resetError());
|
|
143
143
|
}
|
|
144
144
|
setWidthDate() {
|
|
145
|
-
if (!this.containerRef()
|
|
145
|
+
if (!this.containerRef()?.nativeElement) {
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
148
|
timer(0)
|
|
@@ -212,10 +212,10 @@ export class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
212
212
|
});
|
|
213
213
|
return checkValue;
|
|
214
214
|
}
|
|
215
|
-
applyDate() {
|
|
215
|
+
async applyDate() {
|
|
216
216
|
this.setError(false);
|
|
217
217
|
this.isErrorCompareDate.set(false);
|
|
218
|
-
if (this.isCheckErrorWhenSelectItem() && !this.validate()) {
|
|
218
|
+
if (this.isCheckErrorWhenSelectItem() && !(await this.validate())) {
|
|
219
219
|
return;
|
|
220
220
|
}
|
|
221
221
|
const from = this.chooseDate()?.from;
|
|
@@ -271,10 +271,10 @@ export class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
271
271
|
this.outChangStageFlagMouse.emit(flagMouse);
|
|
272
272
|
}
|
|
273
273
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
275
|
}
|
|
276
276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, decorators: [{
|
|
277
277
|
type: Component,
|
|
278
278
|
args: [{ selector: 'libs_ui-components-datetime-dropdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent], template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n" }]
|
|
279
279
|
}], ctorParameters: () => [] });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFVLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS2hHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxtQkFBbUI7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFlBQVksR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsWUFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqQyxrQkFBa0IsR0FBRyxNQUFNLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQzVELFVBQVUsR0FBRyxNQUFNLENBQXFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RixZQUFZLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUE0QixDQUFDO0lBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ08sVUFBVSxHQUFHLE1BQU0sQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFFdEQsZUFBZSxHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDeEQsT0FBTyxHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDaEQsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWlELENBQUM7SUFFcEYsZ0JBQWdCO0lBQ1AsV0FBVyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLEtBQUssQ0FBaUIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNuRixNQUFNLEdBQUcsS0FBSyxDQUFpQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsVUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNuQyxXQUFXLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNwRCxhQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLGNBQWMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUN2QyxhQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLFVBQVUsR0FBRyxLQUFLLENBQXVELFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdEksa0JBQWtCLEdBQUcsS0FBSyxDQUFzQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1RiwyQkFBMkIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEQsZ0JBQWdCLEdBQUcsS0FBSyxDQUFxQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxrQkFBa0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvREFBb0Q7SUFDaEcsa0JBQWtCLEdBQUcsS0FBSyxFQUE0QixDQUFDO0lBQ3ZELHdCQUF3QixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNqRCxtQ0FBbUMsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLFVBQVUsR0FBRyxLQUFLLEVBQTJCLENBQUM7SUFDOUMsZUFBZSxHQUFHLEtBQUssQ0FBZ0YsU0FBUyxDQUFDLENBQUM7SUFDbEgseUJBQXlCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2xELGVBQWUsR0FBRyxLQUFLLENBQXVDLFNBQVMsQ0FBQyxDQUFDO0lBRXpFLG9CQUFvQixHQUFHLEtBQUssQ0FBbUIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixzQkFBc0IsR0FBRyxLQUFLLENBQW1CLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEcsMEJBQTBCLEdBQUcsS0FBSyxDQUFtQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLDZDQUE2QyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtJQUM1SCxhQUFhLEdBQUcsS0FBSyxFQUFzQixDQUFDO0lBRXJELGlCQUFpQjtJQUNSLG1CQUFtQixHQUFHLE1BQU0sRUFBcUMsQ0FBQztJQUNsRSxtQkFBbUIsR0FBRyxNQUFNLEVBQW9ELENBQUMsQ0FBQyw0RkFBNEY7SUFDOUssa0JBQWtCLEdBQUcsTUFBTSxFQUEwQixDQUFDO0lBQ3RELG1CQUFtQixHQUFHLE1BQU0sRUFBMkIsQ0FBQztJQUN4RCxzQkFBc0IsR0FBRyxNQUFNLEVBQWMsQ0FBQztJQUV2RCxnQkFBZ0I7SUFDUixZQUFZLEdBQUcsU0FBUyxDQUFhLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLFlBQVksR0FBRyxTQUFTLENBQWEsV0FBVyxDQUFDLENBQUM7SUFDbEQsVUFBVSxHQUFHLFNBQVMsQ0FBYSxTQUFTLENBQUMsQ0FBQztJQUV0RCxpQkFBaUI7SUFDVCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0M7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsT0FBTztZQUNULENBQUM7WUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ0wsSUFBSSxFQUFFO3FCQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ0wsSUFBSSxFQUFFO2FBQ04sU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFbEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU1RyxJQUFJLGtCQUFrQixHQUFHLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRVMsd0JBQXdCLENBQUMsS0FBOEIsRUFBRSxJQUFtQjtRQUNwRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUVuRixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ2hFLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNMLElBQUksRUFBRTthQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsc0JBQXNCLENBQUMsS0FBNEMsRUFBRSxJQUFtQjtRQUNoRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWpCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTRCLENBQUM7UUFDckUsTUFBTSxXQUFXLEdBQWdFLEVBQUUsQ0FBQztRQUVwRixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRO1FBQ3BCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkNBQTZDLEVBQUUsRUFBRSxDQUFDO2dCQUN6RixLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEMsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFpQjtRQUN0QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTRCLENBQUM7UUFFckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRixVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BGLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUMxRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVqQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxZQUFZLEdBQXVDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFFNUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBRXJDLE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQztvQkFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFFbkMsT0FBTyxPQUFPLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxZQUFZLEdBQXdDLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQWE7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsRUFBRSxHQUFHLENBQXNCLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRVMsMEJBQTBCLENBQUMsU0FBcUI7UUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO3dHQTFUVSx5Q0FBeUM7NEZBQXpDLHlDQUF5QyxxektDdEJ0RCxpbk5BdUpBLHlERG5JWSxlQUFlLDRGQUFFLDhCQUE4Qiw0cUJBQUUseUNBQXlDLHFIQUFFLDZDQUE2Qzs7NEZBRXhJLHlDQUF5QztrQkFUckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FHcEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZUFBZSxFQUFFLDhCQUE4QixFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBJRmxhZ01vdXNlIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wYXJlRGF0ZSB9IGZyb20gJy4vZGVmaW5lcy9kYXRlLWRyb3Bkb3duLmRlZmluZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL2RhdGUtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlS2V5cywgSUZyb21BbmRUb0RhdGVMYWJlbCwgSUhpZGRlbkRhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUVtaXRNdWx0aURhdGVEcm9wZG93biwgSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJVmFsaWREYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duRGlyZWN0aXZlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCB3aWR0aEVsZW1lbnQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCB3aWR0aExhYmVsRnJvbSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbFRvID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCBpc0Vycm9yQ29tcGFyZURhdGUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGNob29zZURhdGUgPSBzaWduYWw8SUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4oeyBmcm9tOiBzaWduYWwoe30pLCB0bzogc2lnbmFsKHt9KSB9KTtcbiAgcHJvdGVjdGVkIGlzUmVzcG9uc2l2ZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgYXJyYXlGb3JtYXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG4gIH0pO1xuICBwcm90ZWN0ZWQgY2hhbmdlVHlwZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgY2FjaGVXaWR0aExhYmVsID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSB0aW1lT3V0ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZ1bmN0aW9uc0NvbnRyb2wgPSBuZXcgTWFwPHN0cmluZywgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB3aWR0aERyb3Bkb3duID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEzNiwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTM2IH0pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBtaW5XaWR0aCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNCb3JkZXJFcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgaWdub3JlV2lkdGgxMDAgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0eXBlRm9ybWF0ID0gaW5wdXQ8VFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVCwgVFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVD4oJ21vbnRoLWRheScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdtb250aC1kYXknIH0pO1xuICByZWFkb25seSBmcm9tQW5kVG9EYXRlTGFiZWwgPSBpbnB1dDxJRnJvbUFuZFRvRGF0ZUxhYmVsPih7IGZyb206ICdpMThuX2xhYmVsX2Zyb20nLCB0bzogJ2kxOG5fdG8nIH0pO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZVRpbWUgPSBpbnB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRBZnRlckNoYW5nZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGTDuW5nIMSR4buDIGVtaXQgbeG7l2kgbOG6p24gY2jhu41uIGdpw6EgdHLhu4sgdsOgIGzhuqduIMSR4bqndSBpbml0XG4gIHJlYWRvbmx5IGdldEl0ZW1ZZWFyRGlzcGxheSA9IGlucHV0PCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaGlkZGVuRGF0ZSA9IGlucHV0PElIaWRkZW5EYXRlIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGVLZXlzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGlnbm9yZUFsbG93VGltZUVxdWFsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaWdub3JlVmFsaWRUaW1lQ29tcGFyZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaXNDaGVja0Vycm9yV2hlblNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuLCBib29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBpZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGPDsyB2YWxpZGF0ZSBnacOhIHRy4buLIHRo4bupIDIga2hpIHZhbGlkUmVxdWlyZWQga2jDtG5nP1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SVZhbGlkRGF0ZURyb3Bkb3duPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTZWxlY3RlZERyb3Bkb3duID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIHwgSUVtaXRNdWx0aURhdGVEcm9wZG93bj4oKTsgLy8gZMO5bmcgY2hvIHRyxrDhu51uZyBo4bujcCBlbWl0IG3hu5dpIG3hu5l0IGzhuqduIGNo4buNbiBnacOhIHRy4buLIG7Dqm4ga2hpIHPhu60gZOG7pW5nIHBo4bqjaSBjaGVjayBrxKkgdW5kZWZpbmVkXG4gIHJlYWRvbmx5IG91dENob29zZU11bHRpRGF0ZSA9IG91dHB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaG9vc2VTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG5cbiAgLyogVklFVyBDSElMRCAqL1xuICBwcml2YXRlIGNvbnRhaW5lclJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncGFyZW50Jyk7XG4gIHByaXZhdGUgbGFiZWxGcm9tUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbEZyb20nKTtcbiAgcHJpdmF0ZSBsYWJlbFRvUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbFRvJyk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLmlzTXVsdGlwbGUoKTtcblxuICAgICAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmNsZWFyKCk7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVHlwZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh0aGlzLkZ1bmN0aW9uc0NvbnRyb2wpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSkge1xuICAgICAgdGhpcy5jaG9vc2VEYXRlLnNldCh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLnNldFdpZHRoRGF0ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLndpZHRoTGFiZWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGltZXIoMClcbiAgICAgIC5waXBlKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrUmVzcG9uc2l2ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tJc1ZhbGlkOiB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHJlc2V0VGltZTogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1Jlc3BvbnNpdmUoKSB7XG4gICAgdGhpcy5pc1Jlc3BvbnNpdmUuc2V0KGZhbHNlKTtcbiAgICBjb25zdCB3aWR0aEVsZW1lbnRQYXJlbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwO1xuXG4gICAgdGhpcy53aWR0aExhYmVsRnJvbS5zZXQodGhpcy5sYWJlbEZyb21SZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMCk7XG4gICAgdGhpcy53aWR0aExhYmVsVG8uc2V0KHRoaXMubGFiZWxUb1JlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwKTtcblxuICAgIGNvbnN0IHNwYWNlQmV0d2VlbkRhdGUgPSB0aGlzLmFycmF5Rm9ybWF0KCkubGVuZ3RoICogMiArICh0aGlzLmZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20gPyAxIDogMCk7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLndpZHRoRHJvcGRvd24oKSAqIDQgKyA4ICogc3BhY2VCZXR3ZWVuRGF0ZSArIHRoaXMud2lkdGhMYWJlbEZyb20oKSArIHRoaXMud2lkdGhMYWJlbFRvKCk7XG5cbiAgICBpZiAod2lkdGhFbGVtZW50UGFyZW50IDwgd2lkdGgpIHtcbiAgICAgIHRoaXMuaXNSZXNwb25zaXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkS2V5KGV2ZW50OiBJRW1pdFNpbmdsZURhdGVEcm9wZG93biwgdHlwZTogJ2Zyb20nIHwgJ3RvJykge1xuICAgIHRoaXMuY2hvb3NlRGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRbdHlwZV0uc2V0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNFbWl0QWZ0ZXJDaGFuZ2VkKCkpIHtcbiAgICAgIGNvbnN0IGRhdGFFbWl0ID0gdGhpcy5pc011bHRpcGxlKCkgPyB0aGlzLmNob29zZURhdGUoKSA6IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKCk7XG5cbiAgICAgIGlmIChkYXRhRW1pdCkge1xuICAgICAgICB0aGlzLm91dFNlbGVjdGVkRHJvcGRvd24uZW1pdChkYXRhRW1pdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbHlEYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wucmVzZXREcm9wZG93bigpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5yZXNldEVycm9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZigpIHx8ICF0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQsIHR5cGU6ICdmcm9tJyB8ICd0bycpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuc2V0KHR5cGUsIGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjaGVja1ZhbGlkKCkge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5mdW5jdGlvbnNDb250cm9sLnZhbHVlcygpKSB7XG4gICAgICBpZiAoIShhd2FpdCBjb250cm9sLmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb21wYXJlRGF0ZSgpKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5zZXRFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlRGF0ZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcbiAgICBjb25zdCBkYXRlQ29tcGFyZTogQXJyYXk8eyBmcm9tOiBudW1iZXIgfCB1bmRlZmluZWQ7IHRvOiBudW1iZXIgfCB1bmRlZmluZWQgfT4gPSBbXTtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV07XG4gICAgICBjb25zdCB0byA9IHRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dO1xuXG4gICAgICBkYXRlQ29tcGFyZS5wdXNoKHsgZnJvbTogZnJvbSwgdG86IHRvIH0pO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmlnbm9yZVZhbGlkVGltZUNvbXBhcmUoKSB8fCAhdGhpcy5jaGVja0NvbmRpdGlvbih0cnVlKSkge1xuICAgICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tcGFyZURhdGUoZGF0ZUNvbXBhcmUsIHRoaXMuaWdub3JlQWxsb3dUaW1lRXF1YWwoKSkpIHtcbiAgICAgIHRoaXMuc2V0RXJyb3IodHJ1ZSk7XG4gICAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQodHJ1ZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgaWYgKCF0aGlzLmNoZWNrQ29uZGl0aW9uKGZhbHNlKSAmJiAhdGhpcy5pZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbmRpdGlvbihoYXNWYWx1ZTogYm9vbGVhbikge1xuICAgIGxldCBjaGVja1ZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGhhc1ZhbHVlICYmICghdGhpcy5jaG9vc2VEYXRlKCk/LmZyb20oKVtpdGVtXSB8fCAhdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghaGFzVmFsdWUgJiYgKHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV0gfHwgdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjaGVja1ZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5RGF0ZSgpIHtcbiAgICB0aGlzLnNldEVycm9yKGZhbHNlKTtcbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkgJiYgIXRoaXMudmFsaWRhdGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmcm9tID0gdGhpcy5jaG9vc2VEYXRlKCk/LmZyb207XG4gICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG87XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVEYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZCA9IHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfTtcblxuICAgICAgdGhpcy5hcnJheUZvcm1hdCgpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIWZyb20/LigpPy5ba2V5XSB8fCAhdG8/LigpPy5ba2V5XSkge1xuICAgICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICAgICAgZGF0YVNlbGVjdGVkLmZyb20udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBOdW1iZXIoZnJvbT8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGFTZWxlY3RlZC50by51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE51bWJlcih0bz8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGFTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLm91dENob29zZU11bHRpRGF0ZS5lbWl0KGRhdGFTZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQgPSB7fTtcblxuICAgIHRoaXMuYXJyYXlGb3JtYXQoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghZnJvbT8uKCk/LltrZXldKSB7XG4gICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhU2VsZWN0ZWQpIHtcbiAgICAgICAgZGF0YVNlbGVjdGVkW2tleV0gPSBOdW1iZXIoZnJvbT8uKCk/LltrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm91dENob29zZVNpbmdsZURhdGUuZW1pdChkYXRhU2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlV2lkdGhMYWJlbCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jYWNoZVdpZHRoTGFiZWwuc2V0KHdpZHRoIDwgKHRoaXMuY2FjaGVXaWR0aExhYmVsKCkgfHwgMCkgPyB0aGlzLmNhY2hlV2lkdGhMYWJlbCgpIDogTWF0aC5jZWlsKHdpZHRoKSk7XG4gICAgaWYgKHRoaXMudGltZU91dCgpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2lkdGhMYWJlbC5zZXQodGhpcy5jYWNoZVdpZHRoTGFiZWwoKSk7XG4gICAgICB9LCAxMDApIGFzIHVua25vd24gYXMgbnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWxcbiAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgW3JlcXVpcmVkXT1cImxhYmVsQ29uZmlnLnJlcXVpcmVkXCJcbiAgICBbZGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ2xhc3NdPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25DbGFzc1wiXG4gICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICBbdG9nZ2xlQWN0aXZlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZUFjdGl2ZVwiXG4gICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgIFtpY29uUG9wb3ZlckNsYXNzXT1cImxhYmVsQ29uZmlnLmljb25Qb3BvdmVyQ2xhc3NcIlxuICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbn1cbjxkaXZcbiAgI3BhcmVudFxuICBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnRcIlxuICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgW2NsYXNzLiFjb2x1bW5dPVwiaXNSZXNwb25zaXZlKCkgJiYgaXNNdWx0aXBsZSgpXCI+XG4gIDxkaXZcbiAgICAjY2hpbGRGcm9tXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCJcbiAgICBbY2xhc3Mudy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpICYmICFpc1Jlc3BvbnNpdmUoKVwiXG4gICAgW2NsYXNzLiFtYi1bOHB4XV09XCJpc1Jlc3BvbnNpdmUoKSAmJiBpc011bHRpcGxlKClcIlxuICAgIFtjbGFzcy4hbXItWzhweF1dPVwiIWlzUmVzcG9uc2l2ZSgpICYmIGlzTXVsdGlwbGUoKVwiXG4gICAgW2NsYXNzLnctZnVsbF09XCIoIWlzTXVsdGlwbGUoKSAmJiAhd2lkdGhCeUVsZW1lbnQoKSkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCIhd2lkdGhCeUVsZW1lbnQoKSAmJiBpc011bHRpcGxlKCkgJiYgIWlzUmVzcG9uc2l2ZSgpID8gd2lkdGhEcm9wZG93bigpICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyA4ICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyB3aWR0aExhYmVsRnJvbSgpIDogdW5kZWZpbmVkXCI+XG4gICAgQGlmIChpc011bHRpcGxlKCkgJiYgIWlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpICYmIGZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20pIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtci1bOHB4XSBmbGV4LXNocmluay0wIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImlzUmVzcG9uc2l2ZSgpID8gd2lkdGhMYWJlbCgpIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNsYWJlbEZyb21cbiAgICAgICAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZVxuICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsRnJvbSB8fCAnJyB9fVwiXG4gICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICBAbGV0IGNvbnN0SHRtbEZyb20gPSBmcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tIHx8ICcgJztcbiAgICAgICAgICB7eyBjb25zdEh0bWxGcm9tIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiPlxuICAgICAgQGlmICghY2hhbmdlVHlwZSgpKSB7XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgW3R5cGVEYXRlXT1cInR5cGVGb3JtYXQoKVwiXG4gICAgICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIFttaW5ZZWFyXT1cIm1pblllYXIoKVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGUoKSA/IChpc1Jlc3BvbnNpdmUoKSA/IHRydWUgOiBmYWxzZSkgOiB0cnVlXCJcbiAgICAgICAgICBbcmV2ZXJzZVllYXJdPVwicmV2ZXJzZVllYXIoKVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVUaW1lKCk/LmZyb20oKSB8fCB7fVwiXG4gICAgICAgICAgW3dpZHRoRHJvcGRvd25dPVwid2lkdGhEcm9wZG93bigpXCJcbiAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgW2dldEl0ZW1ZZWFyRGlzcGxheV09XCJnZXRJdGVtWWVhckRpc3BsYXkoKVwiXG4gICAgICAgICAgW2xpc3RNYXhJdGVtU2hvd109XCJsaXN0TWF4SXRlbVNob3coKVwiXG4gICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uZnJvbSgpXCJcbiAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICBbaXNFbWl0U2VsZWN0ZWREcm9wRG93bl09XCJpc0VtaXRBZnRlckNoYW5nZWQoKVwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0XT1cIidsaWJzLXVpLWZvbnQtaDVyICcgKyBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCgpXCJcbiAgICAgICAgICAob3V0U2VsZWN0ZWREYXRhKT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEtleSgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRGdW5jdGlvbkNvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbCgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ1N0YWdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc011bHRpcGxlKCkpIHtcbiAgICA8ZGl2XG4gICAgICAjY2hpbGRUb1xuICAgICAgW2NsYXNzLiF3LVs1MCVdXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwiIXdpZHRoQnlFbGVtZW50KCkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibXItWzhweF0gaC1bMzJweF0gZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpc1Jlc3BvbnNpdmUoKSA/IHdpZHRoTGFiZWwoKSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICBAaWYgKCFpZ25vcmVGcm9tQW5kVG9EYXRlTGFiZWwoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAjbGFiZWxUb1xuICAgICAgICAgICAgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmVcbiAgICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIHRleHQtbm93cmFwIHt7IGZyb21BbmRUb0RhdGVMYWJlbCgpLmNsYXNzTGFiZWxUbyB8fCAnJyB9fVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdlV2lkdGgpPVwiaGFuZGxlckNoYW5nZVdpZHRoTGFiZWwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGxldCBjb25zdEh0bWxUbyA9IGZyb21BbmRUb0RhdGVMYWJlbCgpLnRvIHx8ICcgJztcbiAgICAgICAgICAgIHt7IGNvbnN0SHRtbFRvIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsKCkpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzLiFvcGFjaXR5LVswLjVdXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oNXJcIj5cbiAgICAgICAgICAgIC1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCI+XG4gICAgICAgIEBpZiAoIWNoYW5nZVR5cGUoKSkge1xuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgICAgW2NsYXNzLnctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgICBbdHlwZURhdGVdPVwidHlwZUZvcm1hdCgpXCJcbiAgICAgICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbWluWWVhcl09XCJtaW5ZZWFyKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgICAgW2lzTXVsdGlwbGVdPVwiaXNNdWx0aXBsZSgpXCJcbiAgICAgICAgICAgIFtyZXZlcnNlWWVhcl09XCJyZXZlcnNlWWVhcigpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlVGltZSgpPy50bygpIHx8IHt9XCJcbiAgICAgICAgICAgIFt3aWR0aERyb3Bkb3duXT1cIndpZHRoRHJvcGRvd24oKVwiXG4gICAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgICBbZ2V0SXRlbVllYXJEaXNwbGF5XT1cImdldEl0ZW1ZZWFyRGlzcGxheSgpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8udG8oKVwiXG4gICAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdF09XCInbGlicy11aS1mb250LWg1ciAnICsgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RcIlxuICAgICAgICAgICAgW2lzRW1pdFNlbGVjdGVkRHJvcERvd25dPVwiaXNFbWl0QWZ0ZXJDaGFuZ2VkKClcIlxuICAgICAgICAgICAgKG91dFNlbGVjdGVkRGF0YSk9XCJoYW5kbGVyQ2hhbmdlU2VsZWN0ZWRLZXkoJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKGlzRXJyb3JDb21wYXJlRGF0ZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1tZXNzYWdlLWVycm9yIGxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2VWYWxpZENvbXBhcmVUaW1lIHx8ICdpMThuX2ludmFsaWRfZW5kX2RhdGVfc2VsZWN0ZWQnO1xuICAgICAge3sgY29uc3RIdG1sTWVzc2FnZSB8IHRyYW5zbGF0ZTogdmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtc0NvbXBhcmVUaW1lIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFVLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS2hHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFVdEYsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxtQkFBbUI7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFlBQVksR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENB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QUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLEVBQUUsR0FBRyxDQUFzQixDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVTLDBCQUEwQixDQUFDLFNBQXFCO1FBQ3hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQzt3R0ExVFUseUNBQXlDOzRGQUF6Qyx5Q0FBeUMscXpLQ3JCdEQsaW5OQXVKQSwyQ0RwSVksZUFBZSw0RkFBRSw4QkFBOEIsNHFCQUFFLHlDQUF5QyxxSEFBRSw2Q0FBNkM7OzRGQUV4SSx5Q0FBeUM7a0JBUnJELFNBQVM7K0JBRUUsc0NBQXNDLGNBRXBDLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSx5Q0FBeUMsRUFBRSw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTGFiZWwsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGFiZWwnO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcGFyZURhdGUgfSBmcm9tICcuL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9kYXRlLWRyb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJRGF0ZURyb3Bkb3duRGlzYWJsZUtleXMsIElGcm9tQW5kVG9EYXRlTGFiZWwsIElIaWRkZW5EYXRlLCBUWVBFX0RBVEVfRFJPUERPV05fRk9STUFULCBUWVBFX0RBVEVfRk9STUFUIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2RhdGUtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElFbWl0TXVsdGlEYXRlRHJvcGRvd24sIElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2VtaXQtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCwgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gJy4vaW50ZXJmYWNlcy9mdW5jdGlvbnMtY29udHJvbC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVZhbGlkRGF0ZURyb3Bkb3duIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2l0ZW0vaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50LCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZSwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25JdGVtQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByb3RlY3RlZCB3aWR0aCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgd2lkdGhFbGVtZW50ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHdpZHRoTGFiZWwgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbEZyb20gPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgcHJvdGVjdGVkIHdpZHRoTGFiZWxUbyA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgaXNFcnJvckNvbXBhcmVEYXRlID0gc2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBjaG9vc2VEYXRlID0gc2lnbmFsPElFbWl0TXVsdGlEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQ+KHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfSk7XG4gIHByb3RlY3RlZCBpc1Jlc3BvbnNpdmUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGFycmF5Rm9ybWF0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnR5cGVGb3JtYXQoKS5zcGxpdCgnLScpIGFzIEFycmF5PFRZUEVfREFURV9GT1JNQVQ+O1xuICB9KTtcbiAgcHJvdGVjdGVkIGNoYW5nZVR5cGUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlV2lkdGhMYWJlbCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGltZU91dCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbnNDb250cm9sID0gbmV3IE1hcDxzdHJpbmcsIElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBsYWJlbENvbmZpZyA9IGlucHV0PElMYWJlbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgd2lkdGhEcm9wZG93biA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMzYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEzNiB9KTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEyMDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEyMDAgfSk7XG4gIHJlYWRvbmx5IG1heFllYXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBtaW5ZZWFyID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgbWluV2lkdGggPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpc011bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSByZXZlcnNlWWVhciA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzQm9yZGVyRXJyb3IgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlnbm9yZVdpZHRoMTAwID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB3aWR0aEJ5RWxlbWVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlzYWJsZVNlY29uZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdHlwZUZvcm1hdCA9IGlucHV0PFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQ+KCdtb250aC1kYXknLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAnbW9udGgtZGF5JyB9KTtcbiAgcmVhZG9ubHkgZnJvbUFuZFRvRGF0ZUxhYmVsID0gaW5wdXQ8SUZyb21BbmRUb0RhdGVMYWJlbD4oeyBmcm9tOiAnaTE4bl9sYWJlbF9mcm9tJywgdG86ICdpMThuX3RvJyB9KTtcbiAgcmVhZG9ubHkgbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzZWxlY3RlZERhdGVUaW1lID0gaW5wdXQ8SUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFbWl0QWZ0ZXJDaGFuZ2VkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpOyAvLyBkw7luZyDEkeG7gyBlbWl0IG3hu5dpIGzhuqduIGNo4buNbiBnacOhIHRy4buLIHbDoCBs4bqnbiDEkeG6p3UgaW5pdFxuICByZWFkb25seSBnZXRJdGVtWWVhckRpc3BsYXkgPSBpbnB1dDwoeWVhcjogc3RyaW5nKSA9PiBzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGhpZGRlbkRhdGUgPSBpbnB1dDxJSGlkZGVuRGF0ZSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8eyB5ZWFyPzogbnVtYmVyOyBtb250aD86IG51bWJlcjsgcXVhcnRlcj86IG51bWJlcjsgZGF5PzogbnVtYmVyIH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGxpc3RLZXlzRGlzYWJsZSA9IGlucHV0PElEYXRlRHJvcGRvd25EaXNhYmxlS2V5cyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBpZ25vcmVBbGxvd1RpbWVFcXVhbCA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IHRydWUgfSk7XG4gIHJlYWRvbmx5IGlnbm9yZVZhbGlkVGltZUNvbXBhcmUgPSBpbnB1dDxib29sZWFuLCBib29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gZmFsc2UgfSk7XG4gIHJlYWRvbmx5IGlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaWdub3JlUmVxdWlyZWRWYWx1ZVNlY29uZFdoZW5Ob3RWYWxpZFJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpOyAvLyBjw7MgdmFsaWRhdGUgZ2nDoSB0cuG7iyB0aOG7qSAyIGtoaSB2YWxpZFJlcXVpcmVkIGtow7RuZz9cbiAgcmVhZG9ubHkgdmFsaWRSZXF1aXJlZCA9IGlucHV0PElWYWxpZERhdGVEcm9wZG93bj4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRGdW5jdGlvbnNDb250cm9sID0gb3V0cHV0PElEYXRlRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0ZWREcm9wZG93biA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGVEcm9wZG93biB8IElFbWl0TXVsdGlEYXRlRHJvcGRvd24+KCk7IC8vIGTDuW5nIGNobyB0csaw4budbmcgaOG7o3AgZW1pdCBt4buXaSBt4buZdCBs4bqnbiBjaOG7jW4gZ2nDoSB0cuG7iyBuw6puIGtoaSBz4butIGThu6VuZyBwaOG6o2kgY2hlY2sga8SpIHVuZGVmaW5lZFxuICByZWFkb25seSBvdXRDaG9vc2VNdWx0aURhdGUgPSBvdXRwdXQ8SUVtaXRNdWx0aURhdGVEcm9wZG93bj4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hvb3NlU2luZ2xlRGF0ZSA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGVEcm9wZG93bj4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIC8qIFZJRVcgQ0hJTEQgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXJSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3BhcmVudCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsRnJvbVJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignbGFiZWxGcm9tJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFiZWxUb1JlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignbGFiZWxUbycpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpc011bHRpcGxlID0gdGhpcy5pc011bHRpcGxlKCk7XG5cbiAgICAgIGlmICghaXNNdWx0aXBsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlVHlwZS5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZnVuY3Rpb25zQ29udHJvbC5jbGVhcigpO1xuICAgICAgICB0aW1lcigwKVxuICAgICAgICAgIC5waXBlKClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSZXNwb25zaXZlKCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVR5cGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbnNDb250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVUaW1lKCkpIHtcbiAgICAgIHRoaXMuY2hvb3NlRGF0ZS5zZXQodGhpcy5zZWxlY3RlZERhdGVUaW1lKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5zZXRXaWR0aERhdGUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy53aWR0aExhYmVsLnNldCh1bmRlZmluZWQpO1xuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBGdW5jdGlvbnNDb250cm9sKCk6IElEYXRlRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgcmVzZXRFcnJvcjogdGhpcy5yZXNldEVycm9yLmJpbmQodGhpcyksXG4gICAgICByZXNldFRpbWU6IHRoaXMucmVzZXREcm9wZG93bi5iaW5kKHRoaXMpLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tSZXNwb25zaXZlKCkge1xuICAgIHRoaXMuaXNSZXNwb25zaXZlLnNldChmYWxzZSk7XG4gICAgY29uc3Qgd2lkdGhFbGVtZW50UGFyZW50ID0gdGhpcy5jb250YWluZXJSZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMDtcblxuICAgIHRoaXMud2lkdGhMYWJlbEZyb20uc2V0KHRoaXMubGFiZWxGcm9tUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIHx8IDApO1xuICAgIHRoaXMud2lkdGhMYWJlbFRvLnNldCh0aGlzLmxhYmVsVG9SZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMCk7XG5cbiAgICBjb25zdCBzcGFjZUJldHdlZW5EYXRlID0gdGhpcy5hcnJheUZvcm1hdCgpLmxlbmd0aCAqIDIgKyAodGhpcy5mcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tID8gMSA6IDApO1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aWR0aERyb3Bkb3duKCkgKiA0ICsgOCAqIHNwYWNlQmV0d2VlbkRhdGUgKyB0aGlzLndpZHRoTGFiZWxGcm9tKCkgKyB0aGlzLndpZHRoTGFiZWxUbygpO1xuXG4gICAgaWYgKHdpZHRoRWxlbWVudFBhcmVudCA8IHdpZHRoKSB7XG4gICAgICB0aGlzLmlzUmVzcG9uc2l2ZS5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ2VTZWxlY3RlZEtleShldmVudDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24sIHR5cGU6ICdmcm9tJyB8ICd0bycpIHtcbiAgICB0aGlzLmNob29zZURhdGUudXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICBjdXJyZW50W3R5cGVdLnNldChldmVudCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmlzRW1pdEFmdGVyQ2hhbmdlZCgpKSB7XG4gICAgICBjb25zdCBkYXRhRW1pdCA9IHRoaXMuaXNNdWx0aXBsZSgpID8gdGhpcy5jaG9vc2VEYXRlKCkgOiB0aGlzLmNob29zZURhdGUoKT8uZnJvbSgpO1xuXG4gICAgICBpZiAoZGF0YUVtaXQpIHtcbiAgICAgICAgdGhpcy5vdXRTZWxlY3RlZERyb3Bkb3duLmVtaXQoZGF0YUVtaXQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFwcGx5RGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXNldERyb3Bkb3duKCkge1xuICAgIHRoaXMuZnVuY3Rpb25zQ29udHJvbC5mb3JFYWNoKChjb250cm9sKSA9PiBjb250cm9sLnJlc2V0RHJvcGRvd24oKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RXJyb3IoKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wucmVzZXRFcnJvcigpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkdGhEYXRlKCkge1xuICAgIGlmICghdGhpcy5jb250YWluZXJSZWYoKT8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aW1lcigwKVxuICAgICAgLnBpcGUoKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tSZXNwb25zaXZlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50LCB0eXBlOiAnZnJvbScgfCAndG8nKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLnNldCh0eXBlLCBldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY2hlY2tWYWxpZCgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgZm9yIChjb25zdCBjb250cm9sIG9mIHRoaXMuZnVuY3Rpb25zQ29udHJvbC52YWx1ZXMoKSkge1xuICAgICAgaWYgKCEoYXdhaXQgY29udHJvbC5jaGVja0lzVmFsaWQoKSkpIHtcbiAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY29tcGFyZURhdGUoKSkge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH1cblxuICBwcml2YXRlIHNldEVycm9yKGVycm9yOiBib29sZWFuKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wuc2V0RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZURhdGUoKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG4gICAgY29uc3QgZGF0ZUNvbXBhcmU6IEFycmF5PHsgZnJvbTogbnVtYmVyIHwgdW5kZWZpbmVkOyB0bzogbnVtYmVyIHwgdW5kZWZpbmVkIH0+ID0gW107XG5cbiAgICB0eXBlLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLmNob29zZURhdGUoKT8uZnJvbSgpW2l0ZW1dO1xuICAgICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG8oKVtpdGVtXTtcblxuICAgICAgZGF0ZUNvbXBhcmUucHVzaCh7IGZyb206IGZyb20sIHRvOiB0byB9KTtcbiAgICB9KTtcbiAgICBpZiAodGhpcy5pZ25vcmVWYWxpZFRpbWVDb21wYXJlKCkgfHwgIXRoaXMuY2hlY2tDb25kaXRpb24odHJ1ZSkpIHtcbiAgICAgIHRoaXMuaXNFcnJvckNvbXBhcmVEYXRlLnNldChmYWxzZSk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKENvbXBhcmVEYXRlKGRhdGVDb21wYXJlLCB0aGlzLmlnbm9yZUFsbG93VGltZUVxdWFsKCkpKSB7XG4gICAgICB0aGlzLnNldEVycm9yKHRydWUpO1xuICAgICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KHRydWUpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGUoKSB7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy52YWxpZFJlcXVpcmVkKCkpIHtcbiAgICAgIGlmICghdGhpcy5jaGVja0NvbmRpdGlvbihmYWxzZSkgJiYgIXRoaXMuaWdub3JlUmVxdWlyZWRWYWx1ZVNlY29uZFdoZW5Ob3RWYWxpZFJlcXVpcmVkKCkpIHtcbiAgICAgICAgdmFsaWQgPSBhd2FpdCB0aGlzLmNoZWNrVmFsaWQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbGlkO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNoZWNrVmFsaWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDb25kaXRpb24oaGFzVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBsZXQgY2hlY2tWYWx1ZSA9IHRydWU7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG5cbiAgICB0eXBlLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChoYXNWYWx1ZSAmJiAoIXRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV0gfHwgIXRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dKSkge1xuICAgICAgICBjaGVja1ZhbHVlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoIWhhc1ZhbHVlICYmICh0aGlzLmNob29zZURhdGUoKT8uZnJvbSgpW2l0ZW1dIHx8IHRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dKSkge1xuICAgICAgICBjaGVja1ZhbHVlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2hlY2tWYWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBhcHBseURhdGUoKSB7XG4gICAgdGhpcy5zZXRFcnJvcihmYWxzZSk7XG4gICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5pc0NoZWNrRXJyb3JXaGVuU2VsZWN0SXRlbSgpICYmICEoYXdhaXQgdGhpcy52YWxpZGF0ZSgpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmcm9tID0gdGhpcy5jaG9vc2VEYXRlKCk/LmZyb207XG4gICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG87XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVEYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZCA9IHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfTtcblxuICAgICAgdGhpcy5hcnJheUZvcm1hdCgpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIWZyb20/LigpPy5ba2V5XSB8fCAhdG8/LigpPy5ba2V5XSkge1xuICAgICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICAgICAgZGF0YVNlbGVjdGVkLmZyb20udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBOdW1iZXIoZnJvbT8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGFTZWxlY3RlZC50by51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE51bWJlcih0bz8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGFTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLm91dENob29zZU11bHRpRGF0ZS5lbWl0KGRhdGFTZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQgPSB7fTtcblxuICAgIHRoaXMuYXJyYXlGb3JtYXQoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghZnJvbT8uKCk/LltrZXldKSB7XG4gICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhU2VsZWN0ZWQpIHtcbiAgICAgICAgZGF0YVNlbGVjdGVkW2tleV0gPSBOdW1iZXIoZnJvbT8uKCk/LltrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm91dENob29zZVNpbmdsZURhdGUuZW1pdChkYXRhU2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlV2lkdGhMYWJlbCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jYWNoZVdpZHRoTGFiZWwuc2V0KHdpZHRoIDwgKHRoaXMuY2FjaGVXaWR0aExhYmVsKCkgfHwgMCkgPyB0aGlzLmNhY2hlV2lkdGhMYWJlbCgpIDogTWF0aC5jZWlsKHdpZHRoKSk7XG4gICAgaWYgKHRoaXMudGltZU91dCgpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2lkdGhMYWJlbC5zZXQodGhpcy5jYWNoZVdpZHRoTGFiZWwoKSk7XG4gICAgICB9LCAxMDApIGFzIHVua25vd24gYXMgbnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWxcbiAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgW3JlcXVpcmVkXT1cImxhYmVsQ29uZmlnLnJlcXVpcmVkXCJcbiAgICBbZGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ2xhc3NdPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25DbGFzc1wiXG4gICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICBbdG9nZ2xlQWN0aXZlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZUFjdGl2ZVwiXG4gICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgIFtpY29uUG9wb3ZlckNsYXNzXT1cImxhYmVsQ29uZmlnLmljb25Qb3BvdmVyQ2xhc3NcIlxuICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbn1cbjxkaXZcbiAgI3BhcmVudFxuICBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnRcIlxuICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgW2NsYXNzLiFjb2x1bW5dPVwiaXNSZXNwb25zaXZlKCkgJiYgaXNNdWx0aXBsZSgpXCI+XG4gIDxkaXZcbiAgICAjY2hpbGRGcm9tXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCJcbiAgICBbY2xhc3Mudy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpICYmICFpc1Jlc3BvbnNpdmUoKVwiXG4gICAgW2NsYXNzLiFtYi1bOHB4XV09XCJpc1Jlc3BvbnNpdmUoKSAmJiBpc011bHRpcGxlKClcIlxuICAgIFtjbGFzcy4hbXItWzhweF1dPVwiIWlzUmVzcG9uc2l2ZSgpICYmIGlzTXVsdGlwbGUoKVwiXG4gICAgW2NsYXNzLnctZnVsbF09XCIoIWlzTXVsdGlwbGUoKSAmJiAhd2lkdGhCeUVsZW1lbnQoKSkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCIhd2lkdGhCeUVsZW1lbnQoKSAmJiBpc011bHRpcGxlKCkgJiYgIWlzUmVzcG9uc2l2ZSgpID8gd2lkdGhEcm9wZG93bigpICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyA4ICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyB3aWR0aExhYmVsRnJvbSgpIDogdW5kZWZpbmVkXCI+XG4gICAgQGlmIChpc011bHRpcGxlKCkgJiYgIWlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpICYmIGZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20pIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtci1bOHB4XSBmbGV4LXNocmluay0wIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImlzUmVzcG9uc2l2ZSgpID8gd2lkdGhMYWJlbCgpIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNsYWJlbEZyb21cbiAgICAgICAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZVxuICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsRnJvbSB8fCAnJyB9fVwiXG4gICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICBAbGV0IGNvbnN0SHRtbEZyb20gPSBmcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tIHx8ICcgJztcbiAgICAgICAgICB7eyBjb25zdEh0bWxGcm9tIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiPlxuICAgICAgQGlmICghY2hhbmdlVHlwZSgpKSB7XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgW3R5cGVEYXRlXT1cInR5cGVGb3JtYXQoKVwiXG4gICAgICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIFttaW5ZZWFyXT1cIm1pblllYXIoKVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGUoKSA/IChpc1Jlc3BvbnNpdmUoKSA/IHRydWUgOiBmYWxzZSkgOiB0cnVlXCJcbiAgICAgICAgICBbcmV2ZXJzZVllYXJdPVwicmV2ZXJzZVllYXIoKVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVUaW1lKCk/LmZyb20oKSB8fCB7fVwiXG4gICAgICAgICAgW3dpZHRoRHJvcGRvd25dPVwid2lkdGhEcm9wZG93bigpXCJcbiAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgW2dldEl0ZW1ZZWFyRGlzcGxheV09XCJnZXRJdGVtWWVhckRpc3BsYXkoKVwiXG4gICAgICAgICAgW2xpc3RNYXhJdGVtU2hvd109XCJsaXN0TWF4SXRlbVNob3coKVwiXG4gICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uZnJvbSgpXCJcbiAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICBbaXNFbWl0U2VsZWN0ZWREcm9wRG93bl09XCJpc0VtaXRBZnRlckNoYW5nZWQoKVwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0XT1cIidsaWJzLXVpLWZvbnQtaDVyICcgKyBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCgpXCJcbiAgICAgICAgICAob3V0U2VsZWN0ZWREYXRhKT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEtleSgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRGdW5jdGlvbkNvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbCgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ1N0YWdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc011bHRpcGxlKCkpIHtcbiAgICA8ZGl2XG4gICAgICAjY2hpbGRUb1xuICAgICAgW2NsYXNzLiF3LVs1MCVdXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwiIXdpZHRoQnlFbGVtZW50KCkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibXItWzhweF0gaC1bMzJweF0gZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpc1Jlc3BvbnNpdmUoKSA/IHdpZHRoTGFiZWwoKSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICBAaWYgKCFpZ25vcmVGcm9tQW5kVG9EYXRlTGFiZWwoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAjbGFiZWxUb1xuICAgICAgICAgICAgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmVcbiAgICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIHRleHQtbm93cmFwIHt7IGZyb21BbmRUb0RhdGVMYWJlbCgpLmNsYXNzTGFiZWxUbyB8fCAnJyB9fVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdlV2lkdGgpPVwiaGFuZGxlckNoYW5nZVdpZHRoTGFiZWwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGxldCBjb25zdEh0bWxUbyA9IGZyb21BbmRUb0RhdGVMYWJlbCgpLnRvIHx8ICcgJztcbiAgICAgICAgICAgIHt7IGNvbnN0SHRtbFRvIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsKCkpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzLiFvcGFjaXR5LVswLjVdXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oNXJcIj5cbiAgICAgICAgICAgIC1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCI+XG4gICAgICAgIEBpZiAoIWNoYW5nZVR5cGUoKSkge1xuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgICAgW2NsYXNzLnctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgICBbdHlwZURhdGVdPVwidHlwZUZvcm1hdCgpXCJcbiAgICAgICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbWluWWVhcl09XCJtaW5ZZWFyKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgICAgW2lzTXVsdGlwbGVdPVwiaXNNdWx0aXBsZSgpXCJcbiAgICAgICAgICAgIFtyZXZlcnNlWWVhcl09XCJyZXZlcnNlWWVhcigpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlVGltZSgpPy50bygpIHx8IHt9XCJcbiAgICAgICAgICAgIFt3aWR0aERyb3Bkb3duXT1cIndpZHRoRHJvcGRvd24oKVwiXG4gICAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgICBbZ2V0SXRlbVllYXJEaXNwbGF5XT1cImdldEl0ZW1ZZWFyRGlzcGxheSgpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8udG8oKVwiXG4gICAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdF09XCInbGlicy11aS1mb250LWg1ciAnICsgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RcIlxuICAgICAgICAgICAgW2lzRW1pdFNlbGVjdGVkRHJvcERvd25dPVwiaXNFbWl0QWZ0ZXJDaGFuZ2VkKClcIlxuICAgICAgICAgICAgKG91dFNlbGVjdGVkRGF0YSk9XCJoYW5kbGVyQ2hhbmdlU2VsZWN0ZWRLZXkoJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKGlzRXJyb3JDb21wYXJlRGF0ZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1tZXNzYWdlLWVycm9yIGxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2VWYWxpZENvbXBhcmVUaW1lIHx8ICdpMThuX2ludmFsaWRfZW5kX2RhdGVfc2VsZWN0ZWQnO1xuICAgICAge3sgY29uc3RIdG1sTWVzc2FnZSB8IHRyYW5zbGF0ZTogdmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtc0NvbXBhcmVUaW1lIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -75,7 +75,7 @@ export class LibsUiComponentsDatetimeDropdownItemChildComponent {
|
|
|
75
75
|
if (this.listKeySelected() === event?.key) {
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
if (!event
|
|
78
|
+
if (!event?.key) {
|
|
79
79
|
this.outSelectedKey.emit(undefined);
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{ selector: 'libs_ui-components-datetime-dropdown-item-child', standalone: true, imports: [TranslateModule, LibsUiComponentsDropdownComponent], template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n}\n@if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n @let constHtmlMessage = validRequired()?.message || 'i18n_valid_empty_message';\n <span\n class=\"libs-ui-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n" }]
|
|
123
123
|
}], ctorParameters: () => [] });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pdGVtL2NoaWxkL2NoaWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9kcm9wZG93bi9zcmMvaXRlbS9jaGlsZC9jaGlsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFpRCxpQ0FBaUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWhJLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVU5SixNQUFNLE9BQU8sa0RBQWtEO0lBQzdELG1CQUFtQjtJQUNULHlCQUF5QixHQUFHLE1BQU0sQ0FBaUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsVUFBVSxHQUFHLE1BQU0sQ0FBa0I7UUFDN0MsSUFBSSxFQUFFLE1BQU07UUFDWixrQkFBa0IsRUFBRSxNQUFNLENBQUM7WUFDekIsUUFBUSxFQUFFLElBQUk7WUFDZCx3QkFBd0IsRUFBRSxJQUFJO1NBQy9CLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDTyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVF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bGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRW1pdFNlbGVjdEtleSwgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBJTGlzdENvbmZpZ0l0ZW0gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0R2V0VmFsdWUsIGNvbnZlcnRJdGVtU2VsZWN0ZWREZWZpbmUsIGdldENvbmZpZ0h0dHBSZXF1ZXN0RGV0YWlsRGF0ZSwgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSB9IGZyb20gJy4uLy4uL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUnO1xuaW1wb3J0IHsgVFlQRV9EQVRFX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbS1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRHJvcGRvd25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGh0dHBSZXF1ZXN0RGV0YWlsSXRlbUJ5SWQgPSBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgbGlzdENvbmZpZyA9IHNpZ25hbDxJTGlzdENvbmZpZ0l0ZW0+KHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgfSksXG4gIH0pO1xuICBwcm90ZWN0ZWQgdGV4dE5vU2VsZWN0RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRUZXh0Tm9TZWxlY3REaXNwbGF5LmJpbmQodGhpcykpO1xuICBwcm90ZWN0ZWQgdXNpbmdXaWR0aCA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRXaWR0aC5iaW5kKHRoaXMpKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHR5cGVEYXRlID0gaW5wdXQ8VFlQRV9EQVRFX0ZPUk1BVCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KHllYXI6IHN0cmluZykgPT4gc3RyaW5nPigpO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgbGlzdERhdGEgPSBpbnB1dDxBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4+KFtdKTtcbiAgcmVhZG9ubHkgc2hvd0JvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDYgfSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMDAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMDAwIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBsaXN0S2V5U2VsZWN0ZWQgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXI+KDEzNik7XG4gIHJlYWRvbmx5IGZpcnN0ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGxpc3RLZXlzRGlzYWJsZSA9IGlucHV0PEFycmF5PGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfTtcbiAgfT4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRTZWxlY3RlZEtleSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0RGF0YSA9IHRoaXMubGlzdERhdGEoKTtcblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkLnNldChnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUobGlzdERhdGEpKTtcbiAgICAgICAgdGhpcy5saXN0Q29uZmlnLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICAgIGlmICghY3VycmVudC5odHRwUmVxdWVzdERhdGEpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaHR0cFJlcXVlc3REYXRhID0gc2lnbmFsPElIdHRwUmVxdWVzdENvbmZpZz4oZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50Lmh0dHBSZXF1ZXN0RGF0YS5zZXQoZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIGlmICghY3VycmVudC5jb25maWdUZW1wbGF0ZVRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuY29uZmlnVGVtcGxhdGVUZXh0ID0gc2lnbmFsKHtcbiAgICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICAgIGF1dG9TY3JvbGxUb0l0ZW1TZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50LmNvbmZpZ1RlbXBsYXRlVGV4dC5zZXQoe1xuICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICBnZXRWYWx1ZTogKGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0R2V0VmFsdWUodGhpcy50eXBlRGF0ZSgpIHx8ICdtb250aCcsIGl0ZW0sIHRoaXMudHJhbnNsYXRlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkSXRlbShldmVudD86IElFbWl0U2VsZWN0S2V5KSB7XG4gICAgaWYgKHRoaXMubGlzdEtleVNlbGVjdGVkKCkgPT09IGV2ZW50Py5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFldmVudCB8fCAhZXZlbnQua2V5KSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQodW5kZWZpbmVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQoZXZlbnQua2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ0ZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG4gIHByb3RlY3RlZCBjb252ZXJ0SXRlbVNlbGVjdGVkID0gKGl0ZW06IGFueSkgPT4ge1xuICAgIGlmICghaXRlbSB8fCAhdGhpcy50eXBlRGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW0ubGFiZWxEaXNwbGF5ID0gY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSh0aGlzLnR5cGVEYXRlKCkgPz8gJ21vbnRoJywgaXRlbSwgdGhpcy50cmFuc2xhdGUsIHRoaXMuZ2V0SXRlbVllYXJEaXNwbGF5KCksIHRoaXMuaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCgpKTtcblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBwcml2YXRlIGNvbXB1dGVkVGV4dE5vU2VsZWN0RGlzcGxheSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZURhdGUoKSkge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF9kYXknO1xuXG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfbW9udGgnO1xuXG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF95ZWFyJztcblxuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfcXVhcnRlcic7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbW9udGgnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICBpZiAodGhpcy53aWR0aEJ5RWxlbWVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdCgpID8gYCR7dGhpcy53aWR0aERyb3Bkb3duKCl9cHhgIDogJzEwMCUnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLndpZHRoRHJvcGRvd24oKX1weGA7XG4gIH1cbn1cbiIsIkBpZiAodHlwZURhdGUoKSAmJiBodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKCkpIHtcbiAgPGRpdiBbc3R5bGUud2lkdGhdPVwidXNpbmdXaWR0aCgpXCI+XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1kcm9wZG93blxuICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICBbdGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwidGV4dE5vU2VsZWN0RGlzcGxheSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICBbc2hvd0JvcmRlckVycm9yXT1cInNob3dCb3JkZXJFcnJvcigpXCJcbiAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgW2xpc3RDbGlja0V4YWN0bHldPVwiZmFsc2VcIlxuICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICBbbGFiZWxQb3BvdmVyQ29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSArIDEgfVwiXG4gICAgICBbbGlzdENvbmZpZ109XCJsaXN0Q29uZmlnKClcIlxuICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKVwiXG4gICAgICBbY29udmVydEl0ZW1TZWxlY3RlZF09XCJjb252ZXJ0SXRlbVNlbGVjdGVkXCJcbiAgICAgIFtvbmx5RW1pdERhdGFXaGVuUmVzZXRdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKVwiXG4gICAgICBbaHR0cFJlcXVlc3REZXRhaWxJdGVtQnlJZF09XCJodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKClcIlxuICAgICAgW2xpc3RLZXlTZWxlY3RlZF09XCJsaXN0S2V5U2VsZWN0ZWQoKVwiXG4gICAgICAob3V0U2VsZWN0S2V5KT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEl0ZW0oJGV2ZW50KVwiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIlxuICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICA8L2Rpdj5cbn1cbkBpZiAoaXNFcnJvcigpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIEBsZXQgY29uc3RIdG1sTWVzc2FnZSA9IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCAnaTE4bl92YWxpZF9lbXB0eV9tZXNzYWdlJztcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJsaWJzLXVpLXRleHQtZXJyb3IgbGlicy11aS1mb250LWg3clwiXG4gICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbE1lc3NhZ2UgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNcIj48L3NwYW4+XG4gIDwvZGl2PlxufVxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pdGVtL2NoaWxkL2NoaWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9kcm9wZG93bi9zcmMvaXRlbS9jaGlsZC9jaGlsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFpRCxpQ0FBaUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWhJLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVU5SixNQUFNLE9BQU8sa0RBQWtEO0lBQzdELG1CQUFtQjtJQUNULHlCQUF5QixHQUFHLE1BQU0sQ0FBaUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsVUFBVSxHQUFHLE1BQU0sQ0FBa0I7UUFDN0MsSUFBSSxFQUFFLE1BQU07UUFDWixrQkFBa0IsRUFBRSxNQUFNLENBQUM7WUFDekIsUUFBUSxFQUFFLElBQUk7WUFDZCx3QkFBd0IsRUFBRSxJQUFJO1NBQy9CLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDTyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVF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LElBQUksQ0FBQyxZQUFZLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRTdKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBQ00sMkJBQTJCO1FBQ2pDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8saUJBQWlCLENBQUM7WUFFM0IsS0FBSyxPQUFPO2dCQUNWLE9BQU8sbUJBQW1CLENBQUM7WUFFN0IsS0FBSyxNQUFNO2dCQUNULE9BQU8sa0JBQWtCLENBQUM7WUFFNUIsS0FBSyxTQUFTO2dCQUNaLE9BQU8scUJBQXFCLENBQUM7WUFFL0I7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ3JDLENBQUM7d0dBaElVLGtEQUFrRDs0RkFBbEQsa0RBQWtELDgxRkNqQi9ELG82Q0FnQ0EsMkNEakJZLGVBQWUsNEZBQUUsaUNBQWlDOzs0RkFFakQsa0RBQWtEO2tCQVA5RCxTQUFTOytCQUVFLGlEQUFpRCxjQUUvQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRW1pdFNlbGVjdEtleSwgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBJTGlzdENvbmZpZ0l0ZW0gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0R2V0VmFsdWUsIGNvbnZlcnRJdGVtU2VsZWN0ZWREZWZpbmUsIGdldENvbmZpZ0h0dHBSZXF1ZXN0RGV0YWlsRGF0ZSwgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSB9IGZyb20gJy4uLy4uL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUnO1xuaW1wb3J0IHsgVFlQRV9EQVRFX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbS1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRHJvcGRvd25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGh0dHBSZXF1ZXN0RGV0YWlsSXRlbUJ5SWQgPSBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgbGlzdENvbmZpZyA9IHNpZ25hbDxJTGlzdENvbmZpZ0l0ZW0+KHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgfSksXG4gIH0pO1xuICBwcm90ZWN0ZWQgdGV4dE5vU2VsZWN0RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRUZXh0Tm9TZWxlY3REaXNwbGF5LmJpbmQodGhpcykpO1xuICBwcm90ZWN0ZWQgdXNpbmdXaWR0aCA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRXaWR0aC5iaW5kKHRoaXMpKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHR5cGVEYXRlID0gaW5wdXQ8VFlQRV9EQVRFX0ZPUk1BVCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KHllYXI6IHN0cmluZykgPT4gc3RyaW5nPigpO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgbGlzdERhdGEgPSBpbnB1dDxBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4+KFtdKTtcbiAgcmVhZG9ubHkgc2hvd0JvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDYgfSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMDAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMDAwIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBsaXN0S2V5U2VsZWN0ZWQgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXI+KDEzNik7XG4gIHJlYWRvbmx5IGZpcnN0ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGxpc3RLZXlzRGlzYWJsZSA9IGlucHV0PEFycmF5PGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfTtcbiAgfT4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRTZWxlY3RlZEtleSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0RGF0YSA9IHRoaXMubGlzdERhdGEoKTtcblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkLnNldChnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUobGlzdERhdGEpKTtcbiAgICAgICAgdGhpcy5saXN0Q29uZmlnLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICAgIGlmICghY3VycmVudC5odHRwUmVxdWVzdERhdGEpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaHR0cFJlcXVlc3REYXRhID0gc2lnbmFsPElIdHRwUmVxdWVzdENvbmZpZz4oZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50Lmh0dHBSZXF1ZXN0RGF0YS5zZXQoZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIGlmICghY3VycmVudC5jb25maWdUZW1wbGF0ZVRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuY29uZmlnVGVtcGxhdGVUZXh0ID0gc2lnbmFsKHtcbiAgICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICAgIGF1dG9TY3JvbGxUb0l0ZW1TZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50LmNvbmZpZ1RlbXBsYXRlVGV4dC5zZXQoe1xuICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICBnZXRWYWx1ZTogKGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0R2V0VmFsdWUodGhpcy50eXBlRGF0ZSgpIHx8ICdtb250aCcsIGl0ZW0sIHRoaXMudHJhbnNsYXRlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkSXRlbShldmVudD86IElFbWl0U2VsZWN0S2V5KSB7XG4gICAgaWYgKHRoaXMubGlzdEtleVNlbGVjdGVkKCkgPT09IGV2ZW50Py5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFldmVudD8ua2V5KSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQodW5kZWZpbmVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQoZXZlbnQua2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ0ZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG4gIHByb3RlY3RlZCBjb252ZXJ0SXRlbVNlbGVjdGVkID0gKGl0ZW06IGFueSkgPT4ge1xuICAgIGlmICghaXRlbSB8fCAhdGhpcy50eXBlRGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW0ubGFiZWxEaXNwbGF5ID0gY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSh0aGlzLnR5cGVEYXRlKCkgPz8gJ21vbnRoJywgaXRlbSwgdGhpcy50cmFuc2xhdGUsIHRoaXMuZ2V0SXRlbVllYXJEaXNwbGF5KCksIHRoaXMuaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCgpKTtcblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBwcml2YXRlIGNvbXB1dGVkVGV4dE5vU2VsZWN0RGlzcGxheSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZURhdGUoKSkge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF9kYXknO1xuXG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfbW9udGgnO1xuXG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF95ZWFyJztcblxuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfcXVhcnRlcic7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbW9udGgnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICBpZiAodGhpcy53aWR0aEJ5RWxlbWVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdCgpID8gYCR7dGhpcy53aWR0aERyb3Bkb3duKCl9cHhgIDogJzEwMCUnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLndpZHRoRHJvcGRvd24oKX1weGA7XG4gIH1cbn1cbiIsIkBpZiAodHlwZURhdGUoKSAmJiBodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKCkpIHtcbiAgPGRpdiBbc3R5bGUud2lkdGhdPVwidXNpbmdXaWR0aCgpXCI+XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1kcm9wZG93blxuICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICBbdGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwidGV4dE5vU2VsZWN0RGlzcGxheSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICBbc2hvd0JvcmRlckVycm9yXT1cInNob3dCb3JkZXJFcnJvcigpXCJcbiAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgW2xpc3RDbGlja0V4YWN0bHldPVwiZmFsc2VcIlxuICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICBbbGFiZWxQb3BvdmVyQ29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSArIDEgfVwiXG4gICAgICBbbGlzdENvbmZpZ109XCJsaXN0Q29uZmlnKClcIlxuICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKVwiXG4gICAgICBbY29udmVydEl0ZW1TZWxlY3RlZF09XCJjb252ZXJ0SXRlbVNlbGVjdGVkXCJcbiAgICAgIFtvbmx5RW1pdERhdGFXaGVuUmVzZXRdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKVwiXG4gICAgICBbaHR0cFJlcXVlc3REZXRhaWxJdGVtQnlJZF09XCJodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKClcIlxuICAgICAgW2xpc3RLZXlTZWxlY3RlZF09XCJsaXN0S2V5U2VsZWN0ZWQoKVwiXG4gICAgICAob3V0U2VsZWN0S2V5KT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEl0ZW0oJGV2ZW50KVwiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIlxuICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICA8L2Rpdj5cbn1cbkBpZiAoaXNFcnJvcigpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIEBsZXQgY29uc3RIdG1sTWVzc2FnZSA9IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCAnaTE4bl92YWxpZF9lbXB0eV9tZXNzYWdlJztcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJsaWJzLXVpLXRleHQtZXJyb3IgbGlicy11aS1mb250LWg3clwiXG4gICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbE1lc3NhZ2UgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNcIj48L3NwYW4+XG4gIDwvZGl2PlxufVxuIl19
|