geonetwork-ui 2.7.4-dev.a83fc214d → 2.7.4-dev.edb6871ab

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.
@@ -29,7 +29,7 @@ export class ChartViewComponent {
29
29
  }
30
30
  set link(value) {
31
31
  this.currentLink$.next(value);
32
- if (value) {
32
+ if (value && !this.aggregation$.value) {
33
33
  this.aggregation$.next('sum');
34
34
  }
35
35
  }
@@ -244,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
244
244
  }], chartConfig$: [{
245
245
  type: Output
246
246
  }] } });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUVMLFVBQVUsRUFFVixxQkFBcUIsR0FFdEIsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3hFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFTckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDdEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7QUFFOUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7QUFDbEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDekIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDL0IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFFeEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDL0IsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDL0IsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDL0IsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFDbkMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUE7QUFpQmpDLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsSUFBYSxjQUFjLENBQUMsS0FBNEI7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLEtBQTRCO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUdELElBQWEsV0FBVyxDQUFDLEtBQTBCO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFHRCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFHRCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFHRCxJQUFhLFNBQVMsQ0FBQyxLQUFxQjtRQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBR0QsSUFBYSxlQUFlLENBQUMsTUFBK0I7UUFDMUQsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFNO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBMkJELElBQUksa0JBQWtCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsT0FBTztZQUNMLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDaEQsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNoRCxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ2hELEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDeEQsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtTQUNqQyxDQUFBO0lBQ3ZCLENBQUM7SUErRkQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQ3JDLE9BQU8sWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFBO0lBQzdDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxrQkFBa0I7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQTtJQUMvRCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUE7SUFDNUMsQ0FBQztJQUVELFlBQ1UsV0FBd0IsRUFDeEIsY0FBaUMsRUFDakMsZ0JBQWtDO1FBRmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBN0xyQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUMxQyxJQUFJLENBQ0wsQ0FBQTtRQUlRLGdCQUFXLEdBQUcsSUFBSSxDQUFBO1FBT25CLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQXdCLElBQUksQ0FBQyxDQUFBO1FBS3ZFLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQXNCLEtBQUssQ0FBQyxDQUFBO1FBSzlELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQTtRQUtuRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUE7UUFLbkQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFpQixLQUFLLENBQUMsQ0FBQTtRQVM3QyxpQkFBWSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsV0FBVztZQUNYLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztTQUNWLENBQUMsQ0FBQyxDQUNKLENBQUE7UUFFRCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsVUFBSyxHQUFHLElBQUksQ0FBQTtRQUNaLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFFaEIsZ0JBQVcsR0FBcUI7WUFDOUIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUN6QyxFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7WUFDOUQsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMzQyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUQsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtTQUMxQyxDQUFBO1FBZUQsYUFBUSxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdkQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25CLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtnQkFDbEQsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDN0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3ZCLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFBO1FBQ0QsZ0JBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQ3ZFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFBO1FBQ0QsY0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNqQixVQUFVO2FBQ1AsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQzthQUNoRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUN6RSxFQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQTtnQkFDdkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ2pDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2pCLFVBQVU7YUFDUCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUMsQ0FDTixFQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsZUFBVSxHQUFHLGFBQWEsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUTtZQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxZQUFZO1NBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2pELE1BQU0sUUFBUSxHQUNaLFdBQVcsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQzVELE9BQU8sT0FBTztpQkFDWCxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQzVCLFNBQVMsQ0FBQyxRQUFRLENBQUM7aUJBQ25CLElBQUksRUFBRTtpQkFDTixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUN2QixPQUFPLEVBQUUsQ0FBQTtZQUNYLENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3RCLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQzFCLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtRQUVELGlCQUFZLEdBQUcsYUFBYSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxVQUFVO1NBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxXQUFXLEtBQUssT0FBTztnQkFBRSxPQUFPLFNBQVMsQ0FBQTtZQUM3QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFBO1lBQ3pELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNwRCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBa0JFLENBQUM7SUFFSixhQUFhLENBQ1gsT0FBbUIsRUFDbkIsT0FBOEI7UUFFOUIsT0FBTyxPQUFPLENBQUMsVUFBVTthQUN0QixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNuQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixNQUFNLGlCQUFpQixHQUFHLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQTtvQkFDcEUsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQzlDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQ2hDLENBQUE7b0JBQ0QsSUFBSSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzt3QkFDNUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtvQkFDaEQsQ0FBQztvQkFDRCxPQUFPLENBQUMsQ0FBQTtnQkFDVixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFBO1lBQ1YsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDdkIsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBa0M7UUFDNUMsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUN4QyxpQkFBaUIsS0FBSyxDQUFDLElBQUksRUFBRSxFQUM3QjtnQkFDRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDakIsQ0FDRixDQUFBO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0IsQ0FBQzthQUFNLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFBO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDckMsQ0FBQzsrR0E1T1Usa0JBQWtCO21HQUFsQixrQkFBa0IsdVZDekUvQiw4eEVBa0VBLHlEREZJLFlBQVksd0xBQ1oseUJBQXlCLHFOQUN6QixjQUFjLDZKQUNkLG9CQUFvQixvRkFDcEIsbUJBQW1CLCtGQUNuQixhQUFhOzs0RkFJSixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2QsY0FDVyxJQUFJOytJQU1ILGNBQWM7c0JBQTFCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sZUFBZTtzQkFBM0IsS0FBSztnQkFPSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBCYXNlUmVhZGVyLFxuICBGZXRjaEVycm9yLFxuICBGaWVsZEFnZ3JlZ2F0aW9uLFxuICBnZXRKc29uRGF0YUl0ZW1zUHJveHksXG4gIFByb3BlcnR5SW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMnXG5pbXBvcnQge1xuICBEcm9wZG93bkNob2ljZSxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2RhdGEuc2VydmljZSdcbmltcG9ydCB7XG4gIERhdGF2aXpDaGFydENvbmZpZ01vZGVsLFxuICBJbnB1dENoYXJ0VHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RmVhdHVyZUNhdGFsb2csXG4gIERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDaGFydENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZGF0YXZpei9zcmMnXG5pbXBvcnQge1xuICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgUG9wdXBBbGVydENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcblxubWFya2VyKCdjaGFydC50eXBlLmJhcicpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUuYmFySG9yaXpvbnRhbCcpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUubGluZScpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUubGluZVNtb290aCcpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUucGllJylcblxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5zdW0nKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5tYXgnKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5taW4nKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5hdmVyYWdlJylcbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24uY291bnQnKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1jaGFydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBDaGFydENvbXBvbmVudCxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Vmlld0NvbXBvbmVudCB7XG4gIHB1YmxpYyBmZWF0dXJlQ2F0YWxvZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB8IG51bGw+KFxuICAgIG51bGxcbiAgKVxuICBASW5wdXQoKSBzZXQgZmVhdHVyZUNhdGFsb2codmFsdWU6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZykge1xuICAgIHRoaXMuZmVhdHVyZUNhdGFsb2ckLm5leHQodmFsdWUpXG4gIH1cbiAgQElucHV0KCkgY2FjaGVBY3RpdmUgPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBsaW5rKHZhbHVlOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpIHtcbiAgICB0aGlzLmN1cnJlbnRMaW5rJC5uZXh0KHZhbHVlKVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hZ2dyZWdhdGlvbiQubmV4dCgnc3VtJylcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBjdXJyZW50TGluayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFzZXRPbmxpbmVSZXNvdXJjZT4obnVsbClcblxuICBASW5wdXQoKSBzZXQgYWdncmVnYXRpb24odmFsdWU6IEZpZWxkQWdncmVnYXRpb25bMF0pIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KHZhbHVlKVxuICB9XG4gIGFnZ3JlZ2F0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmllbGRBZ2dyZWdhdGlvblswXT4oJ3N1bScpXG5cbiAgQElucHV0KCkgc2V0IHhQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy54UHJvcGVydHkkLm5leHQodmFsdWUpXG4gIH1cbiAgeFByb3BlcnR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpXG5cbiAgQElucHV0KCkgc2V0IHlQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy55UHJvcGVydHkkLm5leHQodmFsdWUpXG4gIH1cbiAgeVByb3BlcnR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpXG5cbiAgQElucHV0KCkgc2V0IGNoYXJ0VHlwZSh2YWx1ZTogSW5wdXRDaGFydFR5cGUpIHtcbiAgICB0aGlzLmNoYXJ0VHlwZSQubmV4dCh2YWx1ZSlcbiAgfVxuICBjaGFydFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJbnB1dENoYXJ0VHlwZT4oJ2JhcicpXG5cbiAgQElucHV0KCkgc2V0IHVzZXJDaGFydENvbmZpZyhjb25maWc6IERhdGF2aXpDaGFydENvbmZpZ01vZGVsKSB7XG4gICAgaWYgKCFjb25maWcpIHJldHVyblxuICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQoY29uZmlnLmFnZ3JlZ2F0aW9uKVxuICAgIHRoaXMueFByb3BlcnR5JC5uZXh0KGNvbmZpZy54UHJvcGVydHkpXG4gICAgdGhpcy55UHJvcGVydHkkLm5leHQoY29uZmlnLnlQcm9wZXJ0eSlcbiAgICB0aGlzLmNoYXJ0VHlwZSQubmV4dChjb25maWcuY2hhcnRUeXBlKVxuICB9XG4gIEBPdXRwdXQoKSBjaGFydENvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnhQcm9wZXJ0eSQucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSksXG4gICAgdGhpcy55UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMuYWdncmVnYXRpb24kLFxuICAgIHRoaXMuY2hhcnRUeXBlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt4UHJvcGVydHksIHlQcm9wZXJ0eSwgYWdncmVnYXRpb24sIGNoYXJ0VHlwZV0pID0+ICh7XG4gICAgICBhZ2dyZWdhdGlvbixcbiAgICAgIHhQcm9wZXJ0eSxcbiAgICAgIHlQcm9wZXJ0eSxcbiAgICAgIGNoYXJ0VHlwZSxcbiAgICB9KSlcbiAgKVxuXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBlcnJvciA9IG51bGxcbiAgZXJyb3JJbmZvID0gbnVsbFxuXG4gIHR5cGVDaG9pY2VzOiBEcm9wZG93bkNob2ljZVtdID0gW1xuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmJhcicsIHZhbHVlOiAnYmFyJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmJhckhvcml6b250YWwnLCB2YWx1ZTogJ2Jhci1ob3Jpem9udGFsJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmxpbmUnLCB2YWx1ZTogJ2xpbmUnIH0sXG4gICAgeyBsYWJlbDogJ2NoYXJ0LnR5cGUubGluZVNtb290aCcsIHZhbHVlOiAnbGluZS1pbnRlcnBvbGF0ZWQnIH0sXG4gICAgeyBsYWJlbDogJ2NoYXJ0LnR5cGUucGllJywgdmFsdWU6ICdwaWUnIH0sXG4gIF1cblxuICBnZXQgYWdncmVnYXRpb25DaG9pY2VzKCkge1xuICAgIGlmICghdGhpcy55UHJvcGVydHkkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gW3sgbGFiZWw6ICdjaGFydC5hZ2dyZWdhdGlvbi5jb3VudCcsIHZhbHVlOiAnY291bnQnIH1dXG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uc3VtJywgdmFsdWU6ICdzdW0nIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24ubWF4JywgdmFsdWU6ICdtYXgnIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24ubWluJywgdmFsdWU6ICdtaW4nIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uYXZlcmFnZScsIHZhbHVlOiAnYXZlcmFnZScgfSxcbiAgICAgIHsgbGFiZWw6ICdjaGFydC5hZ2dyZWdhdGlvbi5jb3VudCcsIHZhbHVlOiAnY291bnQnIH0sXG4gICAgXSBhcyBEcm9wZG93bkNob2ljZVtdXG4gIH1cblxuICBkYXRhc2V0JDogT2JzZXJ2YWJsZTxCYXNlUmVhZGVyPiA9IHRoaXMuY3VycmVudExpbmskLnBpcGUoXG4gICAgZmlsdGVyKChsaW5rKSA9PiAhIWxpbmspLFxuICAgIHN3aXRjaE1hcCgobGluaykgPT4ge1xuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAgIGlmIChsaW5rLmFjY2Vzc1Jlc3RyaWN0ZWQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbiAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXREYXRhc2V0KGxpbmssIHRoaXMuY2FjaGVBY3RpdmUpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG4gIHByb3BlcnRpZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kYXRhc2V0JCwgdGhpcy5mZWF0dXJlQ2F0YWxvZyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2RhdGFzZXQsIGNhdGFsb2ddKSA9PiB0aGlzLnNldFByb3BlcnRpZXMoZGF0YXNldCwgY2F0YWxvZykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcbiAgeUNob2ljZXMkID0gdGhpcy5wcm9wZXJ0aWVzJC5waXBlKFxuICAgIG1hcCgocHJvcGVydGllcykgPT5cbiAgICAgIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcC50eXBlID09PSAnbnVtYmVyJyB8fCBwcm9wLnR5cGUgPT09ICdkYXRlJylcbiAgICAgICAgLm1hcCgocHJvcCkgPT4gKHsgdmFsdWU6IHByb3AubmFtZSwgbGFiZWw6IHByb3AubGFiZWwgfHwgcHJvcC5uYW1lIH0pKVxuICAgICksXG4gICAgdGFwKChjaG9pY2VzKSA9PiB7XG4gICAgICBpZiAoIWNob2ljZXMuZmluZCgoY2hvaWNlKSA9PiBjaG9pY2UudmFsdWUgPT09IHRoaXMueVByb3BlcnR5JC52YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgbmV3UHJvcCA9IGNob2ljZXNbMF0/LnZhbHVlIHx8ICcnXG4gICAgICAgIGlmICghbmV3UHJvcCAmJiB0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZSAhPT0gJ2NvdW50Jykge1xuICAgICAgICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQoJ2NvdW50JylcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnlQcm9wZXJ0eSQubmV4dChuZXdQcm9wKVxuICAgICAgfVxuICAgIH0pXG4gIClcbiAgeENob2ljZXMkID0gdGhpcy5wcm9wZXJ0aWVzJC5waXBlKFxuICAgIG1hcCgocHJvcGVydGllcykgPT5cbiAgICAgIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcC50eXBlID09PSAnc3RyaW5nJylcbiAgICAgICAgLm1hcCgocHJvcCkgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogcHJvcC5uYW1lLFxuICAgICAgICAgIGxhYmVsOiBwcm9wLmxhYmVsIHx8IHByb3AubmFtZSxcbiAgICAgICAgfSkpXG4gICAgKSxcbiAgICB0YXAoKGNob2ljZXMpID0+IHtcbiAgICAgIGlmICghY2hvaWNlcy5maW5kKChjaG9pY2UpID0+IGNob2ljZS52YWx1ZSA9PT0gdGhpcy54UHJvcGVydHkkLnZhbHVlKSkge1xuICAgICAgICB0aGlzLnhQcm9wZXJ0eSQubmV4dChjaG9pY2VzWzBdPy52YWx1ZSB8fCAnJylcbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgY2hhcnREYXRhJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZGF0YXNldCQsXG4gICAgdGhpcy54UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMueVByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtfLCB4LCB5XSkgPT4gISF4IHx8ICEheSksXG4gICAgc3dpdGNoTWFwKChbZGF0YXNldCwgeFByb3AsIHlQcm9wLCBhZ2dyZWdhdGlvbl0pID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkQWdnOiBGaWVsZEFnZ3JlZ2F0aW9uID1cbiAgICAgICAgYWdncmVnYXRpb24gPT09ICdjb3VudCcgPyBbJ2NvdW50J10gOiBbYWdncmVnYXRpb24sIHlQcm9wXVxuICAgICAgcmV0dXJuIGRhdGFzZXRcbiAgICAgICAgLmdyb3VwQnkoWydkaXN0aW5jdCcsIHhQcm9wXSlcbiAgICAgICAgLmFnZ3JlZ2F0ZShmaWVsZEFnZylcbiAgICAgICAgLnJlYWQoKVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIH0pXG4gICAgfSksXG4gICAgbWFwKGdldEpzb25EYXRhSXRlbXNQcm94eSksXG4gICAgc3RhcnRXaXRoKFtdKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJldHR5TGFiZWwkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQsXG4gICAgdGhpcy5wcm9wZXJ0aWVzJCxcbiAgICB0aGlzLnlQcm9wZXJ0eSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbYWdncmVnYXRpb24sIHByb3BlcnRpZXMsIHlQcm9wZXJ0eV0pID0+IHtcbiAgICAgIGlmIChhZ2dyZWdhdGlvbiA9PT0gJ2NvdW50JykgcmV0dXJuICdjb3VudCgpJ1xuICAgICAgY29uc3QgcHJvcCA9IHByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09PSB5UHJvcGVydHkpXG4gICAgICByZXR1cm4gcHJvcCA/IGAke2FnZ3JlZ2F0aW9ufSgke3Byb3AubGFiZWx9KWAgOiAnJ1xuICAgIH0pXG4gIClcblxuICBnZXQgbGFiZWxQcm9wZXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMueFByb3BlcnR5JC52YWx1ZSkgcmV0dXJuICcnXG4gICAgcmV0dXJuIGBkaXN0aW5jdCgke3RoaXMueFByb3BlcnR5JC52YWx1ZX0pYFxuICB9XG4gIGdldCB2YWx1ZVByb3BlcnR5KCkge1xuICAgIGlmICh0aGlzLmlzQ291bnRBZ2dyZWdhdGlvbikgcmV0dXJuICdjb3VudCgpJ1xuICAgIHJldHVybiBgJHt0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZX0oJHt0aGlzLnlQcm9wZXJ0eSQudmFsdWV9KWBcbiAgfVxuICBnZXQgaXNDb3VudEFnZ3JlZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZSA9PT0gJ2NvdW50J1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBzZXRQcm9wZXJ0aWVzKFxuICAgIGRhdGFzZXQ6IEJhc2VSZWFkZXIsXG4gICAgY2F0YWxvZzogRGF0YXNldEZlYXR1cmVDYXRhbG9nXG4gICk6IFByb21pc2U8UHJvcGVydHlJbmZvW10+IHtcbiAgICByZXR1cm4gZGF0YXNldC5wcm9wZXJ0aWVzXG4gICAgICAudGhlbigocHJvcGVydGllcykgPT4ge1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5tYXAoKHApID0+IHtcbiAgICAgICAgICBpZiAoY2F0YWxvZykge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZUF0dHJpYnV0ZXMgPSBjYXRhbG9nPy5mZWF0dXJlVHlwZXNbMF0/LmF0dHJpYnV0ZXMgPz8gW11cbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nQXR0cmlidXRlID0gZmVhdHVyZUF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgICAgKGF0dHIpID0+IGF0dHIubmFtZSA9PT0gcC5sYWJlbFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKG1hdGNoaW5nQXR0cmlidXRlPy5jb2RlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IC4uLnAsIGxhYmVsOiBtYXRjaGluZ0F0dHJpYnV0ZS5jb2RlIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICByZXR1cm4gW11cbiAgICAgIH0pXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiBzbTpmbGV4LXJvdyBzbTpzcGFjZS15LTAgc206c3BhY2UteC0yIGp1c3RpZnktYmV0d2VlbiB0ZXh0LVsxM3B4XVwiXG4gID5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgIGNsYXNzPVwiYmFzaXMtMS80XCJcbiAgICAgIFtjaG9pY2VzXT1cInR5cGVDaG9pY2VzXCJcbiAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cImNoYXJ0VHlwZSQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJjaGFydFR5cGUkLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24udHlwZScgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgW2Nob2ljZXNdPVwieENob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgW2V4dHJhQnRuQ2xhc3NdPVwiJ3NlY29uZGFyeSBtaW4tdy1mdWxsJ1wiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwieFByb3BlcnR5JC5uZXh0KCRldmVudClcIlxuICAgICAgW3NlbGVjdGVkXT1cInhQcm9wZXJ0eSQudmFsdWVcIlxuICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi54UHJvcGVydHknIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieUNob2ljZXMkIHwgYXN5bmMgYXMgeUNob2ljZXNcIj5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICAgICpuZ0lmPVwiIWlzQ291bnRBZ2dyZWdhdGlvblwiXG4gICAgICAgIFtjaG9pY2VzXT1cInlDaG9pY2VzXCJcbiAgICAgICAgKHNlbGVjdFZhbHVlKT1cInlQcm9wZXJ0eSQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cInlQcm9wZXJ0eSQudmFsdWVcIlxuICAgICAgICBbdGl0bGVdPVwiJ2NoYXJ0LmRyb3Bkb3duLnlQcm9wZXJ0eScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjbGFzcz1cInNlbGVjdC15LXByb3BcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICBbY2hvaWNlc109XCJhZ2dyZWdhdGlvbkNob2ljZXNcIlxuICAgICAgY2xhc3M9XCJhZ2dyZWdhdGlvbi1jaG9pY2VzXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJhZ2dyZWdhdGlvbiQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJhZ2dyZWdhdGlvbiQudmFsdWVcIlxuICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi5hZ2dyZWdhdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIG10LTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gID5cbiAgICA8Z24tdWktY2hhcnRcbiAgICAgICpuZ0lmPVwiIWVycm9yXCJcbiAgICAgIFtkYXRhXT1cImNoYXJ0RGF0YSQgfCBhc3luY1wiXG4gICAgICBbdHlwZV09XCJjaGFydFR5cGUkLnZhbHVlXCJcbiAgICAgIFtwcmV0dHlMYWJlbF09XCJwcmV0dHlMYWJlbCQgfCBhc3luY1wiXG4gICAgICBbbGFiZWxQcm9wZXJ0eV09XCJsYWJlbFByb3BlcnR5XCJcbiAgICAgIFt2YWx1ZVByb3BlcnR5XT1cInZhbHVlUHJvcGVydHlcIlxuICAgID48L2duLXVpLWNoYXJ0PlxuICAgIDxnbi11aS1sb2FkaW5nLW1hc2tcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgW21lc3NhZ2VdPVwiJ2NoYXJ0LmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWxvYWRpbmctbWFzaz5cbiAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgdHlwZT1cIndhcm5pbmdcIlxuICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUVMLFVBQVUsRUFFVixxQkFBcUIsR0FFdEIsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3hFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFTckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDdEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIs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Q0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFBO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDckMsQ0FBQzsrR0E1T1Usa0JBQWtCO21HQUFsQixrQkFBa0IsdVZDekUvQiw4eEVBa0VBLHlEREZJLFlBQVksd0xBQ1oseUJBQXlCLHFOQUN6QixjQUFjLDZKQUNkLG9CQUFvQixvRkFDcEIsbUJBQW1CLCtGQUNuQixhQUFhOzs0RkFJSixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2QsY0FDVyxJQUFJOytJQU1ILGNBQWM7c0JBQTFCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sZUFBZTtzQkFBM0IsS0FBSztnQkFPSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBCYXNlUmVhZGVyLFxuICBGZXRjaEVycm9yLFxuICBGaWVsZEFnZ3JlZ2F0aW9uLFxuICBnZXRKc29uRGF0YUl0ZW1zUHJveHksXG4gIFByb3BlcnR5SW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMnXG5pbXBvcnQge1xuICBEcm9wZG93bkNob2ljZSxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2RhdGEuc2VydmljZSdcbmltcG9ydCB7XG4gIERhdGF2aXpDaGFydENvbmZpZ01vZGVsLFxuICBJbnB1dENoYXJ0VHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RmVhdHVyZUNhdGFsb2csXG4gIERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDaGFydENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZGF0YXZpei9zcmMnXG5pbXBvcnQge1xuICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgUG9wdXBBbGVydENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcblxubWFya2VyKCdjaGFydC50eXBlLmJhcicpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUuYmFySG9yaXpvbnRhbCcpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUubGluZScpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUubGluZVNtb290aCcpXG5tYXJrZXIoJ2NoYXJ0LnR5cGUucGllJylcblxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5zdW0nKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5tYXgnKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5taW4nKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5hdmVyYWdlJylcbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24uY291bnQnKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1jaGFydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBDaGFydENvbXBvbmVudCxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Vmlld0NvbXBvbmVudCB7XG4gIHB1YmxpYyBmZWF0dXJlQ2F0YWxvZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB8IG51bGw+KFxuICAgIG51bGxcbiAgKVxuICBASW5wdXQoKSBzZXQgZmVhdHVyZUNhdGFsb2codmFsdWU6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZykge1xuICAgIHRoaXMuZmVhdHVyZUNhdGFsb2ckLm5leHQodmFsdWUpXG4gIH1cbiAgQElucHV0KCkgY2FjaGVBY3RpdmUgPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBsaW5rKHZhbHVlOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpIHtcbiAgICB0aGlzLmN1cnJlbnRMaW5rJC5uZXh0KHZhbHVlKVxuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy5hZ2dyZWdhdGlvbiQudmFsdWUpIHtcbiAgICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQoJ3N1bScpXG4gICAgfVxuICB9XG4gIHByaXZhdGUgY3VycmVudExpbmskID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0T25saW5lUmVzb3VyY2U+KG51bGwpXG5cbiAgQElucHV0KCkgc2V0IGFnZ3JlZ2F0aW9uKHZhbHVlOiBGaWVsZEFnZ3JlZ2F0aW9uWzBdKSB7XG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQubmV4dCh2YWx1ZSlcbiAgfVxuICBhZ2dyZWdhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpZWxkQWdncmVnYXRpb25bMF0+KCdzdW0nKVxuXG4gIEBJbnB1dCgpIHNldCB4UHJvcGVydHkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMueFByb3BlcnR5JC5uZXh0KHZhbHVlKVxuICB9XG4gIHhQcm9wZXJ0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpIHNldCB5UHJvcGVydHkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMueVByb3BlcnR5JC5uZXh0KHZhbHVlKVxuICB9XG4gIHlQcm9wZXJ0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpIHNldCBjaGFydFR5cGUodmFsdWU6IElucHV0Q2hhcnRUeXBlKSB7XG4gICAgdGhpcy5jaGFydFR5cGUkLm5leHQodmFsdWUpXG4gIH1cbiAgY2hhcnRUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5wdXRDaGFydFR5cGU+KCdiYXInKVxuXG4gIEBJbnB1dCgpIHNldCB1c2VyQ2hhcnRDb25maWcoY29uZmlnOiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCkge1xuICAgIGlmICghY29uZmlnKSByZXR1cm5cbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KGNvbmZpZy5hZ2dyZWdhdGlvbilcbiAgICB0aGlzLnhQcm9wZXJ0eSQubmV4dChjb25maWcueFByb3BlcnR5KVxuICAgIHRoaXMueVByb3BlcnR5JC5uZXh0KGNvbmZpZy55UHJvcGVydHkpXG4gICAgdGhpcy5jaGFydFR5cGUkLm5leHQoY29uZmlnLmNoYXJ0VHlwZSlcbiAgfVxuICBAT3V0cHV0KCkgY2hhcnRDb25maWckID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy54UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMueVByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJCxcbiAgICB0aGlzLmNoYXJ0VHlwZSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbeFByb3BlcnR5LCB5UHJvcGVydHksIGFnZ3JlZ2F0aW9uLCBjaGFydFR5cGVdKSA9PiAoe1xuICAgICAgYWdncmVnYXRpb24sXG4gICAgICB4UHJvcGVydHksXG4gICAgICB5UHJvcGVydHksXG4gICAgICBjaGFydFR5cGUsXG4gICAgfSkpXG4gIClcblxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG4gIGVycm9ySW5mbyA9IG51bGxcblxuICB0eXBlQ2hvaWNlczogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5iYXInLCB2YWx1ZTogJ2JhcicgfSxcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5iYXJIb3Jpem9udGFsJywgdmFsdWU6ICdiYXItaG9yaXpvbnRhbCcgfSxcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5saW5lJywgdmFsdWU6ICdsaW5lJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmxpbmVTbW9vdGgnLCB2YWx1ZTogJ2xpbmUtaW50ZXJwb2xhdGVkJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLnBpZScsIHZhbHVlOiAncGllJyB9LFxuICBdXG5cbiAgZ2V0IGFnZ3JlZ2F0aW9uQ2hvaWNlcygpIHtcbiAgICBpZiAoIXRoaXMueVByb3BlcnR5JC52YWx1ZSkge1xuICAgICAgcmV0dXJuIFt7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uY291bnQnLCB2YWx1ZTogJ2NvdW50JyB9XVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLnN1bScsIHZhbHVlOiAnc3VtJyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1heCcsIHZhbHVlOiAnbWF4JyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1pbicsIHZhbHVlOiAnbWluJyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLmF2ZXJhZ2UnLCB2YWx1ZTogJ2F2ZXJhZ2UnIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uY291bnQnLCB2YWx1ZTogJ2NvdW50JyB9LFxuICAgIF0gYXMgRHJvcGRvd25DaG9pY2VbXVxuICB9XG5cbiAgZGF0YXNldCQ6IE9ic2VydmFibGU8QmFzZVJlYWRlcj4gPSB0aGlzLmN1cnJlbnRMaW5rJC5waXBlKFxuICAgIGZpbHRlcigobGluaykgPT4gISFsaW5rKSxcbiAgICBzd2l0Y2hNYXAoKGxpbmspID0+IHtcbiAgICAgIHRoaXMuZXJyb3IgPSBudWxsXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgICBpZiAobGluay5hY2Nlc3NSZXN0cmljdGVkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG4gICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0RGF0YXNldChsaW5rLCB0aGlzLmNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuICBwcm9wZXJ0aWVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YXNldCQsIHRoaXMuZmVhdHVyZUNhdGFsb2ckXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtkYXRhc2V0LCBjYXRhbG9nXSkgPT4gdGhpcy5zZXRQcm9wZXJ0aWVzKGRhdGFzZXQsIGNhdGFsb2cpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG4gIHlDaG9pY2VzJCA9IHRoaXMucHJvcGVydGllcyQucGlwZShcbiAgICBtYXAoKHByb3BlcnRpZXMpID0+XG4gICAgICBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AudHlwZSA9PT0gJ251bWJlcicgfHwgcHJvcC50eXBlID09PSAnZGF0ZScpXG4gICAgICAgIC5tYXAoKHByb3ApID0+ICh7IHZhbHVlOiBwcm9wLm5hbWUsIGxhYmVsOiBwcm9wLmxhYmVsIHx8IHByb3AubmFtZSB9KSlcbiAgICApLFxuICAgIHRhcCgoY2hvaWNlcykgPT4ge1xuICAgICAgaWYgKCFjaG9pY2VzLmZpbmQoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlID09PSB0aGlzLnlQcm9wZXJ0eSQudmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG5ld1Byb3AgPSBjaG9pY2VzWzBdPy52YWx1ZSB8fCAnJ1xuICAgICAgICBpZiAoIW5ld1Byb3AgJiYgdGhpcy5hZ2dyZWdhdGlvbiQudmFsdWUgIT09ICdjb3VudCcpIHtcbiAgICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KCdjb3VudCcpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55UHJvcGVydHkkLm5leHQobmV3UHJvcClcbiAgICAgIH1cbiAgICB9KVxuICApXG4gIHhDaG9pY2VzJCA9IHRoaXMucHJvcGVydGllcyQucGlwZShcbiAgICBtYXAoKHByb3BlcnRpZXMpID0+XG4gICAgICBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AudHlwZSA9PT0gJ3N0cmluZycpXG4gICAgICAgIC5tYXAoKHByb3ApID0+ICh7XG4gICAgICAgICAgdmFsdWU6IHByb3AubmFtZSxcbiAgICAgICAgICBsYWJlbDogcHJvcC5sYWJlbCB8fCBwcm9wLm5hbWUsXG4gICAgICAgIH0pKVxuICAgICksXG4gICAgdGFwKChjaG9pY2VzKSA9PiB7XG4gICAgICBpZiAoIWNob2ljZXMuZmluZCgoY2hvaWNlKSA9PiBjaG9pY2UudmFsdWUgPT09IHRoaXMueFByb3BlcnR5JC52YWx1ZSkpIHtcbiAgICAgICAgdGhpcy54UHJvcGVydHkkLm5leHQoY2hvaWNlc1swXT8udmFsdWUgfHwgJycpXG4gICAgICB9XG4gICAgfSlcbiAgKVxuXG4gIGNoYXJ0RGF0YSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRhdGFzZXQkLFxuICAgIHRoaXMueFByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLnlQcm9wZXJ0eSQucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSksXG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbXywgeCwgeV0pID0+ICEheCB8fCAhIXkpLFxuICAgIHN3aXRjaE1hcCgoW2RhdGFzZXQsIHhQcm9wLCB5UHJvcCwgYWdncmVnYXRpb25dKSA9PiB7XG4gICAgICBjb25zdCBmaWVsZEFnZzogRmllbGRBZ2dyZWdhdGlvbiA9XG4gICAgICAgIGFnZ3JlZ2F0aW9uID09PSAnY291bnQnID8gWydjb3VudCddIDogW2FnZ3JlZ2F0aW9uLCB5UHJvcF1cbiAgICAgIHJldHVybiBkYXRhc2V0XG4gICAgICAgIC5ncm91cEJ5KFsnZGlzdGluY3QnLCB4UHJvcF0pXG4gICAgICAgIC5hZ2dyZWdhdGUoZmllbGRBZ2cpXG4gICAgICAgIC5yZWFkKClcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB9KVxuICAgIH0pLFxuICAgIG1hcChnZXRKc29uRGF0YUl0ZW1zUHJveHkpLFxuICAgIHN0YXJ0V2l0aChbXSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByZXR0eUxhYmVsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuYWdncmVnYXRpb24kLFxuICAgIHRoaXMucHJvcGVydGllcyQsXG4gICAgdGhpcy55UHJvcGVydHkkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2FnZ3JlZ2F0aW9uLCBwcm9wZXJ0aWVzLCB5UHJvcGVydHldKSA9PiB7XG4gICAgICBpZiAoYWdncmVnYXRpb24gPT09ICdjb3VudCcpIHJldHVybiAnY291bnQoKSdcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wZXJ0aWVzLmZpbmQoKHApID0+IHAubmFtZSA9PT0geVByb3BlcnR5KVxuICAgICAgcmV0dXJuIHByb3AgPyBgJHthZ2dyZWdhdGlvbn0oJHtwcm9wLmxhYmVsfSlgIDogJydcbiAgICB9KVxuICApXG5cbiAgZ2V0IGxhYmVsUHJvcGVydHkoKSB7XG4gICAgaWYgKCF0aGlzLnhQcm9wZXJ0eSQudmFsdWUpIHJldHVybiAnJ1xuICAgIHJldHVybiBgZGlzdGluY3QoJHt0aGlzLnhQcm9wZXJ0eSQudmFsdWV9KWBcbiAgfVxuICBnZXQgdmFsdWVQcm9wZXJ0eSgpIHtcbiAgICBpZiAodGhpcy5pc0NvdW50QWdncmVnYXRpb24pIHJldHVybiAnY291bnQoKSdcbiAgICByZXR1cm4gYCR7dGhpcy5hZ2dyZWdhdGlvbiQudmFsdWV9KCR7dGhpcy55UHJvcGVydHkkLnZhbHVlfSlgXG4gIH1cbiAgZ2V0IGlzQ291bnRBZ2dyZWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hZ2dyZWdhdGlvbiQudmFsdWUgPT09ICdjb3VudCdcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgc2V0UHJvcGVydGllcyhcbiAgICBkYXRhc2V0OiBCYXNlUmVhZGVyLFxuICAgIGNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuICApOiBQcm9taXNlPFByb3BlcnR5SW5mb1tdPiB7XG4gICAgcmV0dXJuIGRhdGFzZXQucHJvcGVydGllc1xuICAgICAgLnRoZW4oKHByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMubWFwKChwKSA9PiB7XG4gICAgICAgICAgaWYgKGNhdGFsb2cpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVBdHRyaWJ1dGVzID0gY2F0YWxvZz8uZmVhdHVyZVR5cGVzWzBdPy5hdHRyaWJ1dGVzID8/IFtdXG4gICAgICAgICAgICBjb25zdCBtYXRjaGluZ0F0dHJpYnV0ZSA9IGZlYXR1cmVBdHRyaWJ1dGVzLmZpbmQoXG4gICAgICAgICAgICAgIChhdHRyKSA9PiBhdHRyLm5hbWUgPT09IHAubGFiZWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChtYXRjaGluZ0F0dHJpYnV0ZT8uY29kZSkge1xuICAgICAgICAgICAgICByZXR1cm4geyAuLi5wLCBsYWJlbDogbWF0Y2hpbmdBdHRyaWJ1dGUuY29kZSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgcmV0dXJuIFtdXG4gICAgICB9KVxuICB9XG4gIGhhbmRsZUVycm9yKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IgfCBzdHJpbmcpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBGZXRjaEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGBkYXRhc2V0LmVycm9yLiR7ZXJyb3IudHlwZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgaW5mbzogZXJyb3IuaW5mbyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLm1lc3NhZ2UpXG4gICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IubWVzc2FnZSlcbiAgICAgIGNvbnNvbGUud2FybihlcnJvci5zdGFjayB8fCBlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yKVxuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTIgc206ZmxleC1yb3cgc206c3BhY2UteS0wIHNtOnNwYWNlLXgtMiBqdXN0aWZ5LWJldHdlZW4gdGV4dC1bMTNweF1cIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICBbY2hvaWNlc109XCJ0eXBlQ2hvaWNlc1wiXG4gICAgICBbZXh0cmFCdG5DbGFzc109XCInc2Vjb25kYXJ5IG1pbi13LWZ1bGwnXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJjaGFydFR5cGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICBbc2VsZWN0ZWRdPVwiY2hhcnRUeXBlJC52YWx1ZVwiXG4gICAgICBbdGl0bGVdPVwiJ2NoYXJ0LmRyb3Bkb3duLnR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgIGNsYXNzPVwiYmFzaXMtMS80XCJcbiAgICAgIFtjaG9pY2VzXT1cInhDaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInhQcm9wZXJ0eSQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJ4UHJvcGVydHkkLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24ueFByb3BlcnR5JyB8IHRyYW5zbGF0ZVwiXG4gICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInlDaG9pY2VzJCB8IGFzeW5jIGFzIHlDaG9pY2VzXCI+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgICAqbmdJZj1cIiFpc0NvdW50QWdncmVnYXRpb25cIlxuICAgICAgICBbY2hvaWNlc109XCJ5Q2hvaWNlc1wiXG4gICAgICAgIChzZWxlY3RWYWx1ZSk9XCJ5UHJvcGVydHkkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJ5UHJvcGVydHkkLnZhbHVlXCJcbiAgICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi55UHJvcGVydHknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3QteS1wcm9wXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgW2Nob2ljZXNdPVwiYWdncmVnYXRpb25DaG9pY2VzXCJcbiAgICAgIGNsYXNzPVwiYWdncmVnYXRpb24tY2hvaWNlc1wiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwiYWdncmVnYXRpb24kLm5leHQoJGV2ZW50KVwiXG4gICAgICBbc2VsZWN0ZWRdPVwiYWdncmVnYXRpb24kLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24uYWdncmVnYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbCBtdC0yIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW5cIlxuICA+XG4gICAgPGduLXVpLWNoYXJ0XG4gICAgICAqbmdJZj1cIiFlcnJvclwiXG4gICAgICBbZGF0YV09XCJjaGFydERhdGEkIHwgYXN5bmNcIlxuICAgICAgW3R5cGVdPVwiY2hhcnRUeXBlJC52YWx1ZVwiXG4gICAgICBbcHJldHR5TGFiZWxdPVwicHJldHR5TGFiZWwkIHwgYXN5bmNcIlxuICAgICAgW2xhYmVsUHJvcGVydHldPVwibGFiZWxQcm9wZXJ0eVwiXG4gICAgICBbdmFsdWVQcm9wZXJ0eV09XCJ2YWx1ZVByb3BlcnR5XCJcbiAgICA+PC9nbi11aS1jaGFydD5cbiAgICA8Z24tdWktbG9hZGluZy1tYXNrXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wXCJcbiAgICAgIFttZXNzYWdlXT1cIidjaGFydC5sb2FkaW5nLmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAqbmdJZj1cImVycm9yXCJcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbS0yIGluc2V0LTBcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IGVycm9yIH19PC9zcGFuPlxuICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
