@rivet-health/design-system 19.5.2 → 19.5.3
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/esm2020/lib/input/date-range/date-range.component.mjs +2 -2
- package/fesm2015/rivet-health-design-system.mjs +1 -1
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +1 -1
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -134,7 +134,7 @@ export class DateRangeComponent extends InputLabelComponent {
|
|
|
134
134
|
return [first, last];
|
|
135
135
|
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
136
136
|
this.userInteracted$ = merge(this.userSelectedDate$, this.userSelectedPreset$);
|
|
137
|
-
this.valueChange = this.selectedValue$.pipe(skipUntil(this.userInteracted
|
|
137
|
+
this.valueChange = this.selectedValue$.pipe(skipUntil(merge(this.userInteracted$, this.selectedValue$.pipe(filter(v => v !== undefined)))), filter((v) => !(v instanceof Date)), distinctUntilChanged((previous, current) => previous?.[0].valueOf() === current?.[0].valueOf() &&
|
|
138
138
|
previous?.[1].valueOf() === current?.[1].valueOf()), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
139
139
|
this.displayValue$ = this.valueChange.pipe(map(v => {
|
|
140
140
|
if (v) {
|
|
@@ -467,4 +467,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
467
467
|
},
|
|
468
468
|
]);
|
|
469
469
|
})(DateRangeComponent || (DateRangeComponent = {}));
|
|
470
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9pbnB1dC9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0UsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFDakYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsQ0FBQztBQUV4Qyw2RUFBNkU7QUFDN0UsMkJBQTJCO0FBTzNCLE1BQU0sT0FBTyxr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QztJQUlXLGdDQUFhLEdBQUcscUJBQXFCLENBQUMsYUFBYSxDQUFDO1FBQy9EO1lBQ0UsT0FBTyxFQUFFLG1CQUFBLE9BQU87U0FDakI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLEVBOVBnQixrQkFBa0IsS0FBbEIsa0JBQWtCLFFBOFBsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGltZURheSwgdGltZU1vbnRoLCB0aW1lU3VuZGF5LCB0aW1lV2VlaywgdGltZVllYXIgfSBmcm9tICdkMy10aW1lJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZSxcbiAgc2NhbixcbiAgc2hhcmVSZXBsYXksXG4gIHNraXBVbnRpbCxcbiAgc3RhcnRXaXRoLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJy4uLy4uL2Zvcm1hdC9waXBlcy9kYXRlLnBpcGUnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlIH0gZnJvbSAnLi4vLi4vdXRpbC9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2luZ2xlLXNlbGVjdC9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudCc7XG5jb25zdCB0aW1lUXVhcnRlciA9IHRpbWVNb250aC5ldmVyeSgzKSE7XG5cbi8vIFRPRE86IG9uY2Ugd2UgdXBncmFkZSB0byBBbmd1bGFyIDE2LCB0aGlzIGNvbXBvbmVudCBjYW4gYmUgY2xlYW5lZCB1cCB3aXRoXG4vLyBzaWduYWxzIGluc3RlYWQgb2YgUnhKUy5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1kYXRlLXJhbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZUNvbXBvbmVudCBleHRlbmRzIElucHV0TGFiZWxDb21wb25lbnQge1xuICByZWFkb25seSBUT0RBWSA9IG5ldyBEYXRlKCk7XG4gIHJlYWRvbmx5IFNUT1JBR0VfS0VZID0gJ2RhdGUtcmFuZ2UuZGVmYXVsdCc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzaG93UHJlc2V0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1ByZXNldHModjogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd1ByZXNldHMkLm5leHQodik7XG4gIH1cbiAgZ2V0IHNob3dQcmVzZXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dQcmVzZXRzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgbWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4oQ2FsZW5kYXJDb21wb25lbnQuZGVmYXVsdE1pbik7XG4gIEBJbnB1dCgpXG4gIHNldCBtaW4odjogRGF0ZSkge1xuICAgIHRoaXMubWluJC5uZXh0KHYpO1xuICB9XG4gIGdldCBtaW4oKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMubWluJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgbWF4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4oQ2FsZW5kYXJDb21wb25lbnQuZGVmYXVsdE1heCk7XG4gIEBJbnB1dCgpXG4gIHNldCBtYXgodjogRGF0ZSkge1xuICAgIHRoaXMubWF4JC5uZXh0KHYpO1xuICB9XG4gIGdldCBtYXgoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMubWF4JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHYpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdTZWxlY3QgZGF0ZSByYW5nZS4uLicpO1xuICBASW5wdXQoKVxuICBzZXQgcGxhY2Vob2xkZXIodjogc3RyaW5nKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciQubmV4dCh2KTtcbiAgfVxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodjogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodik7XG4gIH1cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgYWx0ZXJuYXRpdmVQcmVzZXRMaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgRGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldFR5cGVbXVxuICA+KFtdKTtcbiAgQElucHV0KClcbiAgc2V0IGFsdGVybmF0aXZlUHJlc2V0TGlzdCh2OiBEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0VHlwZVtdKSB7XG4gICAgdGhpcy5hbHRlcm5hdGl2ZVByZXNldExpc3QkLm5leHQodik7XG4gIH1cbiAgZ2V0IGFsdGVybmF0aXZlUHJlc2V0TGlzdCgpOiBEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5hbHRlcm5hdGl2ZVByZXNldExpc3QkLmdldFZhbHVlKCk7XG4gIH1cblxuICByZWFkb25seSBvcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHVzZXJTZWxlY3RlZFByZXNldCQgPSBuZXcgU3ViamVjdDxEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0PigpO1xuXG4gIHJlYWRvbmx5IHVzZXJTZWxlY3RlZERhdGUkID0gbmV3IFN1YmplY3Q8RGF0ZSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZSQ6IE9ic2VydmFibGU8RGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZD4gPSBtZXJnZShcbiAgICB0aGlzLnZhbHVlJCxcbiAgICB0aGlzLnVzZXJTZWxlY3RlZERhdGUkLnBpcGUoXG4gICAgICBzY2FuKFxuICAgICAgICAocHJldmlvdXM6IERhdGUgfCBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQsIGRhdGU6IERhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXMgaW5zdGFuY2VvZiBEYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkgPj0gcHJldmlvdXMudmFsdWVPZigpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhaXI6IFtEYXRlLCBEYXRlXSA9IFtwcmV2aW91cywgZGF0ZV07XG4gICAgICAgICAgICAgIHJldHVybiBwYWlyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgKSxcbiAgICB0aGlzLnVzZXJTZWxlY3RlZFByZXNldCQucGlwZShtYXAocHJlc2V0ID0+IHByZXNldC5kYXRlcykpLFxuICApLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSk7XG5cbiAgcmVhZG9ubHkgcHJlc2V0RmlsdGVyUXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHJlYWRvbmx5IGZpbHRlcmVkUHJlc2V0T3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnByZXNldEZpbHRlclF1ZXJ5JCxcbiAgICB0aGlzLm1pbiQsXG4gICAgdGhpcy5tYXgkLFxuICAgIHRoaXMuYWx0ZXJuYXRpdmVQcmVzZXRMaXN0JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtxdWVyeSwgbWluLCBtYXgsIGFsdGVybmF0aXZlUHJlc2V0TGlzdF0pID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnNGaWx0ZXJlZE9uU2VhcmNoID0gRGF0ZVJhbmdlQ29tcG9uZW50LmZpbHRlclByZXNldHMocXVlcnkpO1xuICAgICAgY29uc3Qgb3B0aW9uc0ZpbHRlcmVkT25NaW5NYXggPSBvcHRpb25zRmlsdGVyZWRPblNlYXJjaC5tYXAocHJlc2V0cyA9PiAoe1xuICAgICAgICAuLi5wcmVzZXRzLFxuICAgICAgICBvcHRpb25zOiBwcmVzZXRzLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIHAgPT5cbiAgICAgICAgICAgIHAuZGF0ZXNbMF0udmFsdWVPZigpID49IG1pbi52YWx1ZU9mKCkgJiZcbiAgICAgICAgICAgIHAuZGF0ZXNbMV0udmFsdWVPZigpIDw9IG1heC52YWx1ZU9mKCksXG4gICAgICAgICksXG4gICAgICB9KSk7XG4gICAgICBpZiAoYWx0ZXJuYXRpdmVQcmVzZXRMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zRmlsdGVyZWRPbk1pbk1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNGaWx0ZXJlZE9uQWx0ZXJuYXRpdmVQcmVzZXRMaXN0ID1cbiAgICAgICAgICBvcHRpb25zRmlsdGVyZWRPbk1pbk1heC5tYXAocHJlc2V0cyA9PiAoe1xuICAgICAgICAgICAgLi4ucHJlc2V0cyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHByZXNldHMub3B0aW9ucy5maWx0ZXIocCA9PlxuICAgICAgICAgICAgICBhbHRlcm5hdGl2ZVByZXNldExpc3QuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgPERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRUeXBlPnAuaWQsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnNGaWx0ZXJlZE9uQWx0ZXJuYXRpdmVQcmVzZXRMaXN0O1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRQcmVzZXQkOiBPYnNlcnZhYmxlPERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXQgfCBudWxsPiA9XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUkLFxuICAgICAgdGhpcy51c2VyU2VsZWN0ZWRQcmVzZXQkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbc2VsZWN0ZWRWYWx1ZSwgdXNlclNlbGVjdGVkUHJlc2V0XSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRzLmZpbHRlcihcbiAgICAgICAgICAgIHByZXNldCA9PlxuICAgICAgICAgICAgICBwcmVzZXQuZGF0ZXNbMF0udmFsdWVPZigpID09PSBzZWxlY3RlZFZhbHVlWzBdLnZhbHVlT2YoKSAmJlxuICAgICAgICAgICAgICBwcmVzZXQuZGF0ZXNbMV0udmFsdWVPZigpID09PSBzZWxlY3RlZFZhbHVlWzFdLnZhbHVlT2YoKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gU29tZSBkYXRlIHJhbmdlcyBtYXRjaCBtdWx0aXBsZSBwcmVzZXRzLCBlLmcuIG9uIEphbiAxOXRoLCBhXG4gICAgICAgICAgICAvLyBzZWxlY3RlZCBkYXRlIHJhbmdlIG9mIEphbiAxLTE5IHdvdWxkIGNvcnJlc3BvbmQgdG8gXCJ0aGlzIG1vbnRoXG4gICAgICAgICAgICAvLyBzbyBmYXIsXCIgXCJ0aGlzIHF1YXJ0ZXIgc28gZmFyLFwiIGFuZCBcInRoaXMgeWVhciBzbyBmYXIuXCIgV2UnbGxcbiAgICAgICAgICAgIC8vIHVzZSB0aGUgdXNlcidzIG1vc3QgcmVjZW50IG1hbnVhbCBzZWxlY3Rpb24gYXMgYSB0aWUgYnJlYWtlclxuICAgICAgICAgICAgLy8gd2hlcmUgcG9zc2libGUuXG4gICAgICAgICAgICBjb25zdCBtb3N0UmVjZW50ID0gb3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgICBvcHRpb24gPT4gb3B0aW9uLmlkID09PSB1c2VyU2VsZWN0ZWRQcmVzZXQ/LmlkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChtb3N0UmVjZW50KSByZXR1cm4gbW9zdFJlY2VudDtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zWzBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgZmF2b3JpdGVQcmVzZXRJZHMkID0gbmV3IExvY2FsU3RvcmFnZTxzdHJpbmdbXT4oXG4gICAgdGhpcy5TVE9SQUdFX0tFWSxcbiAgICBbXSxcbiAgKTtcblxuICBzZXRGYXZvcml0ZShwcmVzZXQ6IERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXQsIGZhdm9yaXRlOiBib29sZWFuKSB7XG4gICAgY29uc3QgaWRzID0gbmV3IFNldCh0aGlzLmZhdm9yaXRlUHJlc2V0SWRzJC5nZXRWYWx1ZSgpKTtcbiAgICBpZiAoZmF2b3JpdGUpIHtcbiAgICAgIGlkcy5hZGQocHJlc2V0LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWRzLmRlbGV0ZShwcmVzZXQuaWQpO1xuICAgIH1cbiAgICB0aGlzLmZhdm9yaXRlUHJlc2V0SWRzJC5uZXh0KFsuLi5pZHNdKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGZhdm9yaXRlUHJlc2V0cyQ6IE9ic2VydmFibGU8RGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldFtdPiA9XG4gICAgdGhpcy5mYXZvcml0ZVByZXNldElkcyQucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuYWx0ZXJuYXRpdmVQcmVzZXRMaXN0JCksXG4gICAgICBtYXAoKFtpZHMsIGFsdGVybmF0aXZlUHJlc2V0TGlzdF0pID0+IHtcbiAgICAgICAgY29uc3QgZmF2b3JpdGVQcmVzZXRzID0gaWRzXG4gICAgICAgICAgLm1hcChpZCA9PlxuICAgICAgICAgICAgRGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldHMuZmluZChwcmVzZXQgPT4gcHJlc2V0LmlkID09PSBpZCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoKHApOiBwIGlzIERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXQgPT4gcCAhPT0gdW5kZWZpbmVkKTtcblxuICAgICAgICBpZiAoYWx0ZXJuYXRpdmVQcmVzZXRMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZhdm9yaXRlUHJlc2V0cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmYXZvcml0ZXNGaWx0ZXJlZE9uQWx0ZXJuYXRpdmVQcmVzZXRMaXN0ID1cbiAgICAgICAgICAgIGZhdm9yaXRlUHJlc2V0cy5maWx0ZXIocCA9PlxuICAgICAgICAgICAgICBhbHRlcm5hdGl2ZVByZXNldExpc3QuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgPERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRUeXBlPnAuaWQsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYXZvcml0ZXNGaWx0ZXJlZE9uQWx0ZXJuYXRpdmVQcmVzZXRMaXN0O1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcblxuICByZWFkb25seSB1c2VyTGVmdEFjdGl2ZVllYXJNb250aCQgPSBuZXcgU3ViamVjdDxEYXRlPigpO1xuICByZWFkb25seSB1c2VyUmlnaHRBY3RpdmVZZWFyTW9udGgkID0gbmV3IFN1YmplY3Q8RGF0ZT4oKTtcblxuICByZWFkb25seSBsZWZ0TWluJCA9IHRoaXMubWluJC5waXBlKFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG4gIHJlYWRvbmx5IGxlZnRNYXgkID0gdGhpcy5tYXgkLnBpcGUoXG4gICAgbWFwKG1heCA9PiB0aW1lRGF5Lm9mZnNldCh0aW1lTW9udGguZmxvb3IobWF4KSwgLTEpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuICByZWFkb25seSByaWdodE1heCQgPSB0aGlzLm1heCQucGlwZShcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IGxlZnRBY3RpdmVZZWFyTW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5sZWZ0TWF4JCxcbiAgICBtZXJnZShcbiAgICAgIHRoaXMudXNlckxlZnRBY3RpdmVZZWFyTW9udGgkLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aW1lTW9udGguZmxvb3IodGhpcy5UT0RBWSkpLFxuICAgICAgKSxcbiAgICAgIHRoaXMudXNlclNlbGVjdGVkUHJlc2V0JC5waXBlKFxuICAgICAgICBtYXAocHJlc2V0ID0+IHRpbWVNb250aC5mbG9vcihwcmVzZXQuZGF0ZXNbMF0pKSxcbiAgICAgICksXG4gICAgICB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHYpOiB2IGlzIFtEYXRlLCBEYXRlXSA9PiB2ICE9PSB1bmRlZmluZWQpLFxuICAgICAgICBtYXAodiA9PiB0aW1lTW9udGguZmxvb3IodlswXSkpLFxuICAgICAgKSxcbiAgICApLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2xlZnRNYXgsIGxlZnRdKSA9PiB7XG4gICAgICBpZiAobGVmdC52YWx1ZU9mKCkgPj0gbGVmdE1heC52YWx1ZU9mKCkpIHJldHVybiB0aW1lTW9udGguZmxvb3IobGVmdE1heCk7XG4gICAgICBlbHNlIHJldHVybiBsZWZ0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgcmlnaHRBY3RpdmVZZWFyTW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5sZWZ0QWN0aXZlWWVhck1vbnRoJCxcbiAgICBtZXJnZShcbiAgICAgIHRoaXMudXNlclJpZ2h0QWN0aXZlWWVhck1vbnRoJC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGltZU1vbnRoLmNlaWwodGhpcy5UT0RBWSkpLFxuICAgICAgKSxcbiAgICAgIHRoaXMudXNlclNlbGVjdGVkUHJlc2V0JC5waXBlKFxuICAgICAgICBtYXAocHJlc2V0ID0+IHRpbWVNb250aC5mbG9vcihwcmVzZXQuZGF0ZXNbMV0pKSxcbiAgICAgICksXG4gICAgICB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHYpOiB2IGlzIFtEYXRlLCBEYXRlXSA9PiB2ICE9PSB1bmRlZmluZWQpLFxuICAgICAgICBtYXAodiA9PiB0aW1lTW9udGguZmxvb3IodlsxXSkpLFxuICAgICAgKSxcbiAgICApLFxuICAgIHRoaXMucmlnaHRNYXgkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2xlZnQsIHVzZXJSaWdodCwgcmlnaHRNYXgkXSkgPT4ge1xuICAgICAgaWYgKGxlZnQudmFsdWVPZigpID49IHVzZXJSaWdodC52YWx1ZU9mKCkpXG4gICAgICAgIHJldHVybiB0aW1lTW9udGguZmxvb3IodGltZU1vbnRoLm9mZnNldChsZWZ0LCAxKSk7XG4gICAgICBlbHNlIGlmICh1c2VyUmlnaHQudmFsdWVPZigpID49IHJpZ2h0TWF4JC52YWx1ZU9mKCkpXG4gICAgICAgIHJldHVybiB0aW1lTW9udGguZmxvb3IocmlnaHRNYXgkKTtcbiAgICAgIGVsc2UgcmV0dXJuIHVzZXJSaWdodDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHJpZ2h0TWluJCA9IHRoaXMubGVmdEFjdGl2ZVllYXJNb250aCQucGlwZShcbiAgICBtYXAobGVmdCA9PiB0aW1lTW9udGguZmxvb3IodGltZU1vbnRoLm9mZnNldChsZWZ0LCAxKSkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgbGVmdE9taXRSYW5nZSQ6IE9ic2VydmFibGU8W0RhdGUsIERhdGVdPiA9XG4gICAgdGhpcy5yaWdodEFjdGl2ZVllYXJNb250aCQucGlwZShcbiAgICAgIG1hcDxEYXRlLCBbRGF0ZSwgRGF0ZV0+KHJpZ2h0QWN0aXZlWWVhck1vbnRoID0+IHtcbiAgICAgICAgY29uc3QgZmlyc3QgPSB0aW1lTW9udGguZmxvb3IocmlnaHRBY3RpdmVZZWFyTW9udGgpO1xuICAgICAgICBjb25zdCBsYXN0ID0gdGltZURheS5vZmZzZXQoXG4gICAgICAgICAgdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQocmlnaHRBY3RpdmVZZWFyTW9udGgsIDEpKSxcbiAgICAgICAgICAtMSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFtmaXJzdCwgbGFzdF07XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcblxuICByZWFkb25seSB1c2VySW50ZXJhY3RlZCQgPSBtZXJnZShcbiAgICB0aGlzLnVzZXJTZWxlY3RlZERhdGUkLFxuICAgIHRoaXMudXNlclNlbGVjdGVkUHJlc2V0JCxcbiAgKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IE9ic2VydmFibGU8W0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkPiA9XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlJC5waXBlKFxuICAgICAgc2tpcFVudGlsKHRoaXMudXNlckludGVyYWN0ZWQkKSxcbiAgICAgIGZpbHRlcigodik6IHYgaXMgW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkID0+ICEodiBpbnN0YW5jZW9mIERhdGUpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAocHJldmlvdXMsIGN1cnJlbnQpID0+XG4gICAgICAgICAgcHJldmlvdXM/LlswXS52YWx1ZU9mKCkgPT09IGN1cnJlbnQ/LlswXS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICBwcmV2aW91cz8uWzFdLnZhbHVlT2YoKSA9PT0gY3VycmVudD8uWzFdLnZhbHVlT2YoKSxcbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAodiA9PiB7XG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgcmV0dXJuIHYubWFwKGRhdGUgPT4gbmV3IERhdGVQaXBlKCkudHJhbnNmb3JtKGRhdGUpKS5qb2luKCcg4oCUICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBEYXRlUmFuZ2VDb21wb25lbnQge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG5cbiAgZXhwb3J0IGVudW0gUHJlc2V0VHlwZSB7XG4gICAgVE9EQVkgPSAndG9kYXknLFxuICAgIFlFU1RFUkRBWSA9ICd5ZXN0ZXJkYXknLFxuICAgIFRPTU9SUk9XID0gJ3RvbW9ycm93JyxcbiAgICBUSElTX1dFRUsgPSAndGhpc193ZWVrJyxcbiAgICBUSElTX1dFRUtfU09fRkFSID0gJ3RoaXNfd2Vla19zb19mYXInLFxuICAgIExBU1RfV0VFSyA9ICdsYXN0X3dlZWsnLFxuICAgIE5FWFRfV0VFSyA9ICduZXh0X3dlZWsnLFxuICAgIFRISVNfTU9OVEggPSAndGhpc19tb250aCcsXG4gICAgVEhJU19NT05USF9TT19GQVIgPSAndGhpc19tb250aF9zb19mYXInLFxuICAgIExBU1RfTU9OVEggPSAnbGFzdF9tb250aCcsXG4gICAgTkVYVF9NT05USCA9ICduZXh0X21vbnRoJyxcbiAgICBUSElTX1FVQVJURVIgPSAndGhpc19xdWFydGVyJyxcbiAgICBUSElTX1FVQVJURVJfU09fRkFSID0gJ3RoaXNfcXVhcnRlcl9zb19mYXInLFxuICAgIExBU1RfUVVBUlRFUiA9ICdsYXN0X3F1YXJ0ZXInLFxuICAgIE5FWFRfUVVBUlRFUiA9ICduZXh0X3F1YXJ0ZXInLFxuICAgIFRISVNfWUVBUiA9ICd0aGlzX3llYXInLFxuICAgIFRISVNfWUVBUl9TT19GQVIgPSAndGhpc195ZWFyX3NvX2ZhcicsXG4gICAgTEFTVF9ZRUFSID0gJ2xhc3RfeWVhcicsXG4gICAgTkVYVF9ZRUFSID0gJ25leHRfeWVhcicsXG4gICAgTEFTVF83X0RBWVMgPSAnbGFzdF83X2RheXMnLFxuICAgIExBU1RfMTRfREFZUyA9ICdsYXN0XzE0X2RheXMnLFxuICAgIExBU1RfMzBfREFZUyA9ICdsYXN0XzMwX2RheXMnLFxuICAgIExBU1RfNjBfREFZUyA9ICdsYXN0XzYwX2RheXMnLFxuICAgIExBU1RfOTBfREFZUyA9ICdsYXN0XzkwX2RheXMnLFxuICAgIExBU1RfMTgwX0RBWVMgPSAnbGFzdF8xODBfZGF5cycsXG4gICAgTEFTVF8zNjVfREFZUyA9ICdsYXN0XzM2NV9kYXlzJyxcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBQcmVzZXRzOiAoU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk9wdGlvbiAmIHtcbiAgICBkYXRlczogW0RhdGUsIERhdGVdO1xuICB9KVtdID0gW1xuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRPREFZLFxuICAgICAgdGl0bGU6ICdUb2RheScsXG4gICAgICBzdWJ0aXRsZTogJ1RvZGF5IGZyb20gbWlkbmlnaHQgdW50aWwgdGhlIGN1cnJlbnQgdGltZScsXG4gICAgICBkYXRlczogW3RpbWVEYXkoKSwgdGltZURheSgpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLllFU1RFUkRBWSxcbiAgICAgIHRpdGxlOiAnWWVzdGVyZGF5JyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIHByZXZpb3VzIDI0IGhvdXIgZGF5JyxcbiAgICAgIGRhdGVzOiBbdGltZURheS5vZmZzZXQodGltZURheSgpLCAtMSksIHRpbWVEYXkub2Zmc2V0KHRpbWVEYXkoKSwgLTEpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRPTU9SUk9XLFxuICAgICAgdGl0bGU6ICdUb21vcnJvdycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBuZXh0IDI0IGhvdXIgZGF5JyxcbiAgICAgIGRhdGVzOiBbdGltZURheS5vZmZzZXQodGltZURheSgpLCAxKSwgdGltZURheS5vZmZzZXQodGltZURheSgpLCAxKV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1dFRUssXG4gICAgICB0aXRsZTogJ1RoaXMgd2VlaycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBjdXJyZW50IGNhbGVuZGFyIHdlZWsnLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVN1bmRheS5mbG9vcih0b2RheSksXG4gICAgICAgIHRpbWVEYXkub2Zmc2V0KHRpbWVTdW5kYXkuY2VpbCh0b2RheSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1dFRUtfU09fRkFSLFxuICAgICAgdGl0bGU6ICdUaGlzIHdlZWsgc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgd2VlayB1cCB0byBub3cnLFxuICAgICAgZGF0ZXM6IFt0aW1lU3VuZGF5LmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9XRUVLLFxuICAgICAgdGl0bGU6ICdMYXN0IHdlZWsnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgY2FsZW5kYXIgd2VlaycsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVN1bmRheS5vZmZzZXQodGltZVdlZWsuY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfV0VFSyxcbiAgICAgIHRpdGxlOiAnTmV4dCB3ZWVrJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIG5leHQgY2FsZW5kYXIgd2VlaycsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5mbG9vcih0b2RheSksIDEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5jZWlsKHRvZGF5KSwgMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX01PTlRILFxuICAgICAgdGl0bGU6ICdUaGlzIG1vbnRoJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgbW9udGgnLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZU1vbnRoLmZsb29yKHRvZGF5KSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZU1vbnRoLmNlaWwodG9kYXkpLCAtMSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuVEhJU19NT05USF9TT19GQVIsXG4gICAgICB0aXRsZTogJ1RoaXMgbW9udGggc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgbW9udGggdXAgdG8gbm93JyxcbiAgICAgIGRhdGVzOiBbdGltZU1vbnRoLmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9NT05USCxcbiAgICAgIHRpdGxlOiAnTGFzdCBtb250aCcsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyBjYWxlbmRhciBtb250aCcsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZU1vbnRoLm9mZnNldCh0aW1lTW9udGguY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfTU9OVEgsXG4gICAgICB0aXRsZTogJ05leHQgbW9udGgnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgbmV4dCBjYWxlbmRhciBtb250aCcsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5mbG9vcih0b2RheSksIDEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5jZWlsKHRvZGF5KSwgMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1FVQVJURVIsXG4gICAgICB0aXRsZTogJ1RoaXMgcXVhcnRlcicsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBjdXJyZW50IHF1YXJ0ZXInLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVF1YXJ0ZXIuZmxvb3IodG9kYXkpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lUXVhcnRlci5jZWlsKHRvZGF5KSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRISVNfUVVBUlRFUl9TT19GQVIsXG4gICAgICB0aXRsZTogJ1RoaXMgcXVhcnRlciBzbyBmYXInLFxuICAgICAgc3VidGl0bGU6ICdUaGUgY3VycmVudCBxdWFydGVyIHVwIHRvIG5vdycsXG4gICAgICBkYXRlczogW3RpbWVRdWFydGVyLmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9RVUFSVEVSLFxuICAgICAgdGl0bGU6ICdMYXN0IHF1YXJ0ZXInLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgZnVsbCBxdWFydGVyJyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVRdWFydGVyLm9mZnNldCh0aW1lUXVhcnRlci5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVF1YXJ0ZXIub2Zmc2V0KHRpbWVRdWFydGVyLmNlaWwodG9kYXkpLCAtMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5ORVhUX1FVQVJURVIsXG4gICAgICB0aXRsZTogJ05leHQgcXVhcnRlcicsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBuZXh0IGZ1bGwgcXVhcnRlcicsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lUXVhcnRlci5vZmZzZXQodGltZVF1YXJ0ZXIuZmxvb3IodG9kYXkpLCAxKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVF1YXJ0ZXIub2Zmc2V0KHRpbWVRdWFydGVyLmNlaWwodG9kYXkpLCAxKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRISVNfWUVBUixcbiAgICAgIHRpdGxlOiAnVGhpcyB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhcicsXG4gICAgICBkYXRlczogW3RpbWVZZWFyLmZsb29yKHRvZGF5KSwgdGltZURheS5vZmZzZXQodGltZVllYXIuY2VpbCh0b2RheSksIC0xKV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1lFQVJfU09fRkFSLFxuICAgICAgdGl0bGU6ICdUaGlzIHllYXIgc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhciB1cCB0byBub3cnLFxuICAgICAgZGF0ZXM6IFt0aW1lWWVhci5mbG9vcih0b2RheSksIHRpbWVEYXkuZmxvb3IodG9kYXkpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfWUVBUixcbiAgICAgIHRpdGxlOiAnTGFzdCB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIHByZXZpb3VzIGNhbGVuZGFyIHllYXInLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVllYXIub2Zmc2V0KHRpbWVZZWFyLmZsb29yKHRvZGF5KSwgLTEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lWWVhci5vZmZzZXQodGltZVllYXIuY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfWUVBUixcbiAgICAgIHRpdGxlOiAnTmV4dCB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIG5leHQgY2FsZW5kYXIgeWVhcicsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lWWVhci5vZmZzZXQodGltZVllYXIuZmxvb3IodG9kYXkpLCAxKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVllYXIub2Zmc2V0KHRpbWVZZWFyLmNlaWwodG9kYXkpLCAxKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfN19EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDcgZGF5cycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyA3IGRheXMgYmVmb3JlIHRvZGF5JyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC04KSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8xNF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDE0IGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMTQgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTE1KSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8zMF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDMwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMzAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTMxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF82MF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDYwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgNjAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTYxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF85MF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDkwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgOTAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTkxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8xODBfREFZUyxcbiAgICAgIHRpdGxlOiAnTGFzdCAxODAgZGF5cycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyAxODAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTE4MSkpLFxuICAgICAgICB0aW1lRGF5LmZsb29yKHRpbWVEYXkub2Zmc2V0KHRvZGF5LCAtMSkpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfMzY1X0RBWVMsXG4gICAgICB0aXRsZTogJ0xhc3QgMzY1IGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMzY1IGRheXMgYmVmb3JlIHRvZGF5JyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0zNjYpKSxcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTEpKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcblxuICBleHBvcnQgdHlwZSBQcmVzZXQgPSAodHlwZW9mIFByZXNldHMpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IGZpbHRlclByZXNldHMgPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0RmlsdGVyU3luYyhbXG4gICAge1xuICAgICAgb3B0aW9uczogUHJlc2V0cyxcbiAgICB9LFxuICBdKTtcbn1cbiIsIjxyaXYtaW5wdXQtbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2hlbHBdPVwiaGVscFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtsYWJlbEFjdGlvblRleHRdPVwibGFiZWxBY3Rpb25UZXh0XCJcbiAgKGxhYmVsQWN0aW9uKT1cImxhYmVsQWN0aW9uLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxidXR0b25cbiAgICAjdHJpZ2dlclxuICAgIGNsYXNzPVwidHJpZ2dlclwiXG4gICAgKGNsaWNrKT1cIm9wZW4kLm5leHQodHJ1ZSlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRpc3BsYXlWYWx1ZSQgfCBhc3luYzsgZWxzZSBwbGFjZWhvbGRlclZhbHVlOyBsZXQgZGlzcGxheVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGRpc3BsYXkgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclZhbHVlPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBwbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyJCB8IGFzeW5jIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJjaGV2cm9uXCI+XG4gICAgICA8cml2LWljb24gW25hbWVdPVwiJ0NhbGVuZGFyJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9yaXYtaW5wdXQtbGFiZWw+XG5cbjxuZy10ZW1wbGF0ZVxuICAjc2VsZlxuICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxmXCJcbiAgbGV0LWlucHV0VmFsdWVcbiAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiAodmFsdWUkIHwgYXN5bmMpIH1cIlxuPlxuICA8cml2LWNhbGxvdXRcbiAgICAqbmdJZj1cIm9wZW4kIHwgYXN5bmNcIlxuICAgIFthbmNob3JdPVwidHJpZ2dlclwiXG4gICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgIFthbGxvd2VkUG9zaXRpb25zXT1cIltcbiAgICAgICd0b3AtbGVmdCcsXG4gICAgICAndG9wLWNlbnRlcicsXG4gICAgICAndG9wLXJpZ2h0JyxcbiAgICAgICdib3R0b20tcmlnaHQnLFxuICAgICAgJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgJ2JvdHRvbS1sZWZ0J1xuICAgIF1cIlxuICAgIFtwcmVmZXJyZWRQb3NpdGlvbl09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgKGNsb3NlKT1cIm9wZW4kLm5leHQoZmFsc2UpOyB1c2VyU2VsZWN0ZWREYXRlJC5uZXh0KGlucHV0VmFsdWUpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1ByZXNldHNcIiBjbGFzcz1cInByZXNldHNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcmVzZXRUcGwgbGV0LW5vZGU9XCJub2RlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjc2VsZlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZlwiXG4gICAgICAgICAgICBsZXQtaXNGYXZvcml0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiAoZmF2b3JpdGVQcmVzZXRJZHMkIHwgYXN5bmMpPy5pbmNsdWRlcyhub2RlLmlkKVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXNldFwiIFtjbGFzcy5mYXZvcml0ZV09XCJpc0Zhdm9yaXRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIm5vZGUudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwibm9kZS50aXRsZUhpZ2hsaWdodEluZGljZXMgfHwgW11cIlxuICAgICAgICAgICAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgICAgICAgICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW3RleHRdPVwibm9kZS5zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICBbaW5kaWNlc109XCJub2RlLnN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyB8fCBbXVwiXG4gICAgICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICBzZXRGYXZvcml0ZShub2RlLCAhaXNGYXZvcml0ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cml2LWljb25cbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImlzRmF2b3JpdGUgPyAnSGVhcnRBY3RpdmUnIDogJ0hlYXJ0J1wiXG4gICAgICAgICAgICAgICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICAgICAgICAgICAgICBbcml2VG9vbHRpcF09XCInTWFyayBhcyBmYXZvcml0ZSdcIlxuICAgICAgICAgICAgICAgID48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxyaXYtc2luZ2xlLXNlbGVjdFxuICAgICAgICAgIFtsYWJlbF09XCInRGF0ZSBwcmVzZXRzJ1wiXG4gICAgICAgICAgW2ZpbHRlcmFiaWxpdHlPcHRpb25zXT1cInsgZW5hYmxlZDogdHJ1ZSwgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nIH1cIlxuICAgICAgICAgIChmaWx0ZXJRdWVyeUNoYW5nZSk9XCJwcmVzZXRGaWx0ZXJRdWVyeSQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICBbZ3JvdXBzXT1cIihmaWx0ZXJlZFByZXNldE9wdGlvbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICBbc2VsZWN0ZWRPcHRpb25dPVwic2VsZWN0ZWRQcmVzZXQkIHwgYXN5bmNcIlxuICAgICAgICAgIChzZWxlY3RlZE9wdGlvbkNoYW5nZSk9XCJ1c2VyU2VsZWN0ZWRQcmVzZXQkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgW25vZGVUZW1wbGF0ZV09XCJwcmVzZXRUcGxcIlxuICAgICAgICA+PC9yaXYtc2luZ2xlLXNlbGVjdD5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI3NlbGZcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxmXCJcbiAgICAgICAgICBsZXQtZmF2b3JpdGVzXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmYXZvcml0ZVByZXNldHMkIHwgYXN5bmMgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cml2LWlucHV0LWxhYmVsICpuZ0lmPVwiZmF2b3JpdGVzLmxlbmd0aFwiIFtsYWJlbF09XCInRmF2b3JpdGVzJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0c1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhdm9yaXRlIG9mIGZhdm9yaXRlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaG9ydGN1dFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoc2VsZWN0ZWRQcmVzZXQkIHwgYXN5bmMpPy5pZCA9PT0gZmF2b3JpdGUuaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ1c2VyU2VsZWN0ZWRQcmVzZXQkLm5leHQoZmF2b3JpdGUpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyBmYXZvcml0ZS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RmF2b3JpdGUoZmF2b3JpdGUsIGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgICBbcml2VG9vbHRpcF09XCInUmVtb3ZlIGZhdm9yaXRlJ1wiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cml2LWljb24gW25hbWVdPVwiJ0hlYXJ0QWN0aXZlJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3Jpdi1pbnB1dC1sYWJlbD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJzXCI+XG4gICAgICAgIDxyaXYtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cImxlZnRcIlxuICAgICAgICAgIFthY3RpdmVZZWFyTW9udGhdPVwiKGxlZnRBY3RpdmVZZWFyTW9udGgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICAoYWN0aXZlWWVhck1vbnRoQ2hhbmdlKT1cInVzZXJMZWZ0QWN0aXZlWWVhck1vbnRoJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgIFtkaXNwbGF5TWluXT1cIihtaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbZGlzcGxheU1heF09XCIobWF4JCB8IGFzeW5jKSB8fCBUT0RBWVwiXG4gICAgICAgICAgW3NlbGVjdGFibGVNaW5dPVwiKGxlZnRNaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1heF09XCIobGVmdE1heCQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIFtvbWl0UmFuZ2VdPVwiKGxlZnRPbWl0UmFuZ2UkIHwgYXN5bmMpIHx8IFtUT0RBWSwgVE9EQVldXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCIoc2VsZWN0ZWRWYWx1ZSQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIChkYXRlU2VsZWN0KT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgID48L3Jpdi1jYWxlbmRhcj5cbiAgICAgICAgPHJpdi1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwicmlnaHRcIlxuICAgICAgICAgIFthY3RpdmVZZWFyTW9udGhdPVwiKHJpZ2h0QWN0aXZlWWVhck1vbnRoJCB8IGFzeW5jKSB8fCBUT0RBWVwiXG4gICAgICAgICAgKGFjdGl2ZVllYXJNb250aENoYW5nZSk9XCJ1c2VyUmlnaHRBY3RpdmVZZWFyTW9udGgkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgW2Rpc3BsYXlNaW5dPVwiKG1pbiQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIFtkaXNwbGF5TWF4XT1cIihtYXgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1pbl09XCIocmlnaHRNaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1heF09XCIocmlnaHRNYXgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCIoc2VsZWN0ZWRWYWx1ZSQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIChkYXRlU2VsZWN0KT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgID48L3Jpdi1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9vdGVyIGNsYXNzPVwiYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgKGNsaWNrKT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQodW5kZWZpbmVkKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBDbGVhclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgIFt2YXJpYW50XT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW4kLm5leHQoZmFsc2UpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIERvbmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L2Rpdj5cbiAgPC9yaXYtY2FsbG91dD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
470
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9pbnB1dC9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0UsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFDakYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsQ0FBQztBQUV4Qyw2RUFBNkU7QUFDN0UsMkJBQTJCO0FBTzNCLE1BQU0sT0FBTyxr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Q0FBQyxDQUFDO2dCQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekM7U0FDRjtLQUNGLENBQUM7SUFJVyxnQ0FBYSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztRQUMvRDtZQUNFLE9BQU8sRUFBRSxtQkFBQSxPQUFPO1NBQ2pCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxFQTlQZ0Isa0JBQWtCLEtBQWxCLGtCQUFrQixRQThQbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRpbWVEYXksIHRpbWVNb250aCwgdGltZVN1bmRheSwgdGltZVdlZWssIHRpbWVZZWFyIH0gZnJvbSAnZDMtdGltZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIHNjYW4sXG4gIHNoYXJlUmVwbGF5LFxuICBza2lwVW50aWwsXG4gIHN0YXJ0V2l0aCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9mb3JtYXQvcGlwZXMvZGF0ZS5waXBlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZSB9IGZyb20gJy4uLy4uL3V0aWwvbG9jYWwtc3RvcmFnZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQnO1xuY29uc3QgdGltZVF1YXJ0ZXIgPSB0aW1lTW9udGguZXZlcnkoMykhO1xuXG4vLyBUT0RPOiBvbmNlIHdlIHVwZ3JhZGUgdG8gQW5ndWxhciAxNiwgdGhpcyBjb21wb25lbnQgY2FuIGJlIGNsZWFuZWQgdXAgd2l0aFxuLy8gc2lnbmFscyBpbnN0ZWFkIG9mIFJ4SlMuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtZGF0ZS1yYW5nZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VDb21wb25lbnQgZXh0ZW5kcyBJbnB1dExhYmVsQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgVE9EQVkgPSBuZXcgRGF0ZSgpO1xuICByZWFkb25seSBTVE9SQUdFX0tFWSA9ICdkYXRlLXJhbmdlLmRlZmF1bHQnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd1ByZXNldHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgQElucHV0KClcbiAgc2V0IHNob3dQcmVzZXRzKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dQcmVzZXRzJC5uZXh0KHYpO1xuICB9XG4gIGdldCBzaG93UHJlc2V0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93UHJlc2V0cyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1pbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KENhbGVuZGFyQ29tcG9uZW50LmRlZmF1bHRNaW4pO1xuICBASW5wdXQoKVxuICBzZXQgbWluKHY6IERhdGUpIHtcbiAgICB0aGlzLm1pbiQubmV4dCh2KTtcbiAgfVxuICBnZXQgbWluKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLm1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KENhbGVuZGFyQ29tcG9uZW50LmRlZmF1bHRNYXgpO1xuICBASW5wdXQoKVxuICBzZXQgbWF4KHY6IERhdGUpIHtcbiAgICB0aGlzLm1heCQubmV4dCh2KTtcbiAgfVxuICBnZXQgbWF4KCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLm1heCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8W0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodjogW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy52YWx1ZSQubmV4dCh2KTtcbiAgfVxuICBnZXQgdmFsdWUoKTogW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignU2VsZWN0IGRhdGUgcmFuZ2UuLi4nKTtcbiAgQElucHV0KClcbiAgc2V0IHBsYWNlaG9sZGVyKHY6IHN0cmluZykge1xuICAgIHRoaXMucGxhY2Vob2xkZXIkLm5leHQodik7XG4gIH1cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIkLmdldFZhbHVlKCk7XG4gIH1cblxuICByZWFkb25seSBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHYpO1xuICB9XG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGFsdGVybmF0aXZlUHJlc2V0TGlzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRUeXBlW11cbiAgPihbXSk7XG4gIEBJbnB1dCgpXG4gIHNldCBhbHRlcm5hdGl2ZVByZXNldExpc3QodjogRGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldFR5cGVbXSkge1xuICAgIHRoaXMuYWx0ZXJuYXRpdmVQcmVzZXRMaXN0JC5uZXh0KHYpO1xuICB9XG4gIGdldCBhbHRlcm5hdGl2ZVByZXNldExpc3QoKTogRGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldFR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWx0ZXJuYXRpdmVQcmVzZXRMaXN0JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgb3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSB1c2VyU2VsZWN0ZWRQcmVzZXQkID0gbmV3IFN1YmplY3Q8RGF0ZVJhbmdlQ29tcG9uZW50LlByZXNldD4oKTtcblxuICByZWFkb25seSB1c2VyU2VsZWN0ZWREYXRlJCA9IG5ldyBTdWJqZWN0PERhdGUgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkVmFsdWUkOiBPYnNlcnZhYmxlPERhdGUgfCBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQ+ID0gbWVyZ2UoXG4gICAgdGhpcy52YWx1ZSQsXG4gICAgdGhpcy51c2VyU2VsZWN0ZWREYXRlJC5waXBlKFxuICAgICAgc2NhbihcbiAgICAgICAgKHByZXZpb3VzOiBEYXRlIHwgW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkLCBkYXRlOiBEYXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgaWYgKHByZXZpb3VzIGluc3RhbmNlb2YgRGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgaWYgKGRhdGUudmFsdWVPZigpID49IHByZXZpb3VzLnZhbHVlT2YoKSkge1xuICAgICAgICAgICAgICBjb25zdCBwYWlyOiBbRGF0ZSwgRGF0ZV0gPSBbcHJldmlvdXMsIGRhdGVdO1xuICAgICAgICAgICAgICByZXR1cm4gcGFpcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICksXG4gICAgdGhpcy51c2VyU2VsZWN0ZWRQcmVzZXQkLnBpcGUobWFwKHByZXNldCA9PiBwcmVzZXQuZGF0ZXMpKSxcbiAgKS5waXBlKHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSkpO1xuXG4gIHJlYWRvbmx5IHByZXNldEZpbHRlclF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICByZWFkb25seSBmaWx0ZXJlZFByZXNldE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wcmVzZXRGaWx0ZXJRdWVyeSQsXG4gICAgdGhpcy5taW4kLFxuICAgIHRoaXMubWF4JCxcbiAgICB0aGlzLmFsdGVybmF0aXZlUHJlc2V0TGlzdCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcXVlcnksIG1pbiwgbWF4LCBhbHRlcm5hdGl2ZVByZXNldExpc3RdKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zRmlsdGVyZWRPblNlYXJjaCA9IERhdGVSYW5nZUNvbXBvbmVudC5maWx0ZXJQcmVzZXRzKHF1ZXJ5KTtcbiAgICAgIGNvbnN0IG9wdGlvbnNGaWx0ZXJlZE9uTWluTWF4ID0gb3B0aW9uc0ZpbHRlcmVkT25TZWFyY2gubWFwKHByZXNldHMgPT4gKHtcbiAgICAgICAgLi4ucHJlc2V0cyxcbiAgICAgICAgb3B0aW9uczogcHJlc2V0cy5vcHRpb25zLmZpbHRlcihcbiAgICAgICAgICBwID0+XG4gICAgICAgICAgICBwLmRhdGVzWzBdLnZhbHVlT2YoKSA+PSBtaW4udmFsdWVPZigpICYmXG4gICAgICAgICAgICBwLmRhdGVzWzFdLnZhbHVlT2YoKSA8PSBtYXgudmFsdWVPZigpLFxuICAgICAgICApLFxuICAgICAgfSkpO1xuICAgICAgaWYgKGFsdGVybmF0aXZlUHJlc2V0TGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICByZXR1cm4gb3B0aW9uc0ZpbHRlcmVkT25NaW5NYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBvcHRpb25zRmlsdGVyZWRPbkFsdGVybmF0aXZlUHJlc2V0TGlzdCA9XG4gICAgICAgICAgb3B0aW9uc0ZpbHRlcmVkT25NaW5NYXgubWFwKHByZXNldHMgPT4gKHtcbiAgICAgICAgICAgIC4uLnByZXNldHMsXG4gICAgICAgICAgICBvcHRpb25zOiBwcmVzZXRzLm9wdGlvbnMuZmlsdGVyKHAgPT5cbiAgICAgICAgICAgICAgYWx0ZXJuYXRpdmVQcmVzZXRMaXN0LmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIDxEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0VHlwZT5wLmlkLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBvcHRpb25zRmlsdGVyZWRPbkFsdGVybmF0aXZlUHJlc2V0TGlzdDtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkUHJlc2V0JDogT2JzZXJ2YWJsZTxEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0IHwgbnVsbD4gPVxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlJCxcbiAgICAgIHRoaXMudXNlclNlbGVjdGVkUHJlc2V0JC5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3NlbGVjdGVkVmFsdWUsIHVzZXJTZWxlY3RlZFByZXNldF0pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkVmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0cy5maWx0ZXIoXG4gICAgICAgICAgICBwcmVzZXQgPT5cbiAgICAgICAgICAgICAgcHJlc2V0LmRhdGVzWzBdLnZhbHVlT2YoKSA9PT0gc2VsZWN0ZWRWYWx1ZVswXS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICAgICAgcHJlc2V0LmRhdGVzWzFdLnZhbHVlT2YoKSA9PT0gc2VsZWN0ZWRWYWx1ZVsxXS52YWx1ZU9mKCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIFNvbWUgZGF0ZSByYW5nZXMgbWF0Y2ggbXVsdGlwbGUgcHJlc2V0cywgZS5nLiBvbiBKYW4gMTl0aCwgYVxuICAgICAgICAgICAgLy8gc2VsZWN0ZWQgZGF0ZSByYW5nZSBvZiBKYW4gMS0xOSB3b3VsZCBjb3JyZXNwb25kIHRvIFwidGhpcyBtb250aFxuICAgICAgICAgICAgLy8gc28gZmFyLFwiIFwidGhpcyBxdWFydGVyIHNvIGZhcixcIiBhbmQgXCJ0aGlzIHllYXIgc28gZmFyLlwiIFdlJ2xsXG4gICAgICAgICAgICAvLyB1c2UgdGhlIHVzZXIncyBtb3N0IHJlY2VudCBtYW51YWwgc2VsZWN0aW9uIGFzIGEgdGllIGJyZWFrZXJcbiAgICAgICAgICAgIC8vIHdoZXJlIHBvc3NpYmxlLlxuICAgICAgICAgICAgY29uc3QgbW9zdFJlY2VudCA9IG9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgb3B0aW9uID0+IG9wdGlvbi5pZCA9PT0gdXNlclNlbGVjdGVkUHJlc2V0Py5pZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobW9zdFJlY2VudCkgcmV0dXJuIG1vc3RSZWNlbnQ7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uc1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KSxcbiAgICApO1xuXG4gIHJlYWRvbmx5IGZhdm9yaXRlUHJlc2V0SWRzJCA9IG5ldyBMb2NhbFN0b3JhZ2U8c3RyaW5nW10+KFxuICAgIHRoaXMuU1RPUkFHRV9LRVksXG4gICAgW10sXG4gICk7XG5cbiAgc2V0RmF2b3JpdGUocHJlc2V0OiBEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0LCBmYXZvcml0ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQodGhpcy5mYXZvcml0ZVByZXNldElkcyQuZ2V0VmFsdWUoKSk7XG4gICAgaWYgKGZhdm9yaXRlKSB7XG4gICAgICBpZHMuYWRkKHByZXNldC5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkcy5kZWxldGUocHJlc2V0LmlkKTtcbiAgICB9XG4gICAgdGhpcy5mYXZvcml0ZVByZXNldElkcyQubmV4dChbLi4uaWRzXSk7XG4gIH1cblxuICByZWFkb25seSBmYXZvcml0ZVByZXNldHMkOiBPYnNlcnZhYmxlPERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRbXT4gPVxuICAgIHRoaXMuZmF2b3JpdGVQcmVzZXRJZHMkLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmFsdGVybmF0aXZlUHJlc2V0TGlzdCQpLFxuICAgICAgbWFwKChbaWRzLCBhbHRlcm5hdGl2ZVByZXNldExpc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZhdm9yaXRlUHJlc2V0cyA9IGlkc1xuICAgICAgICAgIC5tYXAoaWQgPT5cbiAgICAgICAgICAgIERhdGVSYW5nZUNvbXBvbmVudC5QcmVzZXRzLmZpbmQocHJlc2V0ID0+IHByZXNldC5pZCA9PT0gaWQpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmlsdGVyKChwKTogcCBpcyBEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0ID0+IHAgIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgaWYgKGFsdGVybmF0aXZlUHJlc2V0TGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgIHJldHVybiBmYXZvcml0ZVByZXNldHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmF2b3JpdGVzRmlsdGVyZWRPbkFsdGVybmF0aXZlUHJlc2V0TGlzdCA9XG4gICAgICAgICAgICBmYXZvcml0ZVByZXNldHMuZmlsdGVyKHAgPT5cbiAgICAgICAgICAgICAgYWx0ZXJuYXRpdmVQcmVzZXRMaXN0LmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIDxEYXRlUmFuZ2VDb21wb25lbnQuUHJlc2V0VHlwZT5wLmlkLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmF2b3JpdGVzRmlsdGVyZWRPbkFsdGVybmF0aXZlUHJlc2V0TGlzdDtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgdXNlckxlZnRBY3RpdmVZZWFyTW9udGgkID0gbmV3IFN1YmplY3Q8RGF0ZT4oKTtcbiAgcmVhZG9ubHkgdXNlclJpZ2h0QWN0aXZlWWVhck1vbnRoJCA9IG5ldyBTdWJqZWN0PERhdGU+KCk7XG5cbiAgcmVhZG9ubHkgbGVmdE1pbiQgPSB0aGlzLm1pbiQucGlwZShcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuICByZWFkb25seSBsZWZ0TWF4JCA9IHRoaXMubWF4JC5waXBlKFxuICAgIG1hcChtYXggPT4gdGltZURheS5vZmZzZXQodGltZU1vbnRoLmZsb29yKG1heCksIC0xKSksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcbiAgcmVhZG9ubHkgcmlnaHRNYXgkID0gdGhpcy5tYXgkLnBpcGUoXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcblxuICByZWFkb25seSBsZWZ0QWN0aXZlWWVhck1vbnRoJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubGVmdE1heCQsXG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLnVzZXJMZWZ0QWN0aXZlWWVhck1vbnRoJC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGltZU1vbnRoLmZsb29yKHRoaXMuVE9EQVkpKSxcbiAgICAgICksXG4gICAgICB0aGlzLnVzZXJTZWxlY3RlZFByZXNldCQucGlwZShcbiAgICAgICAgbWFwKHByZXNldCA9PiB0aW1lTW9udGguZmxvb3IocHJlc2V0LmRhdGVzWzBdKSksXG4gICAgICApLFxuICAgICAgdGhpcy52YWx1ZSQucGlwZShcbiAgICAgICAgZmlsdGVyKCh2KTogdiBpcyBbRGF0ZSwgRGF0ZV0gPT4gdiAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgbWFwKHYgPT4gdGltZU1vbnRoLmZsb29yKHZbMF0pKSxcbiAgICAgICksXG4gICAgKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsZWZ0TWF4LCBsZWZ0XSkgPT4ge1xuICAgICAgaWYgKGxlZnQudmFsdWVPZigpID49IGxlZnRNYXgudmFsdWVPZigpKSByZXR1cm4gdGltZU1vbnRoLmZsb29yKGxlZnRNYXgpO1xuICAgICAgZWxzZSByZXR1cm4gbGVmdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHJpZ2h0QWN0aXZlWWVhck1vbnRoJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubGVmdEFjdGl2ZVllYXJNb250aCQsXG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLnVzZXJSaWdodEFjdGl2ZVllYXJNb250aCQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRpbWVNb250aC5jZWlsKHRoaXMuVE9EQVkpKSxcbiAgICAgICksXG4gICAgICB0aGlzLnVzZXJTZWxlY3RlZFByZXNldCQucGlwZShcbiAgICAgICAgbWFwKHByZXNldCA9PiB0aW1lTW9udGguZmxvb3IocHJlc2V0LmRhdGVzWzFdKSksXG4gICAgICApLFxuICAgICAgdGhpcy52YWx1ZSQucGlwZShcbiAgICAgICAgZmlsdGVyKCh2KTogdiBpcyBbRGF0ZSwgRGF0ZV0gPT4gdiAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgbWFwKHYgPT4gdGltZU1vbnRoLmZsb29yKHZbMV0pKSxcbiAgICAgICksXG4gICAgKSxcbiAgICB0aGlzLnJpZ2h0TWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsZWZ0LCB1c2VyUmlnaHQsIHJpZ2h0TWF4JF0pID0+IHtcbiAgICAgIGlmIChsZWZ0LnZhbHVlT2YoKSA+PSB1c2VyUmlnaHQudmFsdWVPZigpKVxuICAgICAgICByZXR1cm4gdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQobGVmdCwgMSkpO1xuICAgICAgZWxzZSBpZiAodXNlclJpZ2h0LnZhbHVlT2YoKSA+PSByaWdodE1heCQudmFsdWVPZigpKVxuICAgICAgICByZXR1cm4gdGltZU1vbnRoLmZsb29yKHJpZ2h0TWF4JCk7XG4gICAgICBlbHNlIHJldHVybiB1c2VyUmlnaHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcblxuICByZWFkb25seSByaWdodE1pbiQgPSB0aGlzLmxlZnRBY3RpdmVZZWFyTW9udGgkLnBpcGUoXG4gICAgbWFwKGxlZnQgPT4gdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQobGVmdCwgMSkpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IGxlZnRPbWl0UmFuZ2UkOiBPYnNlcnZhYmxlPFtEYXRlLCBEYXRlXT4gPVxuICAgIHRoaXMucmlnaHRBY3RpdmVZZWFyTW9udGgkLnBpcGUoXG4gICAgICBtYXA8RGF0ZSwgW0RhdGUsIERhdGVdPihyaWdodEFjdGl2ZVllYXJNb250aCA9PiB7XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gdGltZU1vbnRoLmZsb29yKHJpZ2h0QWN0aXZlWWVhck1vbnRoKTtcbiAgICAgICAgY29uc3QgbGFzdCA9IHRpbWVEYXkub2Zmc2V0KFxuICAgICAgICAgIHRpbWVNb250aC5mbG9vcih0aW1lTW9udGgub2Zmc2V0KHJpZ2h0QWN0aXZlWWVhck1vbnRoLCAxKSksXG4gICAgICAgICAgLTEsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBbZmlyc3QsIGxhc3RdO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgdXNlckludGVyYWN0ZWQkID0gbWVyZ2UoXG4gICAgdGhpcy51c2VyU2VsZWN0ZWREYXRlJCxcbiAgICB0aGlzLnVzZXJTZWxlY3RlZFByZXNldCQsXG4gICk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBPYnNlcnZhYmxlPFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZD4gPVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQucGlwZShcbiAgICAgIHNraXBVbnRpbChcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgdGhpcy51c2VySW50ZXJhY3RlZCQsXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlJC5waXBlKGZpbHRlcih2ID0+IHYgIT09IHVuZGVmaW5lZCkpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIGZpbHRlcigodik6IHYgaXMgW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkID0+ICEodiBpbnN0YW5jZW9mIERhdGUpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAocHJldmlvdXMsIGN1cnJlbnQpID0+XG4gICAgICAgICAgcHJldmlvdXM/LlswXS52YWx1ZU9mKCkgPT09IGN1cnJlbnQ/LlswXS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICBwcmV2aW91cz8uWzFdLnZhbHVlT2YoKSA9PT0gY3VycmVudD8uWzFdLnZhbHVlT2YoKSxcbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAodiA9PiB7XG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgcmV0dXJuIHYubWFwKGRhdGUgPT4gbmV3IERhdGVQaXBlKCkudHJhbnNmb3JtKGRhdGUpKS5qb2luKCcg4oCUICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBEYXRlUmFuZ2VDb21wb25lbnQge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG5cbiAgZXhwb3J0IGVudW0gUHJlc2V0VHlwZSB7XG4gICAgVE9EQVkgPSAndG9kYXknLFxuICAgIFlFU1RFUkRBWSA9ICd5ZXN0ZXJkYXknLFxuICAgIFRPTU9SUk9XID0gJ3RvbW9ycm93JyxcbiAgICBUSElTX1dFRUsgPSAndGhpc193ZWVrJyxcbiAgICBUSElTX1dFRUtfU09fRkFSID0gJ3RoaXNfd2Vla19zb19mYXInLFxuICAgIExBU1RfV0VFSyA9ICdsYXN0X3dlZWsnLFxuICAgIE5FWFRfV0VFSyA9ICduZXh0X3dlZWsnLFxuICAgIFRISVNfTU9OVEggPSAndGhpc19tb250aCcsXG4gICAgVEhJU19NT05USF9TT19GQVIgPSAndGhpc19tb250aF9zb19mYXInLFxuICAgIExBU1RfTU9OVEggPSAnbGFzdF9tb250aCcsXG4gICAgTkVYVF9NT05USCA9ICduZXh0X21vbnRoJyxcbiAgICBUSElTX1FVQVJURVIgPSAndGhpc19xdWFydGVyJyxcbiAgICBUSElTX1FVQVJURVJfU09fRkFSID0gJ3RoaXNfcXVhcnRlcl9zb19mYXInLFxuICAgIExBU1RfUVVBUlRFUiA9ICdsYXN0X3F1YXJ0ZXInLFxuICAgIE5FWFRfUVVBUlRFUiA9ICduZXh0X3F1YXJ0ZXInLFxuICAgIFRISVNfWUVBUiA9ICd0aGlzX3llYXInLFxuICAgIFRISVNfWUVBUl9TT19GQVIgPSAndGhpc195ZWFyX3NvX2ZhcicsXG4gICAgTEFTVF9ZRUFSID0gJ2xhc3RfeWVhcicsXG4gICAgTkVYVF9ZRUFSID0gJ25leHRfeWVhcicsXG4gICAgTEFTVF83X0RBWVMgPSAnbGFzdF83X2RheXMnLFxuICAgIExBU1RfMTRfREFZUyA9ICdsYXN0XzE0X2RheXMnLFxuICAgIExBU1RfMzBfREFZUyA9ICdsYXN0XzMwX2RheXMnLFxuICAgIExBU1RfNjBfREFZUyA9ICdsYXN0XzYwX2RheXMnLFxuICAgIExBU1RfOTBfREFZUyA9ICdsYXN0XzkwX2RheXMnLFxuICAgIExBU1RfMTgwX0RBWVMgPSAnbGFzdF8xODBfZGF5cycsXG4gICAgTEFTVF8zNjVfREFZUyA9ICdsYXN0XzM2NV9kYXlzJyxcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBQcmVzZXRzOiAoU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk9wdGlvbiAmIHtcbiAgICBkYXRlczogW0RhdGUsIERhdGVdO1xuICB9KVtdID0gW1xuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRPREFZLFxuICAgICAgdGl0bGU6ICdUb2RheScsXG4gICAgICBzdWJ0aXRsZTogJ1RvZGF5IGZyb20gbWlkbmlnaHQgdW50aWwgdGhlIGN1cnJlbnQgdGltZScsXG4gICAgICBkYXRlczogW3RpbWVEYXkoKSwgdGltZURheSgpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLllFU1RFUkRBWSxcbiAgICAgIHRpdGxlOiAnWWVzdGVyZGF5JyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIHByZXZpb3VzIDI0IGhvdXIgZGF5JyxcbiAgICAgIGRhdGVzOiBbdGltZURheS5vZmZzZXQodGltZURheSgpLCAtMSksIHRpbWVEYXkub2Zmc2V0KHRpbWVEYXkoKSwgLTEpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRPTU9SUk9XLFxuICAgICAgdGl0bGU6ICdUb21vcnJvdycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBuZXh0IDI0IGhvdXIgZGF5JyxcbiAgICAgIGRhdGVzOiBbdGltZURheS5vZmZzZXQodGltZURheSgpLCAxKSwgdGltZURheS5vZmZzZXQodGltZURheSgpLCAxKV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1dFRUssXG4gICAgICB0aXRsZTogJ1RoaXMgd2VlaycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBjdXJyZW50IGNhbGVuZGFyIHdlZWsnLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVN1bmRheS5mbG9vcih0b2RheSksXG4gICAgICAgIHRpbWVEYXkub2Zmc2V0KHRpbWVTdW5kYXkuY2VpbCh0b2RheSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1dFRUtfU09fRkFSLFxuICAgICAgdGl0bGU6ICdUaGlzIHdlZWsgc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgd2VlayB1cCB0byBub3cnLFxuICAgICAgZGF0ZXM6IFt0aW1lU3VuZGF5LmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9XRUVLLFxuICAgICAgdGl0bGU6ICdMYXN0IHdlZWsnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgY2FsZW5kYXIgd2VlaycsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVN1bmRheS5vZmZzZXQodGltZVdlZWsuY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfV0VFSyxcbiAgICAgIHRpdGxlOiAnTmV4dCB3ZWVrJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIG5leHQgY2FsZW5kYXIgd2VlaycsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5mbG9vcih0b2RheSksIDEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lU3VuZGF5Lm9mZnNldCh0aW1lV2Vlay5jZWlsKHRvZGF5KSwgMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX01PTlRILFxuICAgICAgdGl0bGU6ICdUaGlzIG1vbnRoJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgbW9udGgnLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZU1vbnRoLmZsb29yKHRvZGF5KSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZU1vbnRoLmNlaWwodG9kYXkpLCAtMSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuVEhJU19NT05USF9TT19GQVIsXG4gICAgICB0aXRsZTogJ1RoaXMgbW9udGggc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgbW9udGggdXAgdG8gbm93JyxcbiAgICAgIGRhdGVzOiBbdGltZU1vbnRoLmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9NT05USCxcbiAgICAgIHRpdGxlOiAnTGFzdCBtb250aCcsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyBjYWxlbmRhciBtb250aCcsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZU1vbnRoLm9mZnNldCh0aW1lTW9udGguY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfTU9OVEgsXG4gICAgICB0aXRsZTogJ05leHQgbW9udGgnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgbmV4dCBjYWxlbmRhciBtb250aCcsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5mbG9vcih0b2RheSksIDEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lTW9udGgub2Zmc2V0KHRpbWVNb250aC5jZWlsKHRvZGF5KSwgMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1FVQVJURVIsXG4gICAgICB0aXRsZTogJ1RoaXMgcXVhcnRlcicsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBjdXJyZW50IHF1YXJ0ZXInLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVF1YXJ0ZXIuZmxvb3IodG9kYXkpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lUXVhcnRlci5jZWlsKHRvZGF5KSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRISVNfUVVBUlRFUl9TT19GQVIsXG4gICAgICB0aXRsZTogJ1RoaXMgcXVhcnRlciBzbyBmYXInLFxuICAgICAgc3VidGl0bGU6ICdUaGUgY3VycmVudCBxdWFydGVyIHVwIHRvIG5vdycsXG4gICAgICBkYXRlczogW3RpbWVRdWFydGVyLmZsb29yKHRvZGF5KSwgdGltZURheS5mbG9vcih0b2RheSldLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF9RVUFSVEVSLFxuICAgICAgdGl0bGU6ICdMYXN0IHF1YXJ0ZXInLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgZnVsbCBxdWFydGVyJyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVRdWFydGVyLm9mZnNldCh0aW1lUXVhcnRlci5mbG9vcih0b2RheSksIC0xKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVF1YXJ0ZXIub2Zmc2V0KHRpbWVRdWFydGVyLmNlaWwodG9kYXkpLCAtMSksIC0xKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5ORVhUX1FVQVJURVIsXG4gICAgICB0aXRsZTogJ05leHQgcXVhcnRlcicsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBuZXh0IGZ1bGwgcXVhcnRlcicsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lUXVhcnRlci5vZmZzZXQodGltZVF1YXJ0ZXIuZmxvb3IodG9kYXkpLCAxKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVF1YXJ0ZXIub2Zmc2V0KHRpbWVRdWFydGVyLmNlaWwodG9kYXkpLCAxKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLlRISVNfWUVBUixcbiAgICAgIHRpdGxlOiAnVGhpcyB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhcicsXG4gICAgICBkYXRlczogW3RpbWVZZWFyLmZsb29yKHRvZGF5KSwgdGltZURheS5vZmZzZXQodGltZVllYXIuY2VpbCh0b2RheSksIC0xKV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogUHJlc2V0VHlwZS5USElTX1lFQVJfU09fRkFSLFxuICAgICAgdGl0bGU6ICdUaGlzIHllYXIgc28gZmFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhciB1cCB0byBub3cnLFxuICAgICAgZGF0ZXM6IFt0aW1lWWVhci5mbG9vcih0b2RheSksIHRpbWVEYXkuZmxvb3IodG9kYXkpXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfWUVBUixcbiAgICAgIHRpdGxlOiAnTGFzdCB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIHByZXZpb3VzIGNhbGVuZGFyIHllYXInLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZVllYXIub2Zmc2V0KHRpbWVZZWFyLmZsb29yKHRvZGF5KSwgLTEpLFxuICAgICAgICB0aW1lRGF5Lm9mZnNldCh0aW1lWWVhci5vZmZzZXQodGltZVllYXIuY2VpbCh0b2RheSksIC0xKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLk5FWFRfWUVBUixcbiAgICAgIHRpdGxlOiAnTmV4dCB5ZWFyJyxcbiAgICAgIHN1YnRpdGxlOiAnVGhlIG5leHQgY2FsZW5kYXIgeWVhcicsXG4gICAgICBkYXRlczogW1xuICAgICAgICB0aW1lWWVhci5vZmZzZXQodGltZVllYXIuZmxvb3IodG9kYXkpLCAxKSxcbiAgICAgICAgdGltZURheS5vZmZzZXQodGltZVllYXIub2Zmc2V0KHRpbWVZZWFyLmNlaWwodG9kYXkpLCAxKSwgLTEpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfN19EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDcgZGF5cycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyA3IGRheXMgYmVmb3JlIHRvZGF5JyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC04KSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8xNF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDE0IGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMTQgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTE1KSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8zMF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDMwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMzAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTMxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF82MF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDYwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgNjAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTYxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF85MF9EQVlTLFxuICAgICAgdGl0bGU6ICdMYXN0IDkwIGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgOTAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTkxKSksXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0xKSksXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFByZXNldFR5cGUuTEFTVF8xODBfREFZUyxcbiAgICAgIHRpdGxlOiAnTGFzdCAxODAgZGF5cycsXG4gICAgICBzdWJ0aXRsZTogJ1RoZSBwcmV2aW91cyAxODAgZGF5cyBiZWZvcmUgdG9kYXknLFxuICAgICAgZGF0ZXM6IFtcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTE4MSkpLFxuICAgICAgICB0aW1lRGF5LmZsb29yKHRpbWVEYXkub2Zmc2V0KHRvZGF5LCAtMSkpLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBQcmVzZXRUeXBlLkxBU1RfMzY1X0RBWVMsXG4gICAgICB0aXRsZTogJ0xhc3QgMzY1IGRheXMnLFxuICAgICAgc3VidGl0bGU6ICdUaGUgcHJldmlvdXMgMzY1IGRheXMgYmVmb3JlIHRvZGF5JyxcbiAgICAgIGRhdGVzOiBbXG4gICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQodG9kYXksIC0zNjYpKSxcbiAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldCh0b2RheSwgLTEpKSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcblxuICBleHBvcnQgdHlwZSBQcmVzZXQgPSAodHlwZW9mIFByZXNldHMpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IGZpbHRlclByZXNldHMgPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0RmlsdGVyU3luYyhbXG4gICAge1xuICAgICAgb3B0aW9uczogUHJlc2V0cyxcbiAgICB9LFxuICBdKTtcbn1cbiIsIjxyaXYtaW5wdXQtbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2hlbHBdPVwiaGVscFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtsYWJlbEFjdGlvblRleHRdPVwibGFiZWxBY3Rpb25UZXh0XCJcbiAgKGxhYmVsQWN0aW9uKT1cImxhYmVsQWN0aW9uLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxidXR0b25cbiAgICAjdHJpZ2dlclxuICAgIGNsYXNzPVwidHJpZ2dlclwiXG4gICAgKGNsaWNrKT1cIm9wZW4kLm5leHQodHJ1ZSlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImRpc3BsYXlWYWx1ZSQgfCBhc3luYzsgZWxzZSBwbGFjZWhvbGRlclZhbHVlOyBsZXQgZGlzcGxheVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGRpc3BsYXkgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclZhbHVlPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBwbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyJCB8IGFzeW5jIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJjaGV2cm9uXCI+XG4gICAgICA8cml2LWljb24gW25hbWVdPVwiJ0NhbGVuZGFyJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9yaXYtaW5wdXQtbGFiZWw+XG5cbjxuZy10ZW1wbGF0ZVxuICAjc2VsZlxuICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxmXCJcbiAgbGV0LWlucHV0VmFsdWVcbiAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiAodmFsdWUkIHwgYXN5bmMpIH1cIlxuPlxuICA8cml2LWNhbGxvdXRcbiAgICAqbmdJZj1cIm9wZW4kIHwgYXN5bmNcIlxuICAgIFthbmNob3JdPVwidHJpZ2dlclwiXG4gICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgIFthbGxvd2VkUG9zaXRpb25zXT1cIltcbiAgICAgICd0b3AtbGVmdCcsXG4gICAgICAndG9wLWNlbnRlcicsXG4gICAgICAndG9wLXJpZ2h0JyxcbiAgICAgICdib3R0b20tcmlnaHQnLFxuICAgICAgJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgJ2JvdHRvbS1sZWZ0J1xuICAgIF1cIlxuICAgIFtwcmVmZXJyZWRQb3NpdGlvbl09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgKGNsb3NlKT1cIm9wZW4kLm5leHQoZmFsc2UpOyB1c2VyU2VsZWN0ZWREYXRlJC5uZXh0KGlucHV0VmFsdWUpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1ByZXNldHNcIiBjbGFzcz1cInByZXNldHNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcmVzZXRUcGwgbGV0LW5vZGU9XCJub2RlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjc2VsZlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZlwiXG4gICAgICAgICAgICBsZXQtaXNGYXZvcml0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiAoZmF2b3JpdGVQcmVzZXRJZHMkIHwgYXN5bmMpPy5pbmNsdWRlcyhub2RlLmlkKVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXNldFwiIFtjbGFzcy5mYXZvcml0ZV09XCJpc0Zhdm9yaXRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIm5vZGUudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwibm9kZS50aXRsZUhpZ2hsaWdodEluZGljZXMgfHwgW11cIlxuICAgICAgICAgICAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgICAgICAgICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW3RleHRdPVwibm9kZS5zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICBbaW5kaWNlc109XCJub2RlLnN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyB8fCBbXVwiXG4gICAgICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICBzZXRGYXZvcml0ZShub2RlLCAhaXNGYXZvcml0ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cml2LWljb25cbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImlzRmF2b3JpdGUgPyAnSGVhcnRBY3RpdmUnIDogJ0hlYXJ0J1wiXG4gICAgICAgICAgICAgICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICAgICAgICAgICAgICBbcml2VG9vbHRpcF09XCInTWFyayBhcyBmYXZvcml0ZSdcIlxuICAgICAgICAgICAgICAgID48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxyaXYtc2luZ2xlLXNlbGVjdFxuICAgICAgICAgIFtsYWJlbF09XCInRGF0ZSBwcmVzZXRzJ1wiXG4gICAgICAgICAgW2ZpbHRlcmFiaWxpdHlPcHRpb25zXT1cInsgZW5hYmxlZDogdHJ1ZSwgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nIH1cIlxuICAgICAgICAgIChmaWx0ZXJRdWVyeUNoYW5nZSk9XCJwcmVzZXRGaWx0ZXJRdWVyeSQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICBbZ3JvdXBzXT1cIihmaWx0ZXJlZFByZXNldE9wdGlvbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICBbc2VsZWN0ZWRPcHRpb25dPVwic2VsZWN0ZWRQcmVzZXQkIHwgYXN5bmNcIlxuICAgICAgICAgIChzZWxlY3RlZE9wdGlvbkNoYW5nZSk9XCJ1c2VyU2VsZWN0ZWRQcmVzZXQkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgW25vZGVUZW1wbGF0ZV09XCJwcmVzZXRUcGxcIlxuICAgICAgICA+PC9yaXYtc2luZ2xlLXNlbGVjdD5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI3NlbGZcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxmXCJcbiAgICAgICAgICBsZXQtZmF2b3JpdGVzXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmYXZvcml0ZVByZXNldHMkIHwgYXN5bmMgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cml2LWlucHV0LWxhYmVsICpuZ0lmPVwiZmF2b3JpdGVzLmxlbmd0aFwiIFtsYWJlbF09XCInRmF2b3JpdGVzJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0c1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhdm9yaXRlIG9mIGZhdm9yaXRlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaG9ydGN1dFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoc2VsZWN0ZWRQcmVzZXQkIHwgYXN5bmMpPy5pZCA9PT0gZmF2b3JpdGUuaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ1c2VyU2VsZWN0ZWRQcmVzZXQkLm5leHQoZmF2b3JpdGUpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyBmYXZvcml0ZS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RmF2b3JpdGUoZmF2b3JpdGUsIGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgICBbcml2VG9vbHRpcF09XCInUmVtb3ZlIGZhdm9yaXRlJ1wiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cml2LWljb24gW25hbWVdPVwiJ0hlYXJ0QWN0aXZlJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3Jpdi1pbnB1dC1sYWJlbD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJzXCI+XG4gICAgICAgIDxyaXYtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cImxlZnRcIlxuICAgICAgICAgIFthY3RpdmVZZWFyTW9udGhdPVwiKGxlZnRBY3RpdmVZZWFyTW9udGgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICAoYWN0aXZlWWVhck1vbnRoQ2hhbmdlKT1cInVzZXJMZWZ0QWN0aXZlWWVhck1vbnRoJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgIFtkaXNwbGF5TWluXT1cIihtaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbZGlzcGxheU1heF09XCIobWF4JCB8IGFzeW5jKSB8fCBUT0RBWVwiXG4gICAgICAgICAgW3NlbGVjdGFibGVNaW5dPVwiKGxlZnRNaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1heF09XCIobGVmdE1heCQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIFtvbWl0UmFuZ2VdPVwiKGxlZnRPbWl0UmFuZ2UkIHwgYXN5bmMpIHx8IFtUT0RBWSwgVE9EQVldXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCIoc2VsZWN0ZWRWYWx1ZSQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIChkYXRlU2VsZWN0KT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgID48L3Jpdi1jYWxlbmRhcj5cbiAgICAgICAgPHJpdi1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwicmlnaHRcIlxuICAgICAgICAgIFthY3RpdmVZZWFyTW9udGhdPVwiKHJpZ2h0QWN0aXZlWWVhck1vbnRoJCB8IGFzeW5jKSB8fCBUT0RBWVwiXG4gICAgICAgICAgKGFjdGl2ZVllYXJNb250aENoYW5nZSk9XCJ1c2VyUmlnaHRBY3RpdmVZZWFyTW9udGgkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgW2Rpc3BsYXlNaW5dPVwiKG1pbiQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIFtkaXNwbGF5TWF4XT1cIihtYXgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1pbl09XCIocmlnaHRNaW4kIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0YWJsZU1heF09XCIocmlnaHRNYXgkIHwgYXN5bmMpIHx8IFRPREFZXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCIoc2VsZWN0ZWRWYWx1ZSQgfCBhc3luYykgfHwgVE9EQVlcIlxuICAgICAgICAgIChkYXRlU2VsZWN0KT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgID48L3Jpdi1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9vdGVyIGNsYXNzPVwiYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgKGNsaWNrKT1cInVzZXJTZWxlY3RlZERhdGUkLm5leHQodW5kZWZpbmVkKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBDbGVhclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgIFt2YXJpYW50XT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW4kLm5leHQoZmFsc2UpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIERvbmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L2Rpdj5cbiAgPC9yaXYtY2FsbG91dD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -2306,7 +2306,7 @@ class DateRangeComponent extends InputLabelComponent {
|
|
|
2306
2306
|
return [first, last];
|
|
2307
2307
|
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
2308
2308
|
this.userInteracted$ = merge(this.userSelectedDate$, this.userSelectedPreset$);
|
|
2309
|
-
this.valueChange = this.selectedValue$.pipe(skipUntil(this.userInteracted
|
|
2309
|
+
this.valueChange = this.selectedValue$.pipe(skipUntil(merge(this.userInteracted$, this.selectedValue$.pipe(filter(v => v !== undefined)))), filter((v) => !(v instanceof Date)), distinctUntilChanged((previous, current) => (previous === null || previous === void 0 ? void 0 : previous[0].valueOf()) === (current === null || current === void 0 ? void 0 : current[0].valueOf()) &&
|
|
2310
2310
|
(previous === null || previous === void 0 ? void 0 : previous[1].valueOf()) === (current === null || current === void 0 ? void 0 : current[1].valueOf())), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
2311
2311
|
this.displayValue$ = this.valueChange.pipe(map(v => {
|
|
2312
2312
|
if (v) {
|