3
- import { OgcApiEndpoint, TmsEndpoint, WfsEndpoint, } from '@camptocamp/ogc-client';
3
+ import { OgcApiEndpoint, WfsEndpoint, TmsEndpoint, } from '@camptocamp/ogc-client';
4
4
  import { openDataset, SupportedTypes, } from '../../../../../../libs/util/data-fetcher/src';
5
5
  import { getFileFormat, getFileFormatFromServiceOutput, getMimeTypeForFormat, ProxyService, } from '../../../../../../libs/util/shared/src';
6
6
  import { from, throwError } from 'rxjs';
@@ -127,20 +127,20 @@ export class DataService {
127
127
  }
128
128
  async getDownloadUrlsFromOgcApi(url) {
129
129
  const endpoint = new OgcApiEndpoint(url);
130
- return await endpoint.allCollections
130
+ return await endpoint.featureCollections
131
131
  .then((collections) => {
132
- return endpoint.getCollectionInfo(collections[0].name);
132
+ return endpoint.getCollectionInfo(collections[0]);
133
133
  })
134
134
  .catch((error) => {
135
135
  throw new Error(`ogc.unreachable.unknown`);
136
136
  });
137
137
  }
138
- async getItemsFromOgcApi(url, limit) {
138
+ async getItemsFromOgcApi(url) {
139
139
  const endpoint = new OgcApiEndpoint(url);
140
- return await endpoint.allCollections
140
+ return await endpoint.featureCollections
141
141
  .then((collections) => {
142
142
  return collections.length
143
- ? endpoint.getCollectionItems(collections[0].name, limit)
143
+ ? endpoint.getCollectionItems(collections[0])
144
144
  : null;
145
145
  })
146
146
  .catch(() => {
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
241
241
  providedIn: 'root',
242
242
  }]
243
243
  }], ctorParameters: () => [{ type: i1.ProxyService }] });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBR0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEdBRVosTUFBTSx3QkFBd0IsQ0FBQTtBQU0vQixPQUFPLEVBR0wsV0FBVyxFQUVYLGNBQWMsR0FDZixNQUFNLDhDQUE4QyxDQUFBO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLG9CQUFvQixFQUNwQixZQUFZLEdBQ2IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUVoRSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtBQUNyQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUM1QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FB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LENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUE7Z0JBQ2xELE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ25FLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNWLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQzsrR0FyVFUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7XG4gIE9nY0FwaUNvbGxlY3Rpb25JbmZvLFxuICBPZ2NBcGlDb2xsZWN0aW9uSXRlbSxcbiAgT2djQXBpRW5kcG9pbnQsXG4gIFRtc0VuZHBvaW50LFxuICBXZnNFbmRwb2ludCxcbiAgV2ZzVmVyc2lvbixcbn0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7IERhdGF2aXpDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL2RhdGF2aXovZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQmFzZVJlYWRlcixcbiAgRmV0Y2hFcnJvcixcbiAgb3BlbkRhdGFzZXQsXG4gIFN1cHBvcnRlZFR5cGUsXG4gIFN1cHBvcnRlZFR5cGVzLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYydcbmltcG9ydCB7XG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dCxcbiAgZ2V0TWltZVR5cGVGb3JGb3JtYXQsXG4gIFByb3h5U2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS5jb3JzJylcbm1hcmtlcignd2ZzLnVucmVhY2hhYmxlLmh0dHAnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLmZvcmJpZGRlbicpXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS51bmtub3duJylcbm1hcmtlcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbm1hcmtlcignd2ZzLmdlb2pzb25nbWwubm90c3VwcG9ydGVkJylcbm1hcmtlcignb2djLnVucmVhY2hhYmxlLnVua25vd24nKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLm5ldHdvcmsnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLmh0dHAnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnBhcnNlJylcbm1hcmtlcignZGF0YXNldC5lcnJvci51bnN1cHBvcnRlZFR5cGUnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnVua25vd24nKVxuXG5pbnRlcmZhY2UgV2ZzRG93bmxvYWRVcmxzIHtcbiAgYWxsOiB7IFtmb3JtYXQ6IHN0cmluZ106IHN0cmluZyB9XG4gIGdlb2pzb246IHN0cmluZ1xuICBnbWw6IHsgZmVhdHVyZVVybDogc3RyaW5nOyBuYW1lc3BhY2U6IHN0cmluZzsgd2ZzVmVyc2lvbjogV2ZzVmVyc2lvbiB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJveHk6IFByb3h5U2VydmljZSkge31cblxuICBnZXRXZnNFbmRwb2ludCh3ZnNVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8V2ZzRW5kcG9pbnQ+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIG5ldyBXZnNFbmRwb2ludCh0aGlzLnByb3h5LmdldFByb3hpZWRVcmwod2ZzVXJsKSkuaXNSZWFkeSgpXG4gICAgKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAnbmV0d29yaycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLmNvcnNgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ2h0dHAnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5odHRwYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICdwYXJzZScpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnBhcnNlYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICd1bnN1cHBvcnRlZFR5cGUnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bnN1cHBvcnRlZFR5cGVgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0RG93bmxvYWRVcmxzRnJvbVdmcyhcbiAgICB3ZnNVcmw6IHN0cmluZyxcbiAgICBmZWF0dXJlVHlwZU5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFdmc0Rvd25sb2FkVXJscz4ge1xuICAgIHJldHVybiB0aGlzLmdldFdmc0VuZHBvaW50KHdmc1VybCkucGlwZShcbiAgICAgIG1hcCgoZW5kcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZVR5cGVzID0gZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVzKClcbiAgICAgICAgY29uc3QgZmVhdHVyZVR5cGUgPSBlbmRwb2ludC5nZXRGZWF0dXJlVHlwZVN1bW1hcnkoXG4gICAgICAgICAgZmVhdHVyZVR5cGVzLmxlbmd0aCA9PT0gMSAmJiAhZmVhdHVyZVR5cGVOYW1lXG4gICAgICAgICAgICA/IGZlYXR1cmVUeXBlc1swXS5uYW1lXG4gICAgICAgICAgICA6IGZlYXR1cmVUeXBlTmFtZVxuICAgICAgICApXG4gICAgICAgIGlmICghZmVhdHVyZVR5cGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbGw6IGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtjdXJyXTogZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0OiBjdXJyLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICAgIGdlb2pzb246IGVuZHBvaW50LnN1cHBvcnRzSnNvbihmZWF0dXJlVHlwZS5uYW1lKVxuICAgICAgICAgICAgPyBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICBhc0pzb246IHRydWUsXG4gICAgICAgICAgICAgICAgb3V0cHV0Q3JzOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBnbWw6XG4gICAgICAgICAgICBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgICAgIGYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZ21sJylcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZhdWx0Q3JzID09PSAnRVBTRzo0MzI2JyB8fFxuICAgICAgICAgICAgICBmZWF0dXJlVHlwZS5vdGhlckNycz8uaW5jbHVkZXMoJ0VQU0c6NDMyNicpKVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmVVcmw6IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMuZmluZCgoZikgPT5cbiAgICAgICAgICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZTogZmVhdHVyZVR5cGUubmFtZSxcbiAgICAgICAgICAgICAgICAgIHdmc1ZlcnNpb246IGVuZHBvaW50LmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRXZnNGZWF0dXJlQ291bnQoXG4gICAgd2ZzVXJsOiBzdHJpbmcsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXZnNFbmRwb2ludCh3ZnNVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVuZHBvaW50KSA9PlxuICAgICAgICBmcm9tKGVuZHBvaW50LmdldEZlYXR1cmVUeXBlRnVsbChmZWF0dXJlVHlwZU5hbWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoZmVhdHVyZVR5cGUpID0+IHtcbiAgICAgICAgICAgIGlmICghZmVhdHVyZVR5cGUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmVUeXBlLm9iamVjdENvdW50XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KGFwaVVybDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJveHkuZ2V0UHJveGllZFVybChcbiAgICAgIGAke2FwaVVybH0vcXVlcnk/Zj0ke2Zvcm1hdH0md2hlcmU9MT0xJm91dEZpZWxkcz0qYFxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkTGlua3NGcm9tV2ZzKFxuICAgIHdmc0xpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICk6IE9ic2VydmFibGU8RGF0YXNldE9ubGluZVJlc291cmNlW10+IHtcbiAgICAvLyBQb3VyIERMIHRvdXRlcyBsZXMgZG9ubsOpZXNcbiAgICByZXR1cm4gdGhpcy5nZXREb3dubG9hZFVybHNGcm9tV2ZzKFxuICAgICAgd2ZzTGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgIHdmc0xpbmsubmFtZVxuICAgICkucGlwZShcbiAgICAgIG1hcCgodXJscykgPT4ge1xuICAgICAgICBpZiAodXJscy5nZW9qc29uKSB7XG4gICAgICAgICAgdXJscy5hbGxbJ2FwcGxpY2F0aW9uL2pzb24nXSA9IHVybHMuZ2VvanNvblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmxzXG4gICAgICB9KSxcbiAgICAgIG1hcCgodXJscykgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZXM6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdID0gT2JqZWN0LmtleXModXJscy5hbGwpLm1hcChcbiAgICAgICAgICAoZm9ybWF0KSA9PiAoe1xuICAgICAgICAgICAgLi4ud2ZzTGluayxcbiAgICAgICAgICAgIG5hbWU6IHdmc0xpbmsubmFtZSxcbiAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcgYXMgY29uc3QsXG4gICAgICAgICAgICB1cmw6IG5ldyBVUkwodXJscy5hbGxbZm9ybWF0XSksXG4gICAgICAgICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoXG4gICAgICAgICAgICAgIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChmb3JtYXQpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIHJlc291cmNlc1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBhc3luYyBnZXREb3dubG9hZExpbmtzRnJvbU9nY0FwaUZlYXR1cmVzKFxuICAgIG9nY0FwaUxpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICk6IFByb21pc2U8RGF0YXNldE9ubGluZVJlc291cmNlW10+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaShcbiAgICAgIG9nY0FwaUxpbmsudXJsLmhyZWZcbiAgICApXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNvbGxlY3Rpb25JbmZvLmJ1bGtEb3dubG9hZExpbmtzKS5tYXAoKGRvd25sb2FkTGluaykgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2djQXBpTGluayxcbiAgICAgICAgbmFtZTogY29sbGVjdGlvbkluZm8uaWQsXG4gICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgIHVybDogbmV3IFVSTChjb2xsZWN0aW9uSW5mby5idWxrRG93bmxvYWRMaW5rc1tkb3dubG9hZExpbmtdKSxcbiAgICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KFxuICAgICAgICAgIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChkb3dubG9hZExpbmspXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkodXJsOiBzdHJpbmcpOiBQcm9taXNlPE9nY0FwaUNvbGxlY3Rpb25JbmZvPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodXJsKVxuICAgIHJldHVybiBhd2FpdCBlbmRwb2ludC5hbGxDb2xsZWN0aW9uc1xuICAgICAgLnRoZW4oKGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBlbmRwb2ludC5nZXRDb2xsZWN0aW9uSW5mbyhjb2xsZWN0aW9uc1swXS5uYW1lKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBvZ2MudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0SXRlbXNGcm9tT2djQXBpKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGxpbWl0PzogbnVtYmVyXG4gICk6IFByb21pc2U8T2djQXBpQ29sbGVjdGlvbkl0ZW1bXT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuYWxsQ29sbGVjdGlvbnNcbiAgICAgIC50aGVuKChjb2xsZWN0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbnMubGVuZ3RoXG4gICAgICAgICAgPyBlbmRwb2ludC5nZXRDb2xsZWN0aW9uSXRlbXMoY29sbGVjdGlvbnNbMF0ubmFtZSwgbGltaXQpXG4gICAgICAgICAgOiBudWxsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBvZ2MudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0R2VvZGF0YUxpbmtzRnJvbVRtcyhcbiAgICB0bXNMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBrZWVwT3JpZ2luYWxMaW5rID0gZmFsc2VcbiAgKTogUHJvbWlzZTxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbltdPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgVG1zRW5kcG9pbnQoXG4gICAgICB0bXNMaW5rLnVybC50b1N0cmluZygpLnJlcGxhY2UoL1xcLz8kLywgYC8ke3Rtc0xpbmsubmFtZX1gKVxuICAgIClcbiAgICBjb25zdCB0aWxlTWFwcyA9IGF3YWl0IGVuZHBvaW50LmFsbFRpbGVNYXBzLmNhdGNoKCgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgb2djLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgIH0pXG4gICAgaWYgKCF0aWxlTWFwcz8ubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gICAgLy8gVE9ETzogYXQgc29tZSBwb2ludCB1c2UgdGhlIGlkZW50aWZpZXJJblNlcnZpY2UgZmllbGQgaWYgbW9yZSB0aGF0IG9uZSBsYXllcnMgaW4gdGhlIFRNUyBzZXJ2aWNlXG4gICAgY29uc3QgdGlsZU1hcEluZm8gPSBhd2FpdCBlbmRwb2ludC5nZXRUaWxlTWFwSW5mbyh0aWxlTWFwc1swXS5ocmVmKVxuXG4gICAgLy8gY2FzZSAxOiBubyBzdHlsZXM7IHJldHVybiBhIHBsYWluIFRNUyBsaW5rXG4gICAgaWYgKCF0aWxlTWFwSW5mbz8ubWV0YWRhdGE/Lmxlbmd0aCkgcmV0dXJuIFt0bXNMaW5rXVxuXG4gICAgLy8gY2FzZSAyOiBzdHlsZXMgcHJlc2VudDsgcmV0dXJuIGVhY2ggYXMgYSBzZXBhcmF0ZSBsaW5rXG4gICAgY29uc3Qgc3R5bGVMaW5rcyA9IHRpbGVNYXBJbmZvLm1ldGFkYXRhXG4gICAgICAuZmlsdGVyKChtZXRhKSA9PiBtZXRhLmhyZWYpXG4gICAgICAubWFwKChtZXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gbWV0YS5ocmVmLnNwbGl0KCcvJykucG9wKCkgfHwgJydcbiAgICAgICAgY29uc3QgbGlua05hbWUgPVxuICAgICAgICAgIHRtc0xpbmsuZGVzY3JpcHRpb24gfHwgKCduYW1lJyBpbiB0bXNMaW5rID8gdG1zTGluay5uYW1lIDogJycpXG4gICAgICAgIGNvbnN0IHN0eWxlTmFtZSA9IGZpbGVOYW1lLnNwbGl0KCcuJylbMF1cbiAgICAgICAgY29uc3QgbmFtZSA9IGAke2xpbmtOYW1lfSAtICR7c3R5bGVOYW1lfWBcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAnc2VydmljZScsXG4gICAgICAgICAgdXJsOiBuZXcgVVJMKG1ldGEuaHJlZiksXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6ICdtYXBsaWJyZS1zdHlsZScsXG4gICAgICAgIH0gYXMgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgICAgIH0pXG4gICAgaWYgKGtlZXBPcmlnaW5hbExpbmspIHtcbiAgICAgIHN0eWxlTGlua3MudW5zaGlmdCh0bXNMaW5rKVxuICAgIH1cbiAgICByZXR1cm4gc3R5bGVMaW5rc1xuICB9XG5cbiAgZ2V0RG93bmxvYWRMaW5rc0Zyb21Fc3JpUmVzdChcbiAgICBlc3JpUmVzdExpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICk6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdIHtcbiAgICByZXR1cm4gWydqc29uJywgJ2dlb2pzb24nXS5tYXAoKGZvcm1hdCkgPT4gKHtcbiAgICAgIC4uLmVzcmlSZXN0TGluayxcbiAgICAgIHVybDogbmV3IFVSTChcbiAgICAgICAgdGhpcy5nZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChlc3JpUmVzdExpbmsudXJsLnRvU3RyaW5nKCksIGZvcm1hdClcbiAgICAgICksXG4gICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KGZvcm1hdCkpLFxuICAgIH0pKVxuICB9XG5cbiAgcmVhZEFzR2VvSnNvbihcbiAgICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gICAgY2FjaGVBY3RpdmU6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldERhdGFzZXQobGluaywgY2FjaGVBY3RpdmUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGRhdGFzZXQpID0+IGRhdGFzZXQuc2VsZWN0QWxsKCkucmVhZCgpKSxcbiAgICAgIG1hcCgoZmVhdHVyZXMpID0+ICh7XG4gICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgfSkpXG4gICAgKVxuICB9XG5cbiAgd3JpdGVDb25maWdBc0pTT04oY29uZmlnOiBEYXRhdml6Q29uZmlnTW9kZWwpOiBGaWxlIHtcbiAgICBjb25zdCBqc29uQ29udGVudCA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMilcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2pzb25Db250ZW50XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCAnZGF0YXZpekNvbmZpZy5qc29uJywge1xuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH0pXG4gIH1cblxuICBnZXREYXRhc2V0KFxuICAgIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgICBjYWNoZUFjdGl2ZTogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPEJhc2VSZWFkZXI+IHtcbiAgICBpZiAobGluay50eXBlID09PSAnc2VydmljZScgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICBjb25zdCB3ZnNVcmxFbmRwb2ludCA9IHRoaXMucHJveHkuZ2V0UHJveGllZFVybChsaW5rLnVybC50b1N0cmluZygpKVxuICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgIG9wZW5EYXRhc2V0KFxuICAgICAgICAgIHdmc1VybEVuZHBvaW50LFxuICAgICAgICAgICd3ZnMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdmc0ZlYXR1cmVUeXBlOiBsaW5rLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjYWNoZUFjdGl2ZVxuICAgICAgICApXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcpIHtcbiAgICAgIGNvbnN0IGxpbmtQcm94aWZpZWRVcmwgPSB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwobGluay51cmwudG9TdHJpbmcoKSlcbiAgICAgIGNvbnN0IGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgICAgIGNvbnN0IHN1cHBvcnRlZFR5cGUgPVxuICAgICAgICBTdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZvcm1hdCBhcyBhbnkpID4gLTFcbiAgICAgICAgICA/IChmb3JtYXQgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgIG9wZW5EYXRhc2V0KGxpbmtQcm94aWZpZWRVcmwsIHN1cHBvcnRlZFR5cGUsIHVuZGVmaW5lZCwgY2FjaGVBY3RpdmUpXG4gICAgICApLnBpcGUoKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCdcbiAgICApIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoXG4gICAgICAgIGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgICdnZW9qc29uJ1xuICAgICAgKVxuICAgICAgcmV0dXJuIGZyb20ob3BlbkRhdGFzZXQodXJsLCAnZ2VvanNvbicsIHVuZGVmaW5lZCwgY2FjaGVBY3RpdmUpKS5waXBlKClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gZnJvbSh0aGlzLmdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkobGluay51cmwuaHJlZikpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbkluZm8pID0+IHtcbiAgICAgICAgICBjb25zdCBnZW9qc29uVXJsID0gY29sbGVjdGlvbkluZm8uanNvbkRvd25sb2FkTGlua1xuICAgICAgICAgIHJldHVybiBvcGVuRGF0YXNldChnZW9qc29uVXJsLCAnZ2VvanNvbicsIHVuZGVmaW5lZCwgY2FjaGVBY3RpdmUpXG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKHVybCkgPT4ge1xuICAgICAgICAgIGlmICh1cmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmdlb2pzb25nbWwubm90c3VwcG9ydGVkJylcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdwcm90b2NvbCBub3Qgc3VwcG9ydGVkJylcbiAgfVxufVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCxXQUFXLEdBQ1osTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBR0wsV0FBVyxFQUVYLGNBQWMsR0FDZixNQUFNLDhDQUE4QyxDQUFBO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLG9CQUFvQixFQUNwQixZQUFZLEdBQ2IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU9oRSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtBQUNyQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUM1QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FB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QyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUE7Z0JBQ2xELE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ25FLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNWLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQzsrR0FsVFUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7XG4gIE9nY0FwaUNvbGxlY3Rpb25JbmZvLFxuICBPZ2NBcGlFbmRwb2ludCxcbiAgT2djQXBpUmVjb3JkLFxuICBXZnNFbmRwb2ludCxcbiAgV2ZzVmVyc2lvbixcbiAgVG1zRW5kcG9pbnQsXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQge1xuICBCYXNlUmVhZGVyLFxuICBGZXRjaEVycm9yLFxuICBvcGVuRGF0YXNldCxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuaW1wb3J0IHtcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0LFxuICBnZXRNaW1lVHlwZUZvckZvcm1hdCxcbiAgUHJveHlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBEYXRhdml6Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcblxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUuY29ycycpXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS5odHRwJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5mb3JiaWRkZW4nKVxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUudW5rbm93bicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG5tYXJrZXIoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG5tYXJrZXIoJ29nYy51bnJlYWNoYWJsZS51bmtub3duJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5uZXR3b3JrJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5odHRwJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5wYXJzZScpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IudW5zdXBwb3J0ZWRUeXBlJylcbm1hcmtlcignZGF0YXNldC5lcnJvci51bmtub3duJylcblxuaW50ZXJmYWNlIFdmc0Rvd25sb2FkVXJscyB7XG4gIGFsbDogeyBbZm9ybWF0OiBzdHJpbmddOiBzdHJpbmcgfVxuICBnZW9qc29uOiBzdHJpbmdcbiAgZ21sOiB7IGZlYXR1cmVVcmw6IHN0cmluZzsgbmFtZXNwYWNlOiBzdHJpbmc7IHdmc1ZlcnNpb246IFdmc1ZlcnNpb24gfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb3h5OiBQcm94eVNlcnZpY2UpIHt9XG5cbiAgZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdmc0VuZHBvaW50PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBuZXcgV2ZzRW5kcG9pbnQodGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKHdmc1VybCkpLmlzUmVhZHkoKVxuICAgICkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ25ldHdvcmsnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5jb3JzYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICdodHRwJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUuaHR0cGApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAncGFyc2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5wYXJzZWApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAndW5zdXBwb3J0ZWRUeXBlJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5zdXBwb3J0ZWRUeXBlYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkVXJsc0Zyb21XZnMoXG4gICAgd2ZzVXJsOiBzdHJpbmcsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxXZnNEb3dubG9hZFVybHM+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXZnNFbmRwb2ludCh3ZnNVcmwpLnBpcGUoXG4gICAgICBtYXAoKGVuZHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGVuZHBvaW50LmdldEZlYXR1cmVUeXBlcygpXG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlID0gZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVTdW1tYXJ5KFxuICAgICAgICAgIGZlYXR1cmVUeXBlcy5sZW5ndGggPT09IDEgJiYgIWZlYXR1cmVUeXBlTmFtZVxuICAgICAgICAgICAgPyBmZWF0dXJlVHlwZXNbMF0ubmFtZVxuICAgICAgICAgICAgOiBmZWF0dXJlVHlwZU5hbWVcbiAgICAgICAgKVxuICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWxsOiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbY3Vycl06IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdDogY3VycixcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBnZW9qc29uOiBlbmRwb2ludC5zdXBwb3J0c0pzb24oZmVhdHVyZVR5cGUubmFtZSlcbiAgICAgICAgICAgID8gZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgYXNKc29uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgZ21sOlxuICAgICAgICAgICAgZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5maW5kKChmKSA9PlxuICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICAoZmVhdHVyZVR5cGUuZGVmYXVsdENycyA9PT0gJ0VQU0c6NDMyNicgfHxcbiAgICAgICAgICAgICAgZmVhdHVyZVR5cGUub3RoZXJDcnM/LmluY2x1ZGVzKCdFUFNHOjQzMjYnKSlcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlVXJsOiBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0OiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgICAgICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6IGZlYXR1cmVUeXBlLm5hbWUsXG4gICAgICAgICAgICAgICAgICB3ZnNWZXJzaW9uOiBlbmRwb2ludC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0V2ZzRmVhdHVyZUNvdW50KFxuICAgIHdmc1VybDogc3RyaW5nLFxuICAgIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChlbmRwb2ludCkgPT5cbiAgICAgICAgZnJvbShlbmRwb2ludC5nZXRGZWF0dXJlVHlwZUZ1bGwoZmVhdHVyZVR5cGVOYW1lKSkucGlwZShcbiAgICAgICAgICBtYXAoKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVHlwZS5vYmplY3RDb3VudFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChhcGlVcmw6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwoXG4gICAgICBgJHthcGlVcmx9L3F1ZXJ5P2Y9JHtmb3JtYXR9JndoZXJlPTE9MSZvdXRGaWVsZHM9KmBcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZExpbmtzRnJvbVdmcyhcbiAgICB3ZnNMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdPiB7XG4gICAgLy8gUG91ciBETCB0b3V0ZXMgbGVzIGRvbm7DqWVzXG4gICAgcmV0dXJuIHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbVdmcyhcbiAgICAgIHdmc0xpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB3ZnNMaW5rLm5hbWVcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHVybHMpID0+IHtcbiAgICAgICAgaWYgKHVybHMuZ2VvanNvbikge1xuICAgICAgICAgIHVybHMuYWxsWydhcHBsaWNhdGlvbi9qc29uJ10gPSB1cmxzLmdlb2pzb25cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsc1xuICAgICAgfSksXG4gICAgICBtYXAoKHVybHMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VzOiBEYXRhc2V0T25saW5lUmVzb3VyY2VbXSA9IE9iamVjdC5rZXlzKHVybHMuYWxsKS5tYXAoXG4gICAgICAgICAgKGZvcm1hdCkgPT4gKHtcbiAgICAgICAgICAgIC4uLndmc0xpbmssXG4gICAgICAgICAgICBuYW1lOiB3ZnNMaW5rLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiAnZG93bmxvYWQnIGFzIGNvbnN0LFxuICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHVybHMuYWxsW2Zvcm1hdF0pLFxuICAgICAgICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KFxuICAgICAgICAgICAgICBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZm9ybWF0KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIHJldHVybiByZXNvdXJjZXNcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgZ2V0RG93bmxvYWRMaW5rc0Zyb21PZ2NBcGlGZWF0dXJlcyhcbiAgICBvZ2NBcGlMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBQcm9taXNlPERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdPiB7XG4gICAgY29uc3QgY29sbGVjdGlvbkluZm8gPSBhd2FpdCB0aGlzLmdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkoXG4gICAgICBvZ2NBcGlMaW5rLnVybC5ocmVmXG4gICAgKVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhjb2xsZWN0aW9uSW5mby5idWxrRG93bmxvYWRMaW5rcykubWFwKChkb3dubG9hZExpbmspID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9nY0FwaUxpbmssXG4gICAgICAgIG5hbWU6IGNvbGxlY3Rpb25JbmZvLmlkLFxuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwoY29sbGVjdGlvbkluZm8uYnVsa0Rvd25sb2FkTGlua3NbZG93bmxvYWRMaW5rXSksXG4gICAgICAgIG1pbWVUeXBlOiBnZXRNaW1lVHlwZUZvckZvcm1hdChcbiAgICAgICAgICBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZG93bmxvYWRMaW5rKVxuICAgICAgICApLFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXREb3dubG9hZFVybHNGcm9tT2djQXBpKHVybDogc3RyaW5nKTogUHJvbWlzZTxPZ2NBcGlDb2xsZWN0aW9uSW5mbz4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuZmVhdHVyZUNvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50LmdldENvbGxlY3Rpb25JbmZvKGNvbGxlY3Rpb25zWzBdKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBvZ2MudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0SXRlbXNGcm9tT2djQXBpKHVybDogc3RyaW5nKTogUHJvbWlzZTxPZ2NBcGlSZWNvcmRbXT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuZmVhdHVyZUNvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25zLmxlbmd0aFxuICAgICAgICAgID8gZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW1zKGNvbGxlY3Rpb25zWzBdKVxuICAgICAgICAgIDogbnVsbFxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgb2djLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEdlb2RhdGFMaW5rc0Zyb21UbXMoXG4gICAgdG1zTGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gICAga2VlcE9yaWdpbmFsTGluayA9IGZhbHNlXG4gICk6IFByb21pc2U8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25bXT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IFRtc0VuZHBvaW50KFxuICAgICAgdG1zTGluay51cmwudG9TdHJpbmcoKS5yZXBsYWNlKC9cXC8/JC8sIGAvJHt0bXNMaW5rLm5hbWV9YClcbiAgICApXG4gICAgY29uc3QgdGlsZU1hcHMgPSBhd2FpdCBlbmRwb2ludC5hbGxUaWxlTWFwcy5jYXRjaCgoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICB9KVxuICAgIGlmICghdGlsZU1hcHM/Lmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICAgIC8vIFRPRE86IGF0IHNvbWUgcG9pbnQgdXNlIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlIGZpZWxkIGlmIG1vcmUgdGhhdCBvbmUgbGF5ZXJzIGluIHRoZSBUTVMgc2VydmljZVxuICAgIGNvbnN0IHRpbGVNYXBJbmZvID0gYXdhaXQgZW5kcG9pbnQuZ2V0VGlsZU1hcEluZm8odGlsZU1hcHNbMF0uaHJlZilcblxuICAgIC8vIGNhc2UgMTogbm8gc3R5bGVzOyByZXR1cm4gYSBwbGFpbiBUTVMgbGlua1xuICAgIGlmICghdGlsZU1hcEluZm8/Lm1ldGFkYXRhPy5sZW5ndGgpIHJldHVybiBbdG1zTGlua11cblxuICAgIC8vIGNhc2UgMjogc3R5bGVzIHByZXNlbnQ7IHJldHVybiBlYWNoIGFzIGEgc2VwYXJhdGUgbGlua1xuICAgIGNvbnN0IHN0eWxlTGlua3MgPSB0aWxlTWFwSW5mby5tZXRhZGF0YVxuICAgICAgLmZpbHRlcigobWV0YSkgPT4gbWV0YS5ocmVmKVxuICAgICAgLm1hcCgobWV0YSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IG1ldGEuaHJlZi5zcGxpdCgnLycpLnBvcCgpIHx8ICcnXG4gICAgICAgIGNvbnN0IGxpbmtOYW1lID1cbiAgICAgICAgICB0bXNMaW5rLmRlc2NyaXB0aW9uIHx8ICgnbmFtZScgaW4gdG1zTGluayA/IHRtc0xpbmsubmFtZSA6ICcnKVxuICAgICAgICBjb25zdCBzdHlsZU5hbWUgPSBmaWxlTmFtZS5zcGxpdCgnLicpWzBdXG4gICAgICAgIGNvbnN0IG5hbWUgPSBgJHtsaW5rTmFtZX0gLSAke3N0eWxlTmFtZX1gXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgICAgICAgIHVybDogbmV3IFVSTChtZXRhLmhyZWYpLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgYWNjZXNzU2VydmljZVByb3RvY29sOiAnbWFwbGlicmUtc3R5bGUnLFxuICAgICAgICB9IGFzIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICAgICB9KVxuICAgIGlmIChrZWVwT3JpZ2luYWxMaW5rKSB7XG4gICAgICBzdHlsZUxpbmtzLnVuc2hpZnQodG1zTGluaylcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlTGlua3NcbiAgfVxuXG4gIGdldERvd25sb2FkTGlua3NGcm9tRXNyaVJlc3QoXG4gICAgZXNyaVJlc3RMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBEYXRhc2V0T25saW5lUmVzb3VyY2VbXSB7XG4gICAgcmV0dXJuIFsnanNvbicsICdnZW9qc29uJ10ubWFwKChmb3JtYXQpID0+ICh7XG4gICAgICAuLi5lc3JpUmVzdExpbmssXG4gICAgICB1cmw6IG5ldyBVUkwoXG4gICAgICAgIHRoaXMuZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoZXNyaVJlc3RMaW5rLnVybC50b1N0cmluZygpLCBmb3JtYXQpXG4gICAgICApLFxuICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChmb3JtYXQpKSxcbiAgICB9KSlcbiAgfVxuXG4gIHJlYWRBc0dlb0pzb24oXG4gICAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICAgIGNhY2hlQWN0aXZlOiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0KGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChkYXRhc2V0KSA9PiBkYXRhc2V0LnNlbGVjdEFsbCgpLnJlYWQoKSksXG4gICAgICBtYXAoKGZlYXR1cmVzKSA9PiAoe1xuICAgICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgICBmZWF0dXJlcyxcbiAgICAgIH0pKVxuICAgIClcbiAgfVxuXG4gIHdyaXRlQ29uZmlnQXNKU09OKGNvbmZpZzogRGF0YXZpekNvbmZpZ01vZGVsKTogRmlsZSB7XG4gICAgY29uc3QganNvbkNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShjb25maWcsIG51bGwsIDIpXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uQ29udGVudF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgcmV0dXJuIG5ldyBGaWxlKFtibG9iXSwgJ2RhdGF2aXpDb25maWcuanNvbicsIHtcbiAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9KVxuICB9XG5cbiAgZ2V0RGF0YXNldChcbiAgICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gICAgY2FjaGVBY3RpdmU6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxCYXNlUmVhZGVyPiB7XG4gICAgaWYgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgY29uc3Qgd2ZzVXJsRW5kcG9pbnQgPSB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwobGluay51cmwudG9TdHJpbmcoKSlcbiAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICBvcGVuRGF0YXNldChcbiAgICAgICAgICB3ZnNVcmxFbmRwb2ludCxcbiAgICAgICAgICAnd2ZzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZnNGZWF0dXJlVHlwZTogbGluay5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2FjaGVBY3RpdmVcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAobGluay50eXBlID09PSAnZG93bmxvYWQnKSB7XG4gICAgICBjb25zdCBsaW5rUHJveGlmaWVkVXJsID0gdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKGxpbmsudXJsLnRvU3RyaW5nKCkpXG4gICAgICBjb25zdCBmb3JtYXQgPSBnZXRGaWxlRm9ybWF0KGxpbmspXG4gICAgICBjb25zdCBzdXBwb3J0ZWRUeXBlID1cbiAgICAgICAgU3VwcG9ydGVkVHlwZXMuaW5kZXhPZihmb3JtYXQgYXMgYW55KSA+IC0xXG4gICAgICAgICAgPyAoZm9ybWF0IGFzIFN1cHBvcnRlZFR5cGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICBvcGVuRGF0YXNldChsaW5rUHJveGlmaWVkVXJsLCBzdXBwb3J0ZWRUeXBlLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKVxuICAgICAgKS5waXBlKClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnZXNyaVJlc3QnXG4gICAgKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KFxuICAgICAgICBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICAnZ2VvanNvbidcbiAgICAgIClcbiAgICAgIHJldHVybiBmcm9tKG9wZW5EYXRhc2V0KHVybCwgJ2dlb2pzb24nLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKSkucGlwZSgpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIGZyb20odGhpcy5nZXREb3dubG9hZFVybHNGcm9tT2djQXBpKGxpbmsudXJsLmhyZWYpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb25JbmZvKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ2VvanNvblVybCA9IGNvbGxlY3Rpb25JbmZvLmpzb25Eb3dubG9hZExpbmtcbiAgICAgICAgICByZXR1cm4gb3BlbkRhdGFzZXQoZ2VvanNvblVybCwgJ2dlb2pzb24nLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKVxuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCh1cmwpID0+IHtcbiAgICAgICAgICBpZiAodXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { AvatarServiceInterface } from '../../../../../../libs/api/repository/src';
3
- import { DataService } from '../../../../../../libs/feature/dataviz/src';
4
- import { LinkClassifierService, LinkUsage } from '../../../../../../libs/util/shared/src';
5
2
  import { select, Store } from '@ngrx/store';
6
- import { from, of } from 'rxjs';
7
3
  import { catchError, defaultIfEmpty, filter, map, mergeMap, shareReplay, switchMap, toArray, } from 'rxjs/operators';
8
4
  import * as MdViewActions from './mdview.actions';
9
5
  import * as MdViewSelectors from './mdview.selectors';
6
+ import { LinkClassifierService, LinkUsage } from '../../../../../../libs/util/shared/src';
7
+ import { AvatarServiceInterface } from '../../../../../../libs/api/repository/src';
8
+ import { from, of } from 'rxjs';
9
+ import { DataService } from '../../../../../../libs/feature/dataviz/src';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngrx/store";
12
12
  import * as i2 from "../../../../../../libs/util/shared/src";
@@ -51,7 +51,7 @@ export class MdViewFacade {
51
51
  if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
52
52
  if (link.type === 'service' &&
53
53
  link.accessServiceProtocol === 'ogcFeatures') {
54
- return from(this.dataService.getItemsFromOgcApi(link.url.href, 1)).pipe(map((collectionRecords) => {
54
+ return from(this.dataService.getItemsFromOgcApi(link.url.href)).pipe(map((collectionRecords) => {
55
55
  return collectionRecords &&
56
56
  collectionRecords[0] &&
57
57
  collectionRecords[0].geometry
@@ -116,4 +116,4 @@ export class MdViewFacade {
116
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MdViewFacade, decorators: [{
117
117
  type: Injectable
118
118
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.LinkClassifierService }, { type: i3.AvatarServiceInterface }, { type: i4.DataService }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR2aWV3LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9zdGF0ZS9tZHZpZXcuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFNbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMvQixPQUFPLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxLQUFLLGVBQWUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7O0FBR3JEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxLQUFZLEVBQ2IsY0FBcUMsRUFDcEMsYUFBcUMsRUFDdEMsV0FBd0I7UUFIdkIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNiLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHakMsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMxQixNQUFNLENBQUMsZUFB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UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFvQztRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxZQUEwQjtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsUUFBdUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7K0dBbE1VLFlBQVk7bUhBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFQeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQXZhdGFyU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjJ1xuaW1wb3J0IHsgRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBMaW5rQ2xhc3NpZmllclNlcnZpY2UsIExpbmtVc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgZnJvbSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdG9BcnJheSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgKiBhcyBNZFZpZXdBY3Rpb25zIGZyb20gJy4vbWR2aWV3LmFjdGlvbnMnXG5pbXBvcnQgKiBhcyBNZFZpZXdTZWxlY3RvcnMgZnJvbSAnLi9tZHZpZXcuc2VsZWN0b3JzJ1xuXG5ASW5qZWN0YWJsZSgpXG4vKipcbiAqIFRoZSBNZXRhZGF0YSBWaWV3IEZhY2FkZSBpcyB1c2VkIHRvIHJlbmRlciBjb21wbGV0ZSBtZXRhZGF0YSByZWNvcmRzLlxuICogU3VwcGx5IGl0IHdpdGggYW4gaW5jb21wbGV0ZSByZWNvcmQgKGF0IGxlYXN0IGNvbnRhaW5pbmcgdGhlIHV1aWQpIGFuZCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgZnVsbCByZWNvcmQgd2lsbCBiZSBsb2FkZWQuXG4gKiBUbyBjbGVhciB0aGUgY3VycmVudCByZWNvcmQgdXNlIHRoZSBgY2xvc2UoKWAgbWV0aG9kLlxuICovXG5leHBvcnQgY2xhc3MgTWRWaWV3RmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHVibGljIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VcbiAgKSB7fVxuXG4gIGlzUHJlc2VudCQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YVV1aWQpLFxuICAgIG1hcCgodXVpZCkgPT4gISF1dWlkKVxuICApXG5cbiAgaXNNZXRhZGF0YUxvYWRpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0TWV0YWRhdGFJc0xvYWRpbmcpXG4gIClcblxuICBtZXRhZGF0YSQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YSksXG4gICAgZmlsdGVyKChtZCkgPT4gISFtZClcbiAgKVxuXG4gIGZlYXR1cmVDYXRhbG9nJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldEZlYXR1cmVDYXRhbG9nKSlcblxuICBpc0luY29tcGxldGUkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0TWV0YWRhdGFJc0luY29tcGxldGUpLFxuICAgIGZpbHRlcigoaW5jb21wbGV0ZSkgPT4gaW5jb21wbGV0ZSAhPT0gbnVsbClcbiAgKVxuXG4gIGlzSGlnaFVwZGF0ZUZyZXF1ZW5jeSQgPSB0aGlzLm1ldGFkYXRhJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiB7XG4gICAgICBpZiAocmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlY29yZC51cGRhdGVGcmVxdWVuY3kucGVyID09PSAnZGF5JyAmJlxuICAgICAgICAgIHJlY29yZC51cGRhdGVGcmVxdWVuY3kudXBkYXRlZFRpbWVzID4gMVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWNvcmQudXBkYXRlRnJlcXVlbmN5ID09PSAnY29udGludWFsJ1xuICAgIH0pXG4gIClcblxuICBlcnJvciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YUVycm9yKSlcblxuICByZWxhdGVkJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldFJlbGF0ZWQpKVxuXG4gIHNvdXJjZXMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0U291cmNlcykpXG5cbiAgc291cmNlT2YkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0U291cmNlT2YpKVxuXG4gIGNoYXJ0Q29uZmlnJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldENoYXJ0Q29uZmlnKSlcblxuICBhbGxMaW5rcyQgPSB0aGlzLm1ldGFkYXRhJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PlxuICAgICAgJ29ubGluZVJlc291cmNlcycgaW4gcmVjb3JkID8gcmVjb3JkLm9ubGluZVJlc291cmNlcyA6IFtdXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgYXBpTGlua3MkID0gdGhpcy5hbGxMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PlxuICAgICAgbGlua3MuZmlsdGVyKChsaW5rKSA9PiB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5BUEkpKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIG1hcEFwaUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuTUFQX0FQSSlcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBkb3dubG9hZExpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuRE9XTkxPQUQpXG4gICAgICApXG4gICAgKVxuICApXG5cbiAgZGF0YUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT4gdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuREFUQSkpXG4gICAgKVxuICApXG5cbiAgZ2VvRGF0YUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuR0VPREFUQSlcbiAgICAgIClcbiAgICApXG4gIClcblxuICBnZW9EYXRhTGlua3NXaXRoR2VvbWV0cnkkID0gdGhpcy5hbGxMaW5rcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGxpbmtzKSA9PlxuICAgICAgZnJvbShsaW5rcykucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGxpbmspID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuR0VPREFUQSkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEl0ZW1zRnJvbU9nY0FwaShsaW5rLnVybC5ocmVmLCAxKVxuICAgICAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChjb2xsZWN0aW9uUmVjb3JkcykgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25SZWNvcmRzICYmXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25SZWNvcmRzWzBdICYmXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25SZWNvcmRzWzBdLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgICAgID8gbGlua1xuICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0SWZFbXB0eShudWxsKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gb2YobGluaylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdG9BcnJheSgpLFxuICAgICAgICBtYXAoKGxpbmtzKSA9PiBsaW5rcy5maWx0ZXIoKGxpbmspID0+IGxpbmsgIT09IG51bGwpKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIGxhbmRpbmdQYWdlTGlua3MkID0gdGhpcy5tZXRhZGF0YSQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gKCdsYW5kaW5nUGFnZScgaW4gcmVjb3JkID8gW3JlY29yZC5sYW5kaW5nUGFnZV0gOiBbXSkpXG4gIClcblxuICBvdGhlckxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuVU5LTk9XTilcbiAgICAgIClcbiAgICApXG4gIClcblxuICB1c2VyRmVlZGJhY2tzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldFVzZXJGZWVkYmFja3MpKVxuICBpc0FsbFVzZXJGZWVkYmFja0xvYWRpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0QWxsVXNlckZlZWRiYWNrc0xvYWRpbmcpXG4gIClcbiAgaXNBZGRVc2VyRmVlZGJhY2tMb2FkaW5nJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldEFkZFVzZXJGZWVkYmFja3NMb2FkaW5nKVxuICApXG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBzaG93IGFuIGluY29tcGxldGUgcmVjb3JkIChlLmcuIGZyb20gYSBzZWFyY2ggcmVzdWx0KSBhcyBhIHByZXZpZXdcbiAgICogTm90ZTogdGhlIGZ1bGwgcmVjb3JkIHdpbGwgbm90IGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5OyB1c2UgdGhlIGBsb2FkRnVsbGAgbWV0aG9kIGZvciB0aGF0XG4gICAqL1xuICBzZXRJbmNvbXBsZXRlTWV0YWRhdGEoaW5jb21wbGV0ZTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5zZXRJbmNvbXBsZXRlTWV0YWRhdGEoeyBpbmNvbXBsZXRlIH0pKVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBsb2FkIG9mIGEgZnVsbCBtZXRhZGF0YSByZWNvcmRcbiAgICovXG4gIGxvYWRGdWxsKHV1aWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5sb2FkRnVsbE1ldGFkYXRhKHsgdXVpZCB9KSlcbiAgfVxuXG4gIGNsb3NlTWV0YWRhdGEoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZFZpZXdBY3Rpb25zLmNsb3NlTWV0YWRhdGEoKSlcbiAgfVxuXG4gIHNldENoYXJ0Q29uZmlnKGNoYXJ0Q29uZmlnOiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5zZXRDaGFydENvbmZpZyh7IGNoYXJ0Q29uZmlnIH0pKVxuICB9XG5cbiAgLyoqXG4gICAqIFVzZXJGZWVkYmFja3NcbiAgICovXG4gIGFkZFVzZXJGZWVkYmFjayh1c2VyRmVlZGJhY2s6IFVzZXJGZWVkYmFjaykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5hZGRVc2VyRmVlZGJhY2soeyB1c2VyRmVlZGJhY2sgfSkpXG4gIH1cblxuICBsb2FkVXNlckZlZWRiYWNrcyhkYXRhc2V0VXVpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZFZpZXdBY3Rpb25zLmxvYWRVc2VyRmVlZGJhY2tzKHsgZGF0YXNldFV1aWQgfSkpXG4gIH1cblxuICAvKipcbiAgICogbG9hZEZlYXR1cmVDYXRhbG9nXG4gICAqL1xuICBsb2FkRmVhdHVyZUNhdGFsb2cobWV0YWRhdGE6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1kVmlld0FjdGlvbnMubG9hZEZlYXR1cmVDYXRhbG9nKHsgbWV0YWRhdGEgfSkpXG4gIH1cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR2aWV3LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9zdGF0ZS9tZHZpZXcuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxlQUFlLE1BQU0sb0JBQW9CLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBTXpGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBRWxGLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBR3hFOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxLQUFZLEVBQ2IsY0FBcUMsRUFDcEMsYUFBcUMsRUFDdEMsV0FBd0I7UUFIdkIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNiLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHakMsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMxQixNQUFNLENBQUMsZUFB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LENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQW9DO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFlBQTBCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFdBQW1CO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxRQUF1QjtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckUsQ0FBQzsrR0FsTVUsWUFBWTttSEFBWixZQUFZOzs0RkFBWixZQUFZO2tCQVB4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWZhdWx0SWZFbXB0eSxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3dpdGNoTWFwLFxuICB0b0FycmF5LFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCAqIGFzIE1kVmlld0FjdGlvbnMgZnJvbSAnLi9tZHZpZXcuYWN0aW9ucydcbmltcG9ydCAqIGFzIE1kVmlld1NlbGVjdG9ycyBmcm9tICcuL21kdmlldy5zZWxlY3RvcnMnXG5pbXBvcnQgeyBMaW5rQ2xhc3NpZmllclNlcnZpY2UsIExpbmtVc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQXZhdGFyU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjJ1xuaW1wb3J0IHsgT2djQXBpUmVjb3JkIH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7IGZyb20sIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjJ1xuXG5ASW5qZWN0YWJsZSgpXG4vKipcbiAqIFRoZSBNZXRhZGF0YSBWaWV3IEZhY2FkZSBpcyB1c2VkIHRvIHJlbmRlciBjb21wbGV0ZSBtZXRhZGF0YSByZWNvcmRzLlxuICogU3VwcGx5IGl0IHdpdGggYW4gaW5jb21wbGV0ZSByZWNvcmQgKGF0IGxlYXN0IGNvbnRhaW5pbmcgdGhlIHV1aWQpIGFuZCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgZnVsbCByZWNvcmQgd2lsbCBiZSBsb2FkZWQuXG4gKiBUbyBjbGVhciB0aGUgY3VycmVudCByZWNvcmQgdXNlIHRoZSBgY2xvc2UoKWAgbWV0aG9kLlxuICovXG5leHBvcnQgY2xhc3MgTWRWaWV3RmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHVibGljIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VcbiAgKSB7fVxuXG4gIGlzUHJlc2VudCQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YVV1aWQpLFxuICAgIG1hcCgodXVpZCkgPT4gISF1dWlkKVxuICApXG5cbiAgaXNNZXRhZGF0YUxvYWRpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0TWV0YWRhdGFJc0xvYWRpbmcpXG4gIClcblxuICBtZXRhZGF0YSQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YSksXG4gICAgZmlsdGVyKChtZCkgPT4gISFtZClcbiAgKVxuXG4gIGZlYXR1cmVDYXRhbG9nJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldEZlYXR1cmVDYXRhbG9nKSlcblxuICBpc0luY29tcGxldGUkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0TWV0YWRhdGFJc0luY29tcGxldGUpLFxuICAgIGZpbHRlcigoaW5jb21wbGV0ZSkgPT4gaW5jb21wbGV0ZSAhPT0gbnVsbClcbiAgKVxuXG4gIGlzSGlnaFVwZGF0ZUZyZXF1ZW5jeSQgPSB0aGlzLm1ldGFkYXRhJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiB7XG4gICAgICBpZiAocmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlY29yZC51cGRhdGVGcmVxdWVuY3kucGVyID09PSAnZGF5JyAmJlxuICAgICAgICAgIHJlY29yZC51cGRhdGVGcmVxdWVuY3kudXBkYXRlZFRpbWVzID4gMVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWNvcmQudXBkYXRlRnJlcXVlbmN5ID09PSAnY29udGludWFsJ1xuICAgIH0pXG4gIClcblxuICBlcnJvciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRNZXRhZGF0YUVycm9yKSlcblxuICByZWxhdGVkJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldFJlbGF0ZWQpKVxuXG4gIHNvdXJjZXMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0U291cmNlcykpXG5cbiAgc291cmNlT2YkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChNZFZpZXdTZWxlY3RvcnMuZ2V0U291cmNlT2YpKVxuXG4gIGNoYXJ0Q29uZmlnJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldENoYXJ0Q29uZmlnKSlcblxuICBhbGxMaW5rcyQgPSB0aGlzLm1ldGFkYXRhJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PlxuICAgICAgJ29ubGluZVJlc291cmNlcycgaW4gcmVjb3JkID8gcmVjb3JkLm9ubGluZVJlc291cmNlcyA6IFtdXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgYXBpTGlua3MkID0gdGhpcy5hbGxMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PlxuICAgICAgbGlua3MuZmlsdGVyKChsaW5rKSA9PiB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5BUEkpKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIG1hcEFwaUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuTUFQX0FQSSlcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBkb3dubG9hZExpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuRE9XTkxPQUQpXG4gICAgICApXG4gICAgKVxuICApXG5cbiAgZGF0YUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT4gdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuREFUQSkpXG4gICAgKVxuICApXG5cbiAgZ2VvRGF0YUxpbmtzJCA9IHRoaXMuYWxsTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmZpbHRlcigobGluaykgPT5cbiAgICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuR0VPREFUQSlcbiAgICAgIClcbiAgICApXG4gIClcblxuICBnZW9EYXRhTGlua3NXaXRoR2VvbWV0cnkkID0gdGhpcy5hbGxMaW5rcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGxpbmtzKSA9PlxuICAgICAgZnJvbShsaW5rcykucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGxpbmspID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuR0VPREFUQSkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEl0ZW1zRnJvbU9nY0FwaShsaW5rLnVybC5ocmVmKVxuICAgICAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChjb2xsZWN0aW9uUmVjb3JkczogT2djQXBpUmVjb3JkW10pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uUmVjb3JkcyAmJlxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uUmVjb3Jkc1swXSAmJlxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uUmVjb3Jkc1swXS5nZW9tZXRyeVxuICAgICAgICAgICAgICAgICAgICA/IGxpbmtcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkobnVsbCksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGxpbmspXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRvQXJyYXkoKSxcbiAgICAgICAgbWFwKChsaW5rcykgPT4gbGlua3MuZmlsdGVyKChsaW5rKSA9PiBsaW5rICE9PSBudWxsKSlcbiAgICAgIClcbiAgICApXG4gIClcblxuICBsYW5kaW5nUGFnZUxpbmtzJCA9IHRoaXMubWV0YWRhdGEkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+ICgnbGFuZGluZ1BhZ2UnIGluIHJlY29yZCA/IFtyZWNvcmQubGFuZGluZ1BhZ2VdIDogW10pKVxuICApXG5cbiAgb3RoZXJMaW5rcyQgPSB0aGlzLmFsbExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5maWx0ZXIoKGxpbmspID0+XG4gICAgICAgIHRoaXMubGlua0NsYXNzaWZpZXIuaGFzVXNhZ2UobGluaywgTGlua1VzYWdlLlVOS05PV04pXG4gICAgICApXG4gICAgKVxuICApXG5cbiAgdXNlckZlZWRiYWNrcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRVc2VyRmVlZGJhY2tzKSlcbiAgaXNBbGxVc2VyRmVlZGJhY2tMb2FkaW5nJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoTWRWaWV3U2VsZWN0b3JzLmdldEFsbFVzZXJGZWVkYmFja3NMb2FkaW5nKVxuICApXG4gIGlzQWRkVXNlckZlZWRiYWNrTG9hZGluZyQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KE1kVmlld1NlbGVjdG9ycy5nZXRBZGRVc2VyRmVlZGJhY2tzTG9hZGluZylcbiAgKVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgc2hvdyBhbiBpbmNvbXBsZXRlIHJlY29yZCAoZS5nLiBmcm9tIGEgc2VhcmNoIHJlc3VsdCkgYXMgYSBwcmV2aWV3XG4gICAqIE5vdGU6IHRoZSBmdWxsIHJlY29yZCB3aWxsIG5vdCBiZSBsb2FkZWQgYXV0b21hdGljYWxseTsgdXNlIHRoZSBgbG9hZEZ1bGxgIG1ldGhvZCBmb3IgdGhhdFxuICAgKi9cbiAgc2V0SW5jb21wbGV0ZU1ldGFkYXRhKGluY29tcGxldGU6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1kVmlld0FjdGlvbnMuc2V0SW5jb21wbGV0ZU1ldGFkYXRhKHsgaW5jb21wbGV0ZSB9KSlcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgbG9hZCBvZiBhIGZ1bGwgbWV0YWRhdGEgcmVjb3JkXG4gICAqL1xuICBsb2FkRnVsbCh1dWlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1kVmlld0FjdGlvbnMubG9hZEZ1bGxNZXRhZGF0YSh7IHV1aWQgfSkpXG4gIH1cblxuICBjbG9zZU1ldGFkYXRhKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5jbG9zZU1ldGFkYXRhKCkpXG4gIH1cblxuICBzZXRDaGFydENvbmZpZyhjaGFydENvbmZpZzogRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1kVmlld0FjdGlvbnMuc2V0Q2hhcnRDb25maWcoeyBjaGFydENvbmZpZyB9KSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VyRmVlZGJhY2tzXG4gICAqL1xuICBhZGRVc2VyRmVlZGJhY2sodXNlckZlZWRiYWNrOiBVc2VyRmVlZGJhY2spIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1kVmlld0FjdGlvbnMuYWRkVXNlckZlZWRiYWNrKHsgdXNlckZlZWRiYWNrIH0pKVxuICB9XG5cbiAgbG9hZFVzZXJGZWVkYmFja3MoZGF0YXNldFV1aWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWRWaWV3QWN0aW9ucy5sb2FkVXNlckZlZWRiYWNrcyh7IGRhdGFzZXRVdWlkIH0pKVxuICB9XG5cbiAgLyoqXG4gICAqIGxvYWRGZWF0dXJlQ2F0YWxvZ1xuICAgKi9cbiAgbG9hZEZlYXR1cmVDYXRhbG9nKG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZFZpZXdBY3Rpb25zLmxvYWRGZWF0dXJlQ2F0YWxvZyh7IG1ldGFkYXRhIH0pKVxuICB9XG59XG4iXX0=